diff --git a/README.md b/README.md index bfe535dc8..ccd088381 100644 --- a/README.md +++ b/README.md @@ -23,6 +23,7 @@ Currently supported DNS providers: - Namecheap - Name.com - Route 53 + - SoftLayer At Stack Overflow, we use this system to manage hundreds of domains and subdomains across multiple registrars and DNS providers. diff --git a/docs/_includes/matrix.html b/docs/_includes/matrix.html index e6fe52c01..8b67d93a1 100644 --- a/docs/_includes/matrix.html +++ b/docs/_includes/matrix.html @@ -17,6 +17,7 @@
NAMEDOTCOM
NS1
ROUTE53
+
SOFTLAYER
@@ -55,6 +56,7 @@ + Registrar @@ -91,6 +93,9 @@ + + + DNS Provider @@ -127,6 +132,9 @@ + + + ALIAS @@ -149,6 +157,7 @@ + SRV @@ -179,6 +188,9 @@ + + + PTR @@ -207,6 +219,7 @@ + CAA @@ -229,6 +242,7 @@ + TLSA @@ -245,6 +259,7 @@ + dual host @@ -275,6 +290,7 @@ + create-domains @@ -311,6 +327,7 @@ + no_purge @@ -347,6 +364,9 @@ + + + diff --git a/docs/_providers/softlayer.md b/docs/_providers/softlayer.md new file mode 100644 index 000000000..32521ebb5 --- /dev/null +++ b/docs/_providers/softlayer.md @@ -0,0 +1,50 @@ +--- +name: "SoftLayer DNS" +layout: default +jsId: SOFTLAYER +--- + +# SoftLayer DNS Provider + +## Configuration + +To authenticate with softlayer requires at least a `username` and `api_key` for authentication. +It can also optionally take a `timeout` and `endpoint_url` parameter however these are optional and will use standard defaults if not provided. +These can be supplied via the standard 'creds.json' like so: +{% highlight json %} + "softlayer": { + "username": "myusername", + "api_key": "mysecretapikey" + } +{% endhighlight %} + +To maintain compatibility with existing softlayer CLI services these can also be provided by the `SL_USERNAME` and `SL_API_KEY` environment variables or specified in the ~/.softlayer. +More information about these methods can be found at [the softlayer-go library documentation](https://github.com/softlayer/softlayer-go#sessions). + +## Usage + +Use this provider like any other DNS Provider: + +{% highlight js %} +var registrar = NewRegistrar("none","NONE"); // no registrar +var softlayer = NewDnsProvider("softlayer", "SOFTLAYER"); + +D("example.tld", registrary, DnsProvider(softlayer), + A("test","1.2.3.4") +); +{%endhighlight%} + +## Metadata + +This provider does not recognize any special metadata fields unique to SoftLayer dns. +For compatibility with the pre-generated NAMESERVER fields it's recommended to set the NS TTL to 86400 such as: + +{% highlight js %} +D("example.tld", registrary, DnsProvider(softlayer), + {"ns_ttl": "86400"}, + + A("test","1.2.3.4") +); +{%endhighlight%} + +`ns_ttl` is a standard metadata field that applies to all providers. diff --git a/integrationTest/integration_test.go b/integrationTest/integration_test.go index 319c1018f..e59829d2a 100644 --- a/integrationTest/integration_test.go +++ b/integrationTest/integration_test.go @@ -131,7 +131,7 @@ func runTests(t *testing.T, prv providers.DNSServiceProvider, domainName string, t.Log(c.Msg) } err = c.F() - if err != nil { + if !skipVal && err != nil { t.Fatal(err) } } diff --git a/integrationTest/providers.json b/integrationTest/providers.json index 6ee6bc137..91afe5aa1 100644 --- a/integrationTest/providers.json +++ b/integrationTest/providers.json @@ -49,5 +49,12 @@ "KeyId": "$R53_KEY_ID", "SecretKey": "$R53_KEY", "domain": "$R53_DOMAIN" + }, + "SOFTLAYER": { + "COMMENT": "22-25 softlayer fails at direct internationalization, puncode works though", + "knownFailures": "22,23,24,25", + "domain": "$SL_DOMAIN", + "username": "$SL_USERNAME", + "api_key": "$SL_API_KEY" } } \ No newline at end of file diff --git a/providers/_all/all.go b/providers/_all/all.go index 2e9b99eb6..7244eab1b 100644 --- a/providers/_all/all.go +++ b/providers/_all/all.go @@ -14,4 +14,5 @@ import ( _ "github.com/StackExchange/dnscontrol/providers/namedotcom" _ "github.com/StackExchange/dnscontrol/providers/ns1" _ "github.com/StackExchange/dnscontrol/providers/route53" + _ "github.com/StackExchange/dnscontrol/providers/softlayer" ) diff --git a/providers/softlayer/softlayer.go b/providers/softlayer/softlayer.go new file mode 100644 index 000000000..254037c0d --- /dev/null +++ b/providers/softlayer/softlayer.go @@ -0,0 +1,349 @@ +package softlayer + +import ( + "encoding/json" + "fmt" + "regexp" + "strings" + + "github.com/StackExchange/dnscontrol/models" + "github.com/StackExchange/dnscontrol/providers" + "github.com/StackExchange/dnscontrol/providers/diff" + "github.com/miekg/dns/dnsutil" + + "github.com/softlayer/softlayer-go/datatypes" + "github.com/softlayer/softlayer-go/filter" + "github.com/softlayer/softlayer-go/services" + "github.com/softlayer/softlayer-go/session" +) + +type SoftLayer struct { + Session *session.Session +} + +func init() { + providers.RegisterDomainServiceProviderType("SOFTLAYER", newReg, providers.CanUseSRV) +} + +func newReg(conf map[string]string, _ json.RawMessage) (providers.DNSServiceProvider, error) { + s := session.New(conf["username"], conf["api_key"], conf["endpoint_url"], conf["timeout"]) + + if len(s.UserName) == 0 || len(s.APIKey) == 0 { + return nil, fmt.Errorf("SoftLayer UserName and APIKey must be provided") + } + + //s.Debug = true + + api := &SoftLayer{ + Session: s, + } + + return api, nil +} + +func (s *SoftLayer) GetNameservers(domain string) ([]*models.Nameserver, error) { + // Always use the same nameservers for softlayer + nservers := []string{"ns1.softlayer.com", "ns2.softlayer.com"} + return models.StringsToNameservers(nservers), nil +} + +func (s *SoftLayer) GetDomainCorrections(dc *models.DomainConfig) ([]*models.Correction, error) { + corrections := []*models.Correction{} + + domain, err := s.getDomain(&dc.Name) + + if err != nil { + return nil, err + } + + actual, err := s.getExistingRecords(domain) + + if err != nil { + return nil, err + } + + _, create, delete, modify := diff.New(dc).IncrementalDiff(actual) + + for _, del := range delete { + existing := del.Existing.Original.(datatypes.Dns_Domain_ResourceRecord) + corrections = append(corrections, &models.Correction{ + Msg: del.String(), + F: s.deleteRecordFunc(*existing.Id), + }) + } + + for _, cre := range create { + corrections = append(corrections, &models.Correction{ + Msg: cre.String(), + F: s.createRecordFunc(cre.Desired, domain), + }) + } + + for _, mod := range modify { + existing := mod.Existing.Original.(datatypes.Dns_Domain_ResourceRecord) + corrections = append(corrections, &models.Correction{ + Msg: mod.String(), + F: s.updateRecordFunc(&existing, mod.Desired), + }) + } + + return corrections, nil +} + +func (s *SoftLayer) getDomain(name *string) (*datatypes.Dns_Domain, error) { + domains, err := services.GetAccountService(s.Session). + Filter(filter.Path("domains.name").Eq(name).Build()). + Mask("resourceRecords"). + GetDomains() + + if err != nil { + return nil, err + } + + if len(domains) == 0 { + return nil, fmt.Errorf("Didn't find a domain matching %s", *name) + } else if len(domains) > 1 { + return nil, fmt.Errorf("Found %d domains matching %s", len(domains), *name) + } + + return &domains[0], nil +} + +func (s *SoftLayer) getExistingRecords(domain *datatypes.Dns_Domain) ([]*models.RecordConfig, error) { + actual := []*models.RecordConfig{} + + for _, record := range domain.ResourceRecords { + recType := strings.ToUpper(*record.Type) + + if recType == "SOA" { + continue + } + + recConfig := &models.RecordConfig{ + Type: recType, + Target: *record.Data, + TTL: uint32(*record.Ttl), + Original: record, + } + + switch recType { + case "SRV": + var service, protocol string = "", "_tcp" + + if record.Weight != nil { + recConfig.SrvWeight = uint16(*record.Weight) + } + if record.Port != nil { + recConfig.SrvPort = uint16(*record.Port) + } + if record.Priority != nil { + recConfig.SrvPriority = uint16(*record.Priority) + } + if record.Protocol != nil { + protocol = *record.Protocol + } + if record.Service != nil { + service = *record.Service + } + + recConfig.Name = fmt.Sprintf("%s.%s", service, strings.ToLower(protocol)) + + case "MX": + if record.MxPriority != nil { + recConfig.MxPreference = uint16(*record.MxPriority) + } + + fallthrough + + default: + recConfig.Name = *record.Host + } + + recConfig.NameFQDN = dnsutil.AddOrigin(recConfig.Name, *domain.Name) + actual = append(actual, recConfig) + } + + return actual, nil +} + +func (s *SoftLayer) createRecordFunc(desired *models.RecordConfig, domain *datatypes.Dns_Domain) func() error { + var ttl, preference, domainId int = int(desired.TTL), int(desired.MxPreference), *domain.Id + var weight, priority, port int = int(desired.SrvWeight), int(desired.SrvPriority), int(desired.SrvPort) + var host, data, newType string = desired.Name, desired.Target, desired.Type + var err error = nil + + srvRegexp := regexp.MustCompile(`^_(?P\w+)\.\_(?P\w+)$`) + + return func() error { + newRecord := datatypes.Dns_Domain_ResourceRecord{ + DomainId: &domainId, + Ttl: &ttl, + Type: &newType, + Data: &data, + Host: &host, + } + + switch newType { + case "MX": + service := services.GetDnsDomainResourceRecordMxTypeService(s.Session) + + newRecord.MxPriority = &preference + + newMx := datatypes.Dns_Domain_ResourceRecord_MxType{ + Dns_Domain_ResourceRecord: newRecord, + } + + _, err = service.CreateObject(&newMx) + + case "SRV": + service := services.GetDnsDomainResourceRecordSrvTypeService(s.Session) + result := srvRegexp.FindStringSubmatch(host) + + if len(result) != 3 { + return fmt.Errorf("SRV Record must match format \"_service._protocol\" not %s", host) + } + + var serviceName, protocol string = result[1], strings.ToLower(result[2]) + + newSrv := datatypes.Dns_Domain_ResourceRecord_SrvType{ + Dns_Domain_ResourceRecord: newRecord, + Service: &serviceName, + Port: &port, + Priority: &priority, + Protocol: &protocol, + Weight: &weight, + } + + _, err = service.CreateObject(&newSrv) + + default: + service := services.GetDnsDomainResourceRecordService(s.Session) + _, err = service.CreateObject(&newRecord) + } + + return err + } +} + +func (s *SoftLayer) deleteRecordFunc(resId int) func() error { + // seems to be no problem deleting MX and SRV records via common interface + return func() error { + _, err := services.GetDnsDomainResourceRecordService(s.Session). + Id(resId). + DeleteObject() + + return err + } +} + +func (s *SoftLayer) updateRecordFunc(existing *datatypes.Dns_Domain_ResourceRecord, desired *models.RecordConfig) func() error { + var ttl, preference int = int(desired.TTL), int(desired.MxPreference) + var priority, weight, port int = int(desired.SrvPriority), int(desired.SrvWeight), int(desired.SrvPort) + + return func() error { + var changes bool = false + var err error = nil + + switch desired.Type { + case "MX": + service := services.GetDnsDomainResourceRecordMxTypeService(s.Session) + updated := datatypes.Dns_Domain_ResourceRecord_MxType{} + + if desired.Name != *existing.Host { + updated.Host = &desired.Name + changes = true + } + + if desired.Target != *existing.Data { + updated.Data = &desired.Target + changes = true + } + + if ttl != *existing.Ttl { + updated.Ttl = &ttl + changes = true + } + + if preference != *existing.MxPriority { + updated.MxPriority = &preference + changes = true + } + + if !changes { + return fmt.Errorf("Error: Didn't find changes when I expect some.") + } + + _, err = service.Id(*existing.Id).EditObject(&updated) + + case "SRV": + service := services.GetDnsDomainResourceRecordSrvTypeService(s.Session) + updated := datatypes.Dns_Domain_ResourceRecord_SrvType{} + + if desired.Name != *existing.Host { + updated.Host = &desired.Name + changes = true + } + + if desired.Target != *existing.Data { + updated.Data = &desired.Target + changes = true + } + + if ttl != *existing.Ttl { + updated.Ttl = &ttl + changes = true + } + + if priority != *existing.Priority { + updated.Priority = &priority + changes = true + } + + if weight != *existing.Weight { + updated.Weight = &weight + changes = true + } + + if port != *existing.Port { + updated.Port = &port + changes = true + } + + // TODO: handle service & protocol - or does that just result in a + // delete and recreate? + + if !changes { + return fmt.Errorf("Error: Didn't find changes when I expect some.") + } + + _, err = service.Id(*existing.Id).EditObject(&updated) + + default: + service := services.GetDnsDomainResourceRecordService(s.Session) + updated := datatypes.Dns_Domain_ResourceRecord{} + + if desired.Name != *existing.Host { + updated.Host = &desired.Name + changes = true + } + + if desired.Target != *existing.Data { + updated.Data = &desired.Target + changes = true + } + + if ttl != *existing.Ttl { + updated.Ttl = &ttl + changes = true + } + + if !changes { + return fmt.Errorf("Error: Didn't find changes when I expect some.") + } + + _, err = service.Id(*existing.Id).EditObject(&updated) + } + + return err + } +} diff --git a/vendor/github.com/renier/xmlrpc/LICENSE b/vendor/github.com/renier/xmlrpc/LICENSE new file mode 100644 index 000000000..8103dd139 --- /dev/null +++ b/vendor/github.com/renier/xmlrpc/LICENSE @@ -0,0 +1,19 @@ +Copyright (C) 2012 Dmitry Maksimov + +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. diff --git a/vendor/github.com/renier/xmlrpc/README.md b/vendor/github.com/renier/xmlrpc/README.md new file mode 100644 index 000000000..12b7692e9 --- /dev/null +++ b/vendor/github.com/renier/xmlrpc/README.md @@ -0,0 +1,79 @@ +## Overview + +xmlrpc is an implementation of client side part of XMLRPC protocol in Go language. + +## Installation + +To install xmlrpc package run `go get github.com/kolo/xmlrpc`. To use +it in application add `"github.com/kolo/xmlrpc"` string to `import` +statement. + +## Usage + + client, _ := xmlrpc.NewClient("https://bugzilla.mozilla.org/xmlrpc.cgi", nil) + result := struct{ + Version string `xmlrpc:"version"` + }{} + client.Call("Bugzilla.version", nil, &result) + fmt.Printf("Version: %s\n", result.Version) // Version: 4.2.7+ + +Second argument of NewClient function is an object that implements +[http.RoundTripper](http://golang.org/pkg/net/http/#RoundTripper) +interface, it can be used to get more control over connection options. +By default it initialized by http.DefaultTransport object. + +### Arguments encoding + +xmlrpc package supports encoding of native Go data types to method +arguments. + +Data types encoding rules: +* int, int8, int16, int32, int64 encoded to int; +* float32, float64 encoded to double; +* bool encoded to boolean; +* string encoded to string; +* time.Time encoded to datetime.iso8601; +* xmlrpc.Base64 encoded to base64; +* slice decoded to array; + +Structs decoded to struct by following rules: +* all public field become struct members; +* field name become member name; +* if field has xmlrpc tag, its value become member name. + +Server method can accept few arguments, to handle this case there is +special approach to handle slice of empty interfaces (`[]interface{}`). +Each value of such slice encoded as separate argument. + +### Result decoding + +Result of remote function is decoded to native Go data type. + +Data types decoding rules: +* int, i4 decoded to int, int8, int16, int32, int64; +* double decoded to float32, float64; +* boolean decoded to bool; +* string decoded to string; +* array decoded to slice; +* structs decoded following the rules described in previous section; +* datetime.iso8601 decoded as time.Time data type; +* base64 decoded to string. + +## Implementation details + +xmlrpc package contains clientCodec type, that implements [rpc.ClientCodec](http://golang.org/pkg/net/rpc/#ClientCodec) +interface of [net/rpc](http://golang.org/pkg/net/rpc) package. + +xmlrpc package works over HTTP protocol, but some internal functions +and data type were made public to make it easier to create another +implementation of xmlrpc that works over another protocol. To encode +request body there is EncodeMethodCall function. To decode server +response Response data type can be used. + +## Contribution + +Feel free to fork the project, submit pull requests, ask questions. + +## Authors + +Dmitry Maksimov (dmtmax@gmail.com) diff --git a/vendor/github.com/renier/xmlrpc/client.go b/vendor/github.com/renier/xmlrpc/client.go new file mode 100644 index 000000000..eed6936df --- /dev/null +++ b/vendor/github.com/renier/xmlrpc/client.go @@ -0,0 +1,181 @@ +package xmlrpc + +import ( + "fmt" + "io" + "io/ioutil" + "net/http" + "net/http/cookiejar" + "net/rpc" + "net/url" + "strconv" + "sync" + "time" +) + +type Client struct { + *rpc.Client +} + +// clientCodec is rpc.ClientCodec interface implementation. +type clientCodec struct { + // url presents url of xmlrpc service + url *url.URL + + // httpClient works with HTTP protocol + httpClient *http.Client + + // cookies stores cookies received on last request + cookies http.CookieJar + + // responses presents map of active requests. It is required to return request id, that + // rpc.Client can mark them as done. + responsesMu sync.RWMutex + responses map[uint64]*http.Response + + response *Response + + // ready presents channel, that is used to link request and it`s response. + ready chan *uint64 +} + +func (codec *clientCodec) WriteRequest(request *rpc.Request, args interface{}) (err error) { + httpRequest, err := NewRequest(codec.url.String(), request.ServiceMethod, args) + if err != nil { + return err + } + + if codec.cookies != nil { + for _, cookie := range codec.cookies.Cookies(codec.url) { + httpRequest.AddCookie(cookie) + } + } + + httpResponse, err := codec.httpClient.Do(httpRequest) + if err != nil { + return err + } + + if codec.cookies != nil { + codec.cookies.SetCookies(codec.url, httpResponse.Cookies()) + } + + codec.responsesMu.Lock() + codec.responses[request.Seq] = httpResponse + codec.responsesMu.Unlock() + + codec.ready <- &request.Seq + + return nil +} + +func (codec *clientCodec) ReadResponseHeader(response *rpc.Response) error { + seq, ok := <-codec.ready + if !ok { + return io.EOF + } + + codec.responsesMu.RLock() + httpResponse := codec.responses[*seq] + codec.responsesMu.RUnlock() + + defer func() { + httpResponse.Body.Close() + codec.responsesMu.Lock() + delete(codec.responses, *seq) + codec.responsesMu.Unlock() + }() + + contentLength := httpResponse.ContentLength + if contentLength == -1 { + if ntcoentLengthHeader, ok := httpResponse.Header["Ntcoent-Length"]; ok { + ntcoentLength, err := strconv.ParseInt(ntcoentLengthHeader[0], 10, 64) + if err == nil { + contentLength = ntcoentLength + } + } + } + + var respData []byte + var err error + if contentLength != -1 { + respData = make([]byte, contentLength) + _, err = io.ReadFull(httpResponse.Body, respData) + } else { + respData, err = ioutil.ReadAll(httpResponse.Body) + } + if err != nil { + return err + } + + resp := NewResponse(respData, httpResponse.StatusCode) + + if resp.Failed() { + err := resp.Err() + response.Error = fmt.Sprintf("%v", err) + return err + } + + codec.response = resp + + response.Seq = *seq + + if httpResponse.StatusCode < 200 || httpResponse.StatusCode >= 300 { + return &XmlRpcError{HttpStatusCode: httpResponse.StatusCode} + } + + return nil +} + +func (codec *clientCodec) ReadResponseBody(v interface{}) (err error) { + if v == nil { + return nil + } + + if err = codec.response.Unmarshal(v); err != nil { + return err + } + + return nil +} + +func (codec *clientCodec) Close() error { + transport := codec.httpClient.Transport.(*http.Transport) + transport.CloseIdleConnections() + close(codec.ready) + return nil +} + +// NewClient returns instance of rpc.Client object, that is used to send request to xmlrpc service. +func NewClient(requrl string, transport http.RoundTripper, timeout time.Duration) (*Client, error) { + if transport == nil { + transport = http.DefaultTransport + } + + httpClient := &http.Client{ + Transport: transport, + Timeout: timeout, + } + + jar, err := cookiejar.New(nil) + + if err != nil { + return nil, err + } + + u, err := url.Parse(requrl) + + if err != nil { + return nil, err + } + + codec := clientCodec{ + url: u, + httpClient: httpClient, + ready: make(chan *uint64), + responses: make(map[uint64]*http.Response), + cookies: jar, + } + + return &Client{rpc.NewClientWithCodec(&codec)}, nil +} diff --git a/vendor/github.com/renier/xmlrpc/decoder.go b/vendor/github.com/renier/xmlrpc/decoder.go new file mode 100644 index 000000000..30fa4a91e --- /dev/null +++ b/vendor/github.com/renier/xmlrpc/decoder.go @@ -0,0 +1,547 @@ +package xmlrpc + +import ( + "bytes" + "encoding/xml" + "errors" + "fmt" + "io" + "reflect" + "regexp" + "strconv" + "strings" + "time" + + "golang.org/x/text/encoding/charmap" +) + +const ( + iso8601 = "20060102T15:04:05" + iso8601hyphen = "2006-01-02T15:04:05Z" + iso8601hyphenTZ = "2006-01-02T15:04:05-07:00" +) + +var ( + // CharsetReader is a function to generate reader which converts a non UTF-8 + // charset into UTF-8. + CharsetReader func(string, io.Reader) (io.Reader, error) + + invalidXmlError = errors.New("invalid xml") + + dateFormats = []string{iso8601, iso8601hyphen, iso8601hyphenTZ} + + topArrayRE = regexp.MustCompile(`^<\?xml version="1.0" encoding=".+"\?>\s*\s*\s*\s*`) +) + +type TypeMismatchError string + +func (e TypeMismatchError) Error() string { return string(e) } + +type decoder struct { + *xml.Decoder +} + +func unmarshal(data []byte, v interface{}) (err error) { + dec := &decoder{xml.NewDecoder(bytes.NewBuffer(data))} + + if CharsetReader != nil { + dec.CharsetReader = CharsetReader + } else { + dec.CharsetReader = defaultCharsetReader + } + + var tok xml.Token + for { + if tok, err = dec.Token(); err != nil { + return err + } + + if t, ok := tok.(xml.StartElement); ok { + if t.Name.Local == "value" { + val := reflect.ValueOf(v) + if val.Kind() != reflect.Ptr { + return errors.New("non-pointer value passed to unmarshal") + } + + val = val.Elem() + // Some APIs that normally return a collection, omit the []'s when + // the API returns a single value. + if val.Kind() == reflect.Slice && !topArrayRE.MatchString(string(data)) { + val.Set(reflect.MakeSlice(val.Type(), 1, 1)) + val = val.Index(0) + } + + if err = dec.decodeValue(val); err != nil { + return err + } + + break + } + } + } + + // read until end of document + err = dec.Skip() + if err != nil && err != io.EOF { + return err + } + + return nil +} + +func (dec *decoder) decodeValue(val reflect.Value) error { + var tok xml.Token + var err error + + if val.Kind() == reflect.Ptr { + if val.IsNil() { + val.Set(reflect.New(val.Type().Elem())) + } + val = val.Elem() + } + + var typeName string + for { + if tok, err = dec.Token(); err != nil { + return err + } + + if t, ok := tok.(xml.EndElement); ok { + if t.Name.Local == "value" { + return nil + } else { + return invalidXmlError + } + } + + if t, ok := tok.(xml.StartElement); ok { + typeName = t.Name.Local + break + } + + // Treat value data without type identifier as string + if t, ok := tok.(xml.CharData); ok { + if value := strings.TrimSpace(string(t)); value != "" { + if err = checkType(val, reflect.String); err != nil { + return err + } + + val.SetString(value) + return nil + } + } + } + + switch typeName { + case "struct": + ismap := false + pmap := val + valType := val.Type() + + if err = checkType(val, reflect.Struct); err != nil { + if checkType(val, reflect.Map) == nil { + if valType.Key().Kind() != reflect.String { + return fmt.Errorf("only maps with string key type can be unmarshalled") + } + ismap = true + } else if checkType(val, reflect.Interface) == nil && val.IsNil() { + var dummy map[string]interface{} + pmap = reflect.New(reflect.TypeOf(dummy)).Elem() + valType = pmap.Type() + ismap = true + } else { + return err + } + } + + var fields map[string]reflect.Value + + if !ismap { + fields = make(map[string]reflect.Value) + buildStructFieldMap(&fields, val) + } else { + // Create initial empty map + pmap.Set(reflect.MakeMap(valType)) + } + + // Process struct members. + StructLoop: + for { + if tok, err = dec.Token(); err != nil { + return err + } + switch t := tok.(type) { + case xml.StartElement: + if t.Name.Local != "member" { + return invalidXmlError + } + + tagName, fieldName, err := dec.readTag() + if err != nil { + return err + } + if tagName != "name" { + return invalidXmlError + } + + var fv reflect.Value + ok := true + + if !ismap { + fv, ok = fields[string(fieldName)] + } else { + fv = reflect.New(valType.Elem()) + } + + if ok { + for { + if tok, err = dec.Token(); err != nil { + return err + } + if t, ok := tok.(xml.StartElement); ok && t.Name.Local == "value" { + if err = dec.decodeValue(fv); err != nil { + return err + } + + // + if err = dec.Skip(); err != nil { + return err + } + + break + } + } + } + + // + if err = dec.Skip(); err != nil { + return err + } + + if ismap { + pmap.SetMapIndex(reflect.ValueOf(string(fieldName)), reflect.Indirect(fv)) + val.Set(pmap) + } + case xml.EndElement: + break StructLoop + } + } + case "array": + pslice := val + if checkType(val, reflect.Interface) == nil && val.IsNil() { + var dummy []interface{} + pslice = reflect.New(reflect.TypeOf(dummy)).Elem() + } else if err = checkType(val, reflect.Slice); err != nil { + // Check to see if we have an unexpected array when we expect + // a struct. Adjust by expecting an array of the struct type + // and see if things still work. + // https://github.com/renier/xmlrpc/pull/2 + if val.Kind() == reflect.Struct { + pslice = reflect.New(reflect.SliceOf(reflect.TypeOf(val.Interface()))).Elem() + val = pslice + } else { + return err + } + } + + ArrayLoop: + for { + if tok, err = dec.Token(); err != nil { + return err + } + + switch t := tok.(type) { + case xml.StartElement: + if t.Name.Local != "data" { + return invalidXmlError + } + + slice := reflect.MakeSlice(pslice.Type(), 0, 0) + + DataLoop: + for { + if tok, err = dec.Token(); err != nil { + return err + } + + switch tt := tok.(type) { + case xml.StartElement: + if tt.Name.Local != "value" { + return invalidXmlError + } + + v := reflect.New(pslice.Type().Elem()) + if err = dec.decodeValue(v); err != nil { + return err + } + + slice = reflect.Append(slice, v.Elem()) + + // + if err = dec.Skip(); err != nil { + return err + } + case xml.EndElement: + pslice.Set(slice) + val.Set(pslice) + break DataLoop + } + } + case xml.EndElement: + break ArrayLoop + } + } + default: + if tok, err = dec.Token(); err != nil { + return err + } + + var data []byte + + switch t := tok.(type) { + case xml.EndElement: + return nil + case xml.CharData: + data = []byte(t.Copy()) + default: + return invalidXmlError + } + + ParseValue: + switch typeName { + case "int", "i4", "i8": + if checkType(val, reflect.Interface) == nil && val.IsNil() { + i, err := strconv.ParseInt(string(data), 10, 64) + if err != nil { + return err + } + + pi := reflect.New(reflect.TypeOf(i)).Elem() + pi.SetInt(i) + val.Set(pi) + } else if err = checkType(val, reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64, reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64); err != nil { + return err + } else { + k := val.Kind() + isInt := k == reflect.Int || k == reflect.Int8 || k == reflect.Int16 || k == reflect.Int32 || k == reflect.Int64 + + if isInt { + i, err := strconv.ParseInt(string(data), 10, val.Type().Bits()) + if err != nil { + return err + } + + val.SetInt(i) + } else { + i, err := strconv.ParseUint(string(data), 10, val.Type().Bits()) + if err != nil { + return err + } + + val.SetUint(i) + } + } + case "string", "base64": + str := string(data) + if checkType(val, reflect.Interface) == nil && val.IsNil() { + pstr := reflect.New(reflect.TypeOf(str)).Elem() + pstr.SetString(str) + val.Set(pstr) + } else if err = checkType(val, reflect.String); err != nil { + valName := val.Type().Name() + if valName == "" { + valName = reflect.Indirect(val).Type().Name() + } + + if valName == "Time" { + timeField := val.FieldByName(valName) + if timeField.IsValid() { + val = timeField + } + typeName = "dateTime.iso8601" + goto ParseValue + } else if strings.HasPrefix(strings.ToLower(valName), "float") { + typeName = "double" + goto ParseValue + } + return err + } else { + val.SetString(str) + } + case "dateTime.iso8601": + err = nil + var t time.Time + for _, df := range dateFormats { + t, err = time.Parse(df, string(data)) + if err == nil { + break + } + } + if err != nil { + return err + } + + if checkType(val, reflect.Interface) == nil && val.IsNil() { + ptime := reflect.New(reflect.TypeOf(t)).Elem() + ptime.Set(reflect.ValueOf(t)) + val.Set(ptime) + } else if !reflect.TypeOf((time.Time)(t)).ConvertibleTo(val.Type()) { + return TypeMismatchError( + fmt.Sprintf( + "error: type mismatch error - can't decode %v (%s.%s) to time", + val.Kind(), + val.Type().PkgPath(), + val.Type().Name(), + ), + ) + } else { + val.Set(reflect.ValueOf(t).Convert(val.Type())) + } + case "boolean": + v, err := strconv.ParseBool(string(data)) + if err != nil { + return err + } + + if checkType(val, reflect.Interface) == nil && val.IsNil() { + pv := reflect.New(reflect.TypeOf(v)).Elem() + pv.SetBool(v) + val.Set(pv) + } else if err = checkType(val, reflect.Bool); err != nil { + return err + } else { + val.SetBool(v) + } + case "double": + if checkType(val, reflect.Interface) == nil && val.IsNil() { + i, err := strconv.ParseFloat(string(data), 64) + if err != nil { + return err + } + + pdouble := reflect.New(reflect.TypeOf(i)).Elem() + pdouble.SetFloat(i) + val.Set(pdouble) + } else if err = checkType(val, reflect.Float32, reflect.Float64); err != nil { + return err + } else { + i, err := strconv.ParseFloat(string(data), val.Type().Bits()) + if err != nil { + return err + } + + val.SetFloat(i) + } + default: + return errors.New("unsupported type") + } + + // + if err = dec.Skip(); err != nil { + return err + } + } + + return nil +} + +func (dec *decoder) readTag() (string, []byte, error) { + var tok xml.Token + var err error + + var name string + for { + if tok, err = dec.Token(); err != nil { + return "", nil, err + } + + if t, ok := tok.(xml.StartElement); ok { + name = t.Name.Local + break + } + } + + value, err := dec.readCharData() + if err != nil { + return "", nil, err + } + + return name, value, dec.Skip() +} + +func (dec *decoder) readCharData() ([]byte, error) { + var tok xml.Token + var err error + + if tok, err = dec.Token(); err != nil { + return nil, err + } + + if t, ok := tok.(xml.CharData); ok { + return []byte(t.Copy()), nil + } else { + return nil, invalidXmlError + } +} + +func checkType(val reflect.Value, kinds ...reflect.Kind) error { + if len(kinds) == 0 { + return nil + } + + if val.Kind() == reflect.Ptr { + val = val.Elem() + } + + match := false + + for _, kind := range kinds { + if val.Kind() == kind { + match = true + break + } + } + + if !match { + return TypeMismatchError(fmt.Sprintf("error: type mismatch - can't unmarshal %v to %v", + val.Kind(), kinds[0])) + } + + return nil +} + +func buildStructFieldMap(fieldMap *map[string]reflect.Value, val reflect.Value) { + valType := val.Type() + valFieldNum := valType.NumField() + for i := 0; i < valFieldNum; i++ { + field := valType.Field(i) + fieldVal := val.FieldByName(field.Name) + + if field.Anonymous { + // Drill down into embedded structs + buildStructFieldMap(fieldMap, fieldVal) + continue + } + + if fieldVal.CanSet() { + if fn := field.Tag.Get("xmlrpc"); fn != "" { + fn = strings.Split(fn, ",")[0] + (*fieldMap)[fn] = fieldVal + } else { + (*fieldMap)[field.Name] = fieldVal + } + } + } +} + +// http://stackoverflow.com/a/34712322/3160958 +// https://groups.google.com/forum/#!topic/golang-nuts/VudK_05B62k +func defaultCharsetReader(charset string, input io.Reader) (io.Reader, error) { + if charset == "iso-8859-1" || charset == "ISO-8859-1" { + return charmap.ISO8859_1.NewDecoder().Reader(input), nil + } else if strings.HasPrefix(charset, "utf") || strings.HasPrefix(charset, "UTF") { + return input, nil + } + + return nil, fmt.Errorf("Unknown charset: %s", charset) +} diff --git a/vendor/github.com/renier/xmlrpc/encoder.go b/vendor/github.com/renier/xmlrpc/encoder.go new file mode 100644 index 000000000..2410aff8e --- /dev/null +++ b/vendor/github.com/renier/xmlrpc/encoder.go @@ -0,0 +1,204 @@ +package xmlrpc + +import ( + "bytes" + "encoding/xml" + "fmt" + "reflect" + "strconv" + "strings" + "time" +) + +type encodeFunc func(reflect.Value) ([]byte, error) + +func marshal(v interface{}) ([]byte, error) { + if v == nil { + return []byte{}, nil + } + + val := reflect.ValueOf(v) + return encodeValue(val) +} + +func encodeValue(val reflect.Value) ([]byte, error) { + var b []byte + var err error + + if val.Kind() == reflect.Ptr || val.Kind() == reflect.Interface { + if val.IsNil() { + return []byte(""), nil + } + + val = val.Elem() + } + + switch val.Kind() { + case reflect.Struct: + switch val.Interface().(type) { + case time.Time: + t := val.Interface().(time.Time) + b = []byte(fmt.Sprintf("%s", t.Format(iso8601))) + default: + b, err = encodeStruct(val) + } + case reflect.Map: + b, err = encodeMap(val) + case reflect.Slice: + b, err = encodeSlice(val) + case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64: + b = []byte(fmt.Sprintf("%s", strconv.FormatInt(val.Int(), 10))) + case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64: + b = []byte(fmt.Sprintf("%s", strconv.FormatUint(val.Uint(), 10))) + case reflect.Float32, reflect.Float64: + b = []byte(fmt.Sprintf("%s", + strconv.FormatFloat(val.Float(), 'g', -1, val.Type().Bits()))) + case reflect.Bool: + if val.Bool() { + b = []byte("1") + } else { + b = []byte("0") + } + case reflect.String: + var buf bytes.Buffer + + xml.Escape(&buf, []byte(val.String())) + + if _, ok := val.Interface().(Base64); ok { + b = []byte(fmt.Sprintf("%s", buf.String())) + } else { + b = []byte(fmt.Sprintf("%s", buf.String())) + } + default: + return nil, fmt.Errorf("xmlrpc encode error: unsupported type") + } + + if err != nil { + return nil, err + } + + return []byte(fmt.Sprintf("%s", string(b))), nil +} + +func encodeStruct(value reflect.Value) ([]byte, error) { + var b bytes.Buffer + + b.WriteString("") + + vals := []reflect.Value{value} + for j := 0; j < len(vals); j++ { + val := vals[j] + t := val.Type() + for i := 0; i < t.NumField(); i++ { + f := t.Field(i) + tag := f.Tag.Get("xmlrpc") + name := f.Name + fieldVal := val.FieldByName(f.Name) + fieldValKind := fieldVal.Kind() + + // Omit unexported fields + if !fieldVal.CanInterface() { + continue + } + + // Omit fields who are structs that contain no fields themselves + if fieldValKind == reflect.Struct && fieldVal.NumField() == 0 { + continue + } + + // Omit empty slices + if fieldValKind == reflect.Slice && fieldVal.Len() == 0 { + continue + } + + // Omit empty fields (defined as nil pointers) + if tag != "" { + parts := strings.Split(tag, ",") + name = parts[0] + if len(parts) > 1 && parts[1] == "omitempty" { + if fieldValKind == reflect.Ptr && fieldVal.IsNil() { + continue + } + } + } + + // Drill down into anonymous/embedded structs and do not expose the + // containing embedded struct in request. + // This will effectively pull up fields in embedded structs to look + // as part of the original struct in the request. + if f.Anonymous { + vals = append(vals, fieldVal) + continue + } + + b.WriteString("") + b.WriteString(fmt.Sprintf("%s", name)) + + p, err := encodeValue(fieldVal) + if err != nil { + return nil, err + } + b.Write(p) + + b.WriteString("") + } + } + + b.WriteString("") + + return b.Bytes(), nil +} + +func encodeMap(val reflect.Value) ([]byte, error) { + var t = val.Type() + + if t.Key().Kind() != reflect.String { + return nil, fmt.Errorf("xmlrpc encode error: only maps with string keys are supported") + } + + var b bytes.Buffer + + b.WriteString("") + + keys := val.MapKeys() + + for i := 0; i < val.Len(); i++ { + key := keys[i] + kval := val.MapIndex(key) + + b.WriteString("") + b.WriteString(fmt.Sprintf("%s", key.String())) + + p, err := encodeValue(kval) + + if err != nil { + return nil, err + } + + b.Write(p) + b.WriteString("") + } + + b.WriteString("") + + return b.Bytes(), nil +} + +func encodeSlice(val reflect.Value) ([]byte, error) { + var b bytes.Buffer + + b.WriteString("") + + for i := 0; i < val.Len(); i++ { + p, err := encodeValue(val.Index(i)) + if err != nil { + return nil, err + } + + b.Write(p) + } + + b.WriteString("") + + return b.Bytes(), nil +} diff --git a/vendor/github.com/renier/xmlrpc/request.go b/vendor/github.com/renier/xmlrpc/request.go new file mode 100644 index 000000000..acb8251b2 --- /dev/null +++ b/vendor/github.com/renier/xmlrpc/request.go @@ -0,0 +1,57 @@ +package xmlrpc + +import ( + "bytes" + "fmt" + "net/http" +) + +func NewRequest(url string, method string, args interface{}) (*http.Request, error) { + var t []interface{} + var ok bool + if t, ok = args.([]interface{}); !ok { + if args != nil { + t = []interface{}{args} + } + } + + body, err := EncodeMethodCall(method, t...) + if err != nil { + return nil, err + } + + request, err := http.NewRequest("POST", url, bytes.NewReader(body)) + if err != nil { + return nil, err + } + + request.Header.Set("Content-Type", "text/xml") + request.Header.Set("Content-Length", fmt.Sprintf("%d", len(body))) + + return request, nil +} + +func EncodeMethodCall(method string, args ...interface{}) ([]byte, error) { + var b bytes.Buffer + b.WriteString(``) + b.WriteString(fmt.Sprintf("%s", method)) + + if args != nil { + b.WriteString("") + + for _, arg := range args { + p, err := marshal(arg) + if err != nil { + return nil, err + } + + b.WriteString(fmt.Sprintf("%s", string(p))) + } + + b.WriteString("") + } + + b.WriteString("") + + return b.Bytes(), nil +} diff --git a/vendor/github.com/renier/xmlrpc/response.go b/vendor/github.com/renier/xmlrpc/response.go new file mode 100644 index 000000000..a973b949e --- /dev/null +++ b/vendor/github.com/renier/xmlrpc/response.go @@ -0,0 +1,57 @@ +package xmlrpc + +import ( + "regexp" +) + +var ( + faultRx = regexp.MustCompile(`(\s|\S)+`) +) + +type failedResponse struct { + Code interface{} `xmlrpc:"faultCode"` + Error string `xmlrpc:"faultString"` + HttpStatusCode int +} + +func (r *failedResponse) err() error { + return &XmlRpcError{ + Code: r.Code, + Err: r.Error, + HttpStatusCode: r.HttpStatusCode, + } +} + +type Response struct { + data []byte + httpStatusCode int +} + +func NewResponse(data []byte, httpStatusCode int) *Response { + return &Response{ + data: data, + httpStatusCode: httpStatusCode, + } +} + +func (r *Response) Failed() bool { + return faultRx.Match(r.data) +} + +func (r *Response) Err() error { + failedResp := new(failedResponse) + if err := unmarshal(r.data, failedResp); err != nil { + return err + } + failedResp.HttpStatusCode = r.httpStatusCode + + return failedResp.err() +} + +func (r *Response) Unmarshal(v interface{}) error { + if err := unmarshal(r.data, v); err != nil { + return err + } + + return nil +} diff --git a/vendor/github.com/renier/xmlrpc/test_server.rb b/vendor/github.com/renier/xmlrpc/test_server.rb new file mode 100644 index 000000000..1b1ff8760 --- /dev/null +++ b/vendor/github.com/renier/xmlrpc/test_server.rb @@ -0,0 +1,25 @@ +# encoding: utf-8 + +require "xmlrpc/server" + +class Service + def time + Time.now + end + + def upcase(s) + s.upcase + end + + def sum(x, y) + x + y + end + + def error + raise XMLRPC::FaultException.new(500, "Server error") + end +end + +server = XMLRPC::Server.new 5001, 'localhost' +server.add_handler "service", Service.new +server.serve diff --git a/vendor/github.com/renier/xmlrpc/xmlrpc.go b/vendor/github.com/renier/xmlrpc/xmlrpc.go new file mode 100644 index 000000000..e9f97a685 --- /dev/null +++ b/vendor/github.com/renier/xmlrpc/xmlrpc.go @@ -0,0 +1,28 @@ +package xmlrpc + +import ( + "fmt" +) + +// xmlrpcError represents errors returned on xmlrpc request. +type XmlRpcError struct { + Code interface{} + Err string + HttpStatusCode int +} + +// Error() method implements Error interface +func (e *XmlRpcError) Error() string { + return fmt.Sprintf( + "error: %s, code: %v, http status code: %d", + e.Err, e.Code, e.HttpStatusCode) +} + +// Base64 represents value in base64 encoding +type Base64 string + +type Params struct { + Params []interface{} +} + +type Struct map[string]interface{} diff --git a/vendor/github.com/softlayer/softlayer-go/LICENSE b/vendor/github.com/softlayer/softlayer-go/LICENSE new file mode 100644 index 000000000..d64569567 --- /dev/null +++ b/vendor/github.com/softlayer/softlayer-go/LICENSE @@ -0,0 +1,202 @@ + + 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. diff --git a/vendor/github.com/softlayer/softlayer-go/config/config.go b/vendor/github.com/softlayer/softlayer-go/config/config.go new file mode 100644 index 000000000..36d5348e9 --- /dev/null +++ b/vendor/github.com/softlayer/softlayer-go/config/config.go @@ -0,0 +1,145 @@ +/** + * // This file is borrowed from https://github.com/vaughan0/go-ini/blob/master/ini.go + * // which is distributed under the MIT license (https://github.com/vaughan0/go-ini/blob/master/LICENSE). + * + * Copyright (c) 2013 Vaughan Newton + * + * 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. + */ + +// Package config provides functions for parsing INI configuration files. +package config + +import ( + "bufio" + "fmt" + "io" + "os" + "regexp" + "strings" +) + +var ( + sectionRegex = regexp.MustCompile(`^\[(.*)\]$`) + assignRegex = regexp.MustCompile(`^([^=]+)=(.*)$`) +) + +// ErrSyntax is returned when there is a syntax error in an INI file. +type ErrSyntax struct { + Line int + Source string // The contents of the erroneous line, without leading or trailing whitespace +} + +func (e ErrSyntax) Error() string { + return fmt.Sprintf("invalid INI syntax on line %d: %s", e.Line, e.Source) +} + +// A File represents a parsed INI file. +type File map[string]Section + +// A Section represents a single section of an INI file. +type Section map[string]string + +// Returns a named Section. A Section will be created if one does not already exist for the given name. +func (f File) Section(name string) Section { + section := f[name] + if section == nil { + section = make(Section) + f[name] = section + } + return section +} + +// Looks up a value for a key in a section and returns that value, along with a boolean result similar to a map lookup. +func (f File) Get(section, key string) (value string, ok bool) { + if s := f[section]; s != nil { + value, ok = s[key] + } + return +} + +// Loads INI data from a reader and stores the data in the File. +func (f File) Load(in io.Reader) error { + bufin, ok := in.(*bufio.Reader) + if !ok { + bufin = bufio.NewReader(in) + } + return parseFile(bufin, f) +} + +// Loads INI data from a named file and stores the data in the File. +func (f File) LoadFile(file string) (err error) { + in, err := os.Open(file) + if err != nil { + return + } + defer in.Close() + return f.Load(in) +} + +func parseFile(in *bufio.Reader, file File) (err error) { + section := "" + lineNum := 0 + for done := false; !done; { + var line string + if line, err = in.ReadString('\n'); err != nil { + if err == io.EOF { + done = true + } else { + return + } + } + lineNum++ + line = strings.TrimSpace(line) + if len(line) == 0 { + // Skip blank lines + continue + } + if line[0] == ';' || line[0] == '#' { + // Skip comments + continue + } + + if groups := assignRegex.FindStringSubmatch(line); groups != nil { + key, val := groups[1], groups[2] + key, val = strings.TrimSpace(key), strings.TrimSpace(val) + file.Section(section)[key] = val + } else if groups := sectionRegex.FindStringSubmatch(line); groups != nil { + name := strings.TrimSpace(groups[1]) + section = name + // Create the section if it does not exist + file.Section(section) + } else { + return ErrSyntax{Line: lineNum, Source: line} + } + + } + return nil +} + +// Loads and returns a File from a reader. +func Load(in io.Reader) (File, error) { + file := make(File) + err := file.Load(in) + return file, err +} + +// Loads and returns an INI File from a file on disk. +func LoadFile(filename string) (File, error) { + file := make(File) + err := file.LoadFile(filename) + return file, err +} diff --git a/vendor/github.com/softlayer/softlayer-go/datatypes/abuse.go b/vendor/github.com/softlayer/softlayer-go/datatypes/abuse.go new file mode 100644 index 000000000..8cc82eb32 --- /dev/null +++ b/vendor/github.com/softlayer/softlayer-go/datatypes/abuse.go @@ -0,0 +1,32 @@ +/** + * Copyright 2016 IBM Corp. + * + * 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. + */ + +/** + * AUTOMATICALLY GENERATED CODE - DO NOT MODIFY + */ + +package datatypes + +// no documentation yet +type Abuse_Lockdown_Resource struct { + Entity + + // no documentation yet + Account *Account `json:"account,omitempty" xmlrpc:"account,omitempty"` + + // no documentation yet + InvoiceItem *Billing_Invoice_Item `json:"invoiceItem,omitempty" xmlrpc:"invoiceItem,omitempty"` +} diff --git a/vendor/github.com/softlayer/softlayer-go/datatypes/account.go b/vendor/github.com/softlayer/softlayer-go/datatypes/account.go new file mode 100644 index 000000000..8dfecb55c --- /dev/null +++ b/vendor/github.com/softlayer/softlayer-go/datatypes/account.go @@ -0,0 +1,2785 @@ +/** + * Copyright 2016 IBM Corp. + * + * 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. + */ + +/** + * AUTOMATICALLY GENERATED CODE - DO NOT MODIFY + */ + +package datatypes + +// The SoftLayer_Account data type contains general information relating to a single SoftLayer customer account. Personal information in this type such as names, addresses, and phone numbers are assigned to the account only and not to users belonging to the account. The SoftLayer_Account data type contains a number of relational properties that are used by the SoftLayer customer portal to quickly present a variety of account related services to it's users. +// +// SoftLayer customers are unable to change their company account information in the portal or the API. If you need to change this information please open a sales ticket in our customer portal and our account management staff will assist you. +type Account struct { + Entity + + // An email address that is responsible for abuse and legal inquiries on behalf of an account. For instance, new legal and abuse tickets are sent to this address. + AbuseEmail *string `json:"abuseEmail,omitempty" xmlrpc:"abuseEmail,omitempty"` + + // A count of email addresses that are responsible for abuse and legal inquiries on behalf of an account. For instance, new legal and abuse tickets are sent to these addresses. + AbuseEmailCount *uint `json:"abuseEmailCount,omitempty" xmlrpc:"abuseEmailCount,omitempty"` + + // Email addresses that are responsible for abuse and legal inquiries on behalf of an account. For instance, new legal and abuse tickets are sent to these addresses. + AbuseEmails []Account_AbuseEmail `json:"abuseEmails,omitempty" xmlrpc:"abuseEmails,omitempty"` + + // A count of the account contacts on an account. + AccountContactCount *uint `json:"accountContactCount,omitempty" xmlrpc:"accountContactCount,omitempty"` + + // The account contacts on an account. + AccountContacts []Account_Contact `json:"accountContacts,omitempty" xmlrpc:"accountContacts,omitempty"` + + // A count of the account software licenses owned by an account + AccountLicenseCount *uint `json:"accountLicenseCount,omitempty" xmlrpc:"accountLicenseCount,omitempty"` + + // The account software licenses owned by an account + AccountLicenses []Software_AccountLicense `json:"accountLicenses,omitempty" xmlrpc:"accountLicenses,omitempty"` + + // A count of + AccountLinkCount *uint `json:"accountLinkCount,omitempty" xmlrpc:"accountLinkCount,omitempty"` + + // no documentation yet + AccountLinks []Account_Link `json:"accountLinks,omitempty" xmlrpc:"accountLinks,omitempty"` + + // A flag indicating that the account has a managed resource. + AccountManagedResourcesFlag *bool `json:"accountManagedResourcesFlag,omitempty" xmlrpc:"accountManagedResourcesFlag,omitempty"` + + // An account's status presented in a more detailed data type. + AccountStatus *Account_Status `json:"accountStatus,omitempty" xmlrpc:"accountStatus,omitempty"` + + // A number reflecting the state of an account. + AccountStatusId *int `json:"accountStatusId,omitempty" xmlrpc:"accountStatusId,omitempty"` + + // The billing item associated with an account's monthly discount. + ActiveAccountDiscountBillingItem *Billing_Item `json:"activeAccountDiscountBillingItem,omitempty" xmlrpc:"activeAccountDiscountBillingItem,omitempty"` + + // A count of the active account software licenses owned by an account + ActiveAccountLicenseCount *uint `json:"activeAccountLicenseCount,omitempty" xmlrpc:"activeAccountLicenseCount,omitempty"` + + // The active account software licenses owned by an account + ActiveAccountLicenses []Software_AccountLicense `json:"activeAccountLicenses,omitempty" xmlrpc:"activeAccountLicenses,omitempty"` + + // A count of the active address(es) that belong to an account. + ActiveAddressCount *uint `json:"activeAddressCount,omitempty" xmlrpc:"activeAddressCount,omitempty"` + + // The active address(es) that belong to an account. + ActiveAddresses []Account_Address `json:"activeAddresses,omitempty" xmlrpc:"activeAddresses,omitempty"` + + // A count of all billing agreements for an account + ActiveBillingAgreementCount *uint `json:"activeBillingAgreementCount,omitempty" xmlrpc:"activeBillingAgreementCount,omitempty"` + + // All billing agreements for an account + ActiveBillingAgreements []Account_Agreement `json:"activeBillingAgreements,omitempty" xmlrpc:"activeBillingAgreements,omitempty"` + + // no documentation yet + ActiveCatalystEnrollment *Catalyst_Enrollment `json:"activeCatalystEnrollment,omitempty" xmlrpc:"activeCatalystEnrollment,omitempty"` + + // A count of the account's active top level colocation containers. + ActiveColocationContainerCount *uint `json:"activeColocationContainerCount,omitempty" xmlrpc:"activeColocationContainerCount,omitempty"` + + // The account's active top level colocation containers. + ActiveColocationContainers []Billing_Item `json:"activeColocationContainers,omitempty" xmlrpc:"activeColocationContainers,omitempty"` + + // Account's currently active Flexible Credit enrollment. + ActiveFlexibleCreditEnrollment *FlexibleCredit_Enrollment `json:"activeFlexibleCreditEnrollment,omitempty" xmlrpc:"activeFlexibleCreditEnrollment,omitempty"` + + // A count of + ActiveNotificationSubscriberCount *uint `json:"activeNotificationSubscriberCount,omitempty" xmlrpc:"activeNotificationSubscriberCount,omitempty"` + + // no documentation yet + ActiveNotificationSubscribers []Notification_Subscriber `json:"activeNotificationSubscribers,omitempty" xmlrpc:"activeNotificationSubscribers,omitempty"` + + // A count of an account's non-expired quotes. + ActiveQuoteCount *uint `json:"activeQuoteCount,omitempty" xmlrpc:"activeQuoteCount,omitempty"` + + // An account's non-expired quotes. + ActiveQuotes []Billing_Order_Quote `json:"activeQuotes,omitempty" xmlrpc:"activeQuotes,omitempty"` + + // A count of the virtual software licenses controlled by an account + ActiveVirtualLicenseCount *uint `json:"activeVirtualLicenseCount,omitempty" xmlrpc:"activeVirtualLicenseCount,omitempty"` + + // The virtual software licenses controlled by an account + ActiveVirtualLicenses []Software_VirtualLicense `json:"activeVirtualLicenses,omitempty" xmlrpc:"activeVirtualLicenses,omitempty"` + + // A count of an account's associated load balancers. + AdcLoadBalancerCount *uint `json:"adcLoadBalancerCount,omitempty" xmlrpc:"adcLoadBalancerCount,omitempty"` + + // An account's associated load balancers. + AdcLoadBalancers []Network_Application_Delivery_Controller_LoadBalancer_VirtualIpAddress `json:"adcLoadBalancers,omitempty" xmlrpc:"adcLoadBalancers,omitempty"` + + // The first line of the mailing address belonging to an account. + Address1 *string `json:"address1,omitempty" xmlrpc:"address1,omitempty"` + + // The second line of the mailing address belonging to an account. + Address2 *string `json:"address2,omitempty" xmlrpc:"address2,omitempty"` + + // A count of all the address(es) that belong to an account. + AddressCount *uint `json:"addressCount,omitempty" xmlrpc:"addressCount,omitempty"` + + // All the address(es) that belong to an account. + Addresses []Account_Address `json:"addresses,omitempty" xmlrpc:"addresses,omitempty"` + + // An affiliate identifier associated with the customer account. + AffiliateId *string `json:"affiliateId,omitempty" xmlrpc:"affiliateId,omitempty"` + + // The billing items that will be on an account's next invoice. + AllBillingItems []Billing_Item `json:"allBillingItems,omitempty" xmlrpc:"allBillingItems,omitempty"` + + // A count of the billing items that will be on an account's next invoice. + AllCommissionBillingItemCount *uint `json:"allCommissionBillingItemCount,omitempty" xmlrpc:"allCommissionBillingItemCount,omitempty"` + + // The billing items that will be on an account's next invoice. + AllCommissionBillingItems []Billing_Item `json:"allCommissionBillingItems,omitempty" xmlrpc:"allCommissionBillingItems,omitempty"` + + // A count of the billing items that will be on an account's next invoice. + AllRecurringTopLevelBillingItemCount *uint `json:"allRecurringTopLevelBillingItemCount,omitempty" xmlrpc:"allRecurringTopLevelBillingItemCount,omitempty"` + + // The billing items that will be on an account's next invoice. + AllRecurringTopLevelBillingItems []Billing_Item `json:"allRecurringTopLevelBillingItems,omitempty" xmlrpc:"allRecurringTopLevelBillingItems,omitempty"` + + // The billing items that will be on an account's next invoice. Does not consider associated items. + AllRecurringTopLevelBillingItemsUnfiltered []Billing_Item `json:"allRecurringTopLevelBillingItemsUnfiltered,omitempty" xmlrpc:"allRecurringTopLevelBillingItemsUnfiltered,omitempty"` + + // A count of the billing items that will be on an account's next invoice. Does not consider associated items. + AllRecurringTopLevelBillingItemsUnfilteredCount *uint `json:"allRecurringTopLevelBillingItemsUnfilteredCount,omitempty" xmlrpc:"allRecurringTopLevelBillingItemsUnfilteredCount,omitempty"` + + // A count of the billing items that will be on an account's next invoice. + AllSubnetBillingItemCount *uint `json:"allSubnetBillingItemCount,omitempty" xmlrpc:"allSubnetBillingItemCount,omitempty"` + + // The billing items that will be on an account's next invoice. + AllSubnetBillingItems []Billing_Item `json:"allSubnetBillingItems,omitempty" xmlrpc:"allSubnetBillingItems,omitempty"` + + // A count of all billing items of an account. + AllTopLevelBillingItemCount *uint `json:"allTopLevelBillingItemCount,omitempty" xmlrpc:"allTopLevelBillingItemCount,omitempty"` + + // All billing items of an account. + AllTopLevelBillingItems []Billing_Item `json:"allTopLevelBillingItems,omitempty" xmlrpc:"allTopLevelBillingItems,omitempty"` + + // The billing items that will be on an account's next invoice. Does not consider associated items. + AllTopLevelBillingItemsUnfiltered []Billing_Item `json:"allTopLevelBillingItemsUnfiltered,omitempty" xmlrpc:"allTopLevelBillingItemsUnfiltered,omitempty"` + + // A count of the billing items that will be on an account's next invoice. Does not consider associated items. + AllTopLevelBillingItemsUnfilteredCount *uint `json:"allTopLevelBillingItemsUnfilteredCount,omitempty" xmlrpc:"allTopLevelBillingItemsUnfilteredCount,omitempty"` + + // Indicates whether this account is allowed to silently migrate to use IBMid Authentication. + AllowIbmIdSilentMigrationFlag *bool `json:"allowIbmIdSilentMigrationFlag,omitempty" xmlrpc:"allowIbmIdSilentMigrationFlag,omitempty"` + + // The number of PPTP VPN users allowed on an account. + AllowedPptpVpnQuantity *int `json:"allowedPptpVpnQuantity,omitempty" xmlrpc:"allowedPptpVpnQuantity,omitempty"` + + // Flag indicating if this account can be linked with Bluemix. + AllowsBluemixAccountLinkingFlag *bool `json:"allowsBluemixAccountLinkingFlag,omitempty" xmlrpc:"allowsBluemixAccountLinkingFlag,omitempty"` + + // A secondary phone number assigned to an account. + AlternatePhone *string `json:"alternatePhone,omitempty" xmlrpc:"alternatePhone,omitempty"` + + // A count of an account's associated application delivery controller records. + ApplicationDeliveryControllerCount *uint `json:"applicationDeliveryControllerCount,omitempty" xmlrpc:"applicationDeliveryControllerCount,omitempty"` + + // An account's associated application delivery controller records. + ApplicationDeliveryControllers []Network_Application_Delivery_Controller `json:"applicationDeliveryControllers,omitempty" xmlrpc:"applicationDeliveryControllers,omitempty"` + + // A count of the account attribute values for a SoftLayer customer account. + AttributeCount *uint `json:"attributeCount,omitempty" xmlrpc:"attributeCount,omitempty"` + + // The account attribute values for a SoftLayer customer account. + Attributes []Account_Attribute `json:"attributes,omitempty" xmlrpc:"attributes,omitempty"` + + // A count of the public network VLANs assigned to an account. + AvailablePublicNetworkVlanCount *uint `json:"availablePublicNetworkVlanCount,omitempty" xmlrpc:"availablePublicNetworkVlanCount,omitempty"` + + // The public network VLANs assigned to an account. + AvailablePublicNetworkVlans []Network_Vlan `json:"availablePublicNetworkVlans,omitempty" xmlrpc:"availablePublicNetworkVlans,omitempty"` + + // The account balance of a SoftLayer customer account. An account's balance is the amount of money owed to SoftLayer by the account holder, returned as a floating point number with two decimal places, measured in US Dollars ($USD). A negative account balance means the account holder has overpaid and is owed money by SoftLayer. + Balance *Float64 `json:"balance,omitempty" xmlrpc:"balance,omitempty"` + + // A count of the bandwidth allotments for an account. + BandwidthAllotmentCount *uint `json:"bandwidthAllotmentCount,omitempty" xmlrpc:"bandwidthAllotmentCount,omitempty"` + + // The bandwidth allotments for an account. + BandwidthAllotments []Network_Bandwidth_Version1_Allotment `json:"bandwidthAllotments,omitempty" xmlrpc:"bandwidthAllotments,omitempty"` + + // The bandwidth allotments for an account currently over allocation. + BandwidthAllotmentsOverAllocation []Network_Bandwidth_Version1_Allotment `json:"bandwidthAllotmentsOverAllocation,omitempty" xmlrpc:"bandwidthAllotmentsOverAllocation,omitempty"` + + // A count of the bandwidth allotments for an account currently over allocation. + BandwidthAllotmentsOverAllocationCount *uint `json:"bandwidthAllotmentsOverAllocationCount,omitempty" xmlrpc:"bandwidthAllotmentsOverAllocationCount,omitempty"` + + // The bandwidth allotments for an account projected to go over allocation. + BandwidthAllotmentsProjectedOverAllocation []Network_Bandwidth_Version1_Allotment `json:"bandwidthAllotmentsProjectedOverAllocation,omitempty" xmlrpc:"bandwidthAllotmentsProjectedOverAllocation,omitempty"` + + // A count of the bandwidth allotments for an account projected to go over allocation. + BandwidthAllotmentsProjectedOverAllocationCount *uint `json:"bandwidthAllotmentsProjectedOverAllocationCount,omitempty" xmlrpc:"bandwidthAllotmentsProjectedOverAllocationCount,omitempty"` + + // A count of an account's associated bare metal server objects. + BareMetalInstanceCount *uint `json:"bareMetalInstanceCount,omitempty" xmlrpc:"bareMetalInstanceCount,omitempty"` + + // An account's associated bare metal server objects. + BareMetalInstances []Hardware `json:"bareMetalInstances,omitempty" xmlrpc:"bareMetalInstances,omitempty"` + + // A count of all billing agreements for an account + BillingAgreementCount *uint `json:"billingAgreementCount,omitempty" xmlrpc:"billingAgreementCount,omitempty"` + + // All billing agreements for an account + BillingAgreements []Account_Agreement `json:"billingAgreements,omitempty" xmlrpc:"billingAgreements,omitempty"` + + // An account's billing information. + BillingInfo *Billing_Info `json:"billingInfo,omitempty" xmlrpc:"billingInfo,omitempty"` + + // A count of private template group objects (parent and children) and the shared template group objects (parent only) for an account. + BlockDeviceTemplateGroupCount *uint `json:"blockDeviceTemplateGroupCount,omitempty" xmlrpc:"blockDeviceTemplateGroupCount,omitempty"` + + // Private template group objects (parent and children) and the shared template group objects (parent only) for an account. + BlockDeviceTemplateGroups []Virtual_Guest_Block_Device_Template_Group `json:"blockDeviceTemplateGroups,omitempty" xmlrpc:"blockDeviceTemplateGroups,omitempty"` + + // Indicates whether this account requires blue id authentication. + BlueIdAuthenticationRequiredFlag *bool `json:"blueIdAuthenticationRequiredFlag,omitempty" xmlrpc:"blueIdAuthenticationRequiredFlag,omitempty"` + + // Returns true if this account is linked to IBM Bluemix, false if not. + BluemixLinkedFlag *bool `json:"bluemixLinkedFlag,omitempty" xmlrpc:"bluemixLinkedFlag,omitempty"` + + // no documentation yet + Brand *Brand `json:"brand,omitempty" xmlrpc:"brand,omitempty"` + + // no documentation yet + BrandAccountFlag *bool `json:"brandAccountFlag,omitempty" xmlrpc:"brandAccountFlag,omitempty"` + + // The Brand tied to an account. + BrandId *int `json:"brandId,omitempty" xmlrpc:"brandId,omitempty"` + + // The brand keyName. + BrandKeyName *string `json:"brandKeyName,omitempty" xmlrpc:"brandKeyName,omitempty"` + + // Indicating whether this account can order additional Vlans. + CanOrderAdditionalVlansFlag *bool `json:"canOrderAdditionalVlansFlag,omitempty" xmlrpc:"canOrderAdditionalVlansFlag,omitempty"` + + // A count of an account's active carts. + CartCount *uint `json:"cartCount,omitempty" xmlrpc:"cartCount,omitempty"` + + // An account's active carts. + Carts []Billing_Order_Quote `json:"carts,omitempty" xmlrpc:"carts,omitempty"` + + // A count of + CatalystEnrollmentCount *uint `json:"catalystEnrollmentCount,omitempty" xmlrpc:"catalystEnrollmentCount,omitempty"` + + // no documentation yet + CatalystEnrollments []Catalyst_Enrollment `json:"catalystEnrollments,omitempty" xmlrpc:"catalystEnrollments,omitempty"` + + // A count of an account's associated CDN accounts. + CdnAccountCount *uint `json:"cdnAccountCount,omitempty" xmlrpc:"cdnAccountCount,omitempty"` + + // An account's associated CDN accounts. + CdnAccounts []Network_ContentDelivery_Account `json:"cdnAccounts,omitempty" xmlrpc:"cdnAccounts,omitempty"` + + // The city of the mailing address belonging to an account. + City *string `json:"city,omitempty" xmlrpc:"city,omitempty"` + + // Whether an account is exempt from taxes on their invoices. + ClaimedTaxExemptTxFlag *bool `json:"claimedTaxExemptTxFlag,omitempty" xmlrpc:"claimedTaxExemptTxFlag,omitempty"` + + // A count of all closed tickets associated with an account. + ClosedTicketCount *uint `json:"closedTicketCount,omitempty" xmlrpc:"closedTicketCount,omitempty"` + + // All closed tickets associated with an account. + ClosedTickets []Ticket `json:"closedTickets,omitempty" xmlrpc:"closedTickets,omitempty"` + + // The company name associated with an account. + CompanyName *string `json:"companyName,omitempty" xmlrpc:"companyName,omitempty"` + + // A two-letter abbreviation of the country in the mailing address belonging to an account. + Country *string `json:"country,omitempty" xmlrpc:"country,omitempty"` + + // The date an account was created. + CreateDate *Time `json:"createDate,omitempty" xmlrpc:"createDate,omitempty"` + + // A count of datacenters which contain subnets that the account has access to route. + DatacentersWithSubnetAllocationCount *uint `json:"datacentersWithSubnetAllocationCount,omitempty" xmlrpc:"datacentersWithSubnetAllocationCount,omitempty"` + + // Datacenters which contain subnets that the account has access to route. + DatacentersWithSubnetAllocations []Location `json:"datacentersWithSubnetAllocations,omitempty" xmlrpc:"datacentersWithSubnetAllocations,omitempty"` + + // A count of an account's associated virtual dedicated host objects. + DedicatedHostCount *uint `json:"dedicatedHostCount,omitempty" xmlrpc:"dedicatedHostCount,omitempty"` + + // An account's associated virtual dedicated host objects. + DedicatedHosts []Virtual_DedicatedHost `json:"dedicatedHosts,omitempty" xmlrpc:"dedicatedHosts,omitempty"` + + // Device Fingerprint Identifier - Used internally and can safely be ignored. + DeviceFingerprintId *string `json:"deviceFingerprintId,omitempty" xmlrpc:"deviceFingerprintId,omitempty"` + + // A flag indicating whether payments are processed for this account. + DisablePaymentProcessingFlag *bool `json:"disablePaymentProcessingFlag,omitempty" xmlrpc:"disablePaymentProcessingFlag,omitempty"` + + // A count of the SoftLayer employees that an account is assigned to. + DisplaySupportRepresentativeAssignmentCount *uint `json:"displaySupportRepresentativeAssignmentCount,omitempty" xmlrpc:"displaySupportRepresentativeAssignmentCount,omitempty"` + + // The SoftLayer employees that an account is assigned to. + DisplaySupportRepresentativeAssignments []Account_Attachment_Employee `json:"displaySupportRepresentativeAssignments,omitempty" xmlrpc:"displaySupportRepresentativeAssignments,omitempty"` + + // A count of the DNS domains associated with an account. + DomainCount *uint `json:"domainCount,omitempty" xmlrpc:"domainCount,omitempty"` + + // A count of + DomainRegistrationCount *uint `json:"domainRegistrationCount,omitempty" xmlrpc:"domainRegistrationCount,omitempty"` + + // no documentation yet + DomainRegistrations []Dns_Domain_Registration `json:"domainRegistrations,omitempty" xmlrpc:"domainRegistrations,omitempty"` + + // The DNS domains associated with an account. + Domains []Dns_Domain `json:"domains,omitempty" xmlrpc:"domains,omitempty"` + + // A count of the DNS domains associated with an account that were not created as a result of a secondary DNS zone transfer. + DomainsWithoutSecondaryDnsRecordCount *uint `json:"domainsWithoutSecondaryDnsRecordCount,omitempty" xmlrpc:"domainsWithoutSecondaryDnsRecordCount,omitempty"` + + // The DNS domains associated with an account that were not created as a result of a secondary DNS zone transfer. + DomainsWithoutSecondaryDnsRecords []Dns_Domain `json:"domainsWithoutSecondaryDnsRecords,omitempty" xmlrpc:"domainsWithoutSecondaryDnsRecords,omitempty"` + + // A general email address assigned to an account. + Email *string `json:"email,omitempty" xmlrpc:"email,omitempty"` + + // The total capacity of Legacy EVault Volumes on an account, in GB. + EvaultCapacityGB *uint `json:"evaultCapacityGB,omitempty" xmlrpc:"evaultCapacityGB,omitempty"` + + // A count of an account's master EVault user. This is only used when an account has EVault service. + EvaultMasterUserCount *uint `json:"evaultMasterUserCount,omitempty" xmlrpc:"evaultMasterUserCount,omitempty"` + + // An account's master EVault user. This is only used when an account has EVault service. + EvaultMasterUsers []Account_Password `json:"evaultMasterUsers,omitempty" xmlrpc:"evaultMasterUsers,omitempty"` + + // An account's associated EVault storage volumes. + EvaultNetworkStorage []Network_Storage `json:"evaultNetworkStorage,omitempty" xmlrpc:"evaultNetworkStorage,omitempty"` + + // A count of an account's associated EVault storage volumes. + EvaultNetworkStorageCount *uint `json:"evaultNetworkStorageCount,omitempty" xmlrpc:"evaultNetworkStorageCount,omitempty"` + + // A count of stored security certificates that are expired (ie. SSL) + ExpiredSecurityCertificateCount *uint `json:"expiredSecurityCertificateCount,omitempty" xmlrpc:"expiredSecurityCertificateCount,omitempty"` + + // Stored security certificates that are expired (ie. SSL) + ExpiredSecurityCertificates []Security_Certificate `json:"expiredSecurityCertificates,omitempty" xmlrpc:"expiredSecurityCertificates,omitempty"` + + // A count of logs of who entered a colocation area which is assigned to this account, or when a user under this account enters a datacenter. + FacilityLogCount *uint `json:"facilityLogCount,omitempty" xmlrpc:"facilityLogCount,omitempty"` + + // Logs of who entered a colocation area which is assigned to this account, or when a user under this account enters a datacenter. + FacilityLogs []User_Access_Facility_Log `json:"facilityLogs,omitempty" xmlrpc:"facilityLogs,omitempty"` + + // A fax phone number assigned to an account. + FaxPhone *string `json:"faxPhone,omitempty" xmlrpc:"faxPhone,omitempty"` + + // Each customer account is listed under a single individual. This is that individual's first name. + FirstName *string `json:"firstName,omitempty" xmlrpc:"firstName,omitempty"` + + // A count of all of the account's current and former Flexible Credit enrollments. + FlexibleCreditEnrollmentCount *uint `json:"flexibleCreditEnrollmentCount,omitempty" xmlrpc:"flexibleCreditEnrollmentCount,omitempty"` + + // All of the account's current and former Flexible Credit enrollments. + FlexibleCreditEnrollments []FlexibleCredit_Enrollment `json:"flexibleCreditEnrollments,omitempty" xmlrpc:"flexibleCreditEnrollments,omitempty"` + + // A count of + GlobalIpRecordCount *uint `json:"globalIpRecordCount,omitempty" xmlrpc:"globalIpRecordCount,omitempty"` + + // no documentation yet + GlobalIpRecords []Network_Subnet_IpAddress_Global `json:"globalIpRecords,omitempty" xmlrpc:"globalIpRecords,omitempty"` + + // A count of + GlobalIpv4RecordCount *uint `json:"globalIpv4RecordCount,omitempty" xmlrpc:"globalIpv4RecordCount,omitempty"` + + // no documentation yet + GlobalIpv4Records []Network_Subnet_IpAddress_Global `json:"globalIpv4Records,omitempty" xmlrpc:"globalIpv4Records,omitempty"` + + // A count of + GlobalIpv6RecordCount *uint `json:"globalIpv6RecordCount,omitempty" xmlrpc:"globalIpv6RecordCount,omitempty"` + + // no documentation yet + GlobalIpv6Records []Network_Subnet_IpAddress_Global `json:"globalIpv6Records,omitempty" xmlrpc:"globalIpv6Records,omitempty"` + + // A count of the global load balancer accounts for a softlayer customer account. + GlobalLoadBalancerAccountCount *uint `json:"globalLoadBalancerAccountCount,omitempty" xmlrpc:"globalLoadBalancerAccountCount,omitempty"` + + // The global load balancer accounts for a softlayer customer account. + GlobalLoadBalancerAccounts []Network_LoadBalancer_Global_Account `json:"globalLoadBalancerAccounts,omitempty" xmlrpc:"globalLoadBalancerAccounts,omitempty"` + + // An account's associated hardware objects. + Hardware []Hardware `json:"hardware,omitempty" xmlrpc:"hardware,omitempty"` + + // A count of an account's associated hardware objects. + HardwareCount *uint `json:"hardwareCount,omitempty" xmlrpc:"hardwareCount,omitempty"` + + // An account's associated hardware objects currently over bandwidth allocation. + HardwareOverBandwidthAllocation []Hardware `json:"hardwareOverBandwidthAllocation,omitempty" xmlrpc:"hardwareOverBandwidthAllocation,omitempty"` + + // A count of an account's associated hardware objects currently over bandwidth allocation. + HardwareOverBandwidthAllocationCount *uint `json:"hardwareOverBandwidthAllocationCount,omitempty" xmlrpc:"hardwareOverBandwidthAllocationCount,omitempty"` + + // An account's associated hardware objects projected to go over bandwidth allocation. + HardwareProjectedOverBandwidthAllocation []Hardware `json:"hardwareProjectedOverBandwidthAllocation,omitempty" xmlrpc:"hardwareProjectedOverBandwidthAllocation,omitempty"` + + // A count of an account's associated hardware objects projected to go over bandwidth allocation. + HardwareProjectedOverBandwidthAllocationCount *uint `json:"hardwareProjectedOverBandwidthAllocationCount,omitempty" xmlrpc:"hardwareProjectedOverBandwidthAllocationCount,omitempty"` + + // All hardware associated with an account that has the cPanel web hosting control panel installed. + HardwareWithCpanel []Hardware `json:"hardwareWithCpanel,omitempty" xmlrpc:"hardwareWithCpanel,omitempty"` + + // A count of all hardware associated with an account that has the cPanel web hosting control panel installed. + HardwareWithCpanelCount *uint `json:"hardwareWithCpanelCount,omitempty" xmlrpc:"hardwareWithCpanelCount,omitempty"` + + // All hardware associated with an account that has the Helm web hosting control panel installed. + HardwareWithHelm []Hardware `json:"hardwareWithHelm,omitempty" xmlrpc:"hardwareWithHelm,omitempty"` + + // A count of all hardware associated with an account that has the Helm web hosting control panel installed. + HardwareWithHelmCount *uint `json:"hardwareWithHelmCount,omitempty" xmlrpc:"hardwareWithHelmCount,omitempty"` + + // All hardware associated with an account that has McAfee Secure software components. + HardwareWithMcafee []Hardware `json:"hardwareWithMcafee,omitempty" xmlrpc:"hardwareWithMcafee,omitempty"` + + // All hardware associated with an account that has McAfee Secure AntiVirus for Redhat software components. + HardwareWithMcafeeAntivirusRedhat []Hardware `json:"hardwareWithMcafeeAntivirusRedhat,omitempty" xmlrpc:"hardwareWithMcafeeAntivirusRedhat,omitempty"` + + // A count of all hardware associated with an account that has McAfee Secure AntiVirus for Redhat software components. + HardwareWithMcafeeAntivirusRedhatCount *uint `json:"hardwareWithMcafeeAntivirusRedhatCount,omitempty" xmlrpc:"hardwareWithMcafeeAntivirusRedhatCount,omitempty"` + + // A count of all hardware associated with an account that has McAfee Secure AntiVirus for Windows software components. + HardwareWithMcafeeAntivirusWindowCount *uint `json:"hardwareWithMcafeeAntivirusWindowCount,omitempty" xmlrpc:"hardwareWithMcafeeAntivirusWindowCount,omitempty"` + + // All hardware associated with an account that has McAfee Secure AntiVirus for Windows software components. + HardwareWithMcafeeAntivirusWindows []Hardware `json:"hardwareWithMcafeeAntivirusWindows,omitempty" xmlrpc:"hardwareWithMcafeeAntivirusWindows,omitempty"` + + // A count of all hardware associated with an account that has McAfee Secure software components. + HardwareWithMcafeeCount *uint `json:"hardwareWithMcafeeCount,omitempty" xmlrpc:"hardwareWithMcafeeCount,omitempty"` + + // All hardware associated with an account that has McAfee Secure Intrusion Detection System software components. + HardwareWithMcafeeIntrusionDetectionSystem []Hardware `json:"hardwareWithMcafeeIntrusionDetectionSystem,omitempty" xmlrpc:"hardwareWithMcafeeIntrusionDetectionSystem,omitempty"` + + // A count of all hardware associated with an account that has McAfee Secure Intrusion Detection System software components. + HardwareWithMcafeeIntrusionDetectionSystemCount *uint `json:"hardwareWithMcafeeIntrusionDetectionSystemCount,omitempty" xmlrpc:"hardwareWithMcafeeIntrusionDetectionSystemCount,omitempty"` + + // All hardware associated with an account that has the Plesk web hosting control panel installed. + HardwareWithPlesk []Hardware `json:"hardwareWithPlesk,omitempty" xmlrpc:"hardwareWithPlesk,omitempty"` + + // A count of all hardware associated with an account that has the Plesk web hosting control panel installed. + HardwareWithPleskCount *uint `json:"hardwareWithPleskCount,omitempty" xmlrpc:"hardwareWithPleskCount,omitempty"` + + // All hardware associated with an account that has the QuantaStor storage system installed. + HardwareWithQuantastor []Hardware `json:"hardwareWithQuantastor,omitempty" xmlrpc:"hardwareWithQuantastor,omitempty"` + + // A count of all hardware associated with an account that has the QuantaStor storage system installed. + HardwareWithQuantastorCount *uint `json:"hardwareWithQuantastorCount,omitempty" xmlrpc:"hardwareWithQuantastorCount,omitempty"` + + // All hardware associated with an account that has the Urchin web traffic analytics package installed. + HardwareWithUrchin []Hardware `json:"hardwareWithUrchin,omitempty" xmlrpc:"hardwareWithUrchin,omitempty"` + + // A count of all hardware associated with an account that has the Urchin web traffic analytics package installed. + HardwareWithUrchinCount *uint `json:"hardwareWithUrchinCount,omitempty" xmlrpc:"hardwareWithUrchinCount,omitempty"` + + // A count of all hardware associated with an account that is running a version of the Microsoft Windows operating system. + HardwareWithWindowCount *uint `json:"hardwareWithWindowCount,omitempty" xmlrpc:"hardwareWithWindowCount,omitempty"` + + // All hardware associated with an account that is running a version of the Microsoft Windows operating system. + HardwareWithWindows []Hardware `json:"hardwareWithWindows,omitempty" xmlrpc:"hardwareWithWindows,omitempty"` + + // Return 1 if one of the account's hardware has the EVault Bare Metal Server Restore Plugin otherwise 0. + HasEvaultBareMetalRestorePluginFlag *bool `json:"hasEvaultBareMetalRestorePluginFlag,omitempty" xmlrpc:"hasEvaultBareMetalRestorePluginFlag,omitempty"` + + // Return 1 if one of the account's hardware has an installation of Idera Server Backup otherwise 0. + HasIderaBareMetalRestorePluginFlag *bool `json:"hasIderaBareMetalRestorePluginFlag,omitempty" xmlrpc:"hasIderaBareMetalRestorePluginFlag,omitempty"` + + // The number of orders in a PENDING status for a SoftLayer customer account. + HasPendingOrder *uint `json:"hasPendingOrder,omitempty" xmlrpc:"hasPendingOrder,omitempty"` + + // Return 1 if one of the account's hardware has an installation of R1Soft CDP otherwise 0. + HasR1softBareMetalRestorePluginFlag *bool `json:"hasR1softBareMetalRestorePluginFlag,omitempty" xmlrpc:"hasR1softBareMetalRestorePluginFlag,omitempty"` + + // A count of an account's associated hourly bare metal server objects. + HourlyBareMetalInstanceCount *uint `json:"hourlyBareMetalInstanceCount,omitempty" xmlrpc:"hourlyBareMetalInstanceCount,omitempty"` + + // An account's associated hourly bare metal server objects. + HourlyBareMetalInstances []Hardware `json:"hourlyBareMetalInstances,omitempty" xmlrpc:"hourlyBareMetalInstances,omitempty"` + + // A count of hourly service billing items that will be on an account's next invoice. + HourlyServiceBillingItemCount *uint `json:"hourlyServiceBillingItemCount,omitempty" xmlrpc:"hourlyServiceBillingItemCount,omitempty"` + + // Hourly service billing items that will be on an account's next invoice. + HourlyServiceBillingItems []Billing_Item `json:"hourlyServiceBillingItems,omitempty" xmlrpc:"hourlyServiceBillingItems,omitempty"` + + // A count of an account's associated hourly virtual guest objects. + HourlyVirtualGuestCount *uint `json:"hourlyVirtualGuestCount,omitempty" xmlrpc:"hourlyVirtualGuestCount,omitempty"` + + // An account's associated hourly virtual guest objects. + HourlyVirtualGuests []Virtual_Guest `json:"hourlyVirtualGuests,omitempty" xmlrpc:"hourlyVirtualGuests,omitempty"` + + // An account's associated Virtual Storage volumes. + HubNetworkStorage []Network_Storage `json:"hubNetworkStorage,omitempty" xmlrpc:"hubNetworkStorage,omitempty"` + + // A count of an account's associated Virtual Storage volumes. + HubNetworkStorageCount *uint `json:"hubNetworkStorageCount,omitempty" xmlrpc:"hubNetworkStorageCount,omitempty"` + + // Unique identifier for a customer used throughout IBM. + IbmCustomerNumber *string `json:"ibmCustomerNumber,omitempty" xmlrpc:"ibmCustomerNumber,omitempty"` + + // Timestamp representing the point in time when an account is required to use IBMid authentication. + IbmIdMigrationExpirationTimestamp *string `json:"ibmIdMigrationExpirationTimestamp,omitempty" xmlrpc:"ibmIdMigrationExpirationTimestamp,omitempty"` + + // A customer account's internal identifier. Account numbers are typically preceded by the string "SL" in the customer portal. Every SoftLayer account has at least one portal user whose username follows the "SL" + account number naming scheme. + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // A count of + InternalNoteCount *uint `json:"internalNoteCount,omitempty" xmlrpc:"internalNoteCount,omitempty"` + + // no documentation yet + InternalNotes []Account_Note `json:"internalNotes,omitempty" xmlrpc:"internalNotes,omitempty"` + + // A count of an account's associated billing invoices. + InvoiceCount *uint `json:"invoiceCount,omitempty" xmlrpc:"invoiceCount,omitempty"` + + // An account's associated billing invoices. + Invoices []Billing_Invoice `json:"invoices,omitempty" xmlrpc:"invoices,omitempty"` + + // A count of + IpAddressCount *uint `json:"ipAddressCount,omitempty" xmlrpc:"ipAddressCount,omitempty"` + + // no documentation yet + IpAddresses []Network_Subnet_IpAddress `json:"ipAddresses,omitempty" xmlrpc:"ipAddresses,omitempty"` + + // A flag indicating if an account belongs to a reseller or not. + IsReseller *int `json:"isReseller,omitempty" xmlrpc:"isReseller,omitempty"` + + // An account's associated iSCSI storage volumes. + IscsiNetworkStorage []Network_Storage `json:"iscsiNetworkStorage,omitempty" xmlrpc:"iscsiNetworkStorage,omitempty"` + + // A count of an account's associated iSCSI storage volumes. + IscsiNetworkStorageCount *uint `json:"iscsiNetworkStorageCount,omitempty" xmlrpc:"iscsiNetworkStorageCount,omitempty"` + + // The most recently canceled billing item. + LastCanceledBillingItem *Billing_Item `json:"lastCanceledBillingItem,omitempty" xmlrpc:"lastCanceledBillingItem,omitempty"` + + // The most recent cancelled server billing item. + LastCancelledServerBillingItem *Billing_Item `json:"lastCancelledServerBillingItem,omitempty" xmlrpc:"lastCancelledServerBillingItem,omitempty"` + + // A count of the five most recently closed abuse tickets associated with an account. + LastFiveClosedAbuseTicketCount *uint `json:"lastFiveClosedAbuseTicketCount,omitempty" xmlrpc:"lastFiveClosedAbuseTicketCount,omitempty"` + + // The five most recently closed abuse tickets associated with an account. + LastFiveClosedAbuseTickets []Ticket `json:"lastFiveClosedAbuseTickets,omitempty" xmlrpc:"lastFiveClosedAbuseTickets,omitempty"` + + // A count of the five most recently closed accounting tickets associated with an account. + LastFiveClosedAccountingTicketCount *uint `json:"lastFiveClosedAccountingTicketCount,omitempty" xmlrpc:"lastFiveClosedAccountingTicketCount,omitempty"` + + // The five most recently closed accounting tickets associated with an account. + LastFiveClosedAccountingTickets []Ticket `json:"lastFiveClosedAccountingTickets,omitempty" xmlrpc:"lastFiveClosedAccountingTickets,omitempty"` + + // A count of the five most recently closed tickets that do not belong to the abuse, accounting, sales, or support groups associated with an account. + LastFiveClosedOtherTicketCount *uint `json:"lastFiveClosedOtherTicketCount,omitempty" xmlrpc:"lastFiveClosedOtherTicketCount,omitempty"` + + // The five most recently closed tickets that do not belong to the abuse, accounting, sales, or support groups associated with an account. + LastFiveClosedOtherTickets []Ticket `json:"lastFiveClosedOtherTickets,omitempty" xmlrpc:"lastFiveClosedOtherTickets,omitempty"` + + // A count of the five most recently closed sales tickets associated with an account. + LastFiveClosedSalesTicketCount *uint `json:"lastFiveClosedSalesTicketCount,omitempty" xmlrpc:"lastFiveClosedSalesTicketCount,omitempty"` + + // The five most recently closed sales tickets associated with an account. + LastFiveClosedSalesTickets []Ticket `json:"lastFiveClosedSalesTickets,omitempty" xmlrpc:"lastFiveClosedSalesTickets,omitempty"` + + // A count of the five most recently closed support tickets associated with an account. + LastFiveClosedSupportTicketCount *uint `json:"lastFiveClosedSupportTicketCount,omitempty" xmlrpc:"lastFiveClosedSupportTicketCount,omitempty"` + + // The five most recently closed support tickets associated with an account. + LastFiveClosedSupportTickets []Ticket `json:"lastFiveClosedSupportTickets,omitempty" xmlrpc:"lastFiveClosedSupportTickets,omitempty"` + + // A count of the five most recently closed tickets associated with an account. + LastFiveClosedTicketCount *uint `json:"lastFiveClosedTicketCount,omitempty" xmlrpc:"lastFiveClosedTicketCount,omitempty"` + + // The five most recently closed tickets associated with an account. + LastFiveClosedTickets []Ticket `json:"lastFiveClosedTickets,omitempty" xmlrpc:"lastFiveClosedTickets,omitempty"` + + // Each customer account is listed under a single individual. This is that individual's last name. + LastName *string `json:"lastName,omitempty" xmlrpc:"lastName,omitempty"` + + // Whether an account has late fee protection. + LateFeeProtectionFlag *bool `json:"lateFeeProtectionFlag,omitempty" xmlrpc:"lateFeeProtectionFlag,omitempty"` + + // An account's most recent billing date. + LatestBillDate *Time `json:"latestBillDate,omitempty" xmlrpc:"latestBillDate,omitempty"` + + // An account's latest recurring invoice. + LatestRecurringInvoice *Billing_Invoice `json:"latestRecurringInvoice,omitempty" xmlrpc:"latestRecurringInvoice,omitempty"` + + // An account's latest recurring pending invoice. + LatestRecurringPendingInvoice *Billing_Invoice `json:"latestRecurringPendingInvoice,omitempty" xmlrpc:"latestRecurringPendingInvoice,omitempty"` + + // A count of the legacy bandwidth allotments for an account. + LegacyBandwidthAllotmentCount *uint `json:"legacyBandwidthAllotmentCount,omitempty" xmlrpc:"legacyBandwidthAllotmentCount,omitempty"` + + // The legacy bandwidth allotments for an account. + LegacyBandwidthAllotments []Network_Bandwidth_Version1_Allotment `json:"legacyBandwidthAllotments,omitempty" xmlrpc:"legacyBandwidthAllotments,omitempty"` + + // The total capacity of Legacy iSCSI Volumes on an account, in GB. + LegacyIscsiCapacityGB *uint `json:"legacyIscsiCapacityGB,omitempty" xmlrpc:"legacyIscsiCapacityGB,omitempty"` + + // A count of an account's associated load balancers. + LoadBalancerCount *uint `json:"loadBalancerCount,omitempty" xmlrpc:"loadBalancerCount,omitempty"` + + // An account's associated load balancers. + LoadBalancers []Network_LoadBalancer_VirtualIpAddress `json:"loadBalancers,omitempty" xmlrpc:"loadBalancers,omitempty"` + + // The total capacity of Legacy lockbox Volumes on an account, in GB. + LockboxCapacityGB *uint `json:"lockboxCapacityGB,omitempty" xmlrpc:"lockboxCapacityGB,omitempty"` + + // An account's associated Lockbox storage volumes. + LockboxNetworkStorage []Network_Storage `json:"lockboxNetworkStorage,omitempty" xmlrpc:"lockboxNetworkStorage,omitempty"` + + // A count of an account's associated Lockbox storage volumes. + LockboxNetworkStorageCount *uint `json:"lockboxNetworkStorageCount,omitempty" xmlrpc:"lockboxNetworkStorageCount,omitempty"` + + // no documentation yet + ManualPaymentsUnderReview []Billing_Payment_Card_ManualPayment `json:"manualPaymentsUnderReview,omitempty" xmlrpc:"manualPaymentsUnderReview,omitempty"` + + // A count of + ManualPaymentsUnderReviewCount *uint `json:"manualPaymentsUnderReviewCount,omitempty" xmlrpc:"manualPaymentsUnderReviewCount,omitempty"` + + // An account's master user. + MasterUser *User_Customer `json:"masterUser,omitempty" xmlrpc:"masterUser,omitempty"` + + // A count of an account's media transfer service requests. + MediaDataTransferRequestCount *uint `json:"mediaDataTransferRequestCount,omitempty" xmlrpc:"mediaDataTransferRequestCount,omitempty"` + + // An account's media transfer service requests. + MediaDataTransferRequests []Account_Media_Data_Transfer_Request `json:"mediaDataTransferRequests,omitempty" xmlrpc:"mediaDataTransferRequests,omitempty"` + + // A count of an account's associated Message Queue accounts. + MessageQueueAccountCount *uint `json:"messageQueueAccountCount,omitempty" xmlrpc:"messageQueueAccountCount,omitempty"` + + // An account's associated Message Queue accounts. + MessageQueueAccounts []Network_Message_Queue `json:"messageQueueAccounts,omitempty" xmlrpc:"messageQueueAccounts,omitempty"` + + // The date an account was last modified. + ModifyDate *Time `json:"modifyDate,omitempty" xmlrpc:"modifyDate,omitempty"` + + // A count of an account's associated monthly bare metal server objects. + MonthlyBareMetalInstanceCount *uint `json:"monthlyBareMetalInstanceCount,omitempty" xmlrpc:"monthlyBareMetalInstanceCount,omitempty"` + + // An account's associated monthly bare metal server objects. + MonthlyBareMetalInstances []Hardware `json:"monthlyBareMetalInstances,omitempty" xmlrpc:"monthlyBareMetalInstances,omitempty"` + + // A count of an account's associated monthly virtual guest objects. + MonthlyVirtualGuestCount *uint `json:"monthlyVirtualGuestCount,omitempty" xmlrpc:"monthlyVirtualGuestCount,omitempty"` + + // An account's associated monthly virtual guest objects. + MonthlyVirtualGuests []Virtual_Guest `json:"monthlyVirtualGuests,omitempty" xmlrpc:"monthlyVirtualGuests,omitempty"` + + // An account's associated NAS storage volumes. + NasNetworkStorage []Network_Storage `json:"nasNetworkStorage,omitempty" xmlrpc:"nasNetworkStorage,omitempty"` + + // A count of an account's associated NAS storage volumes. + NasNetworkStorageCount *uint `json:"nasNetworkStorageCount,omitempty" xmlrpc:"nasNetworkStorageCount,omitempty"` + + // Whether or not this account can define their own networks. + NetworkCreationFlag *bool `json:"networkCreationFlag,omitempty" xmlrpc:"networkCreationFlag,omitempty"` + + // A count of all network gateway devices on this account. + NetworkGatewayCount *uint `json:"networkGatewayCount,omitempty" xmlrpc:"networkGatewayCount,omitempty"` + + // All network gateway devices on this account. + NetworkGateways []Network_Gateway `json:"networkGateways,omitempty" xmlrpc:"networkGateways,omitempty"` + + // An account's associated network hardware. + NetworkHardware []Hardware `json:"networkHardware,omitempty" xmlrpc:"networkHardware,omitempty"` + + // A count of an account's associated network hardware. + NetworkHardwareCount *uint `json:"networkHardwareCount,omitempty" xmlrpc:"networkHardwareCount,omitempty"` + + // A count of + NetworkMessageDeliveryAccountCount *uint `json:"networkMessageDeliveryAccountCount,omitempty" xmlrpc:"networkMessageDeliveryAccountCount,omitempty"` + + // no documentation yet + NetworkMessageDeliveryAccounts []Network_Message_Delivery `json:"networkMessageDeliveryAccounts,omitempty" xmlrpc:"networkMessageDeliveryAccounts,omitempty"` + + // Hardware which is currently experiencing a service failure. + NetworkMonitorDownHardware []Hardware `json:"networkMonitorDownHardware,omitempty" xmlrpc:"networkMonitorDownHardware,omitempty"` + + // A count of hardware which is currently experiencing a service failure. + NetworkMonitorDownHardwareCount *uint `json:"networkMonitorDownHardwareCount,omitempty" xmlrpc:"networkMonitorDownHardwareCount,omitempty"` + + // A count of virtual guest which is currently experiencing a service failure. + NetworkMonitorDownVirtualGuestCount *uint `json:"networkMonitorDownVirtualGuestCount,omitempty" xmlrpc:"networkMonitorDownVirtualGuestCount,omitempty"` + + // Virtual guest which is currently experiencing a service failure. + NetworkMonitorDownVirtualGuests []Virtual_Guest `json:"networkMonitorDownVirtualGuests,omitempty" xmlrpc:"networkMonitorDownVirtualGuests,omitempty"` + + // Hardware which is currently recovering from a service failure. + NetworkMonitorRecoveringHardware []Hardware `json:"networkMonitorRecoveringHardware,omitempty" xmlrpc:"networkMonitorRecoveringHardware,omitempty"` + + // A count of hardware which is currently recovering from a service failure. + NetworkMonitorRecoveringHardwareCount *uint `json:"networkMonitorRecoveringHardwareCount,omitempty" xmlrpc:"networkMonitorRecoveringHardwareCount,omitempty"` + + // A count of virtual guest which is currently recovering from a service failure. + NetworkMonitorRecoveringVirtualGuestCount *uint `json:"networkMonitorRecoveringVirtualGuestCount,omitempty" xmlrpc:"networkMonitorRecoveringVirtualGuestCount,omitempty"` + + // Virtual guest which is currently recovering from a service failure. + NetworkMonitorRecoveringVirtualGuests []Virtual_Guest `json:"networkMonitorRecoveringVirtualGuests,omitempty" xmlrpc:"networkMonitorRecoveringVirtualGuests,omitempty"` + + // Hardware which is currently online. + NetworkMonitorUpHardware []Hardware `json:"networkMonitorUpHardware,omitempty" xmlrpc:"networkMonitorUpHardware,omitempty"` + + // A count of hardware which is currently online. + NetworkMonitorUpHardwareCount *uint `json:"networkMonitorUpHardwareCount,omitempty" xmlrpc:"networkMonitorUpHardwareCount,omitempty"` + + // A count of virtual guest which is currently online. + NetworkMonitorUpVirtualGuestCount *uint `json:"networkMonitorUpVirtualGuestCount,omitempty" xmlrpc:"networkMonitorUpVirtualGuestCount,omitempty"` + + // Virtual guest which is currently online. + NetworkMonitorUpVirtualGuests []Virtual_Guest `json:"networkMonitorUpVirtualGuests,omitempty" xmlrpc:"networkMonitorUpVirtualGuests,omitempty"` + + // An account's associated storage volumes. This includes Lockbox, NAS, EVault, and iSCSI volumes. + NetworkStorage []Network_Storage `json:"networkStorage,omitempty" xmlrpc:"networkStorage,omitempty"` + + // A count of an account's associated storage volumes. This includes Lockbox, NAS, EVault, and iSCSI volumes. + NetworkStorageCount *uint `json:"networkStorageCount,omitempty" xmlrpc:"networkStorageCount,omitempty"` + + // A count of an account's Network Storage groups. + NetworkStorageGroupCount *uint `json:"networkStorageGroupCount,omitempty" xmlrpc:"networkStorageGroupCount,omitempty"` + + // An account's Network Storage groups. + NetworkStorageGroups []Network_Storage_Group `json:"networkStorageGroups,omitempty" xmlrpc:"networkStorageGroups,omitempty"` + + // A count of iPSec network tunnels for an account. + NetworkTunnelContextCount *uint `json:"networkTunnelContextCount,omitempty" xmlrpc:"networkTunnelContextCount,omitempty"` + + // IPSec network tunnels for an account. + NetworkTunnelContexts []Network_Tunnel_Module_Context `json:"networkTunnelContexts,omitempty" xmlrpc:"networkTunnelContexts,omitempty"` + + // A count of all network VLANs assigned to an account. + NetworkVlanCount *uint `json:"networkVlanCount,omitempty" xmlrpc:"networkVlanCount,omitempty"` + + // Whether or not an account has automatic private VLAN spanning enabled. + NetworkVlanSpan *Account_Network_Vlan_Span `json:"networkVlanSpan,omitempty" xmlrpc:"networkVlanSpan,omitempty"` + + // All network VLANs assigned to an account. + NetworkVlans []Network_Vlan `json:"networkVlans,omitempty" xmlrpc:"networkVlans,omitempty"` + + // A count of dEPRECATED - This information can be pulled directly through tapping keys now - DEPRECATED. The allotments for this account and their servers for the next billing cycle. The public inbound and outbound bandwidth is calculated for each server in addition to the daily average network traffic since the last billing date. + NextBillingPublicAllotmentHardwareBandwidthDetailCount *uint `json:"nextBillingPublicAllotmentHardwareBandwidthDetailCount,omitempty" xmlrpc:"nextBillingPublicAllotmentHardwareBandwidthDetailCount,omitempty"` + + // DEPRECATED - This information can be pulled directly through tapping keys now - DEPRECATED. The allotments for this account and their servers for the next billing cycle. The public inbound and outbound bandwidth is calculated for each server in addition to the daily average network traffic since the last billing date. + NextBillingPublicAllotmentHardwareBandwidthDetails []Network_Bandwidth_Version1_Allotment `json:"nextBillingPublicAllotmentHardwareBandwidthDetails,omitempty" xmlrpc:"nextBillingPublicAllotmentHardwareBandwidthDetails,omitempty"` + + // The pre-tax total amount exempt from incubator credit for the account's next invoice. This field is now deprecated and will soon be removed. Please update all references to instead use nextInvoiceTotalAmount + NextInvoiceIncubatorExemptTotal *Float64 `json:"nextInvoiceIncubatorExemptTotal,omitempty" xmlrpc:"nextInvoiceIncubatorExemptTotal,omitempty"` + + // A count of the billing items that will be on an account's next invoice. + NextInvoiceTopLevelBillingItemCount *uint `json:"nextInvoiceTopLevelBillingItemCount,omitempty" xmlrpc:"nextInvoiceTopLevelBillingItemCount,omitempty"` + + // The billing items that will be on an account's next invoice. + NextInvoiceTopLevelBillingItems []Billing_Item `json:"nextInvoiceTopLevelBillingItems,omitempty" xmlrpc:"nextInvoiceTopLevelBillingItems,omitempty"` + + // The pre-tax total amount of an account's next invoice measured in US Dollars ($USD), assuming no changes or charges occur between now and time of billing. + NextInvoiceTotalAmount *Float64 `json:"nextInvoiceTotalAmount,omitempty" xmlrpc:"nextInvoiceTotalAmount,omitempty"` + + // The total one-time charge amount of an account's next invoice measured in US Dollars ($USD), assuming no changes or charges occur between now and time of billing. + NextInvoiceTotalOneTimeAmount *Float64 `json:"nextInvoiceTotalOneTimeAmount,omitempty" xmlrpc:"nextInvoiceTotalOneTimeAmount,omitempty"` + + // The total one-time tax amount of an account's next invoice measured in US Dollars ($USD), assuming no changes or charges occur between now and time of billing. + NextInvoiceTotalOneTimeTaxAmount *Float64 `json:"nextInvoiceTotalOneTimeTaxAmount,omitempty" xmlrpc:"nextInvoiceTotalOneTimeTaxAmount,omitempty"` + + // The total recurring charge amount of an account's next invoice measured in US Dollars ($USD), assuming no changes or charges occur between now and time of billing. + NextInvoiceTotalRecurringAmount *Float64 `json:"nextInvoiceTotalRecurringAmount,omitempty" xmlrpc:"nextInvoiceTotalRecurringAmount,omitempty"` + + // The total recurring charge amount of an account's next invoice measured in US Dollars ($USD), assuming no changes or charges occur between now and time of billing. + NextInvoiceTotalRecurringAmountBeforeAccountDiscount *Float64 `json:"nextInvoiceTotalRecurringAmountBeforeAccountDiscount,omitempty" xmlrpc:"nextInvoiceTotalRecurringAmountBeforeAccountDiscount,omitempty"` + + // The total recurring tax amount of an account's next invoice measured in US Dollars ($USD), assuming no changes or charges occur between now and time of billing. + NextInvoiceTotalRecurringTaxAmount *Float64 `json:"nextInvoiceTotalRecurringTaxAmount,omitempty" xmlrpc:"nextInvoiceTotalRecurringTaxAmount,omitempty"` + + // The total recurring charge amount of an account's next invoice measured in US Dollars ($USD), assuming no changes or charges occur between now and time of billing. + NextInvoiceTotalTaxableRecurringAmount *Float64 `json:"nextInvoiceTotalTaxableRecurringAmount,omitempty" xmlrpc:"nextInvoiceTotalTaxableRecurringAmount,omitempty"` + + // A count of + NotificationSubscriberCount *uint `json:"notificationSubscriberCount,omitempty" xmlrpc:"notificationSubscriberCount,omitempty"` + + // no documentation yet + NotificationSubscribers []Notification_Subscriber `json:"notificationSubscribers,omitempty" xmlrpc:"notificationSubscribers,omitempty"` + + // An office phone number assigned to an account. + OfficePhone *string `json:"officePhone,omitempty" xmlrpc:"officePhone,omitempty"` + + // A count of the open abuse tickets associated with an account. + OpenAbuseTicketCount *uint `json:"openAbuseTicketCount,omitempty" xmlrpc:"openAbuseTicketCount,omitempty"` + + // The open abuse tickets associated with an account. + OpenAbuseTickets []Ticket `json:"openAbuseTickets,omitempty" xmlrpc:"openAbuseTickets,omitempty"` + + // A count of the open accounting tickets associated with an account. + OpenAccountingTicketCount *uint `json:"openAccountingTicketCount,omitempty" xmlrpc:"openAccountingTicketCount,omitempty"` + + // The open accounting tickets associated with an account. + OpenAccountingTickets []Ticket `json:"openAccountingTickets,omitempty" xmlrpc:"openAccountingTickets,omitempty"` + + // A count of the open billing tickets associated with an account. + OpenBillingTicketCount *uint `json:"openBillingTicketCount,omitempty" xmlrpc:"openBillingTicketCount,omitempty"` + + // The open billing tickets associated with an account. + OpenBillingTickets []Ticket `json:"openBillingTickets,omitempty" xmlrpc:"openBillingTickets,omitempty"` + + // A count of an open ticket requesting cancellation of this server, if one exists. + OpenCancellationRequestCount *uint `json:"openCancellationRequestCount,omitempty" xmlrpc:"openCancellationRequestCount,omitempty"` + + // An open ticket requesting cancellation of this server, if one exists. + OpenCancellationRequests []Billing_Item_Cancellation_Request `json:"openCancellationRequests,omitempty" xmlrpc:"openCancellationRequests,omitempty"` + + // A count of the open tickets that do not belong to the abuse, accounting, sales, or support groups associated with an account. + OpenOtherTicketCount *uint `json:"openOtherTicketCount,omitempty" xmlrpc:"openOtherTicketCount,omitempty"` + + // The open tickets that do not belong to the abuse, accounting, sales, or support groups associated with an account. + OpenOtherTickets []Ticket `json:"openOtherTickets,omitempty" xmlrpc:"openOtherTickets,omitempty"` + + // A count of an account's recurring invoices. + OpenRecurringInvoiceCount *uint `json:"openRecurringInvoiceCount,omitempty" xmlrpc:"openRecurringInvoiceCount,omitempty"` + + // An account's recurring invoices. + OpenRecurringInvoices []Billing_Invoice `json:"openRecurringInvoices,omitempty" xmlrpc:"openRecurringInvoices,omitempty"` + + // A count of the open sales tickets associated with an account. + OpenSalesTicketCount *uint `json:"openSalesTicketCount,omitempty" xmlrpc:"openSalesTicketCount,omitempty"` + + // The open sales tickets associated with an account. + OpenSalesTickets []Ticket `json:"openSalesTickets,omitempty" xmlrpc:"openSalesTickets,omitempty"` + + // A count of + OpenStackAccountLinkCount *uint `json:"openStackAccountLinkCount,omitempty" xmlrpc:"openStackAccountLinkCount,omitempty"` + + // no documentation yet + OpenStackAccountLinks []Account_Link `json:"openStackAccountLinks,omitempty" xmlrpc:"openStackAccountLinks,omitempty"` + + // An account's associated Openstack related Object Storage accounts. + OpenStackObjectStorage []Network_Storage `json:"openStackObjectStorage,omitempty" xmlrpc:"openStackObjectStorage,omitempty"` + + // A count of an account's associated Openstack related Object Storage accounts. + OpenStackObjectStorageCount *uint `json:"openStackObjectStorageCount,omitempty" xmlrpc:"openStackObjectStorageCount,omitempty"` + + // A count of the open support tickets associated with an account. + OpenSupportTicketCount *uint `json:"openSupportTicketCount,omitempty" xmlrpc:"openSupportTicketCount,omitempty"` + + // The open support tickets associated with an account. + OpenSupportTickets []Ticket `json:"openSupportTickets,omitempty" xmlrpc:"openSupportTickets,omitempty"` + + // A count of all open tickets associated with an account. + OpenTicketCount *uint `json:"openTicketCount,omitempty" xmlrpc:"openTicketCount,omitempty"` + + // All open tickets associated with an account. + OpenTickets []Ticket `json:"openTickets,omitempty" xmlrpc:"openTickets,omitempty"` + + // All open tickets associated with an account last edited by an employee. + OpenTicketsWaitingOnCustomer []Ticket `json:"openTicketsWaitingOnCustomer,omitempty" xmlrpc:"openTicketsWaitingOnCustomer,omitempty"` + + // A count of all open tickets associated with an account last edited by an employee. + OpenTicketsWaitingOnCustomerCount *uint `json:"openTicketsWaitingOnCustomerCount,omitempty" xmlrpc:"openTicketsWaitingOnCustomerCount,omitempty"` + + // A count of an account's associated billing orders excluding upgrades. + OrderCount *uint `json:"orderCount,omitempty" xmlrpc:"orderCount,omitempty"` + + // An account's associated billing orders excluding upgrades. + Orders []Billing_Order `json:"orders,omitempty" xmlrpc:"orders,omitempty"` + + // A count of the billing items that have no parent billing item. These are items that don't necessarily belong to a single server. + OrphanBillingItemCount *uint `json:"orphanBillingItemCount,omitempty" xmlrpc:"orphanBillingItemCount,omitempty"` + + // The billing items that have no parent billing item. These are items that don't necessarily belong to a single server. + OrphanBillingItems []Billing_Item `json:"orphanBillingItems,omitempty" xmlrpc:"orphanBillingItems,omitempty"` + + // A count of + OwnedBrandCount *uint `json:"ownedBrandCount,omitempty" xmlrpc:"ownedBrandCount,omitempty"` + + // no documentation yet + OwnedBrands []Brand `json:"ownedBrands,omitempty" xmlrpc:"ownedBrands,omitempty"` + + // A count of + OwnedHardwareGenericComponentModelCount *uint `json:"ownedHardwareGenericComponentModelCount,omitempty" xmlrpc:"ownedHardwareGenericComponentModelCount,omitempty"` + + // no documentation yet + OwnedHardwareGenericComponentModels []Hardware_Component_Model_Generic `json:"ownedHardwareGenericComponentModels,omitempty" xmlrpc:"ownedHardwareGenericComponentModels,omitempty"` + + // A count of + PaymentProcessorCount *uint `json:"paymentProcessorCount,omitempty" xmlrpc:"paymentProcessorCount,omitempty"` + + // no documentation yet + PaymentProcessors []Billing_Payment_Processor `json:"paymentProcessors,omitempty" xmlrpc:"paymentProcessors,omitempty"` + + // A count of + PendingEventCount *uint `json:"pendingEventCount,omitempty" xmlrpc:"pendingEventCount,omitempty"` + + // no documentation yet + PendingEvents []Notification_Occurrence_Event `json:"pendingEvents,omitempty" xmlrpc:"pendingEvents,omitempty"` + + // An account's latest open (pending) invoice. + PendingInvoice *Billing_Invoice `json:"pendingInvoice,omitempty" xmlrpc:"pendingInvoice,omitempty"` + + // A count of a list of top-level invoice items that are on an account's currently pending invoice. + PendingInvoiceTopLevelItemCount *uint `json:"pendingInvoiceTopLevelItemCount,omitempty" xmlrpc:"pendingInvoiceTopLevelItemCount,omitempty"` + + // A list of top-level invoice items that are on an account's currently pending invoice. + PendingInvoiceTopLevelItems []Billing_Invoice_Item `json:"pendingInvoiceTopLevelItems,omitempty" xmlrpc:"pendingInvoiceTopLevelItems,omitempty"` + + // The total amount of an account's pending invoice, if one exists. + PendingInvoiceTotalAmount *Float64 `json:"pendingInvoiceTotalAmount,omitempty" xmlrpc:"pendingInvoiceTotalAmount,omitempty"` + + // The total one-time charges for an account's pending invoice, if one exists. In other words, it is the sum of one-time charges, setup fees, and labor fees. It does not include taxes. + PendingInvoiceTotalOneTimeAmount *Float64 `json:"pendingInvoiceTotalOneTimeAmount,omitempty" xmlrpc:"pendingInvoiceTotalOneTimeAmount,omitempty"` + + // The sum of all the taxes related to one time charges for an account's pending invoice, if one exists. + PendingInvoiceTotalOneTimeTaxAmount *Float64 `json:"pendingInvoiceTotalOneTimeTaxAmount,omitempty" xmlrpc:"pendingInvoiceTotalOneTimeTaxAmount,omitempty"` + + // The total recurring amount of an account's pending invoice, if one exists. + PendingInvoiceTotalRecurringAmount *Float64 `json:"pendingInvoiceTotalRecurringAmount,omitempty" xmlrpc:"pendingInvoiceTotalRecurringAmount,omitempty"` + + // The total amount of the recurring taxes on an account's pending invoice, if one exists. + PendingInvoiceTotalRecurringTaxAmount *Float64 `json:"pendingInvoiceTotalRecurringTaxAmount,omitempty" xmlrpc:"pendingInvoiceTotalRecurringTaxAmount,omitempty"` + + // A count of an account's permission groups. + PermissionGroupCount *uint `json:"permissionGroupCount,omitempty" xmlrpc:"permissionGroupCount,omitempty"` + + // An account's permission groups. + PermissionGroups []User_Permission_Group `json:"permissionGroups,omitempty" xmlrpc:"permissionGroups,omitempty"` + + // A count of an account's user roles. + PermissionRoleCount *uint `json:"permissionRoleCount,omitempty" xmlrpc:"permissionRoleCount,omitempty"` + + // An account's user roles. + PermissionRoles []User_Permission_Role `json:"permissionRoles,omitempty" xmlrpc:"permissionRoles,omitempty"` + + // A count of + PortableStorageVolumeCount *uint `json:"portableStorageVolumeCount,omitempty" xmlrpc:"portableStorageVolumeCount,omitempty"` + + // no documentation yet + PortableStorageVolumes []Virtual_Disk_Image `json:"portableStorageVolumes,omitempty" xmlrpc:"portableStorageVolumes,omitempty"` + + // A count of customer specified URIs that are downloaded onto a newly provisioned or reloaded server. If the URI is sent over https it will be executed directly on the server. + PostProvisioningHookCount *uint `json:"postProvisioningHookCount,omitempty" xmlrpc:"postProvisioningHookCount,omitempty"` + + // Customer specified URIs that are downloaded onto a newly provisioned or reloaded server. If the URI is sent over https it will be executed directly on the server. + PostProvisioningHooks []Provisioning_Hook `json:"postProvisioningHooks,omitempty" xmlrpc:"postProvisioningHooks,omitempty"` + + // The postal code of the mailing address belonging to an account. + PostalCode *string `json:"postalCode,omitempty" xmlrpc:"postalCode,omitempty"` + + // A count of an account's associated portal users with PPTP VPN access. + PptpVpnUserCount *uint `json:"pptpVpnUserCount,omitempty" xmlrpc:"pptpVpnUserCount,omitempty"` + + // An account's associated portal users with PPTP VPN access. + PptpVpnUsers []User_Customer `json:"pptpVpnUsers,omitempty" xmlrpc:"pptpVpnUsers,omitempty"` + + // The total recurring amount for an accounts previous revenue. + PreviousRecurringRevenue *Float64 `json:"previousRecurringRevenue,omitempty" xmlrpc:"previousRecurringRevenue,omitempty"` + + // A count of the item price that an account is restricted to. + PriceRestrictionCount *uint `json:"priceRestrictionCount,omitempty" xmlrpc:"priceRestrictionCount,omitempty"` + + // The item price that an account is restricted to. + PriceRestrictions []Product_Item_Price_Account_Restriction `json:"priceRestrictions,omitempty" xmlrpc:"priceRestrictions,omitempty"` + + // A count of all priority one tickets associated with an account. + PriorityOneTicketCount *uint `json:"priorityOneTicketCount,omitempty" xmlrpc:"priorityOneTicketCount,omitempty"` + + // All priority one tickets associated with an account. + PriorityOneTickets []Ticket `json:"priorityOneTickets,omitempty" xmlrpc:"priorityOneTickets,omitempty"` + + // A count of dEPRECATED - This information can be pulled directly through tapping keys now - DEPRECATED. The allotments for this account and their servers. The private inbound and outbound bandwidth is calculated for each server in addition to the daily average network traffic since the last billing date. + PrivateAllotmentHardwareBandwidthDetailCount *uint `json:"privateAllotmentHardwareBandwidthDetailCount,omitempty" xmlrpc:"privateAllotmentHardwareBandwidthDetailCount,omitempty"` + + // DEPRECATED - This information can be pulled directly through tapping keys now - DEPRECATED. The allotments for this account and their servers. The private inbound and outbound bandwidth is calculated for each server in addition to the daily average network traffic since the last billing date. + PrivateAllotmentHardwareBandwidthDetails []Network_Bandwidth_Version1_Allotment `json:"privateAllotmentHardwareBandwidthDetails,omitempty" xmlrpc:"privateAllotmentHardwareBandwidthDetails,omitempty"` + + // A count of private and shared template group objects (parent only) for an account. + PrivateBlockDeviceTemplateGroupCount *uint `json:"privateBlockDeviceTemplateGroupCount,omitempty" xmlrpc:"privateBlockDeviceTemplateGroupCount,omitempty"` + + // Private and shared template group objects (parent only) for an account. + PrivateBlockDeviceTemplateGroups []Virtual_Guest_Block_Device_Template_Group `json:"privateBlockDeviceTemplateGroups,omitempty" xmlrpc:"privateBlockDeviceTemplateGroups,omitempty"` + + // A count of + PrivateIpAddressCount *uint `json:"privateIpAddressCount,omitempty" xmlrpc:"privateIpAddressCount,omitempty"` + + // no documentation yet + PrivateIpAddresses []Network_Subnet_IpAddress `json:"privateIpAddresses,omitempty" xmlrpc:"privateIpAddresses,omitempty"` + + // A count of the private network VLANs assigned to an account. + PrivateNetworkVlanCount *uint `json:"privateNetworkVlanCount,omitempty" xmlrpc:"privateNetworkVlanCount,omitempty"` + + // The private network VLANs assigned to an account. + PrivateNetworkVlans []Network_Vlan `json:"privateNetworkVlans,omitempty" xmlrpc:"privateNetworkVlans,omitempty"` + + // A count of all private subnets associated with an account. + PrivateSubnetCount *uint `json:"privateSubnetCount,omitempty" xmlrpc:"privateSubnetCount,omitempty"` + + // All private subnets associated with an account. + PrivateSubnets []Network_Subnet `json:"privateSubnets,omitempty" xmlrpc:"privateSubnets,omitempty"` + + // A count of dEPRECATED - This information can be pulled directly through tapping keys now - DEPRECATED. The allotments for this account and their servers. The public inbound and outbound bandwidth is calculated for each server in addition to the daily average network traffic since the last billing date. + PublicAllotmentHardwareBandwidthDetailCount *uint `json:"publicAllotmentHardwareBandwidthDetailCount,omitempty" xmlrpc:"publicAllotmentHardwareBandwidthDetailCount,omitempty"` + + // DEPRECATED - This information can be pulled directly through tapping keys now - DEPRECATED. The allotments for this account and their servers. The public inbound and outbound bandwidth is calculated for each server in addition to the daily average network traffic since the last billing date. + PublicAllotmentHardwareBandwidthDetails []Network_Bandwidth_Version1_Allotment `json:"publicAllotmentHardwareBandwidthDetails,omitempty" xmlrpc:"publicAllotmentHardwareBandwidthDetails,omitempty"` + + // A count of + PublicIpAddressCount *uint `json:"publicIpAddressCount,omitempty" xmlrpc:"publicIpAddressCount,omitempty"` + + // no documentation yet + PublicIpAddresses []Network_Subnet_IpAddress `json:"publicIpAddresses,omitempty" xmlrpc:"publicIpAddresses,omitempty"` + + // A count of the public network VLANs assigned to an account. + PublicNetworkVlanCount *uint `json:"publicNetworkVlanCount,omitempty" xmlrpc:"publicNetworkVlanCount,omitempty"` + + // The public network VLANs assigned to an account. + PublicNetworkVlans []Network_Vlan `json:"publicNetworkVlans,omitempty" xmlrpc:"publicNetworkVlans,omitempty"` + + // A count of all public network subnets associated with an account. + PublicSubnetCount *uint `json:"publicSubnetCount,omitempty" xmlrpc:"publicSubnetCount,omitempty"` + + // All public network subnets associated with an account. + PublicSubnets []Network_Subnet `json:"publicSubnets,omitempty" xmlrpc:"publicSubnets,omitempty"` + + // A count of an account's quotes. + QuoteCount *uint `json:"quoteCount,omitempty" xmlrpc:"quoteCount,omitempty"` + + // An account's quotes. + Quotes []Billing_Order_Quote `json:"quotes,omitempty" xmlrpc:"quotes,omitempty"` + + // A count of + RecentEventCount *uint `json:"recentEventCount,omitempty" xmlrpc:"recentEventCount,omitempty"` + + // no documentation yet + RecentEvents []Notification_Occurrence_Event `json:"recentEvents,omitempty" xmlrpc:"recentEvents,omitempty"` + + // The Referral Partner for this account, if any. + ReferralPartner *Account `json:"referralPartner,omitempty" xmlrpc:"referralPartner,omitempty"` + + // A count of if this is a account is a referral partner, the accounts this referral partner has referred + ReferredAccountCount *uint `json:"referredAccountCount,omitempty" xmlrpc:"referredAccountCount,omitempty"` + + // If this is a account is a referral partner, the accounts this referral partner has referred + ReferredAccounts []Account `json:"referredAccounts,omitempty" xmlrpc:"referredAccounts,omitempty"` + + // A count of + RegulatedWorkloadCount *uint `json:"regulatedWorkloadCount,omitempty" xmlrpc:"regulatedWorkloadCount,omitempty"` + + // no documentation yet + RegulatedWorkloads []Legal_RegulatedWorkload `json:"regulatedWorkloads,omitempty" xmlrpc:"regulatedWorkloads,omitempty"` + + // A count of remote management command requests for an account + RemoteManagementCommandRequestCount *uint `json:"remoteManagementCommandRequestCount,omitempty" xmlrpc:"remoteManagementCommandRequestCount,omitempty"` + + // Remote management command requests for an account + RemoteManagementCommandRequests []Hardware_Component_RemoteManagement_Command_Request `json:"remoteManagementCommandRequests,omitempty" xmlrpc:"remoteManagementCommandRequests,omitempty"` + + // A count of the Replication events for all Network Storage volumes on an account. + ReplicationEventCount *uint `json:"replicationEventCount,omitempty" xmlrpc:"replicationEventCount,omitempty"` + + // The Replication events for all Network Storage volumes on an account. + ReplicationEvents []Network_Storage_Event `json:"replicationEvents,omitempty" xmlrpc:"replicationEvents,omitempty"` + + // Indicates whether newly created users under this account will be associated with IBMid via an email requiring a response, or not. + RequireSilentIBMidUserCreation *bool `json:"requireSilentIBMidUserCreation,omitempty" xmlrpc:"requireSilentIBMidUserCreation,omitempty"` + + // A count of an account's associated top-level resource groups. + ResourceGroupCount *uint `json:"resourceGroupCount,omitempty" xmlrpc:"resourceGroupCount,omitempty"` + + // An account's associated top-level resource groups. + ResourceGroups []Resource_Group `json:"resourceGroups,omitempty" xmlrpc:"resourceGroups,omitempty"` + + // A count of all Routers that an accounts VLANs reside on + RouterCount *uint `json:"routerCount,omitempty" xmlrpc:"routerCount,omitempty"` + + // All Routers that an accounts VLANs reside on + Routers []Hardware `json:"routers,omitempty" xmlrpc:"routers,omitempty"` + + // An account's reverse WHOIS data. This data is used when making SWIP requests. + RwhoisData *Network_Subnet_Rwhois_Data `json:"rwhoisData,omitempty" xmlrpc:"rwhoisData,omitempty"` + + // no documentation yet + SalesforceAccountLink *Account_Link `json:"salesforceAccountLink,omitempty" xmlrpc:"salesforceAccountLink,omitempty"` + + // The SAML configuration for this account. + SamlAuthentication *Account_Authentication_Saml `json:"samlAuthentication,omitempty" xmlrpc:"samlAuthentication,omitempty"` + + // A count of all scale groups on this account. + ScaleGroupCount *uint `json:"scaleGroupCount,omitempty" xmlrpc:"scaleGroupCount,omitempty"` + + // All scale groups on this account. + ScaleGroups []Scale_Group `json:"scaleGroups,omitempty" xmlrpc:"scaleGroups,omitempty"` + + // A count of the secondary DNS records for a SoftLayer customer account. + SecondaryDomainCount *uint `json:"secondaryDomainCount,omitempty" xmlrpc:"secondaryDomainCount,omitempty"` + + // The secondary DNS records for a SoftLayer customer account. + SecondaryDomains []Dns_Secondary `json:"secondaryDomains,omitempty" xmlrpc:"secondaryDomains,omitempty"` + + // A count of stored security certificates (ie. SSL) + SecurityCertificateCount *uint `json:"securityCertificateCount,omitempty" xmlrpc:"securityCertificateCount,omitempty"` + + // Stored security certificates (ie. SSL) + SecurityCertificates []Security_Certificate `json:"securityCertificates,omitempty" xmlrpc:"securityCertificates,omitempty"` + + // A count of the security groups belonging to this account. + SecurityGroupCount *uint `json:"securityGroupCount,omitempty" xmlrpc:"securityGroupCount,omitempty"` + + // The security groups belonging to this account. + SecurityGroups []Network_SecurityGroup `json:"securityGroups,omitempty" xmlrpc:"securityGroups,omitempty"` + + // A count of an account's vulnerability scan requests. + SecurityScanRequestCount *uint `json:"securityScanRequestCount,omitempty" xmlrpc:"securityScanRequestCount,omitempty"` + + // An account's vulnerability scan requests. + SecurityScanRequests []Network_Security_Scanner_Request `json:"securityScanRequests,omitempty" xmlrpc:"securityScanRequests,omitempty"` + + // A count of the service billing items that will be on an account's next invoice. + ServiceBillingItemCount *uint `json:"serviceBillingItemCount,omitempty" xmlrpc:"serviceBillingItemCount,omitempty"` + + // The service billing items that will be on an account's next invoice. + ServiceBillingItems []Billing_Item `json:"serviceBillingItems,omitempty" xmlrpc:"serviceBillingItems,omitempty"` + + // A count of shipments that belong to the customer's account. + ShipmentCount *uint `json:"shipmentCount,omitempty" xmlrpc:"shipmentCount,omitempty"` + + // Shipments that belong to the customer's account. + Shipments []Account_Shipment `json:"shipments,omitempty" xmlrpc:"shipments,omitempty"` + + // A count of customer specified SSH keys that can be implemented onto a newly provisioned or reloaded server. + SshKeyCount *uint `json:"sshKeyCount,omitempty" xmlrpc:"sshKeyCount,omitempty"` + + // Customer specified SSH keys that can be implemented onto a newly provisioned or reloaded server. + SshKeys []Security_Ssh_Key `json:"sshKeys,omitempty" xmlrpc:"sshKeys,omitempty"` + + // A count of an account's associated portal users with SSL VPN access. + SslVpnUserCount *uint `json:"sslVpnUserCount,omitempty" xmlrpc:"sslVpnUserCount,omitempty"` + + // An account's associated portal users with SSL VPN access. + SslVpnUsers []User_Customer `json:"sslVpnUsers,omitempty" xmlrpc:"sslVpnUsers,omitempty"` + + // A count of an account's virtual guest objects that are hosted on a user provisioned hypervisor. + StandardPoolVirtualGuestCount *uint `json:"standardPoolVirtualGuestCount,omitempty" xmlrpc:"standardPoolVirtualGuestCount,omitempty"` + + // An account's virtual guest objects that are hosted on a user provisioned hypervisor. + StandardPoolVirtualGuests []Virtual_Guest `json:"standardPoolVirtualGuests,omitempty" xmlrpc:"standardPoolVirtualGuests,omitempty"` + + // A two-letter abbreviation of the state in the mailing address belonging to an account. If an account does not reside in a province then this is typically blank. + State *string `json:"state,omitempty" xmlrpc:"state,omitempty"` + + // The date of an account's last status change. + StatusDate *Time `json:"statusDate,omitempty" xmlrpc:"statusDate,omitempty"` + + // A count of all network subnets associated with an account. + SubnetCount *uint `json:"subnetCount,omitempty" xmlrpc:"subnetCount,omitempty"` + + // A count of + SubnetRegistrationCount *uint `json:"subnetRegistrationCount,omitempty" xmlrpc:"subnetRegistrationCount,omitempty"` + + // A count of + SubnetRegistrationDetailCount *uint `json:"subnetRegistrationDetailCount,omitempty" xmlrpc:"subnetRegistrationDetailCount,omitempty"` + + // no documentation yet + SubnetRegistrationDetails []Account_Regional_Registry_Detail `json:"subnetRegistrationDetails,omitempty" xmlrpc:"subnetRegistrationDetails,omitempty"` + + // no documentation yet + SubnetRegistrations []Network_Subnet_Registration `json:"subnetRegistrations,omitempty" xmlrpc:"subnetRegistrations,omitempty"` + + // All network subnets associated with an account. + Subnets []Network_Subnet `json:"subnets,omitempty" xmlrpc:"subnets,omitempty"` + + // A count of the SoftLayer employees that an account is assigned to. + SupportRepresentativeCount *uint `json:"supportRepresentativeCount,omitempty" xmlrpc:"supportRepresentativeCount,omitempty"` + + // The SoftLayer employees that an account is assigned to. + SupportRepresentatives []User_Employee `json:"supportRepresentatives,omitempty" xmlrpc:"supportRepresentatives,omitempty"` + + // A count of the active support subscriptions for this account. + SupportSubscriptionCount *uint `json:"supportSubscriptionCount,omitempty" xmlrpc:"supportSubscriptionCount,omitempty"` + + // The active support subscriptions for this account. + SupportSubscriptions []Billing_Item `json:"supportSubscriptions,omitempty" xmlrpc:"supportSubscriptions,omitempty"` + + // no documentation yet + SupportTier *string `json:"supportTier,omitempty" xmlrpc:"supportTier,omitempty"` + + // A flag indicating to suppress invoices. + SuppressInvoicesFlag *bool `json:"suppressInvoicesFlag,omitempty" xmlrpc:"suppressInvoicesFlag,omitempty"` + + // A count of + TagCount *uint `json:"tagCount,omitempty" xmlrpc:"tagCount,omitempty"` + + // no documentation yet + Tags []Tag `json:"tags,omitempty" xmlrpc:"tags,omitempty"` + + // A count of an account's associated tickets. + TicketCount *uint `json:"ticketCount,omitempty" xmlrpc:"ticketCount,omitempty"` + + // An account's associated tickets. + Tickets []Ticket `json:"tickets,omitempty" xmlrpc:"tickets,omitempty"` + + // Tickets closed within the last 72 hours or last 10 tickets, whichever is less, associated with an account. + TicketsClosedInTheLastThreeDays []Ticket `json:"ticketsClosedInTheLastThreeDays,omitempty" xmlrpc:"ticketsClosedInTheLastThreeDays,omitempty"` + + // A count of tickets closed within the last 72 hours or last 10 tickets, whichever is less, associated with an account. + TicketsClosedInTheLastThreeDaysCount *uint `json:"ticketsClosedInTheLastThreeDaysCount,omitempty" xmlrpc:"ticketsClosedInTheLastThreeDaysCount,omitempty"` + + // Tickets closed today associated with an account. + TicketsClosedToday []Ticket `json:"ticketsClosedToday,omitempty" xmlrpc:"ticketsClosedToday,omitempty"` + + // A count of tickets closed today associated with an account. + TicketsClosedTodayCount *uint `json:"ticketsClosedTodayCount,omitempty" xmlrpc:"ticketsClosedTodayCount,omitempty"` + + // A count of an account's associated Transcode account. + TranscodeAccountCount *uint `json:"transcodeAccountCount,omitempty" xmlrpc:"transcodeAccountCount,omitempty"` + + // An account's associated Transcode account. + TranscodeAccounts []Network_Media_Transcode_Account `json:"transcodeAccounts,omitempty" xmlrpc:"transcodeAccounts,omitempty"` + + // A count of an account's associated upgrade requests. + UpgradeRequestCount *uint `json:"upgradeRequestCount,omitempty" xmlrpc:"upgradeRequestCount,omitempty"` + + // An account's associated upgrade requests. + UpgradeRequests []Product_Upgrade_Request `json:"upgradeRequests,omitempty" xmlrpc:"upgradeRequests,omitempty"` + + // A count of an account's portal users. + UserCount *uint `json:"userCount,omitempty" xmlrpc:"userCount,omitempty"` + + // An account's portal users. + Users []User_Customer `json:"users,omitempty" xmlrpc:"users,omitempty"` + + // A count of stored security certificates that are not expired (ie. SSL) + ValidSecurityCertificateCount *uint `json:"validSecurityCertificateCount,omitempty" xmlrpc:"validSecurityCertificateCount,omitempty"` + + // Stored security certificates that are not expired (ie. SSL) + ValidSecurityCertificates []Security_Certificate `json:"validSecurityCertificates,omitempty" xmlrpc:"validSecurityCertificates,omitempty"` + + // Return 0 if vpn updates are currently in progress on this account otherwise 1. + VdrUpdatesInProgressFlag *bool `json:"vdrUpdatesInProgressFlag,omitempty" xmlrpc:"vdrUpdatesInProgressFlag,omitempty"` + + // A count of the bandwidth pooling for this account. + VirtualDedicatedRackCount *uint `json:"virtualDedicatedRackCount,omitempty" xmlrpc:"virtualDedicatedRackCount,omitempty"` + + // The bandwidth pooling for this account. + VirtualDedicatedRacks []Network_Bandwidth_Version1_Allotment `json:"virtualDedicatedRacks,omitempty" xmlrpc:"virtualDedicatedRacks,omitempty"` + + // A count of an account's associated virtual server virtual disk images. + VirtualDiskImageCount *uint `json:"virtualDiskImageCount,omitempty" xmlrpc:"virtualDiskImageCount,omitempty"` + + // An account's associated virtual server virtual disk images. + VirtualDiskImages []Virtual_Disk_Image `json:"virtualDiskImages,omitempty" xmlrpc:"virtualDiskImages,omitempty"` + + // A count of an account's associated virtual guest objects. + VirtualGuestCount *uint `json:"virtualGuestCount,omitempty" xmlrpc:"virtualGuestCount,omitempty"` + + // An account's associated virtual guest objects. + VirtualGuests []Virtual_Guest `json:"virtualGuests,omitempty" xmlrpc:"virtualGuests,omitempty"` + + // An account's associated virtual guest objects currently over bandwidth allocation. + VirtualGuestsOverBandwidthAllocation []Virtual_Guest `json:"virtualGuestsOverBandwidthAllocation,omitempty" xmlrpc:"virtualGuestsOverBandwidthAllocation,omitempty"` + + // A count of an account's associated virtual guest objects currently over bandwidth allocation. + VirtualGuestsOverBandwidthAllocationCount *uint `json:"virtualGuestsOverBandwidthAllocationCount,omitempty" xmlrpc:"virtualGuestsOverBandwidthAllocationCount,omitempty"` + + // An account's associated virtual guest objects currently over bandwidth allocation. + VirtualGuestsProjectedOverBandwidthAllocation []Virtual_Guest `json:"virtualGuestsProjectedOverBandwidthAllocation,omitempty" xmlrpc:"virtualGuestsProjectedOverBandwidthAllocation,omitempty"` + + // A count of an account's associated virtual guest objects currently over bandwidth allocation. + VirtualGuestsProjectedOverBandwidthAllocationCount *uint `json:"virtualGuestsProjectedOverBandwidthAllocationCount,omitempty" xmlrpc:"virtualGuestsProjectedOverBandwidthAllocationCount,omitempty"` + + // All virtual guests associated with an account that has the cPanel web hosting control panel installed. + VirtualGuestsWithCpanel []Virtual_Guest `json:"virtualGuestsWithCpanel,omitempty" xmlrpc:"virtualGuestsWithCpanel,omitempty"` + + // A count of all virtual guests associated with an account that has the cPanel web hosting control panel installed. + VirtualGuestsWithCpanelCount *uint `json:"virtualGuestsWithCpanelCount,omitempty" xmlrpc:"virtualGuestsWithCpanelCount,omitempty"` + + // All virtual guests associated with an account that have McAfee Secure software components. + VirtualGuestsWithMcafee []Virtual_Guest `json:"virtualGuestsWithMcafee,omitempty" xmlrpc:"virtualGuestsWithMcafee,omitempty"` + + // All virtual guests associated with an account that have McAfee Secure AntiVirus for Redhat software components. + VirtualGuestsWithMcafeeAntivirusRedhat []Virtual_Guest `json:"virtualGuestsWithMcafeeAntivirusRedhat,omitempty" xmlrpc:"virtualGuestsWithMcafeeAntivirusRedhat,omitempty"` + + // A count of all virtual guests associated with an account that have McAfee Secure AntiVirus for Redhat software components. + VirtualGuestsWithMcafeeAntivirusRedhatCount *uint `json:"virtualGuestsWithMcafeeAntivirusRedhatCount,omitempty" xmlrpc:"virtualGuestsWithMcafeeAntivirusRedhatCount,omitempty"` + + // A count of all virtual guests associated with an account that has McAfee Secure AntiVirus for Windows software components. + VirtualGuestsWithMcafeeAntivirusWindowCount *uint `json:"virtualGuestsWithMcafeeAntivirusWindowCount,omitempty" xmlrpc:"virtualGuestsWithMcafeeAntivirusWindowCount,omitempty"` + + // All virtual guests associated with an account that has McAfee Secure AntiVirus for Windows software components. + VirtualGuestsWithMcafeeAntivirusWindows []Virtual_Guest `json:"virtualGuestsWithMcafeeAntivirusWindows,omitempty" xmlrpc:"virtualGuestsWithMcafeeAntivirusWindows,omitempty"` + + // A count of all virtual guests associated with an account that have McAfee Secure software components. + VirtualGuestsWithMcafeeCount *uint `json:"virtualGuestsWithMcafeeCount,omitempty" xmlrpc:"virtualGuestsWithMcafeeCount,omitempty"` + + // All virtual guests associated with an account that has McAfee Secure Intrusion Detection System software components. + VirtualGuestsWithMcafeeIntrusionDetectionSystem []Virtual_Guest `json:"virtualGuestsWithMcafeeIntrusionDetectionSystem,omitempty" xmlrpc:"virtualGuestsWithMcafeeIntrusionDetectionSystem,omitempty"` + + // A count of all virtual guests associated with an account that has McAfee Secure Intrusion Detection System software components. + VirtualGuestsWithMcafeeIntrusionDetectionSystemCount *uint `json:"virtualGuestsWithMcafeeIntrusionDetectionSystemCount,omitempty" xmlrpc:"virtualGuestsWithMcafeeIntrusionDetectionSystemCount,omitempty"` + + // All virtual guests associated with an account that has the Plesk web hosting control panel installed. + VirtualGuestsWithPlesk []Virtual_Guest `json:"virtualGuestsWithPlesk,omitempty" xmlrpc:"virtualGuestsWithPlesk,omitempty"` + + // A count of all virtual guests associated with an account that has the Plesk web hosting control panel installed. + VirtualGuestsWithPleskCount *uint `json:"virtualGuestsWithPleskCount,omitempty" xmlrpc:"virtualGuestsWithPleskCount,omitempty"` + + // All virtual guests associated with an account that have the QuantaStor storage system installed. + VirtualGuestsWithQuantastor []Virtual_Guest `json:"virtualGuestsWithQuantastor,omitempty" xmlrpc:"virtualGuestsWithQuantastor,omitempty"` + + // A count of all virtual guests associated with an account that have the QuantaStor storage system installed. + VirtualGuestsWithQuantastorCount *uint `json:"virtualGuestsWithQuantastorCount,omitempty" xmlrpc:"virtualGuestsWithQuantastorCount,omitempty"` + + // All virtual guests associated with an account that has the Urchin web traffic analytics package installed. + VirtualGuestsWithUrchin []Virtual_Guest `json:"virtualGuestsWithUrchin,omitempty" xmlrpc:"virtualGuestsWithUrchin,omitempty"` + + // A count of all virtual guests associated with an account that has the Urchin web traffic analytics package installed. + VirtualGuestsWithUrchinCount *uint `json:"virtualGuestsWithUrchinCount,omitempty" xmlrpc:"virtualGuestsWithUrchinCount,omitempty"` + + // The bandwidth pooling for this account. + VirtualPrivateRack *Network_Bandwidth_Version1_Allotment `json:"virtualPrivateRack,omitempty" xmlrpc:"virtualPrivateRack,omitempty"` + + // An account's associated virtual server archived storage repositories. + VirtualStorageArchiveRepositories []Virtual_Storage_Repository `json:"virtualStorageArchiveRepositories,omitempty" xmlrpc:"virtualStorageArchiveRepositories,omitempty"` + + // A count of an account's associated virtual server archived storage repositories. + VirtualStorageArchiveRepositoryCount *uint `json:"virtualStorageArchiveRepositoryCount,omitempty" xmlrpc:"virtualStorageArchiveRepositoryCount,omitempty"` + + // An account's associated virtual server public storage repositories. + VirtualStoragePublicRepositories []Virtual_Storage_Repository `json:"virtualStoragePublicRepositories,omitempty" xmlrpc:"virtualStoragePublicRepositories,omitempty"` + + // A count of an account's associated virtual server public storage repositories. + VirtualStoragePublicRepositoryCount *uint `json:"virtualStoragePublicRepositoryCount,omitempty" xmlrpc:"virtualStoragePublicRepositoryCount,omitempty"` +} + +// An unfortunate facet of the hosting business is the necessity of with legal and network abuse inquiries. As these types of inquiries frequently contain sensitive information SoftLayer keeps a separate account contact email address for direct contact about legal and abuse matters, modeled by the SoftLayer_Account_AbuseEmail data type. SoftLayer will typically email an account's abuse email addresses in these types of cases, and an email is automatically sent to an account's abuse email addresses when a legal or abuse ticket is created or updated. +type Account_AbuseEmail struct { + Entity + + // The account associated with an abuse email address. + Account *Account `json:"account,omitempty" xmlrpc:"account,omitempty"` + + // A valid email address. + Email *string `json:"email,omitempty" xmlrpc:"email,omitempty"` +} + +// The SoftLayer_Account_Address data type contains information on an address associated with a SoftLayer account. +type Account_Address struct { + Entity + + // The account to which this address belongs. + Account *Account `json:"account,omitempty" xmlrpc:"account,omitempty"` + + // no documentation yet + AccountId *int `json:"accountId,omitempty" xmlrpc:"accountId,omitempty"` + + // Line 1 of the address (normally the street address). + Address1 *string `json:"address1,omitempty" xmlrpc:"address1,omitempty"` + + // Line 2 of the address. + Address2 *string `json:"address2,omitempty" xmlrpc:"address2,omitempty"` + + // The city of the address. + City *string `json:"city,omitempty" xmlrpc:"city,omitempty"` + + // The contact name (person, office) of the address. + ContactName *string `json:"contactName,omitempty" xmlrpc:"contactName,omitempty"` + + // The country of the address. + Country *string `json:"country,omitempty" xmlrpc:"country,omitempty"` + + // The customer user who created this address. + CreateUser *User_Customer `json:"createUser,omitempty" xmlrpc:"createUser,omitempty"` + + // The description of the address. + Description *string `json:"description,omitempty" xmlrpc:"description,omitempty"` + + // The unique id of the address. + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // Flag to show whether the address is active. + IsActive *int `json:"isActive,omitempty" xmlrpc:"isActive,omitempty"` + + // The location of this address. + Location *Location `json:"location,omitempty" xmlrpc:"location,omitempty"` + + // The location id of the address. + LocationId *int `json:"locationId,omitempty" xmlrpc:"locationId,omitempty"` + + // The employee who last modified this address. + ModifyEmployee *User_Employee `json:"modifyEmployee,omitempty" xmlrpc:"modifyEmployee,omitempty"` + + // The customer user who last modified this address. + ModifyUser *User_Customer `json:"modifyUser,omitempty" xmlrpc:"modifyUser,omitempty"` + + // The postal (zip) code of the address. + PostalCode *string `json:"postalCode,omitempty" xmlrpc:"postalCode,omitempty"` + + // The state of the address. + State *string `json:"state,omitempty" xmlrpc:"state,omitempty"` + + // An account address' type. + Type *Account_Address_Type `json:"type,omitempty" xmlrpc:"type,omitempty"` +} + +// no documentation yet +type Account_Address_Type struct { + Entity + + // DEPRECATED + CreateDate *Time `json:"createDate,omitempty" xmlrpc:"createDate,omitempty"` + + // no documentation yet + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // no documentation yet + KeyName *string `json:"keyName,omitempty" xmlrpc:"keyName,omitempty"` + + // no documentation yet + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` +} + +// This service allows for a unique identifier to be associated to an existing customer account. +type Account_Affiliation struct { + Entity + + // The account that an affiliation belongs to. + Account *Account `json:"account,omitempty" xmlrpc:"account,omitempty"` + + // A customer account's internal identifier. + AccountId *int `json:"accountId,omitempty" xmlrpc:"accountId,omitempty"` + + // An affiliate identifier associated with the customer account. + AffiliateId *string `json:"affiliateId,omitempty" xmlrpc:"affiliateId,omitempty"` + + // The date an account affiliation was created. + CreateDate *Time `json:"createDate,omitempty" xmlrpc:"createDate,omitempty"` + + // A customer affiliation internal identifier. + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // The date an account affiliation was last modified. + ModifyDate *Time `json:"modifyDate,omitempty" xmlrpc:"modifyDate,omitempty"` +} + +// no documentation yet +type Account_Agreement struct { + Entity + + // no documentation yet + Account *Account `json:"account,omitempty" xmlrpc:"account,omitempty"` + + // The type of agreement. + AgreementType *Account_Agreement_Type `json:"agreementType,omitempty" xmlrpc:"agreementType,omitempty"` + + // The type of agreement identifier. + AgreementTypeId *int `json:"agreementTypeId,omitempty" xmlrpc:"agreementTypeId,omitempty"` + + // A count of the files attached to an agreement. + AttachedBillingAgreementFileCount *uint `json:"attachedBillingAgreementFileCount,omitempty" xmlrpc:"attachedBillingAgreementFileCount,omitempty"` + + // The files attached to an agreement. + AttachedBillingAgreementFiles []Account_MasterServiceAgreement `json:"attachedBillingAgreementFiles,omitempty" xmlrpc:"attachedBillingAgreementFiles,omitempty"` + + // no documentation yet + AutoRenew *int `json:"autoRenew,omitempty" xmlrpc:"autoRenew,omitempty"` + + // A count of the billing items associated with an agreement. + BillingItemCount *uint `json:"billingItemCount,omitempty" xmlrpc:"billingItemCount,omitempty"` + + // The billing items associated with an agreement. + BillingItems []Billing_Item `json:"billingItems,omitempty" xmlrpc:"billingItems,omitempty"` + + // no documentation yet + CancellationFee *int `json:"cancellationFee,omitempty" xmlrpc:"cancellationFee,omitempty"` + + // The date an agreement was created. + CreateDate *Time `json:"createDate,omitempty" xmlrpc:"createDate,omitempty"` + + // The duration in months of an agreement. + DurationMonths *int `json:"durationMonths,omitempty" xmlrpc:"durationMonths,omitempty"` + + // The end date of an agreement. + EndDate *Time `json:"endDate,omitempty" xmlrpc:"endDate,omitempty"` + + // An agreement's internal identifier. + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // The effective start date of an agreement. + StartDate *Time `json:"startDate,omitempty" xmlrpc:"startDate,omitempty"` + + // The status of the agreement. + Status *Account_Agreement_Status `json:"status,omitempty" xmlrpc:"status,omitempty"` + + // The status identifier for an agreement. + StatusId *int `json:"statusId,omitempty" xmlrpc:"statusId,omitempty"` + + // The title of an agreement. + Title *string `json:"title,omitempty" xmlrpc:"title,omitempty"` + + // A count of the top level billing item associated with an agreement. + TopLevelBillingItemCount *uint `json:"topLevelBillingItemCount,omitempty" xmlrpc:"topLevelBillingItemCount,omitempty"` + + // The top level billing item associated with an agreement. + TopLevelBillingItems []Billing_Item `json:"topLevelBillingItems,omitempty" xmlrpc:"topLevelBillingItems,omitempty"` +} + +// no documentation yet +type Account_Agreement_Status struct { + Entity + + // The name of the agreement status. + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` +} + +// no documentation yet +type Account_Agreement_Type struct { + Entity + + // The name of the agreement type. + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` +} + +// A SoftLayer_Account_Attachment_Employee models an assignment of a single [[SoftLayer_User_Employee|employee]] with a single [[SoftLayer_Account|account]] +type Account_Attachment_Employee struct { + Entity + + // A [[SoftLayer_Account|account]] that is assigned to a [[SoftLayer_User_Employee|employee]]. + Account *Account `json:"account,omitempty" xmlrpc:"account,omitempty"` + + // A [[SoftLayer_User_Employee|employee]] that is assigned to a [[SoftLayer_Account|account]]. + Employee *User_Employee `json:"employee,omitempty" xmlrpc:"employee,omitempty"` + + // A [[SoftLayer_User_Employee|employee]] that is assigned to a [[SoftLayer_Account|account]]. + EmployeeRole *Account_Attachment_Employee_Role `json:"employeeRole,omitempty" xmlrpc:"employeeRole,omitempty"` + + // Role identifier. + RoleId *int `json:"roleId,omitempty" xmlrpc:"roleId,omitempty"` +} + +// no documentation yet +type Account_Attachment_Employee_Role struct { + Entity + + // no documentation yet + Keyname *string `json:"keyname,omitempty" xmlrpc:"keyname,omitempty"` + + // no documentation yet + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` +} + +// Many SoftLayer customer accounts have individual attributes assigned to them that describe features or special features for that account, such as special pricing, account statuses, and ordering instructions. The SoftLayer_Account_Attribute data type contains information relating to a single SoftLayer_Account attribute. +type Account_Attribute struct { + Entity + + // The SoftLayer customer account that has an attribute. + Account *Account `json:"account,omitempty" xmlrpc:"account,omitempty"` + + // The type of attribute assigned to a SoftLayer customer account. + AccountAttributeType *Account_Attribute_Type `json:"accountAttributeType,omitempty" xmlrpc:"accountAttributeType,omitempty"` + + // The internal identifier of the type of attribute that a SoftLayer customer account attribute belongs to. + AccountAttributeTypeId *int `json:"accountAttributeTypeId,omitempty" xmlrpc:"accountAttributeTypeId,omitempty"` + + // The internal identifier of the SoftLayer customer account that is assigned an account attribute. + AccountId *int `json:"accountId,omitempty" xmlrpc:"accountId,omitempty"` + + // A SoftLayer customer account attribute's internal identifier. + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // A SoftLayer account attribute's value. + Value *string `json:"value,omitempty" xmlrpc:"value,omitempty"` +} + +// SoftLayer_Account_Attribute_Type models the type of attribute that can be assigned to a SoftLayer customer account. +type Account_Attribute_Type struct { + Entity + + // A brief description of a SoftLayer account attribute type. + Description *string `json:"description,omitempty" xmlrpc:"description,omitempty"` + + // A SoftLayer account attribute type's internal identifier. + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // A SoftLayer account attribute type's key name. This is typically a shorter version of an attribute type's name. + KeyName *string `json:"keyName,omitempty" xmlrpc:"keyName,omitempty"` + + // A SoftLayer account attribute type's name. + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` +} + +// Account authentication has many different settings that can be set. This class allows the customer or employee to set these settigns. +type Account_Authentication_Attribute struct { + Entity + + // The SoftLayer customer account. + Account *Account `json:"account,omitempty" xmlrpc:"account,omitempty"` + + // The internal identifier of the SoftLayer customer account that is assigned an account authenction attribute. + AccountId *int `json:"accountId,omitempty" xmlrpc:"accountId,omitempty"` + + // The SoftLayer account authentication that has an attribute. + AuthenticationRecord *Account_Authentication_Saml `json:"authenticationRecord,omitempty" xmlrpc:"authenticationRecord,omitempty"` + + // A SoftLayer account authenction attribute's internal identifier. + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // The type of attribute assigned to a SoftLayer account authentication. + Type *Account_Authentication_Attribute_Type `json:"type,omitempty" xmlrpc:"type,omitempty"` + + // The internal identifier of the type of attribute that a SoftLayer account authenction attribute belongs to. + TypeId *int `json:"typeId,omitempty" xmlrpc:"typeId,omitempty"` + + // A SoftLayer account authenction attribute's value. + Value *string `json:"value,omitempty" xmlrpc:"value,omitempty"` +} + +// SoftLayer_Account_Authentication_Attribute_Type models the type of attribute that can be assigned to a SoftLayer customer account authentication. +type Account_Authentication_Attribute_Type struct { + Entity + + // A brief description of a SoftLayer account authentication attribute type. + Description *string `json:"description,omitempty" xmlrpc:"description,omitempty"` + + // A SoftLayer account authentication attribute type's internal identifier. + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // A SoftLayer account authentication attribute type's key name. This is typically a shorter version of an attribute type's name. + KeyName *string `json:"keyName,omitempty" xmlrpc:"keyName,omitempty"` + + // A SoftLayer account authentication attribute type's name. + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` + + // An example of what you can put in as your value. + ValueExample *string `json:"valueExample,omitempty" xmlrpc:"valueExample,omitempty"` +} + +// no documentation yet +type Account_Authentication_OpenIdConnect_Option struct { + Entity + + // no documentation yet + Key *string `json:"key,omitempty" xmlrpc:"key,omitempty"` + + // no documentation yet + Value *string `json:"value,omitempty" xmlrpc:"value,omitempty"` +} + +// no documentation yet +type Account_Authentication_OpenIdConnect_RegistrationInformation struct { + Entity + + // no documentation yet + ExistingBlueIdFlag *bool `json:"existingBlueIdFlag,omitempty" xmlrpc:"existingBlueIdFlag,omitempty"` + + // no documentation yet + FederatedEmailDomainFlag *bool `json:"federatedEmailDomainFlag,omitempty" xmlrpc:"federatedEmailDomainFlag,omitempty"` + + // no documentation yet + User *User_Customer `json:"user,omitempty" xmlrpc:"user,omitempty"` +} + +// no documentation yet +type Account_Authentication_Saml struct { + Entity + + // The account associated with this saml configuration. + Account *Account `json:"account,omitempty" xmlrpc:"account,omitempty"` + + // The saml account id. + AccountId *string `json:"accountId,omitempty" xmlrpc:"accountId,omitempty"` + + // A count of the saml attribute values for a SoftLayer customer account. + AttributeCount *uint `json:"attributeCount,omitempty" xmlrpc:"attributeCount,omitempty"` + + // The saml attribute values for a SoftLayer customer account. + Attributes []Account_Authentication_Attribute `json:"attributes,omitempty" xmlrpc:"attributes,omitempty"` + + // The identity provider x509 certificate. + Certificate *string `json:"certificate,omitempty" xmlrpc:"certificate,omitempty"` + + // The identity provider x509 certificate fingerprint. + CertificateFingerprint *string `json:"certificateFingerprint,omitempty" xmlrpc:"certificateFingerprint,omitempty"` + + // The identity provider entity ID. + EntityId *string `json:"entityId,omitempty" xmlrpc:"entityId,omitempty"` + + // The saml internal identifying number. + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // The service provider x509 certificate. + ServiceProviderCertificate *string `json:"serviceProviderCertificate,omitempty" xmlrpc:"serviceProviderCertificate,omitempty"` + + // The service provider entity IDs. + ServiceProviderEntityId *string `json:"serviceProviderEntityId,omitempty" xmlrpc:"serviceProviderEntityId,omitempty"` + + // The service provider public key. + ServiceProviderPublicKey *string `json:"serviceProviderPublicKey,omitempty" xmlrpc:"serviceProviderPublicKey,omitempty"` + + // The service provider signle logout encoding. + ServiceProviderSingleLogoutEncoding *string `json:"serviceProviderSingleLogoutEncoding,omitempty" xmlrpc:"serviceProviderSingleLogoutEncoding,omitempty"` + + // The service provider signle logout address. + ServiceProviderSingleLogoutUrl *string `json:"serviceProviderSingleLogoutUrl,omitempty" xmlrpc:"serviceProviderSingleLogoutUrl,omitempty"` + + // The service provider signle sign on encoding. + ServiceProviderSingleSignOnEncoding *string `json:"serviceProviderSingleSignOnEncoding,omitempty" xmlrpc:"serviceProviderSingleSignOnEncoding,omitempty"` + + // The service provider signle sign on address. + ServiceProviderSingleSignOnUrl *string `json:"serviceProviderSingleSignOnUrl,omitempty" xmlrpc:"serviceProviderSingleSignOnUrl,omitempty"` + + // The identity provider single logout encoding. + SingleLogoutEncoding *string `json:"singleLogoutEncoding,omitempty" xmlrpc:"singleLogoutEncoding,omitempty"` + + // The identity provider sigle logout address. + SingleLogoutUrl *string `json:"singleLogoutUrl,omitempty" xmlrpc:"singleLogoutUrl,omitempty"` + + // The identity provider single sign on encoding. + SingleSignOnEncoding *string `json:"singleSignOnEncoding,omitempty" xmlrpc:"singleSignOnEncoding,omitempty"` + + // The identity provider signle sign on address. + SingleSignOnUrl *string `json:"singleSignOnUrl,omitempty" xmlrpc:"singleSignOnUrl,omitempty"` +} + +// no documentation yet +type Account_Classification_Group_Type struct { + Entity + + // no documentation yet + KeyName *string `json:"keyName,omitempty" xmlrpc:"keyName,omitempty"` +} + +// no documentation yet +type Account_Contact struct { + Entity + + // no documentation yet + Account *Account `json:"account,omitempty" xmlrpc:"account,omitempty"` + + // no documentation yet + AccountId *int `json:"accountId,omitempty" xmlrpc:"accountId,omitempty"` + + // no documentation yet + Address1 *string `json:"address1,omitempty" xmlrpc:"address1,omitempty"` + + // no documentation yet + Address2 *string `json:"address2,omitempty" xmlrpc:"address2,omitempty"` + + // no documentation yet + AlternatePhone *string `json:"alternatePhone,omitempty" xmlrpc:"alternatePhone,omitempty"` + + // no documentation yet + City *string `json:"city,omitempty" xmlrpc:"city,omitempty"` + + // no documentation yet + CompanyName *string `json:"companyName,omitempty" xmlrpc:"companyName,omitempty"` + + // no documentation yet + Country *string `json:"country,omitempty" xmlrpc:"country,omitempty"` + + // no documentation yet + CreateDate *Time `json:"createDate,omitempty" xmlrpc:"createDate,omitempty"` + + // no documentation yet + Email *string `json:"email,omitempty" xmlrpc:"email,omitempty"` + + // no documentation yet + FaxPhone *string `json:"faxPhone,omitempty" xmlrpc:"faxPhone,omitempty"` + + // no documentation yet + FirstName *string `json:"firstName,omitempty" xmlrpc:"firstName,omitempty"` + + // no documentation yet + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // no documentation yet + JobTitle *string `json:"jobTitle,omitempty" xmlrpc:"jobTitle,omitempty"` + + // no documentation yet + LastName *string `json:"lastName,omitempty" xmlrpc:"lastName,omitempty"` + + // no documentation yet + ModifyDate *Time `json:"modifyDate,omitempty" xmlrpc:"modifyDate,omitempty"` + + // no documentation yet + OfficePhone *string `json:"officePhone,omitempty" xmlrpc:"officePhone,omitempty"` + + // no documentation yet + PostalCode *string `json:"postalCode,omitempty" xmlrpc:"postalCode,omitempty"` + + // no documentation yet + ProfileName *string `json:"profileName,omitempty" xmlrpc:"profileName,omitempty"` + + // no documentation yet + State *string `json:"state,omitempty" xmlrpc:"state,omitempty"` + + // no documentation yet + Type *Account_Contact_Type `json:"type,omitempty" xmlrpc:"type,omitempty"` + + // no documentation yet + TypeId *int `json:"typeId,omitempty" xmlrpc:"typeId,omitempty"` + + // no documentation yet + Url *string `json:"url,omitempty" xmlrpc:"url,omitempty"` +} + +// no documentation yet +type Account_Contact_Type struct { + Entity + + // no documentation yet + CreateDate *Time `json:"createDate,omitempty" xmlrpc:"createDate,omitempty"` + + // no documentation yet + Description *string `json:"description,omitempty" xmlrpc:"description,omitempty"` + + // no documentation yet + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // no documentation yet + KeyName *string `json:"keyName,omitempty" xmlrpc:"keyName,omitempty"` + + // no documentation yet + ModifyDate *Time `json:"modifyDate,omitempty" xmlrpc:"modifyDate,omitempty"` + + // no documentation yet + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` +} + +// no documentation yet +type Account_Historical_Report struct { + Entity +} + +// no documentation yet +type Account_Link struct { + Entity + + // no documentation yet + Account *Account `json:"account,omitempty" xmlrpc:"account,omitempty"` + + // no documentation yet + AccountId *int `json:"accountId,omitempty" xmlrpc:"accountId,omitempty"` + + // no documentation yet + CreateDate *Time `json:"createDate,omitempty" xmlrpc:"createDate,omitempty"` + + // no documentation yet + DestinationAccountAlphanumericId *string `json:"destinationAccountAlphanumericId,omitempty" xmlrpc:"destinationAccountAlphanumericId,omitempty"` + + // no documentation yet + DestinationAccountId *int `json:"destinationAccountId,omitempty" xmlrpc:"destinationAccountId,omitempty"` + + // no documentation yet + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // no documentation yet + ServiceProvider *Service_Provider `json:"serviceProvider,omitempty" xmlrpc:"serviceProvider,omitempty"` + + // no documentation yet + ServiceProviderId *int `json:"serviceProviderId,omitempty" xmlrpc:"serviceProviderId,omitempty"` +} + +// no documentation yet +type Account_Link_Bluemix struct { + Account_Link +} + +// no documentation yet +type Account_Link_OpenStack struct { + Account_Link + + // Pseudonym for destinationAccountAlphanumericId + DomainId *string `json:"domainId,omitempty" xmlrpc:"domainId,omitempty"` +} + +// OpenStack domain creation details +type Account_Link_OpenStack_DomainCreationDetails struct { + Entity + + // Id for the domain this user was added to. + DomainId *string `json:"domainId,omitempty" xmlrpc:"domainId,omitempty"` + + // Id for the user given the Cloud Admin role for this domain. + UserId *string `json:"userId,omitempty" xmlrpc:"userId,omitempty"` + + // Name for the user given the Cloud Admin role for this domain. + UserName *string `json:"userName,omitempty" xmlrpc:"userName,omitempty"` +} + +// Details required for OpenStack link request +type Account_Link_OpenStack_LinkRequest struct { + Entity + + // Optional password + DesiredPassword *string `json:"desiredPassword,omitempty" xmlrpc:"desiredPassword,omitempty"` + + // Optional projectName + DesiredProjectName *string `json:"desiredProjectName,omitempty" xmlrpc:"desiredProjectName,omitempty"` + + // Required username + DesiredUsername *string `json:"desiredUsername,omitempty" xmlrpc:"desiredUsername,omitempty"` +} + +// OpenStack project creation details +type Account_Link_OpenStack_ProjectCreationDetails struct { + Entity + + // Id for the domain this project was added to. + DomainId *string `json:"domainId,omitempty" xmlrpc:"domainId,omitempty"` + + // Id for this project. + ProjectId *string `json:"projectId,omitempty" xmlrpc:"projectId,omitempty"` + + // Name for this project. + ProjectName *string `json:"projectName,omitempty" xmlrpc:"projectName,omitempty"` + + // Id for the user given the Project Admin role for this project. + UserId *string `json:"userId,omitempty" xmlrpc:"userId,omitempty"` + + // Name for the user given the Project Admin role for this project. + UserName *string `json:"userName,omitempty" xmlrpc:"userName,omitempty"` +} + +// OpenStack project details +type Account_Link_OpenStack_ProjectDetails struct { + Entity + + // Id for this project. + ProjectId *string `json:"projectId,omitempty" xmlrpc:"projectId,omitempty"` + + // Name for this project. + ProjectName *string `json:"projectName,omitempty" xmlrpc:"projectName,omitempty"` +} + +// no documentation yet +type Account_Link_ThePlanet struct { + Account_Link +} + +// no documentation yet +type Account_Link_Vendor struct { + Entity + + // no documentation yet + KeyName *string `json:"keyName,omitempty" xmlrpc:"keyName,omitempty"` + + // no documentation yet + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` +} + +// The SoftLayer_Account_Lockdown_Request data type holds information on API requests from brand customers. +type Account_Lockdown_Request struct { + Entity + + // Account ID associated with this lockdown request. + AccountId *int `json:"accountId,omitempty" xmlrpc:"accountId,omitempty"` + + // Type of request. + Action *string `json:"action,omitempty" xmlrpc:"action,omitempty"` + + // Timestamp when the lockdown request was initially made. + CreateDate *Time `json:"createDate,omitempty" xmlrpc:"createDate,omitempty"` + + // ID of this lockdown request. + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // Timestamp when the lockdown request was modified. + ModifyDate *Time `json:"modifyDate,omitempty" xmlrpc:"modifyDate,omitempty"` + + // Status of the lockdown request denoting whether it's been completed. + Status *string `json:"status,omitempty" xmlrpc:"status,omitempty"` +} + +// no documentation yet +type Account_MasterServiceAgreement struct { + Entity + + // no documentation yet + Account *Account `json:"account,omitempty" xmlrpc:"account,omitempty"` + + // no documentation yet + AccountId *int `json:"accountId,omitempty" xmlrpc:"accountId,omitempty"` + + // no documentation yet + Guid *string `json:"guid,omitempty" xmlrpc:"guid,omitempty"` + + // no documentation yet + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // no documentation yet + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` +} + +// The SoftLayer_Account_Media data type contains information on a single piece of media associated with a Data Transfer Service request. +type Account_Media struct { + Entity + + // The account to which the media belongs. + Account *Account `json:"account,omitempty" xmlrpc:"account,omitempty"` + + // The customer user who created the media object. + CreateUser *User_Customer `json:"createUser,omitempty" xmlrpc:"createUser,omitempty"` + + // The datacenter where the media resides. + Datacenter *Location `json:"datacenter,omitempty" xmlrpc:"datacenter,omitempty"` + + // The description of the media. + Description *string `json:"description,omitempty" xmlrpc:"description,omitempty"` + + // The unique id of the media. + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // The employee who last modified the media. + ModifyEmployee *User_Employee `json:"modifyEmployee,omitempty" xmlrpc:"modifyEmployee,omitempty"` + + // The customer user who last modified the media. + ModifyUser *User_Customer `json:"modifyUser,omitempty" xmlrpc:"modifyUser,omitempty"` + + // The request to which the media belongs. + Request *Account_Media_Data_Transfer_Request `json:"request,omitempty" xmlrpc:"request,omitempty"` + + // The request id of the media. + RequestId *int `json:"requestId,omitempty" xmlrpc:"requestId,omitempty"` + + // The manufacturer's serial number of the media. + SerialNumber *string `json:"serialNumber,omitempty" xmlrpc:"serialNumber,omitempty"` + + // The media's type. + Type *Account_Media_Type `json:"type,omitempty" xmlrpc:"type,omitempty"` + + // The type id of the media. + TypeId *int `json:"typeId,omitempty" xmlrpc:"typeId,omitempty"` + + // A guest's associated EVault network storage service account. + Volume *Network_Storage `json:"volume,omitempty" xmlrpc:"volume,omitempty"` +} + +// The SoftLayer_Account_Media_Data_Transfer_Request data type contains information on a single Data Transfer Service request. Creation of these requests is limited to SoftLayer customers through the SoftLayer Customer Portal. +type Account_Media_Data_Transfer_Request struct { + Entity + + // The account to which the request belongs. + Account *Account `json:"account,omitempty" xmlrpc:"account,omitempty"` + + // The account id of the request. + AccountId *int `json:"accountId,omitempty" xmlrpc:"accountId,omitempty"` + + // A count of the active tickets that are attached to the data transfer request. + ActiveTicketCount *uint `json:"activeTicketCount,omitempty" xmlrpc:"activeTicketCount,omitempty"` + + // The active tickets that are attached to the data transfer request. + ActiveTickets []Ticket `json:"activeTickets,omitempty" xmlrpc:"activeTickets,omitempty"` + + // The billing item for the original request. + BillingItem *Billing_Item `json:"billingItem,omitempty" xmlrpc:"billingItem,omitempty"` + + // The customer user who created the request. + CreateUser *User_Customer `json:"createUser,omitempty" xmlrpc:"createUser,omitempty"` + + // The create user id of the request. + CreateUserId *int `json:"createUserId,omitempty" xmlrpc:"createUserId,omitempty"` + + // The end date of the request. + EndDate *Time `json:"endDate,omitempty" xmlrpc:"endDate,omitempty"` + + // The unique id of the request. + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // The media of the request. + Media *Account_Media `json:"media,omitempty" xmlrpc:"media,omitempty"` + + // The employee who last modified the request. + ModifyEmployee *User_Employee `json:"modifyEmployee,omitempty" xmlrpc:"modifyEmployee,omitempty"` + + // The customer user who last modified the request. + ModifyUser *User_Customer `json:"modifyUser,omitempty" xmlrpc:"modifyUser,omitempty"` + + // The modify user id of the request. + ModifyUserId *int `json:"modifyUserId,omitempty" xmlrpc:"modifyUserId,omitempty"` + + // A count of the shipments of the request. + ShipmentCount *uint `json:"shipmentCount,omitempty" xmlrpc:"shipmentCount,omitempty"` + + // The shipments of the request. + Shipments []Account_Shipment `json:"shipments,omitempty" xmlrpc:"shipments,omitempty"` + + // The start date of the request. + StartDate *Time `json:"startDate,omitempty" xmlrpc:"startDate,omitempty"` + + // The status of the request. + Status *Account_Media_Data_Transfer_Request_Status `json:"status,omitempty" xmlrpc:"status,omitempty"` + + // The status id of the request. + StatusId *int `json:"statusId,omitempty" xmlrpc:"statusId,omitempty"` + + // A count of all tickets that are attached to the data transfer request. + TicketCount *uint `json:"ticketCount,omitempty" xmlrpc:"ticketCount,omitempty"` + + // All tickets that are attached to the data transfer request. + Tickets []Ticket `json:"tickets,omitempty" xmlrpc:"tickets,omitempty"` +} + +// The SoftLayer_Account_Media_Data_Transfer_Request_Status data type contains general information relating to the statuses to which a Data Transfer Request may be set. +type Account_Media_Data_Transfer_Request_Status struct { + Entity + + // The description of the request status. + Description *string `json:"description,omitempty" xmlrpc:"description,omitempty"` + + // The unique id of the request status. + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // The unique keyname of the request status. + KeyName *string `json:"keyName,omitempty" xmlrpc:"keyName,omitempty"` + + // The name of the request status. + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` +} + +// The SoftLayer_Account_Media_Type data type contains general information relating to the different types of media devices that SoftLayer currently supports, as part of the Data Transfer Request Service. Such devices as USB hard drives and flash drives, as well as optical media such as CD and DVD are currently supported. +type Account_Media_Type struct { + Entity + + // The description of the media type. + Description *string `json:"description,omitempty" xmlrpc:"description,omitempty"` + + // The unique id of the media type. + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // The unique keyname of the media type. + KeyName *string `json:"keyName,omitempty" xmlrpc:"keyName,omitempty"` + + // The name of the media type. + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` +} + +// The SoftLayer_Account_Network_Vlan_Span data type exposes the setting which controls the automatic spanning of private VLANs attached to a given customers account. +type Account_Network_Vlan_Span struct { + Entity + + // The SoftLayer customer account associated with a VLAN. + Account *Account `json:"account,omitempty" xmlrpc:"account,omitempty"` + + // Flag indicating whether the customer wishes to have all private network VLANs associated with account automatically joined [0 or 1] + EnabledFlag *bool `json:"enabledFlag,omitempty" xmlrpc:"enabledFlag,omitempty"` + + // The unique internal identifier of the SoftLayer_Account_Network_Vlan_Span object. + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // Timestamp of the last time the ACL for this account was applied. + LastAppliedDate *Time `json:"lastAppliedDate,omitempty" xmlrpc:"lastAppliedDate,omitempty"` + + // Timestamp of the last time the subnet hash was verified for this VLAN span record. + LastVerifiedDate *Time `json:"lastVerifiedDate,omitempty" xmlrpc:"lastVerifiedDate,omitempty"` + + // Timestamp of the last edit of the record. + ModifyDate *Time `json:"modifyDate,omitempty" xmlrpc:"modifyDate,omitempty"` +} + +// no documentation yet +type Account_Note struct { + Entity + + // no documentation yet + Account *Account `json:"account,omitempty" xmlrpc:"account,omitempty"` + + // no documentation yet + AccountId *int `json:"accountId,omitempty" xmlrpc:"accountId,omitempty"` + + // no documentation yet + CreateDate *Time `json:"createDate,omitempty" xmlrpc:"createDate,omitempty"` + + // no documentation yet + Customer *User_Customer `json:"customer,omitempty" xmlrpc:"customer,omitempty"` + + // no documentation yet + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // no documentation yet + ModifyDate *Time `json:"modifyDate,omitempty" xmlrpc:"modifyDate,omitempty"` + + // no documentation yet + Note *string `json:"note,omitempty" xmlrpc:"note,omitempty"` + + // no documentation yet + NoteHistory []Account_Note_History `json:"noteHistory,omitempty" xmlrpc:"noteHistory,omitempty"` + + // A count of + NoteHistoryCount *uint `json:"noteHistoryCount,omitempty" xmlrpc:"noteHistoryCount,omitempty"` + + // no documentation yet + NoteType *Account_Note_Type `json:"noteType,omitempty" xmlrpc:"noteType,omitempty"` + + // no documentation yet + NoteTypeId *int `json:"noteTypeId,omitempty" xmlrpc:"noteTypeId,omitempty"` + + // no documentation yet + UserId *int `json:"userId,omitempty" xmlrpc:"userId,omitempty"` +} + +// no documentation yet +type Account_Note_History struct { + Entity + + // no documentation yet + AccountNote *Account_Note `json:"accountNote,omitempty" xmlrpc:"accountNote,omitempty"` + + // no documentation yet + AccountNoteId *int `json:"accountNoteId,omitempty" xmlrpc:"accountNoteId,omitempty"` + + // no documentation yet + CreateDate *Time `json:"createDate,omitempty" xmlrpc:"createDate,omitempty"` + + // no documentation yet + Customer *User_Customer `json:"customer,omitempty" xmlrpc:"customer,omitempty"` + + // no documentation yet + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // no documentation yet + ModifyDate *Time `json:"modifyDate,omitempty" xmlrpc:"modifyDate,omitempty"` + + // no documentation yet + Note *string `json:"note,omitempty" xmlrpc:"note,omitempty"` + + // no documentation yet + UserId *int `json:"userId,omitempty" xmlrpc:"userId,omitempty"` +} + +// no documentation yet +type Account_Note_Type struct { + Entity + + // no documentation yet + BrandId *int `json:"brandId,omitempty" xmlrpc:"brandId,omitempty"` + + // no documentation yet + CreateDate *Time `json:"createDate,omitempty" xmlrpc:"createDate,omitempty"` + + // no documentation yet + Description *string `json:"description,omitempty" xmlrpc:"description,omitempty"` + + // no documentation yet + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // no documentation yet + KeyName *string `json:"keyName,omitempty" xmlrpc:"keyName,omitempty"` + + // no documentation yet + ModifyDate *Time `json:"modifyDate,omitempty" xmlrpc:"modifyDate,omitempty"` + + // no documentation yet + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` + + // no documentation yet + ValueExpression *string `json:"valueExpression,omitempty" xmlrpc:"valueExpression,omitempty"` +} + +// no documentation yet +type Account_Partner_Referral_Prospect struct { + User_Customer_Prospect + + // no documentation yet + CompanyName *string `json:"companyName,omitempty" xmlrpc:"companyName,omitempty"` + + // no documentation yet + EmailAddress *string `json:"emailAddress,omitempty" xmlrpc:"emailAddress,omitempty"` + + // no documentation yet + FirstName *string `json:"firstName,omitempty" xmlrpc:"firstName,omitempty"` + + // no documentation yet + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // no documentation yet + LastName *string `json:"lastName,omitempty" xmlrpc:"lastName,omitempty"` +} + +// The SoftLayer_Account_Password contains username, passwords and notes for services that may require for external applications such the Webcc interface for the EVault Storage service. +type Account_Password struct { + Entity + + // no documentation yet + Account *Account `json:"account,omitempty" xmlrpc:"account,omitempty"` + + // The SoftLayer customer account id that a username/password combination is associated with. + AccountId *int `json:"accountId,omitempty" xmlrpc:"accountId,omitempty"` + + // A username/password combination's internal identifier. + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // A simple description of a username/password combination. These notes don't affect portal functionality. + Notes *string `json:"notes,omitempty" xmlrpc:"notes,omitempty"` + + // The password portion of a username/password combination. + Password *string `json:"password,omitempty" xmlrpc:"password,omitempty"` + + // The service that an account/password combination is tied to. + Type *Account_Password_Type `json:"type,omitempty" xmlrpc:"type,omitempty"` + + // An identifier relating to a username/password combinations's associated service. + TypeId *int `json:"typeId,omitempty" xmlrpc:"typeId,omitempty"` + + // The username portion of a username/password combination. + Username *string `json:"username,omitempty" xmlrpc:"username,omitempty"` +} + +// Every username and password combination associated with a SoftLayer customer account belongs to a service that SoftLayer provides. The relationship between a username/password and it's service is provided by the SoftLayer_Account_Password_Type data type. Each username/password belongs to a single service type. +type Account_Password_Type struct { + Entity + + // A description of the use for the account username/password combination. + Description *string `json:"description,omitempty" xmlrpc:"description,omitempty"` +} + +// +// +// +// +// +type Account_Regional_Registry_Detail struct { + Entity + + // The account that this detail object belongs to. + Account *Account `json:"account,omitempty" xmlrpc:"account,omitempty"` + + // The detail object's associated [[SoftLayer_Account|account]] id + AccountId *int `json:"accountId,omitempty" xmlrpc:"accountId,omitempty"` + + // The date and time the detail object was created + CreateDate *Time `json:"createDate,omitempty" xmlrpc:"createDate,omitempty"` + + // A count of references to the [[SoftLayer_Network_Subnet_Registration|registration objects]] that consume this detail object. + DetailCount *uint `json:"detailCount,omitempty" xmlrpc:"detailCount,omitempty"` + + // The associated type of this detail object. + DetailType *Account_Regional_Registry_Detail_Type `json:"detailType,omitempty" xmlrpc:"detailType,omitempty"` + + // The detail object's associated [[SoftLayer_Account_Regional_Registry_Detail_Type|type]] id + DetailTypeId *int `json:"detailTypeId,omitempty" xmlrpc:"detailTypeId,omitempty"` + + // References to the [[SoftLayer_Network_Subnet_Registration|registration objects]] that consume this detail object. + Details []Network_Subnet_Registration_Details `json:"details,omitempty" xmlrpc:"details,omitempty"` + + // Unique ID of the detail object + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // The date and time the detail object was last modified + ModifyDate *Time `json:"modifyDate,omitempty" xmlrpc:"modifyDate,omitempty"` + + // The individual properties that define this detail object's values. + Properties []Account_Regional_Registry_Detail_Property `json:"properties,omitempty" xmlrpc:"properties,omitempty"` + + // A count of the individual properties that define this detail object's values. + PropertyCount *uint `json:"propertyCount,omitempty" xmlrpc:"propertyCount,omitempty"` + + // The associated RWhois handle of this detail object. Used only when detailed reassignments are necessary. + RegionalInternetRegistryHandle *Account_Rwhois_Handle `json:"regionalInternetRegistryHandle,omitempty" xmlrpc:"regionalInternetRegistryHandle,omitempty"` + + // The detail object's associated [[SoftLayer_Account_Rwhois_Handle|RIR handle]] id + RegionalInternetRegistryHandleId *int `json:"regionalInternetRegistryHandleId,omitempty" xmlrpc:"regionalInternetRegistryHandleId,omitempty"` +} + +// Subnet registration properties are used to define various attributes of the [[SoftLayer_Account_Regional_Registry_Detail|detail objects]]. These properties are defined by the [[SoftLayer_Account_Regional_Registry_Detail_Property_Type]] objects, which describe the available value formats. +type Account_Regional_Registry_Detail_Property struct { + Entity + + // no documentation yet + CreateDate *Time `json:"createDate,omitempty" xmlrpc:"createDate,omitempty"` + + // The [[SoftLayer_Account_Regional_Registry_Detail]] object this property belongs to + Detail *Account_Regional_Registry_Detail `json:"detail,omitempty" xmlrpc:"detail,omitempty"` + + // Unique ID of the property object + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // no documentation yet + ModifyDate *Time `json:"modifyDate,omitempty" xmlrpc:"modifyDate,omitempty"` + + // The [[SoftLayer_Account_Regional_Registry_Detail_Property_Type]] object this property belongs to + PropertyType *Account_Regional_Registry_Detail_Property_Type `json:"propertyType,omitempty" xmlrpc:"propertyType,omitempty"` + + // The numeric ID of the related [[SoftLayer_Account_Regional_Registry_Detail_Property_Type|property type object]] + PropertyTypeId *int `json:"propertyTypeId,omitempty" xmlrpc:"propertyTypeId,omitempty"` + + // The numeric ID of the related [[SoftLayer_Account_Regional_Registry_Detail|detail object]] + RegistrationDetailId *int `json:"registrationDetailId,omitempty" xmlrpc:"registrationDetailId,omitempty"` + + // When multiple properties exist for a property type, defines the position in the sequence of those properties + SequencePosition *int `json:"sequencePosition,omitempty" xmlrpc:"sequencePosition,omitempty"` + + // The value of the property + Value *string `json:"value,omitempty" xmlrpc:"value,omitempty"` +} + +// Subnet Registration Detail Property Type objects describe the nature of a [[SoftLayer_Account_Regional_Registry_Detail_Property]] object. These types use [http://php.net/pcre.pattern.php Perl-Compatible Regular Expressions] to validate the value of a property object. +type Account_Regional_Registry_Detail_Property_Type struct { + Entity + + // no documentation yet + CreateDate *Time `json:"createDate,omitempty" xmlrpc:"createDate,omitempty"` + + // Unique numeric ID of the property type object + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // Code-friendly string name of the property type + KeyName *string `json:"keyName,omitempty" xmlrpc:"keyName,omitempty"` + + // no documentation yet + ModifyDate *Time `json:"modifyDate,omitempty" xmlrpc:"modifyDate,omitempty"` + + // Human-readable name of the property type + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` + + // A Perl-compatible regular expression used to describe the valid format of the property + ValueExpression *string `json:"valueExpression,omitempty" xmlrpc:"valueExpression,omitempty"` +} + +// Subnet Registration Detail Type objects describe the nature of a [[SoftLayer_Account_Regional_Registry_Detail]] object. +// +// The standard values for these objects are as follows:
  • NETWORK - The detail object represents the information for a [[SoftLayer_Network_Subnet|subnet]]
  • NETWORK6 - The detail object represents the information for an [[SoftLayer_Network_Subnet_Version6|IPv6 subnet]]
  • PERSON - The detail object represents the information for a customer with the RIR
+type Account_Regional_Registry_Detail_Type struct { + Entity + + // no documentation yet + CreateDate *Time `json:"createDate,omitempty" xmlrpc:"createDate,omitempty"` + + // Unique numeric ID of the detail type object + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // Code-friendly string name of the detail type + KeyName *string `json:"keyName,omitempty" xmlrpc:"keyName,omitempty"` + + // no documentation yet + ModifyDate *Time `json:"modifyDate,omitempty" xmlrpc:"modifyDate,omitempty"` + + // Human-readable name of the detail type + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` +} + +// The SoftLayer_Account_Regional_Registry_Detail_Version4_Person_Default data type contains general information relating to a single SoftLayer RIR account. RIR account information in this type such as names, addresses, and phone numbers are assigned to the registry only and not to users belonging to the account. +type Account_Regional_Registry_Detail_Version4_Person_Default struct { + Account_Regional_Registry_Detail +} + +// no documentation yet +type Account_Reports_Request struct { + Entity + + // no documentation yet + Account *Account `json:"account,omitempty" xmlrpc:"account,omitempty"` + + // A request's corresponding external contact, if one exists. + AccountContact *Account_Contact `json:"accountContact,omitempty" xmlrpc:"accountContact,omitempty"` + + // no documentation yet + AccountContactId *int `json:"accountContactId,omitempty" xmlrpc:"accountContactId,omitempty"` + + // no documentation yet + AccountId *int `json:"accountId,omitempty" xmlrpc:"accountId,omitempty"` + + // no documentation yet + ComplianceReportTypeId *string `json:"complianceReportTypeId,omitempty" xmlrpc:"complianceReportTypeId,omitempty"` + + // no documentation yet + CreateDate *Time `json:"createDate,omitempty" xmlrpc:"createDate,omitempty"` + + // no documentation yet + EmployeeRecordId *int `json:"employeeRecordId,omitempty" xmlrpc:"employeeRecordId,omitempty"` + + // no documentation yet + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // no documentation yet + ModifyDate *Time `json:"modifyDate,omitempty" xmlrpc:"modifyDate,omitempty"` + + // no documentation yet + Nda *string `json:"nda,omitempty" xmlrpc:"nda,omitempty"` + + // no documentation yet + Notes *string `json:"notes,omitempty" xmlrpc:"notes,omitempty"` + + // no documentation yet + Report *string `json:"report,omitempty" xmlrpc:"report,omitempty"` + + // Type of the report customer is requesting for. + ReportType *Compliance_Report_Type `json:"reportType,omitempty" xmlrpc:"reportType,omitempty"` + + // no documentation yet + RequestKey *string `json:"requestKey,omitempty" xmlrpc:"requestKey,omitempty"` + + // no documentation yet + Status *string `json:"status,omitempty" xmlrpc:"status,omitempty"` + + // no documentation yet + Ticket *Ticket `json:"ticket,omitempty" xmlrpc:"ticket,omitempty"` + + // no documentation yet + TicketId *int `json:"ticketId,omitempty" xmlrpc:"ticketId,omitempty"` + + // The customer user that initiated a report request. + User *User_Customer `json:"user,omitempty" xmlrpc:"user,omitempty"` + + // no documentation yet + UsrRecordId *int `json:"usrRecordId,omitempty" xmlrpc:"usrRecordId,omitempty"` +} + +// Provides a means of tracking handle identifiers at the various regional internet registries (RIRs). These objects are used by the [[SoftLayer_Network_Subnet_Registration (type)|SoftLayer_Network_Subnet_Registration]] objects to identify a customer or organization when a subnet is registered. +type Account_Rwhois_Handle struct { + Entity + + // The account that this handle belongs to. + Account *Account `json:"account,omitempty" xmlrpc:"account,omitempty"` + + // The handle object's associated [[SoftLayer_Account|account]] id + AccountId *int `json:"accountId,omitempty" xmlrpc:"accountId,omitempty"` + + // no documentation yet + CreateDate *Time `json:"createDate,omitempty" xmlrpc:"createDate,omitempty"` + + // The handle object's unique identifier as assigned by the RIR. + Handle *string `json:"handle,omitempty" xmlrpc:"handle,omitempty"` + + // Unique ID of the handle object + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // no documentation yet + ModifyDate *Time `json:"modifyDate,omitempty" xmlrpc:"modifyDate,omitempty"` +} + +// The SoftLayer_Account_Shipment data type contains information relating to a shipment. Basic information such as addresses, the shipment courier, and any tracking information for as shipment is accessible with this data type. +type Account_Shipment struct { + Entity + + // The account to which the shipment belongs. + Account *Account `json:"account,omitempty" xmlrpc:"account,omitempty"` + + // The account id of the shipment. + AccountId *int `json:"accountId,omitempty" xmlrpc:"accountId,omitempty"` + + // The courier handling the shipment. + Courier *Auxiliary_Shipping_Courier `json:"courier,omitempty" xmlrpc:"courier,omitempty"` + + // The courier id of the shipment. + CourierId *int `json:"courierId,omitempty" xmlrpc:"courierId,omitempty"` + + // The courier name of the shipment. + CourierName *string `json:"courierName,omitempty" xmlrpc:"courierName,omitempty"` + + // The employee who created the shipment. + CreateEmployee *User_Employee `json:"createEmployee,omitempty" xmlrpc:"createEmployee,omitempty"` + + // The customer user who created the shipment. + CreateUser *User_Customer `json:"createUser,omitempty" xmlrpc:"createUser,omitempty"` + + // The create user id of the shipment. + CreateUserId *int `json:"createUserId,omitempty" xmlrpc:"createUserId,omitempty"` + + // The address at which the shipment is received. + DestinationAddress *Account_Address `json:"destinationAddress,omitempty" xmlrpc:"destinationAddress,omitempty"` + + // The destination address id of the shipment. + DestinationAddressId *int `json:"destinationAddressId,omitempty" xmlrpc:"destinationAddressId,omitempty"` + + // The destination date of the shipment. + DestinationDate *Time `json:"destinationDate,omitempty" xmlrpc:"destinationDate,omitempty"` + + // The unique id of the shipment. + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // The employee who last modified the shipment. + ModifyEmployee *User_Employee `json:"modifyEmployee,omitempty" xmlrpc:"modifyEmployee,omitempty"` + + // The customer user who last modified the shipment. + ModifyUser *User_Customer `json:"modifyUser,omitempty" xmlrpc:"modifyUser,omitempty"` + + // The modify user id of the shipment. + ModifyUserId *int `json:"modifyUserId,omitempty" xmlrpc:"modifyUserId,omitempty"` + + // The shipment note (special handling instructions). + Note *string `json:"note,omitempty" xmlrpc:"note,omitempty"` + + // The address from which the shipment is sent. + OriginationAddress *Account_Address `json:"originationAddress,omitempty" xmlrpc:"originationAddress,omitempty"` + + // The origination address id of the shipment. + OriginationAddressId *int `json:"originationAddressId,omitempty" xmlrpc:"originationAddressId,omitempty"` + + // The origination date of the shipment. + OriginationDate *Time `json:"originationDate,omitempty" xmlrpc:"originationDate,omitempty"` + + // A count of the items in the shipment. + ShipmentItemCount *uint `json:"shipmentItemCount,omitempty" xmlrpc:"shipmentItemCount,omitempty"` + + // The items in the shipment. + ShipmentItems []Account_Shipment_Item `json:"shipmentItems,omitempty" xmlrpc:"shipmentItems,omitempty"` + + // The status of the shipment. + Status *Account_Shipment_Status `json:"status,omitempty" xmlrpc:"status,omitempty"` + + // The status id of the shipment. + StatusId *int `json:"statusId,omitempty" xmlrpc:"statusId,omitempty"` + + // The tracking data for the shipment. + TrackingData []Account_Shipment_Tracking_Data `json:"trackingData,omitempty" xmlrpc:"trackingData,omitempty"` + + // A count of the tracking data for the shipment. + TrackingDataCount *uint `json:"trackingDataCount,omitempty" xmlrpc:"trackingDataCount,omitempty"` + + // The type of shipment (e.g. for Data Transfer Service or Colocation Service). + Type *Account_Shipment_Type `json:"type,omitempty" xmlrpc:"type,omitempty"` + + // The type id of the shipment. + TypeId *int `json:"typeId,omitempty" xmlrpc:"typeId,omitempty"` +} + +// The SoftLayer_Account_Shipment_Item data type contains information relating to a shipment's item. Basic information such as addresses, the shipment courier, and any tracking information for as shipment is accessible with this data type. +type Account_Shipment_Item struct { + Entity + + // no documentation yet + CreateDate *Time `json:"createDate,omitempty" xmlrpc:"createDate,omitempty"` + + // The description of the shipping item. + Description *string `json:"description,omitempty" xmlrpc:"description,omitempty"` + + // The unique id of the shipping item. + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // The package id of the shipping item. + PackageId *int `json:"packageId,omitempty" xmlrpc:"packageId,omitempty"` + + // The shipment to which this item belongs. + Shipment *Account_Shipment `json:"shipment,omitempty" xmlrpc:"shipment,omitempty"` + + // The shipment id of the shipping item. + ShipmentId *int `json:"shipmentId,omitempty" xmlrpc:"shipmentId,omitempty"` + + // The item id of the shipping item. + ShipmentItemId *int `json:"shipmentItemId,omitempty" xmlrpc:"shipmentItemId,omitempty"` + + // The type of this shipment item. + ShipmentItemType *Account_Shipment_Item_Type `json:"shipmentItemType,omitempty" xmlrpc:"shipmentItemType,omitempty"` + + // The item type id of the shipping item. + ShipmentItemTypeId *int `json:"shipmentItemTypeId,omitempty" xmlrpc:"shipmentItemTypeId,omitempty"` +} + +// no documentation yet +type Account_Shipment_Item_Type struct { + Entity + + // DEPRECATED + CreateDate *Time `json:"createDate,omitempty" xmlrpc:"createDate,omitempty"` + + // no documentation yet + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // no documentation yet + KeyName *string `json:"keyName,omitempty" xmlrpc:"keyName,omitempty"` + + // no documentation yet + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` +} + +// no documentation yet +type Account_Shipment_Resource_Type struct { + Entity +} + +// no documentation yet +type Account_Shipment_Status struct { + Entity + + // DEPRECATED + CreateDate *Time `json:"createDate,omitempty" xmlrpc:"createDate,omitempty"` + + // no documentation yet + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // no documentation yet + KeyName *string `json:"keyName,omitempty" xmlrpc:"keyName,omitempty"` + + // no documentation yet + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` +} + +// The SoftLayer_Account_Shipment_Tracking_Data data type contains information on a single piece of tracking information pertaining to a shipment. This tracking information tracking numbers by which the shipment may be tracked through the shipping courier. +type Account_Shipment_Tracking_Data struct { + Entity + + // The employee who created the tracking datum. + CreateEmployee *User_Employee `json:"createEmployee,omitempty" xmlrpc:"createEmployee,omitempty"` + + // The customer user who created the tracking datum. + CreateUser *User_Customer `json:"createUser,omitempty" xmlrpc:"createUser,omitempty"` + + // The create user id of the tracking data. + CreateUserId *int `json:"createUserId,omitempty" xmlrpc:"createUserId,omitempty"` + + // The unique id of the tracking data. + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // The employee who last modified the tracking datum. + ModifyEmployee *User_Employee `json:"modifyEmployee,omitempty" xmlrpc:"modifyEmployee,omitempty"` + + // The customer user who last modified the tracking datum. + ModifyUser *User_Customer `json:"modifyUser,omitempty" xmlrpc:"modifyUser,omitempty"` + + // The user id of the tracking data. + ModifyUserId *int `json:"modifyUserId,omitempty" xmlrpc:"modifyUserId,omitempty"` + + // The package id of the tracking data. + PackageId *int `json:"packageId,omitempty" xmlrpc:"packageId,omitempty"` + + // The sequence of the tracking data. + Sequence *int `json:"sequence,omitempty" xmlrpc:"sequence,omitempty"` + + // The shipment of the tracking datum. + Shipment *Account_Shipment `json:"shipment,omitempty" xmlrpc:"shipment,omitempty"` + + // The shipment id of the tracking data. + ShipmentId *int `json:"shipmentId,omitempty" xmlrpc:"shipmentId,omitempty"` + + // The tracking data (tracking number/reference number). + TrackingData *string `json:"trackingData,omitempty" xmlrpc:"trackingData,omitempty"` +} + +// no documentation yet +type Account_Shipment_Type struct { + Entity + + // DEPRECATED + CreateDate *Time `json:"createDate,omitempty" xmlrpc:"createDate,omitempty"` + + // no documentation yet + Description *string `json:"description,omitempty" xmlrpc:"description,omitempty"` + + // no documentation yet + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // no documentation yet + KeyName *string `json:"keyName,omitempty" xmlrpc:"keyName,omitempty"` + + // no documentation yet + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` +} + +// no documentation yet +type Account_Status struct { + Entity + + // no documentation yet + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // no documentation yet + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` +} diff --git a/vendor/github.com/softlayer/softlayer-go/datatypes/auxiliary.go b/vendor/github.com/softlayer/softlayer-go/datatypes/auxiliary.go new file mode 100644 index 000000000..84f03a52e --- /dev/null +++ b/vendor/github.com/softlayer/softlayer-go/datatypes/auxiliary.go @@ -0,0 +1,342 @@ +/** + * Copyright 2016 IBM Corp. + * + * 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. + */ + +/** + * AUTOMATICALLY GENERATED CODE - DO NOT MODIFY + */ + +package datatypes + +// no documentation yet +type Auxiliary_Marketing_Event struct { + Entity + + // no documentation yet + CreateDate *Time `json:"createDate,omitempty" xmlrpc:"createDate,omitempty"` + + // no documentation yet + EnabledFlag *int `json:"enabledFlag,omitempty" xmlrpc:"enabledFlag,omitempty"` + + // no documentation yet + EndDate *Time `json:"endDate,omitempty" xmlrpc:"endDate,omitempty"` + + // no documentation yet + Location *string `json:"location,omitempty" xmlrpc:"location,omitempty"` + + // no documentation yet + ModifyDate *Time `json:"modifyDate,omitempty" xmlrpc:"modifyDate,omitempty"` + + // no documentation yet + StartDate *Time `json:"startDate,omitempty" xmlrpc:"startDate,omitempty"` + + // no documentation yet + Title *string `json:"title,omitempty" xmlrpc:"title,omitempty"` + + // no documentation yet + Url *string `json:"url,omitempty" xmlrpc:"url,omitempty"` +} + +// no documentation yet +type Auxiliary_Network_Status struct { + Entity +} + +// A SoftLayer_Auxiliary_Notification_Emergency data object represents a notification event being broadcast to the SoftLayer customer base. It is used to provide information regarding outages or current known issues. +type Auxiliary_Notification_Emergency struct { + Entity + + // The date this event was created. + CreateDate *Time `json:"createDate,omitempty" xmlrpc:"createDate,omitempty"` + + // The device (if any) effected by this event. + Device *string `json:"device,omitempty" xmlrpc:"device,omitempty"` + + // The duration of this event. + Duration *string `json:"duration,omitempty" xmlrpc:"duration,omitempty"` + + // The device (if any) effected by this event. + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // The location effected by this event. + Location *string `json:"location,omitempty" xmlrpc:"location,omitempty"` + + // A message describing this event. + Message *string `json:"message,omitempty" xmlrpc:"message,omitempty"` + + // The last date this event was modified. + ModifyDate *Time `json:"modifyDate,omitempty" xmlrpc:"modifyDate,omitempty"` + + // The service(s) (if any) effected by this event. + ServicesAffected *string `json:"servicesAffected,omitempty" xmlrpc:"servicesAffected,omitempty"` + + // The signature of the SoftLayer employee department associated with this notification. + Signature *Auxiliary_Notification_Emergency_Signature `json:"signature,omitempty" xmlrpc:"signature,omitempty"` + + // The date this event will start. + StartDate *Time `json:"startDate,omitempty" xmlrpc:"startDate,omitempty"` + + // The status of this notification. + Status *Auxiliary_Notification_Emergency_Status `json:"status,omitempty" xmlrpc:"status,omitempty"` + + // Current status record for this event. + StatusId *int `json:"statusId,omitempty" xmlrpc:"statusId,omitempty"` +} + +// Every SoftLayer_Auxiliary_Notification_Emergency has a signatureId that references a SoftLayer_Auxiliary_Notification_Emergency_Signature data type. The signature is the user or group responsible for the current event. +type Auxiliary_Notification_Emergency_Signature struct { + Entity + + // The name or signature for the current Emergency Notification. + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` +} + +// Every SoftLayer_Auxiliary_Notification_Emergency has a statusId that references a SoftLayer_Auxiliary_Notification_Emergency_Status data type. The status is used to determine the current state of the event. +type Auxiliary_Notification_Emergency_Status struct { + Entity + + // A name describing the status of the current Emergency Notification. + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` +} + +// no documentation yet +type Auxiliary_Press_Release struct { + Entity + + // no documentation yet + About []Auxiliary_Press_Release_About_Press_Release `json:"about,omitempty" xmlrpc:"about,omitempty"` + + // A count of + AboutCount *uint `json:"aboutCount,omitempty" xmlrpc:"aboutCount,omitempty"` + + // A count of + ContactCount *uint `json:"contactCount,omitempty" xmlrpc:"contactCount,omitempty"` + + // no documentation yet + Contacts []Auxiliary_Press_Release_Contact_Press_Release `json:"contacts,omitempty" xmlrpc:"contacts,omitempty"` + + // A press release's internal identifier. + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // A count of + MediaPartnerCount *uint `json:"mediaPartnerCount,omitempty" xmlrpc:"mediaPartnerCount,omitempty"` + + // no documentation yet + MediaPartners []Auxiliary_Press_Release_Media_Partner_Press_Release `json:"mediaPartners,omitempty" xmlrpc:"mediaPartners,omitempty"` + + // no documentation yet + PressReleaseContent *Auxiliary_Press_Release_Content `json:"pressReleaseContent,omitempty" xmlrpc:"pressReleaseContent,omitempty"` + + // The data a press release was published. + PublishDate *Time `json:"publishDate,omitempty" xmlrpc:"publishDate,omitempty"` + + // A press release's location. + ReleaseLocation *string `json:"releaseLocation,omitempty" xmlrpc:"releaseLocation,omitempty"` + + // A press release's sub-title. + SubTitle *string `json:"subTitle,omitempty" xmlrpc:"subTitle,omitempty"` + + // A press release's title. + Title *string `json:"title,omitempty" xmlrpc:"title,omitempty"` + + // Whether or not a press release is highlighted on the SoftLayer Website. + WebsiteHighlightFlag *bool `json:"websiteHighlightFlag,omitempty" xmlrpc:"websiteHighlightFlag,omitempty"` +} + +// no documentation yet +type Auxiliary_Press_Release_About struct { + Entity + + // A press release about's content. + Content *string `json:"content,omitempty" xmlrpc:"content,omitempty"` + + // A press release about's internal + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // A press release about's title. + Title *string `json:"title,omitempty" xmlrpc:"title,omitempty"` +} + +// no documentation yet +type Auxiliary_Press_Release_About_Press_Release struct { + Entity + + // A count of + AboutParagraphCount *uint `json:"aboutParagraphCount,omitempty" xmlrpc:"aboutParagraphCount,omitempty"` + + // no documentation yet + AboutParagraphs []Auxiliary_Press_Release_About `json:"aboutParagraphs,omitempty" xmlrpc:"aboutParagraphs,omitempty"` + + // A press release about cross + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // A press release about's internal + PressReleaseAboutId *int `json:"pressReleaseAboutId,omitempty" xmlrpc:"pressReleaseAboutId,omitempty"` + + // A count of + PressReleaseCount *uint `json:"pressReleaseCount,omitempty" xmlrpc:"pressReleaseCount,omitempty"` + + // A press release internal identifier. + PressReleaseId *int `json:"pressReleaseId,omitempty" xmlrpc:"pressReleaseId,omitempty"` + + // no documentation yet + PressReleases []Auxiliary_Press_Release `json:"pressReleases,omitempty" xmlrpc:"pressReleases,omitempty"` + + // The number that associated an about + SortOrder *int `json:"sortOrder,omitempty" xmlrpc:"sortOrder,omitempty"` +} + +// no documentation yet +type Auxiliary_Press_Release_Contact struct { + Entity + + // A press release contact's email + Email *string `json:"email,omitempty" xmlrpc:"email,omitempty"` + + // A press release contact's first name. + FirstName *string `json:"firstName,omitempty" xmlrpc:"firstName,omitempty"` + + // A press release contact's internal + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // A press release contact's last name. + LastName *string `json:"lastName,omitempty" xmlrpc:"lastName,omitempty"` + + // A press release contact's phone + Phone *string `json:"phone,omitempty" xmlrpc:"phone,omitempty"` + + // A press release contact's + ProfessionalTitle *string `json:"professionalTitle,omitempty" xmlrpc:"professionalTitle,omitempty"` +} + +// no documentation yet +type Auxiliary_Press_Release_Contact_Press_Release struct { + Entity + + // A count of + ContactCount *uint `json:"contactCount,omitempty" xmlrpc:"contactCount,omitempty"` + + // no documentation yet + Contacts []Auxiliary_Press_Release_Contact `json:"contacts,omitempty" xmlrpc:"contacts,omitempty"` + + // A press release contact cross + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // A press release contact's internal + PressReleaseContactId *int `json:"pressReleaseContactId,omitempty" xmlrpc:"pressReleaseContactId,omitempty"` + + // A count of + PressReleaseCount *uint `json:"pressReleaseCount,omitempty" xmlrpc:"pressReleaseCount,omitempty"` + + // A press release internal identifier. + PressReleaseId *int `json:"pressReleaseId,omitempty" xmlrpc:"pressReleaseId,omitempty"` + + // no documentation yet + PressReleases []Auxiliary_Press_Release `json:"pressReleases,omitempty" xmlrpc:"pressReleases,omitempty"` + + // The number that associated a contact + SortOrder *int `json:"sortOrder,omitempty" xmlrpc:"sortOrder,omitempty"` +} + +// no documentation yet +type Auxiliary_Press_Release_Content struct { + Entity + + // the id of a single press release + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // the press release id that the content + PressReleaseId *int `json:"pressReleaseId,omitempty" xmlrpc:"pressReleaseId,omitempty"` + + // the content of a press release + Text *string `json:"text,omitempty" xmlrpc:"text,omitempty"` +} + +// no documentation yet +type Auxiliary_Press_Release_Media_Partner struct { + Entity + + // A press release media partner's + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // A press release media partner's name. + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` +} + +// no documentation yet +type Auxiliary_Press_Release_Media_Partner_Press_Release struct { + Entity + + // A press release media partner cross + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // A count of + MediaPartnerCount *uint `json:"mediaPartnerCount,omitempty" xmlrpc:"mediaPartnerCount,omitempty"` + + // A press release media partner's + MediaPartnerId *int `json:"mediaPartnerId,omitempty" xmlrpc:"mediaPartnerId,omitempty"` + + // no documentation yet + MediaPartners []Auxiliary_Press_Release_Media_Partner `json:"mediaPartners,omitempty" xmlrpc:"mediaPartners,omitempty"` + + // A count of + PressReleaseCount *uint `json:"pressReleaseCount,omitempty" xmlrpc:"pressReleaseCount,omitempty"` + + // A press release internal identifier. + PressReleaseId *int `json:"pressReleaseId,omitempty" xmlrpc:"pressReleaseId,omitempty"` + + // no documentation yet + PressReleases []Auxiliary_Press_Release `json:"pressReleases,omitempty" xmlrpc:"pressReleases,omitempty"` +} + +// The SoftLayer_Auxiliary_Shipping_Courier data type contains general information relating the different (major) couriers that SoftLayer may use for shipping. +type Auxiliary_Shipping_Courier struct { + Entity + + // The unique id of the shipping courier. + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // The unique keyname of the shipping courier. + KeyName *string `json:"keyName,omitempty" xmlrpc:"keyName,omitempty"` + + // The name of the shipping courier. + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` + + // The url to shipping courier's website. + Url *string `json:"url,omitempty" xmlrpc:"url,omitempty"` +} + +// no documentation yet +type Auxiliary_Shipping_Courier_Type struct { + Entity + + // no documentation yet + Courier []Auxiliary_Shipping_Courier `json:"courier,omitempty" xmlrpc:"courier,omitempty"` + + // A count of + CourierCount *uint `json:"courierCount,omitempty" xmlrpc:"courierCount,omitempty"` + + // no documentation yet + Description *string `json:"description,omitempty" xmlrpc:"description,omitempty"` + + // no documentation yet + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // no documentation yet + KeyName *string `json:"keyName,omitempty" xmlrpc:"keyName,omitempty"` + + // no documentation yet + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` +} diff --git a/vendor/github.com/softlayer/softlayer-go/datatypes/billing.go b/vendor/github.com/softlayer/softlayer-go/datatypes/billing.go new file mode 100644 index 000000000..eb88c5491 --- /dev/null +++ b/vendor/github.com/softlayer/softlayer-go/datatypes/billing.go @@ -0,0 +1,2660 @@ +/** + * Copyright 2016 IBM Corp. + * + * 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. + */ + +/** + * AUTOMATICALLY GENERATED CODE - DO NOT MODIFY + */ + +package datatypes + +// no documentation yet +type Billing_Currency struct { + Entity + + // no documentation yet + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // no documentation yet + KeyName *string `json:"keyName,omitempty" xmlrpc:"keyName,omitempty"` + + // no documentation yet + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` +} + +// The SoftLayer_Billing_Currency_Country data type maps what currencies are valid for specific countries. US Dollars are valid from any country, but other currencies are only available to customers in certain countries. +type Billing_Currency_Country struct { + Entity + + // A unique identifier for the related country. + CountryId *int `json:"countryId,omitempty" xmlrpc:"countryId,omitempty"` + + // A unique identifier for the related currency. + CurrencyId *int `json:"currencyId,omitempty" xmlrpc:"currencyId,omitempty"` + + // A unique identifier for a map between a country and currency. + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` +} + +// no documentation yet +type Billing_Currency_ExchangeRate struct { + Entity + + // no documentation yet + EffectiveDate *Time `json:"effectiveDate,omitempty" xmlrpc:"effectiveDate,omitempty"` + + // no documentation yet + ExpirationDate *Time `json:"expirationDate,omitempty" xmlrpc:"expirationDate,omitempty"` + + // no documentation yet + FundingCurrency *Billing_Currency `json:"fundingCurrency,omitempty" xmlrpc:"fundingCurrency,omitempty"` + + // The id of the exchange rate record. + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // no documentation yet + LocalCurrency *Billing_Currency `json:"localCurrency,omitempty" xmlrpc:"localCurrency,omitempty"` + + // no documentation yet + Rate *Float64 `json:"rate,omitempty" xmlrpc:"rate,omitempty"` +} + +// Every SoftLayer customer account has billing specific information which is kept in the SoftLayer_Billing_Info data type. This information is used by the SoftLayer accounting group when sending invoices and making billing inquiries. +type Billing_Info struct { + Entity + + // The SoftLayer customer account associated with this billing information. + Account *Account `json:"account,omitempty" xmlrpc:"account,omitempty"` + + // A SoftLayer account's identifier. + AccountId *int `json:"accountId,omitempty" xmlrpc:"accountId,omitempty"` + + // no documentation yet + AchInformation []Billing_Info_Ach `json:"achInformation,omitempty" xmlrpc:"achInformation,omitempty"` + + // A count of + AchInformationCount *uint `json:"achInformationCount,omitempty" xmlrpc:"achInformationCount,omitempty"` + + // The day of the month that a SoftLayer customer is billed. + AnniversaryDayOfMonth *int `json:"anniversaryDayOfMonth,omitempty" xmlrpc:"anniversaryDayOfMonth,omitempty"` + + // This value doesn't persist to this object. It's used as part of the account creation process only; + CardAccountNumber *string `json:"cardAccountNumber,omitempty" xmlrpc:"cardAccountNumber,omitempty"` + + // the expiration month of the credit card on file + CardExpirationMonth *int `json:"cardExpirationMonth,omitempty" xmlrpc:"cardExpirationMonth,omitempty"` + + // the expiration year of the credit card on file + CardExpirationYear *int `json:"cardExpirationYear,omitempty" xmlrpc:"cardExpirationYear,omitempty"` + + // no documentation yet + CardNickname *string `json:"cardNickname,omitempty" xmlrpc:"cardNickname,omitempty"` + + // the type of the credit card on file + CardType *string `json:"cardType,omitempty" xmlrpc:"cardType,omitempty"` + + // This value doesn't persist to this object. It's used as part of the account creation process only. + CardVerificationNumber *string `json:"cardVerificationNumber,omitempty" xmlrpc:"cardVerificationNumber,omitempty"` + + // The date a customer's billing information was created. + CreateDate *Time `json:"createDate,omitempty" xmlrpc:"createDate,omitempty"` + + // Currency to be used by this customer account. + Currency *Billing_Currency `json:"currency,omitempty" xmlrpc:"currency,omitempty"` + + // Information related to an account's current and previous billing cycles. + CurrentBillingCycle *Billing_Info_Cycle `json:"currentBillingCycle,omitempty" xmlrpc:"currentBillingCycle,omitempty"` + + // A SoftLayer customer's billing information identifier. + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // The date on which an account was last billed. + LastBillDate *Time `json:"lastBillDate,omitempty" xmlrpc:"lastBillDate,omitempty"` + + // The last four digits of the credit card currently on the account. This is the only portion of the card that we store. For Paypal customers, this value will be empty. + LastFourPaymentCardDigits *int `json:"lastFourPaymentCardDigits,omitempty" xmlrpc:"lastFourPaymentCardDigits,omitempty"` + + // The date of the last payment received by SoftLayer from the account holder. + LastPaymentDate *Time `json:"lastPaymentDate,omitempty" xmlrpc:"lastPaymentDate,omitempty"` + + // The date a customer's billing information was last modified. + ModifyDate *Time `json:"modifyDate,omitempty" xmlrpc:"modifyDate,omitempty"` + + // The date on which an account will be billed next. + NextBillDate *Time `json:"nextBillDate,omitempty" xmlrpc:"nextBillDate,omitempty"` + + // The payment terms for an account. + PaymentTerms *int `json:"paymentTerms,omitempty" xmlrpc:"paymentTerms,omitempty"` + + // The percentage discount received on all one-time charges on a customer's monthly bill. + PercentDiscountOnetime *int `json:"percentDiscountOnetime,omitempty" xmlrpc:"percentDiscountOnetime,omitempty"` + + // The percentage discount received on all recurring charges on a customer's monthly bill. + PercentDiscountRecurring *int `json:"percentDiscountRecurring,omitempty" xmlrpc:"percentDiscountRecurring,omitempty"` + + // The total recurring fee amount for servers that are in the spare pool status. + SparePoolAmount *int `json:"sparePoolAmount,omitempty" xmlrpc:"sparePoolAmount,omitempty"` + + // no documentation yet + VatId *string `json:"vatId,omitempty" xmlrpc:"vatId,omitempty"` +} + +// no documentation yet +type Billing_Info_Ach struct { + Entity + + // no documentation yet + Account *Account `json:"account,omitempty" xmlrpc:"account,omitempty"` + + // no documentation yet + AccountId *int `json:"accountId,omitempty" xmlrpc:"accountId,omitempty"` + + // no documentation yet + AccountNumber *string `json:"accountNumber,omitempty" xmlrpc:"accountNumber,omitempty"` + + // no documentation yet + AccountType *string `json:"accountType,omitempty" xmlrpc:"accountType,omitempty"` + + // no documentation yet + BankTransitNumber *string `json:"bankTransitNumber,omitempty" xmlrpc:"bankTransitNumber,omitempty"` + + // no documentation yet + City *string `json:"city,omitempty" xmlrpc:"city,omitempty"` + + // no documentation yet + Country *string `json:"country,omitempty" xmlrpc:"country,omitempty"` + + // no documentation yet + FirstName *string `json:"firstName,omitempty" xmlrpc:"firstName,omitempty"` + + // no documentation yet + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // no documentation yet + LastName *string `json:"lastName,omitempty" xmlrpc:"lastName,omitempty"` + + // no documentation yet + PhoneNumber *string `json:"phoneNumber,omitempty" xmlrpc:"phoneNumber,omitempty"` + + // no documentation yet + Postalcode *string `json:"postalcode,omitempty" xmlrpc:"postalcode,omitempty"` + + // no documentation yet + State *string `json:"state,omitempty" xmlrpc:"state,omitempty"` + + // no documentation yet + Status *string `json:"status,omitempty" xmlrpc:"status,omitempty"` + + // no documentation yet + Street1 *string `json:"street1,omitempty" xmlrpc:"street1,omitempty"` + + // no documentation yet + Street2 *string `json:"street2,omitempty" xmlrpc:"street2,omitempty"` + + // no documentation yet + VerifiedDate *Time `json:"verifiedDate,omitempty" xmlrpc:"verifiedDate,omitempty"` +} + +// The SoftLayer_Billing_Info_Cycle data type models basic information concerning a SoftLayer account's previous and current billing cycles. The information in this class is only populated for SoftLayer customers who are billed monthly. +type Billing_Info_Cycle struct { + Entity + + // The account that a current billing cycle is associated with. + Account *Account `json:"account,omitempty" xmlrpc:"account,omitempty"` + + // The ending date of an account's current billing cycle. + CurrentCycleEndDate *Time `json:"currentCycleEndDate,omitempty" xmlrpc:"currentCycleEndDate,omitempty"` + + // The starting date of an account's current billing cycle. + CurrentCycleStartDate *Time `json:"currentCycleStartDate,omitempty" xmlrpc:"currentCycleStartDate,omitempty"` + + // The start date of an account's next billing cycle. + NextCycleStartDate *Time `json:"nextCycleStartDate,omitempty" xmlrpc:"nextCycleStartDate,omitempty"` + + // The ending date of an account's previous billing cycle. + PreviousCycleEndDate *Time `json:"previousCycleEndDate,omitempty" xmlrpc:"previousCycleEndDate,omitempty"` + + // The starting date of an account's previous billing cycle. + PreviousCycleStartDate *Time `json:"previousCycleStartDate,omitempty" xmlrpc:"previousCycleStartDate,omitempty"` +} + +// The SoftLayer_Billing_Invoice data type contains general information relating to an individual invoice applied to a SoftLayer customer account. Personal information in this type such as names, addresses, and phone numbers are taken from the account's contact information at the time the invoice is generated. +type Billing_Invoice struct { + Entity + + // The account that an invoice belongs to. + Account *Account `json:"account,omitempty" xmlrpc:"account,omitempty"` + + // The SoftLayer customer account that an invoice belongs to. + AccountId *int `json:"accountId,omitempty" xmlrpc:"accountId,omitempty"` + + // The first line of an address belonging to an account at the time an invoice is created. + Address1 *string `json:"address1,omitempty" xmlrpc:"address1,omitempty"` + + // The second line of an address belonging to an account at the time an invoice is created. + Address2 *string `json:"address2,omitempty" xmlrpc:"address2,omitempty"` + + // This is the amount of this invoice. + Amount *Float64 `json:"amount,omitempty" xmlrpc:"amount,omitempty"` + + // no documentation yet + BrandAtInvoiceCreation *Brand `json:"brandAtInvoiceCreation,omitempty" xmlrpc:"brandAtInvoiceCreation,omitempty"` + + // The city portion of an address belonging to an account at the time an invoice is created. + City *string `json:"city,omitempty" xmlrpc:"city,omitempty"` + + // Whether an account was exempt from taxes on their invoices at the time an invoice is created. + ClaimedTaxExemptTxFlag *bool `json:"claimedTaxExemptTxFlag,omitempty" xmlrpc:"claimedTaxExemptTxFlag,omitempty"` + + // The date an invoice was closed. Open invoices have a null closed date. + ClosedDate *Time `json:"closedDate,omitempty" xmlrpc:"closedDate,omitempty"` + + // The company name belonging to an account at the time an invoice is created. + CompanyName *string `json:"companyName,omitempty" xmlrpc:"companyName,omitempty"` + + // A two-letter abbreviation of the country portion of an address belonging to an account at the time an invoice is created. + Country *string `json:"country,omitempty" xmlrpc:"country,omitempty"` + + // The date an invoice was created. + CreateDate *Time `json:"createDate,omitempty" xmlrpc:"createDate,omitempty"` + + // A flag that will reflect whether the detailed version of the pdf has been generated. + DetailedPdfGeneratedFlag *bool `json:"detailedPdfGeneratedFlag,omitempty" xmlrpc:"detailedPdfGeneratedFlag,omitempty"` + + // no documentation yet + DocumentsGeneratedFlag *bool `json:"documentsGeneratedFlag,omitempty" xmlrpc:"documentsGeneratedFlag,omitempty"` + + // The email address belonging to an account at the time an invoice is created. + Email *string `json:"email,omitempty" xmlrpc:"email,omitempty"` + + // An SoftLayer account's balance at the time an invoice is closed. This value is measured in US Dollar ($USD) currency. + EndingBalance *Float64 `json:"endingBalance,omitempty" xmlrpc:"endingBalance,omitempty"` + + // The fax telephone number belonging to an account at the time an invoice is created. + FaxPhone *string `json:"faxPhone,omitempty" xmlrpc:"faxPhone,omitempty"` + + // The first name of the account holder at the time an invoice is created. + FirstName *string `json:"firstName,omitempty" xmlrpc:"firstName,omitempty"` + + // An invoice's internal identifier. + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // A count of a list of top-level invoice items that are on the currently pending invoice. + InvoiceTopLevelItemCount *uint `json:"invoiceTopLevelItemCount,omitempty" xmlrpc:"invoiceTopLevelItemCount,omitempty"` + + // A list of top-level invoice items that are on the currently pending invoice. + InvoiceTopLevelItems []Billing_Invoice_Item `json:"invoiceTopLevelItems,omitempty" xmlrpc:"invoiceTopLevelItems,omitempty"` + + // The total amount of this invoice. + InvoiceTotalAmount *Float64 `json:"invoiceTotalAmount,omitempty" xmlrpc:"invoiceTotalAmount,omitempty"` + + // The total one-time charges for this invoice. This is the sum of one-time charges + setup fees + labor fees. This does not include taxes. + InvoiceTotalOneTimeAmount *Float64 `json:"invoiceTotalOneTimeAmount,omitempty" xmlrpc:"invoiceTotalOneTimeAmount,omitempty"` + + // A sum of all the taxes related to one time charges for this invoice. + InvoiceTotalOneTimeTaxAmount *Float64 `json:"invoiceTotalOneTimeTaxAmount,omitempty" xmlrpc:"invoiceTotalOneTimeTaxAmount,omitempty"` + + // The total amount of this invoice. This does not include taxes. + InvoiceTotalPreTaxAmount *Float64 `json:"invoiceTotalPreTaxAmount,omitempty" xmlrpc:"invoiceTotalPreTaxAmount,omitempty"` + + // The total Recurring amount of this invoice. This amount does not include taxes or one time charges. + InvoiceTotalRecurringAmount *Float64 `json:"invoiceTotalRecurringAmount,omitempty" xmlrpc:"invoiceTotalRecurringAmount,omitempty"` + + // The total amount of the recurring taxes on this invoice. + InvoiceTotalRecurringTaxAmount *Float64 `json:"invoiceTotalRecurringTaxAmount,omitempty" xmlrpc:"invoiceTotalRecurringTaxAmount,omitempty"` + + // A count of the items that belong to this invoice. + ItemCount *uint `json:"itemCount,omitempty" xmlrpc:"itemCount,omitempty"` + + // The items that belong to this invoice. + Items []Billing_Invoice_Item `json:"items,omitempty" xmlrpc:"items,omitempty"` + + // The last name of the account holder at the time an invoice is created. + LastName *string `json:"lastName,omitempty" xmlrpc:"lastName,omitempty"` + + // The date an invoice was last modified. + ModifyDate *Time `json:"modifyDate,omitempty" xmlrpc:"modifyDate,omitempty"` + + // The telephone number belonging to an account at the time an invoice is created. + OfficePhone *string `json:"officePhone,omitempty" xmlrpc:"officePhone,omitempty"` + + // This is the total payment made on this invoice. + Payment *Float64 `json:"payment,omitempty" xmlrpc:"payment,omitempty"` + + // A count of the payments for the invoice. + PaymentCount *uint `json:"paymentCount,omitempty" xmlrpc:"paymentCount,omitempty"` + + // The payments for the invoice. + Payments []Billing_Invoice_Receivable_Payment `json:"payments,omitempty" xmlrpc:"payments,omitempty"` + + // The postal code portion of an address belonging to an account at the time an invoice is created. + PostalCode *string `json:"postalCode,omitempty" xmlrpc:"postalCode,omitempty"` + + // no documentation yet + PurchaseOrderNumber *string `json:"purchaseOrderNumber,omitempty" xmlrpc:"purchaseOrderNumber,omitempty"` + + // This is the seller's tax registration. + SellerRegistration *string `json:"sellerRegistration,omitempty" xmlrpc:"sellerRegistration,omitempty"` + + // An SoftLayer account's balance at the time an invoice is created. This value is measured in US Dollar ($USD) currency. + StartingBalance *Float64 `json:"startingBalance,omitempty" xmlrpc:"startingBalance,omitempty"` + + // A two-letter abbreviation of the state portion of an address belonging to an account at the time an invoice is created. If the account that the invoice was generated for resides outside a province then this is set to "other". + State *string `json:"state,omitempty" xmlrpc:"state,omitempty"` + + // An invoice's status. The "OPEN" status means SoftLayer has not yet received payment for this invoice. "CLOSED" status means that SoftLayer has received payment and closed the invoice. The "CLOSED_FAILED" status code means SoftLayer closed the invoice without receiving a payment. Invoices are usually set to CLOSED_FAILED status in cases where customer accounts are terminated for non-payment. + StatusCode *string `json:"statusCode,omitempty" xmlrpc:"statusCode,omitempty"` + + // This is the tax information that applies to tax auditing. This is the official tax record for this invoice. + TaxInfo *Billing_Invoice_Tax_Info `json:"taxInfo,omitempty" xmlrpc:"taxInfo,omitempty"` + + // This is the set of tax information for any tax calculation for this invoice. Note that not all of these are necessarily official, so use the taxInfo key to get the final information. + TaxInfoHistory []Billing_Invoice_Tax_Info `json:"taxInfoHistory,omitempty" xmlrpc:"taxInfoHistory,omitempty"` + + // A count of this is the set of tax information for any tax calculation for this invoice. Note that not all of these are necessarily official, so use the taxInfo key to get the final information. + TaxInfoHistoryCount *uint `json:"taxInfoHistoryCount,omitempty" xmlrpc:"taxInfoHistoryCount,omitempty"` + + // This is a message explaining the tax treatment for this invoice. + TaxMessage *string `json:"taxMessage,omitempty" xmlrpc:"taxMessage,omitempty"` + + // no documentation yet + TaxStatusId *int `json:"taxStatusId,omitempty" xmlrpc:"taxStatusId,omitempty"` + + // This is the strategy used to calculate tax on this invoice. + TaxType *Billing_Invoice_Tax_Type `json:"taxType,omitempty" xmlrpc:"taxType,omitempty"` + + // no documentation yet + TaxTypeId *int `json:"taxTypeId,omitempty" xmlrpc:"taxTypeId,omitempty"` + + // An invoice's type. SoftLayer invoices and service credits are differentiated by their type. The "NEW" type code signifies an invoice for new service. A SoftLayer customer's first invoice has the NEW type code. "RECURRING" invoices are generated on a SoftLayer customer's anniversary billing date for monthly services. "ONE-TIME-CHARGE" invoices are generated when one-time charges are applied to an account. "CREDIT" invoices are generated whenever SoftLayer applies a credit against an account's balance. There are two special types of service credits. "REFUND" type credits are applied against a customer's account balance along with the receivables on their account. "MANUAL_PAYMENT_CREDIT" invoice credits are generated whenever a customer makes an unscheduled payment. + TypeCode *string `json:"typeCode,omitempty" xmlrpc:"typeCode,omitempty"` +} + +// Each billing invoice item makes up a record within an invoice. This provides you with a detailed record of everything related to an invoice item. When you are billed, our system takes active billing items and creates an invoice. These invoice items are a copy of your active billing items, and make up the contents of your invoice. +type Billing_Invoice_Item struct { + Entity + + // An Invoice Item's associated child invoice items. Only parent invoice items have associated children. For instance, a server invoice item may have associated children. + AssociatedChildren []Billing_Invoice_Item `json:"associatedChildren,omitempty" xmlrpc:"associatedChildren,omitempty"` + + // A count of an Invoice Item's associated child invoice items. Only parent invoice items have associated children. For instance, a server invoice item may have associated children. + AssociatedChildrenCount *uint `json:"associatedChildrenCount,omitempty" xmlrpc:"associatedChildrenCount,omitempty"` + + // An Invoice Item's associated invoice item. If this is populated, it means this is an orphaned invoice item, but logically belongs to the associated invoice item. + AssociatedInvoiceItem *Billing_Invoice_Item `json:"associatedInvoiceItem,omitempty" xmlrpc:"associatedInvoiceItem,omitempty"` + + // The associated invoice Item ID. + AssociatedInvoiceItemId *int `json:"associatedInvoiceItemId,omitempty" xmlrpc:"associatedInvoiceItemId,omitempty"` + + // An Invoice Item's billing item, from which this item was generated. + BillingItem *Billing_Item `json:"billingItem,omitempty" xmlrpc:"billingItem,omitempty"` + + // The billing item from which this invoice item was generated. + BillingItemId *int `json:"billingItemId,omitempty" xmlrpc:"billingItemId,omitempty"` + + // This invoice item's "item category". + Category *Product_Item_Category `json:"category,omitempty" xmlrpc:"category,omitempty"` + + // The item category of the invoice item being invoiced. + CategoryCode *string `json:"categoryCode,omitempty" xmlrpc:"categoryCode,omitempty"` + + // An Invoice Item's child invoice items. Only parent invoice items have children. For instance, a server invoice item will have children. + Children []Billing_Invoice_Item `json:"children,omitempty" xmlrpc:"children,omitempty"` + + // A count of an Invoice Item's child invoice items. Only parent invoice items have children. For instance, a server invoice item will have children. + ChildrenCount *uint `json:"childrenCount,omitempty" xmlrpc:"childrenCount,omitempty"` + + // The date the invoice item was created. + CreateDate *Time `json:"createDate,omitempty" xmlrpc:"createDate,omitempty"` + + // The item description for this invoice item. + Description *string `json:"description,omitempty" xmlrpc:"description,omitempty"` + + // The domain name of the invoiced item. This is only used on invoice items whose category is "server". + DomainName *string `json:"domainName,omitempty" xmlrpc:"domainName,omitempty"` + + // An Invoice Item's associated child invoice items, excluding some items with a $0.00 recurring fee. Only parent invoice items have associated children. For instance, a server invoice item may have associated children. + FilteredAssociatedChildren []Billing_Invoice_Item `json:"filteredAssociatedChildren,omitempty" xmlrpc:"filteredAssociatedChildren,omitempty"` + + // A count of an Invoice Item's associated child invoice items, excluding some items with a $0.00 recurring fee. Only parent invoice items have associated children. For instance, a server invoice item may have associated children. + FilteredAssociatedChildrenCount *uint `json:"filteredAssociatedChildrenCount,omitempty" xmlrpc:"filteredAssociatedChildrenCount,omitempty"` + + // The Host name of the invoiced item. This is only used on invoice items whose category is "server". + HostName *string `json:"hostName,omitempty" xmlrpc:"hostName,omitempty"` + + // Indicating whether this invoice item is billed on an hourly basis. + HourlyFlag *bool `json:"hourlyFlag,omitempty" xmlrpc:"hourlyFlag,omitempty"` + + // The hourly recurring fee of the invoice item represented by a floating point decimal in US Dollars ($USD) + HourlyRecurringFee *Float64 `json:"hourlyRecurringFee,omitempty" xmlrpc:"hourlyRecurringFee,omitempty"` + + // The ID of the invoice item. + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // The invoice to which this item belongs. + Invoice *Billing_Invoice `json:"invoice,omitempty" xmlrpc:"invoice,omitempty"` + + // The invoice to which this invoice item belongs. + InvoiceId *int `json:"invoiceId,omitempty" xmlrpc:"invoiceId,omitempty"` + + // An invoice item's labor fee total after taxes. This does not include any child invoice items. + LaborAfterTaxAmount *Float64 `json:"laborAfterTaxAmount,omitempty" xmlrpc:"laborAfterTaxAmount,omitempty"` + + // This also a one-time fee of a special type. + LaborFee *Float64 `json:"laborFee,omitempty" xmlrpc:"laborFee,omitempty"` + + // The tax rate at which the labor fee is taxed. + LaborFeeTaxRate *Float64 `json:"laborFeeTaxRate,omitempty" xmlrpc:"laborFeeTaxRate,omitempty"` + + // An invoice item's labor tax amount. This does not include any child invoice items. + LaborTaxAmount *Float64 `json:"laborTaxAmount,omitempty" xmlrpc:"laborTaxAmount,omitempty"` + + // An invoice item's location, if one exists.' + Location *Location `json:"location,omitempty" xmlrpc:"location,omitempty"` + + // An Invoice Item's associated child invoice items, excluding ALL items with a $0.00 recurring fee. Only parent invoice items have associated children. For instance, a server invoice item may have associated children. + NonZeroAssociatedChildren []Billing_Invoice_Item `json:"nonZeroAssociatedChildren,omitempty" xmlrpc:"nonZeroAssociatedChildren,omitempty"` + + // A count of an Invoice Item's associated child invoice items, excluding ALL items with a $0.00 recurring fee. Only parent invoice items have associated children. For instance, a server invoice item may have associated children. + NonZeroAssociatedChildrenCount *uint `json:"nonZeroAssociatedChildrenCount,omitempty" xmlrpc:"nonZeroAssociatedChildrenCount,omitempty"` + + // A note to help describe more about the item. This normally holds usernames, or some other bit of extra information. + Notes *string `json:"notes,omitempty" xmlrpc:"notes,omitempty"` + + // An invoice item's one-time fee total after taxes. This does not include any child invoice items. + OneTimeAfterTaxAmount *Float64 `json:"oneTimeAfterTaxAmount,omitempty" xmlrpc:"oneTimeAfterTaxAmount,omitempty"` + + // If there are any one-time charges assessed, it will show up here represented by a floating point decimal in US Dollars ($USD) + OneTimeFee *Float64 `json:"oneTimeFee,omitempty" xmlrpc:"oneTimeFee,omitempty"` + + // The rate at which the one-time fee is taxed. + OneTimeFeeTaxRate *Float64 `json:"oneTimeFeeTaxRate,omitempty" xmlrpc:"oneTimeFeeTaxRate,omitempty"` + + // An invoice item's one-time tax amount. This does not include any child invoice items. + OneTimeTaxAmount *Float64 `json:"oneTimeTaxAmount,omitempty" xmlrpc:"oneTimeTaxAmount,omitempty"` + + // Every item tied to a server should have a parent invoice item which is the server line item. This is how we associate items to a server. + Parent *Billing_Invoice_Item `json:"parent,omitempty" xmlrpc:"parent,omitempty"` + + // The parent invoice item, usually the server invoice item. + ParentId *int `json:"parentId,omitempty" xmlrpc:"parentId,omitempty"` + + // The entry in the product catalog that a invoice item is based upon. + Product *Product_Item `json:"product,omitempty" xmlrpc:"product,omitempty"` + + // The entry in the product catalog that a invoice item is based upon. + ProductItemId *int `json:"productItemId,omitempty" xmlrpc:"productItemId,omitempty"` + + // An invoice item's recurring fee total after taxes. This does not include any child invoice items. + RecurringAfterTaxAmount *Float64 `json:"recurringAfterTaxAmount,omitempty" xmlrpc:"recurringAfterTaxAmount,omitempty"` + + // The recurring fee of the invoice item represented by a floating point decimal in US Dollars ($USD) + RecurringFee *Float64 `json:"recurringFee,omitempty" xmlrpc:"recurringFee,omitempty"` + + // the rate at which the recurring fee is taxed. + RecurringFeeTaxRate *Float64 `json:"recurringFeeTaxRate,omitempty" xmlrpc:"recurringFeeTaxRate,omitempty"` + + // An invoice item's recurring tax amount. This does not include any child invoice items. + RecurringTaxAmount *Float64 `json:"recurringTaxAmount,omitempty" xmlrpc:"recurringTaxAmount,omitempty"` + + // A unique identifier for a SoftLayer Service that is associated to an invoice item. + ResourceTableId *int `json:"resourceTableId,omitempty" xmlrpc:"resourceTableId,omitempty"` + + // The service provider for the invoice item. + ServiceProviderId *int `json:"serviceProviderId,omitempty" xmlrpc:"serviceProviderId,omitempty"` + + // An invoice item's setup fee total after taxes. This does not include any child invoice items. + SetupAfterTaxAmount *Float64 `json:"setupAfterTaxAmount,omitempty" xmlrpc:"setupAfterTaxAmount,omitempty"` + + // If there were any setup fees they will show up here. These are normally a one-time fee. + SetupFee *Float64 `json:"setupFee,omitempty" xmlrpc:"setupFee,omitempty"` + + // The tax rate at which the setup fee is taxed. + SetupFeeTaxRate *Float64 `json:"setupFeeTaxRate,omitempty" xmlrpc:"setupFeeTaxRate,omitempty"` + + // An invoice item's setup tax amount. This does not include any child invoice items. + SetupTaxAmount *Float64 `json:"setupTaxAmount,omitempty" xmlrpc:"setupTaxAmount,omitempty"` + + // A string representing the name of parent level product group of an invoice item. + TopLevelProductGroupName *string `json:"topLevelProductGroupName,omitempty" xmlrpc:"topLevelProductGroupName,omitempty"` + + // An invoice Item's total, including any child invoice items if they exist. + TotalOneTimeAmount *Float64 `json:"totalOneTimeAmount,omitempty" xmlrpc:"totalOneTimeAmount,omitempty"` + + // An invoice Item's total, including any child invoice items if they exist. + TotalOneTimeTaxAmount *Float64 `json:"totalOneTimeTaxAmount,omitempty" xmlrpc:"totalOneTimeTaxAmount,omitempty"` + + // An invoice Item's total, including any child invoice items if they exist. + TotalRecurringAmount *Float64 `json:"totalRecurringAmount,omitempty" xmlrpc:"totalRecurringAmount,omitempty"` + + // A Billing Item's total, including any child billing items if they exist.' + TotalRecurringTaxAmount *Float64 `json:"totalRecurringTaxAmount,omitempty" xmlrpc:"totalRecurringTaxAmount,omitempty"` +} + +// The SoftLayer_Billing_Invoice_Item_Hardware data type contains a "resource". This resource is a link to the hardware tied to a SoftLayer_Billing_item whose category code is "server". +type Billing_Invoice_Item_Hardware struct { + Billing_Invoice_Item + + // The resource for a server invoice item. + Resource *Hardware `json:"resource,omitempty" xmlrpc:"resource,omitempty"` +} + +// Information about the tax rates that apply to a particular invoice item. +type Billing_Invoice_Item_Tax_Info struct { + Entity + + // The date and time the tax information was recorded. + CreateDate *Time `json:"createDate,omitempty" xmlrpc:"createDate,omitempty"` + + // The invoice description with special information about the invoice. + Description *string `json:"description,omitempty" xmlrpc:"description,omitempty"` + + // The tax rate that can be multiplied by the subtotal to get the + EffectiveTaxRate *Float64 `json:"effectiveTaxRate,omitempty" xmlrpc:"effectiveTaxRate,omitempty"` + + // The amount that is exempt from tax. + ExemptAmount *Float64 `json:"exemptAmount,omitempty" xmlrpc:"exemptAmount,omitempty"` + + // The type of fee being tracked for this particular set of tax information. + FeeProperty *string `json:"feeProperty,omitempty" xmlrpc:"feeProperty,omitempty"` + + // An invoice item's tax information internal identifier. + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // no documentation yet + InvoiceItem *Billing_Invoice_Item `json:"invoiceItem,omitempty" xmlrpc:"invoiceItem,omitempty"` + + // A reference to the related invoice item. + InvoiceItemId *int `json:"invoiceItemId,omitempty" xmlrpc:"invoiceItemId,omitempty"` + + // no documentation yet + InvoiceTaxInfo *Billing_Invoice_Tax_Info `json:"invoiceTaxInfo,omitempty" xmlrpc:"invoiceTaxInfo,omitempty"` + + // A reference to the tax information for the parent invoice. + InvoiceTaxInfoId *int `json:"invoiceTaxInfoId,omitempty" xmlrpc:"invoiceTaxInfoId,omitempty"` + + // The date and time the tax information was modified. + ModifyDate *Time `json:"modifyDate,omitempty" xmlrpc:"modifyDate,omitempty"` + + // The amount that is exempt from tax. + NonTaxableBasis *Float64 `json:"nonTaxableBasis,omitempty" xmlrpc:"nonTaxableBasis,omitempty"` + + // A flag to indicate whether this is the official record for this invoice item. + ReportedFlag *bool `json:"reportedFlag,omitempty" xmlrpc:"reportedFlag,omitempty"` + + // The registration that the seller will use to report the invoice. + SellerRegistration *string `json:"sellerRegistration,omitempty" xmlrpc:"sellerRegistration,omitempty"` + + // The tax amount associated with this line item. + TaxAmount *Float64 `json:"taxAmount,omitempty" xmlrpc:"taxAmount,omitempty"` + + // The tax amount (converted to the 'to' currency) associated with this line item. + TaxAmountToCurrency *Float64 `json:"taxAmountToCurrency,omitempty" xmlrpc:"taxAmountToCurrency,omitempty"` + + // The tax rate used. Note that this might apply to only part of the + TaxRate *Float64 `json:"taxRate,omitempty" xmlrpc:"taxRate,omitempty"` + + // The amount that is subject to tax. + TaxableBasis *Float64 `json:"taxableBasis,omitempty" xmlrpc:"taxableBasis,omitempty"` + + // This is the currency the invoice will be converted to. + ToCurrency *Billing_Currency `json:"toCurrency,omitempty" xmlrpc:"toCurrency,omitempty"` + + // The currency code that the invoice is being converted to. + ToCurrencyId *int `json:"toCurrencyId,omitempty" xmlrpc:"toCurrencyId,omitempty"` +} + +// no documentation yet +type Billing_Invoice_Next struct { + Entity +} + +// The SoftLayer_Billing_Invoice_Receivable_Payment data type contains general information relating to payments made against invoices. +type Billing_Invoice_Receivable_Payment struct { + Entity + + // no documentation yet + Account *Account `json:"account,omitempty" xmlrpc:"account,omitempty"` + + // The amount of the payment. + Amount *Float64 `json:"amount,omitempty" xmlrpc:"amount,omitempty"` + + // The date of the payment. + CreateDate *Time `json:"createDate,omitempty" xmlrpc:"createDate,omitempty"` + + // no documentation yet + CreditCardLastFourDigits *int `json:"creditCardLastFourDigits,omitempty" xmlrpc:"creditCardLastFourDigits,omitempty"` + + // no documentation yet + CreditCardRequestId *string `json:"creditCardRequestId,omitempty" xmlrpc:"creditCardRequestId,omitempty"` + + // no documentation yet + CreditCardTransaction *Billing_Payment_Card_Transaction `json:"creditCardTransaction,omitempty" xmlrpc:"creditCardTransaction,omitempty"` + + // no documentation yet + ExchangeRate *Billing_Currency_ExchangeRate `json:"exchangeRate,omitempty" xmlrpc:"exchangeRate,omitempty"` + + // no documentation yet + Invoice *Billing_Invoice `json:"invoice,omitempty" xmlrpc:"invoice,omitempty"` + + // The invoice that the payment is for. + InvoiceId *int `json:"invoiceId,omitempty" xmlrpc:"invoiceId,omitempty"` + + // no documentation yet + PaypalTransaction *Billing_Payment_PayPal_Transaction `json:"paypalTransaction,omitempty" xmlrpc:"paypalTransaction,omitempty"` + + // The type of payment. + TypeCode *string `json:"typeCode,omitempty" xmlrpc:"typeCode,omitempty"` +} + +// Invoice tax information contains top-level information about the taxes recorded for a particular invoice. +type Billing_Invoice_Tax_Info struct { + Entity + + // The date and time this tax information was recorded. + CreateDate *Time `json:"createDate,omitempty" xmlrpc:"createDate,omitempty"` + + // This is the currency used for the invoice. + Currency *Billing_Currency `json:"currency,omitempty" xmlrpc:"currency,omitempty"` + + // The currency code that the invoice should be recorded in. + CurrencyId *int `json:"currencyId,omitempty" xmlrpc:"currencyId,omitempty"` + + // This is the functional currency used for the invoice. + FunctionalCurrency *Billing_Currency `json:"functionalCurrency,omitempty" xmlrpc:"functionalCurrency,omitempty"` + + // The internal identifier for this invoice tax information. + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // This is the related invoice for this tax-related information. + Invoice *Billing_Invoice `json:"invoice,omitempty" xmlrpc:"invoice,omitempty"` + + // A reference to the related invoice. + InvoiceId *int `json:"invoiceId,omitempty" xmlrpc:"invoiceId,omitempty"` + + // A count of this is the collection of tax information for each of the related invoice items. + ItemCount *uint `json:"itemCount,omitempty" xmlrpc:"itemCount,omitempty"` + + // This tax information on the invoice item that includes currency details. + ItemWithCurrencyInfo *Billing_Invoice_Item_Tax_Info `json:"itemWithCurrencyInfo,omitempty" xmlrpc:"itemWithCurrencyInfo,omitempty"` + + // This is the collection of tax information for each of the related invoice items. + Items []Billing_Invoice_Item_Tax_Info `json:"items,omitempty" xmlrpc:"items,omitempty"` + + // The date and time this tax information was updated. + ModifyDate *Time `json:"modifyDate,omitempty" xmlrpc:"modifyDate,omitempty"` + + // A flag to indicate whether the invoice will be auditable. + ReportedFlag *bool `json:"reportedFlag,omitempty" xmlrpc:"reportedFlag,omitempty"` + + // This the total tax amount (converted to the 'to' currency) for the invoice. + TotalTaxAmountToCurrency *Float64 `json:"totalTaxAmountToCurrency,omitempty" xmlrpc:"totalTaxAmountToCurrency,omitempty"` +} + +// The invoice tax status data type models a single status or state that an invoice can reflect in regard to an integration with a third-party tax calculation service. +type Billing_Invoice_Tax_Status struct { + Entity + + // no documentation yet + CreateDate *Time `json:"createDate,omitempty" xmlrpc:"createDate,omitempty"` + + // no documentation yet + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // no documentation yet + KeyName *string `json:"keyName,omitempty" xmlrpc:"keyName,omitempty"` + + // no documentation yet + ModifyDate *Time `json:"modifyDate,omitempty" xmlrpc:"modifyDate,omitempty"` + + // no documentation yet + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` +} + +// The invoice tax type data type models a single strategy for handling tax calculations. +type Billing_Invoice_Tax_Type struct { + Entity + + // A tax type's internal identifier. Each type of tax calculation strategy has a unique ID value. + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // A unique string that identifies each strategy and is guaranteed to be stable over time. + KeyName *string `json:"keyName,omitempty" xmlrpc:"keyName,omitempty"` + + // A human-readable label for each tax strategy. + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` +} + +// Every individual item that a SoftLayer customer is billed for is recorded in the SoftLayer_Billing_Item data type. Billing items range from server chassis to hard drives to control panels, bandwidth quota upgrades and port upgrade charges. Softlayer [[SoftLayer_Billing_Invoice|invoices]] are generated from the cost of a customer's billing items. Billing items are copied from the product catalog as they're ordered by customers to create a reference between an account and the billable items they own. +// +// Billing items exist in a tree relationship. Items are associated with each other by parent/child relationships. Component items such as CPU's, RAM, and software each have a parent billing item for the server chassis they're associated with. Billing Items with a null parent item do not have an associated parent item. +type Billing_Item struct { + Entity + + // The account that a billing item belongs to. + Account *Account `json:"account,omitempty" xmlrpc:"account,omitempty"` + + // no documentation yet + ActiveAgreement *Account_Agreement `json:"activeAgreement,omitempty" xmlrpc:"activeAgreement,omitempty"` + + // A flag indicating that the billing item is under an active agreement. + ActiveAgreementFlag *Account_Agreement `json:"activeAgreementFlag,omitempty" xmlrpc:"activeAgreementFlag,omitempty"` + + // A billing item's active associated child billing items. This includes "floating" items that are not necessarily child items of this billing item. + ActiveAssociatedChildren []Billing_Item `json:"activeAssociatedChildren,omitempty" xmlrpc:"activeAssociatedChildren,omitempty"` + + // A count of a billing item's active associated child billing items. This includes "floating" items that are not necessarily child items of this billing item. + ActiveAssociatedChildrenCount *uint `json:"activeAssociatedChildrenCount,omitempty" xmlrpc:"activeAssociatedChildrenCount,omitempty"` + + // A count of + ActiveAssociatedGuestDiskBillingItemCount *uint `json:"activeAssociatedGuestDiskBillingItemCount,omitempty" xmlrpc:"activeAssociatedGuestDiskBillingItemCount,omitempty"` + + // no documentation yet + ActiveAssociatedGuestDiskBillingItems []Billing_Item `json:"activeAssociatedGuestDiskBillingItems,omitempty" xmlrpc:"activeAssociatedGuestDiskBillingItems,omitempty"` + + // A count of a Billing Item's active bundled billing items. + ActiveBundledItemCount *uint `json:"activeBundledItemCount,omitempty" xmlrpc:"activeBundledItemCount,omitempty"` + + // A Billing Item's active bundled billing items. + ActiveBundledItems []Billing_Item `json:"activeBundledItems,omitempty" xmlrpc:"activeBundledItems,omitempty"` + + // A service cancellation request item that corresponds to the billing item. + ActiveCancellationItem *Billing_Item_Cancellation_Request_Item `json:"activeCancellationItem,omitempty" xmlrpc:"activeCancellationItem,omitempty"` + + // A Billing Item's active child billing items. + ActiveChildren []Billing_Item `json:"activeChildren,omitempty" xmlrpc:"activeChildren,omitempty"` + + // A count of a Billing Item's active child billing items. + ActiveChildrenCount *uint `json:"activeChildrenCount,omitempty" xmlrpc:"activeChildrenCount,omitempty"` + + // no documentation yet + ActiveFlag *bool `json:"activeFlag,omitempty" xmlrpc:"activeFlag,omitempty"` + + // A count of + ActiveSparePoolAssociatedGuestDiskBillingItemCount *uint `json:"activeSparePoolAssociatedGuestDiskBillingItemCount,omitempty" xmlrpc:"activeSparePoolAssociatedGuestDiskBillingItemCount,omitempty"` + + // no documentation yet + ActiveSparePoolAssociatedGuestDiskBillingItems []Billing_Item `json:"activeSparePoolAssociatedGuestDiskBillingItems,omitempty" xmlrpc:"activeSparePoolAssociatedGuestDiskBillingItems,omitempty"` + + // A count of a Billing Item's spare pool bundled billing items. + ActiveSparePoolBundledItemCount *uint `json:"activeSparePoolBundledItemCount,omitempty" xmlrpc:"activeSparePoolBundledItemCount,omitempty"` + + // A Billing Item's spare pool bundled billing items. + ActiveSparePoolBundledItems []Billing_Item `json:"activeSparePoolBundledItems,omitempty" xmlrpc:"activeSparePoolBundledItems,omitempty"` + + // Flag to check if a billing item can be cancelled. 1 = yes. 0 = no. + AllowCancellationFlag *int `json:"allowCancellationFlag,omitempty" xmlrpc:"allowCancellationFlag,omitempty"` + + // A billing item's associated parent. This is to be used for billing items that are "floating", and therefore are not child items of any parent billing item. If it is desired to associate an item to another, populate this with the SoftLayer_Billing_Item ID of that associated parent item. + AssociatedBillingItem *Billing_Item `json:"associatedBillingItem,omitempty" xmlrpc:"associatedBillingItem,omitempty"` + + // A history of billing items which a billing item has been associated with. + AssociatedBillingItemHistory []Billing_Item_Association_History `json:"associatedBillingItemHistory,omitempty" xmlrpc:"associatedBillingItemHistory,omitempty"` + + // A count of a history of billing items which a billing item has been associated with. + AssociatedBillingItemHistoryCount *uint `json:"associatedBillingItemHistoryCount,omitempty" xmlrpc:"associatedBillingItemHistoryCount,omitempty"` + + // This is sometimes populated for orphan billing items that are not attached to servers. Billing items like secondary portable IP addresses fit into this category. A user may set an association by calling [[SoftLayer_Billing_Item::setAssociationId]]. This will cause this orphan item to appear under its associated server billing item on future invoices. You may only attach orphaned billing items to server billing items without cancellation dates set. + AssociatedBillingItemId *string `json:"associatedBillingItemId,omitempty" xmlrpc:"associatedBillingItemId,omitempty"` + + // A Billing Item's associated child billing items. This includes "floating" items that are not necessarily child billing items of this billing item. + AssociatedChildren []Billing_Item `json:"associatedChildren,omitempty" xmlrpc:"associatedChildren,omitempty"` + + // A count of a Billing Item's associated child billing items. This includes "floating" items that are not necessarily child billing items of this billing item. + AssociatedChildrenCount *uint `json:"associatedChildrenCount,omitempty" xmlrpc:"associatedChildrenCount,omitempty"` + + // A billing item's associated parent billing item. This object will be the same as the parent billing item if parentId is set. + AssociatedParent []Billing_Item `json:"associatedParent,omitempty" xmlrpc:"associatedParent,omitempty"` + + // A count of a billing item's associated parent billing item. This object will be the same as the parent billing item if parentId is set. + AssociatedParentCount *uint `json:"associatedParentCount,omitempty" xmlrpc:"associatedParentCount,omitempty"` + + // A count of + AvailableMatchingVlanCount *uint `json:"availableMatchingVlanCount,omitempty" xmlrpc:"availableMatchingVlanCount,omitempty"` + + // no documentation yet + AvailableMatchingVlans []Network_Vlan `json:"availableMatchingVlans,omitempty" xmlrpc:"availableMatchingVlans,omitempty"` + + // The bandwidth allocation for a billing item. + BandwidthAllocation *Network_Bandwidth_Version1_Allocation `json:"bandwidthAllocation,omitempty" xmlrpc:"bandwidthAllocation,omitempty"` + + // A billing item's recurring child items that have once been billed and are scheduled to be billed in the future. + BillableChildren []Billing_Item `json:"billableChildren,omitempty" xmlrpc:"billableChildren,omitempty"` + + // A count of a billing item's recurring child items that have once been billed and are scheduled to be billed in the future. + BillableChildrenCount *uint `json:"billableChildrenCount,omitempty" xmlrpc:"billableChildrenCount,omitempty"` + + // A count of a Billing Item's bundled billing items + BundleItemCount *uint `json:"bundleItemCount,omitempty" xmlrpc:"bundleItemCount,omitempty"` + + // A Billing Item's bundled billing items + BundleItems []Product_Item_Bundles `json:"bundleItems,omitempty" xmlrpc:"bundleItems,omitempty"` + + // A count of a Billing Item's bundled billing items' + BundledItemCount *uint `json:"bundledItemCount,omitempty" xmlrpc:"bundledItemCount,omitempty"` + + // A Billing Item's bundled billing items' + BundledItems []Billing_Item `json:"bundledItems,omitempty" xmlrpc:"bundledItems,omitempty"` + + // A Billing Item's active child billing items. + CanceledChildren []Billing_Item `json:"canceledChildren,omitempty" xmlrpc:"canceledChildren,omitempty"` + + // A count of a Billing Item's active child billing items. + CanceledChildrenCount *uint `json:"canceledChildrenCount,omitempty" xmlrpc:"canceledChildrenCount,omitempty"` + + // A billing item's cancellation date. A billing item with a cancellation date in the past is not charged on your SoftLayer invoice. Cancellation dates in the future indicate the current billing item is active, but will be cancelled and not charged for in the future. A billing item with a null cancellation date is also considered an active billing item and is charged once every billing cycle. + CancellationDate *Time `json:"cancellationDate,omitempty" xmlrpc:"cancellationDate,omitempty"` + + // The billing item's cancellation reason. + CancellationReason *Billing_Item_Cancellation_Reason `json:"cancellationReason,omitempty" xmlrpc:"cancellationReason,omitempty"` + + // A count of this will return any cancellation requests that are associated with this billing item. + CancellationRequestCount *uint `json:"cancellationRequestCount,omitempty" xmlrpc:"cancellationRequestCount,omitempty"` + + // This will return any cancellation requests that are associated with this billing item. + CancellationRequests []Billing_Item_Cancellation_Request `json:"cancellationRequests,omitempty" xmlrpc:"cancellationRequests,omitempty"` + + // The item category to which the billing item's item belongs. + Category *Product_Item_Category `json:"category,omitempty" xmlrpc:"category,omitempty"` + + // The category code of this billing item. It is used to tell us the difference between a primary disk and a secondary disk, for instance. + CategoryCode *string `json:"categoryCode,omitempty" xmlrpc:"categoryCode,omitempty"` + + // A Billing Item's child billing items' + Children []Billing_Item `json:"children,omitempty" xmlrpc:"children,omitempty"` + + // A count of a Billing Item's child billing items' + ChildrenCount *uint `json:"childrenCount,omitempty" xmlrpc:"childrenCount,omitempty"` + + // A Billing Item's active child billing items. + ChildrenWithActiveAgreement []Billing_Item `json:"childrenWithActiveAgreement,omitempty" xmlrpc:"childrenWithActiveAgreement,omitempty"` + + // A count of a Billing Item's active child billing items. + ChildrenWithActiveAgreementCount *uint `json:"childrenWithActiveAgreementCount,omitempty" xmlrpc:"childrenWithActiveAgreementCount,omitempty"` + + // The date the billing item was created. You can see this date on the invoice. + CreateDate *Time `json:"createDate,omitempty" xmlrpc:"createDate,omitempty"` + + // This is the total charge for the billing item for this billing item. It is calculated based on the hourlyRecurringFee * hoursUsed. + CurrentHourlyCharge *string `json:"currentHourlyCharge,omitempty" xmlrpc:"currentHourlyCharge,omitempty"` + + // The last time this billing item was charged. + CycleStartDate *Time `json:"cycleStartDate,omitempty" xmlrpc:"cycleStartDate,omitempty"` + + // A brief description of a billing item. + Description *string `json:"description,omitempty" xmlrpc:"description,omitempty"` + + // The domain name is provided for server billing items. + DomainName *string `json:"domainName,omitempty" xmlrpc:"domainName,omitempty"` + + // A count of for product items which have a downgrade path defined, this will return those product items. + DowngradeItemCount *uint `json:"downgradeItemCount,omitempty" xmlrpc:"downgradeItemCount,omitempty"` + + // For product items which have a downgrade path defined, this will return those product items. + DowngradeItems []Product_Item `json:"downgradeItems,omitempty" xmlrpc:"downgradeItems,omitempty"` + + // A Billing Item's associated child billing items, excluding some items with a $0.00 recurring fee. + FilteredNextInvoiceChildren []Billing_Item `json:"filteredNextInvoiceChildren,omitempty" xmlrpc:"filteredNextInvoiceChildren,omitempty"` + + // A count of a Billing Item's associated child billing items, excluding some items with a $0.00 recurring fee. + FilteredNextInvoiceChildrenCount *uint `json:"filteredNextInvoiceChildrenCount,omitempty" xmlrpc:"filteredNextInvoiceChildrenCount,omitempty"` + + // The hostname is provided for server billing items + HostName *string `json:"hostName,omitempty" xmlrpc:"hostName,omitempty"` + + // A flag that will reflect whether this billing item is billed on an hourly basis or not. + HourlyFlag *bool `json:"hourlyFlag,omitempty" xmlrpc:"hourlyFlag,omitempty"` + + // The amount of money charged per hour for a billing item, if applicable. hourlyRecurringFee is measured in US Dollars ($USD). + HourlyRecurringFee *Float64 `json:"hourlyRecurringFee,omitempty" xmlrpc:"hourlyRecurringFee,omitempty"` + + // This is the number of hours the hourly billing item has been in use this billing period. For virtual servers, this means running, paused or stopped. + HoursUsed *string `json:"hoursUsed,omitempty" xmlrpc:"hoursUsed,omitempty"` + + // The unique identifier for this billing item. + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // Invoice items associated with this billing item + InvoiceItem *Billing_Invoice_Item `json:"invoiceItem,omitempty" xmlrpc:"invoiceItem,omitempty"` + + // A count of all invoice items associated with the billing item + InvoiceItemCount *uint `json:"invoiceItemCount,omitempty" xmlrpc:"invoiceItemCount,omitempty"` + + // All invoice items associated with the billing item + InvoiceItems []Billing_Invoice_Item `json:"invoiceItems,omitempty" xmlrpc:"invoiceItems,omitempty"` + + // The entry in the SoftLayer product catalog that a billing item is based upon. + Item *Product_Item `json:"item,omitempty" xmlrpc:"item,omitempty"` + + // The labor fee, if any. This is a one time charge. + LaborFee *Float64 `json:"laborFee,omitempty" xmlrpc:"laborFee,omitempty"` + + // The rate at which labor fees are taxed if you are a taxable customer. + LaborFeeTaxRate *Float64 `json:"laborFeeTaxRate,omitempty" xmlrpc:"laborFeeTaxRate,omitempty"` + + // The last time this billing item was charged. + LastBillDate *Time `json:"lastBillDate,omitempty" xmlrpc:"lastBillDate,omitempty"` + + // The location of the billing item. Some billing items have physical properties such as the server itself. For items such as these, we provide location information. + Location *Location `json:"location,omitempty" xmlrpc:"location,omitempty"` + + // The date that a billing item was last modified. + ModifyDate *Time `json:"modifyDate,omitempty" xmlrpc:"modifyDate,omitempty"` + + // The date on which your account will be charged for this billing item. + NextBillDate *Time `json:"nextBillDate,omitempty" xmlrpc:"nextBillDate,omitempty"` + + // A Billing Item's child billing items and associated items' + NextInvoiceChildren []Billing_Item `json:"nextInvoiceChildren,omitempty" xmlrpc:"nextInvoiceChildren,omitempty"` + + // A count of a Billing Item's child billing items and associated items' + NextInvoiceChildrenCount *uint `json:"nextInvoiceChildrenCount,omitempty" xmlrpc:"nextInvoiceChildrenCount,omitempty"` + + // A Billing Item's total, including any child billing items if they exist.' + NextInvoiceTotalOneTimeAmount *Float64 `json:"nextInvoiceTotalOneTimeAmount,omitempty" xmlrpc:"nextInvoiceTotalOneTimeAmount,omitempty"` + + // A Billing Item's total, including any child billing items if they exist.' + NextInvoiceTotalOneTimeTaxAmount *Float64 `json:"nextInvoiceTotalOneTimeTaxAmount,omitempty" xmlrpc:"nextInvoiceTotalOneTimeTaxAmount,omitempty"` + + // A Billing Item's total, including any child billing items and associated billing items if they exist.' + NextInvoiceTotalRecurringAmount *Float64 `json:"nextInvoiceTotalRecurringAmount,omitempty" xmlrpc:"nextInvoiceTotalRecurringAmount,omitempty"` + + // This is deprecated and will always be zero. Because tax is calculated in real-time, previewing the next recurring invoice is pre-tax only. + NextInvoiceTotalRecurringTaxAmount *Float64 `json:"nextInvoiceTotalRecurringTaxAmount,omitempty" xmlrpc:"nextInvoiceTotalRecurringTaxAmount,omitempty"` + + // A Billing Item's associated child billing items, excluding ALL items with a $0.00 recurring fee. + NonZeroNextInvoiceChildren []Billing_Item `json:"nonZeroNextInvoiceChildren,omitempty" xmlrpc:"nonZeroNextInvoiceChildren,omitempty"` + + // A count of a Billing Item's associated child billing items, excluding ALL items with a $0.00 recurring fee. + NonZeroNextInvoiceChildrenCount *uint `json:"nonZeroNextInvoiceChildrenCount,omitempty" xmlrpc:"nonZeroNextInvoiceChildrenCount,omitempty"` + + // Extra information provided to help you identify this billing item. This is often a username or something to help identify items that customers have more than one of. + Notes *string `json:"notes,omitempty" xmlrpc:"notes,omitempty"` + + // The amount of money charged as a one-time charge for a billing item, if applicable. oneTimeFee is measured in US Dollars ($USD). + OneTimeFee *Float64 `json:"oneTimeFee,omitempty" xmlrpc:"oneTimeFee,omitempty"` + + // The rate at which one time fees are taxed if you are a taxable customer. + OneTimeFeeTaxRate *Float64 `json:"oneTimeFeeTaxRate,omitempty" xmlrpc:"oneTimeFeeTaxRate,omitempty"` + + // A billing item's original order item. Simply a reference to the original order from which this billing item was created. + OrderItem *Billing_Order_Item `json:"orderItem,omitempty" xmlrpc:"orderItem,omitempty"` + + // the SoftLayer_Billing_Order_Item ID. This is a reference to the original order item from which this billing item was originally created. + OrderItemId *int `json:"orderItemId,omitempty" xmlrpc:"orderItemId,omitempty"` + + // The original physical location for this billing item--may differ from current. + OriginalLocation *Location `json:"originalLocation,omitempty" xmlrpc:"originalLocation,omitempty"` + + // The package under which this billing item was sold. A Package is the general grouping of products as seen on our order forms. + Package *Product_Package `json:"package,omitempty" xmlrpc:"package,omitempty"` + + // A billing item's parent item. If a billing item has no parent item then this value is null. + Parent *Billing_Item `json:"parent,omitempty" xmlrpc:"parent,omitempty"` + + // The unique identifier of the parent of this billing item. + ParentId *int `json:"parentId,omitempty" xmlrpc:"parentId,omitempty"` + + // A billing item's parent item. If a billing item has no parent item then this value is null. + ParentVirtualGuestBillingItem *Billing_Item_Virtual_Guest `json:"parentVirtualGuestBillingItem,omitempty" xmlrpc:"parentVirtualGuestBillingItem,omitempty"` + + // This flag indicates whether a billing item is scheduled to be canceled or not. + PendingCancellationFlag *bool `json:"pendingCancellationFlag,omitempty" xmlrpc:"pendingCancellationFlag,omitempty"` + + // The new order item that will replace this billing item. + PendingOrderItem *Billing_Order_Item `json:"pendingOrderItem,omitempty" xmlrpc:"pendingOrderItem,omitempty"` + + // Provisioning transaction for this billing item + ProvisionTransaction *Provisioning_Version1_Transaction `json:"provisionTransaction,omitempty" xmlrpc:"provisionTransaction,omitempty"` + + // The amount of money charged per month for a billing item, if applicable. recurringFee is measured in US Dollars ($USD). + RecurringFee *Float64 `json:"recurringFee,omitempty" xmlrpc:"recurringFee,omitempty"` + + // The rate at which recurring fees are taxed if you are a taxable customer. + RecurringFeeTaxRate *Float64 `json:"recurringFeeTaxRate,omitempty" xmlrpc:"recurringFeeTaxRate,omitempty"` + + // The number of months in which the recurring fees will be incurred. + RecurringMonths *int `json:"recurringMonths,omitempty" xmlrpc:"recurringMonths,omitempty"` + + // This is the service provider for this billing item. + ServiceProviderId *int `json:"serviceProviderId,omitempty" xmlrpc:"serviceProviderId,omitempty"` + + // The setup fee, if any. This is a one time charge. + SetupFee *Float64 `json:"setupFee,omitempty" xmlrpc:"setupFee,omitempty"` + + // The rate at which setup fees are taxed if you are a taxable customer. + SetupFeeTaxRate *Float64 `json:"setupFeeTaxRate,omitempty" xmlrpc:"setupFeeTaxRate,omitempty"` + + // A friendly description of software component + SoftwareDescription *Software_Description `json:"softwareDescription,omitempty" xmlrpc:"softwareDescription,omitempty"` + + // Billing items whose product item has an upgrade path defined in our system will return the next product item in the upgrade path. + UpgradeItem *Product_Item `json:"upgradeItem,omitempty" xmlrpc:"upgradeItem,omitempty"` + + // A count of billing items whose product item has an upgrade path defined in our system will return all the product items in the upgrade path. + UpgradeItemCount *uint `json:"upgradeItemCount,omitempty" xmlrpc:"upgradeItemCount,omitempty"` + + // Billing items whose product item has an upgrade path defined in our system will return all the product items in the upgrade path. + UpgradeItems []Product_Item `json:"upgradeItems,omitempty" xmlrpc:"upgradeItems,omitempty"` +} + +// The SoftLayer_Billing_Item_Account_Media_Data_Transfer_Request data type contains general information relating to a single SoftLayer billing item for a data transfer request. +type Billing_Item_Account_Media_Data_Transfer_Request struct { + Billing_Item + + // The data transfer request to which the billing item points. + Resource *Account_Media_Data_Transfer_Request `json:"resource,omitempty" xmlrpc:"resource,omitempty"` +} + +// The SoftLayer_Billing_Item_Association_History type keeps a record of which server billing items an "orphan" item has been associated with. Orphan billing items are billable items for secondary portable services (such as secondary subnets and StorageLayer accounts) that are not associated with a server and appear at the bottom of a SoftLayer invoice. The [[SoftLayer_Billing_Item::setAssociationId]] method allows you to associate these kinds of items with servers, making them appear as a child item of the server on your invoice. A SoftLayer_Billing_Item_Association_History record is created every time one of these associations are set. +type Billing_Item_Association_History struct { + Entity + + // The server billing item that an orphaned billing item was associated with. + AssociatedBillingItem *Billing_Item `json:"associatedBillingItem,omitempty" xmlrpc:"associatedBillingItem,omitempty"` + + // The internal identifier of the server billing item that an orphaned billing item was associated with. + AssociatedBillingItemId *int `json:"associatedBillingItemId,omitempty" xmlrpc:"associatedBillingItemId,omitempty"` + + // The billing item that was associated with a server billing item. + BillingItem *Billing_Item `json:"billingItem,omitempty" xmlrpc:"billingItem,omitempty"` + + // The internal identifier of the billing item that was associated with a server billing item. + BillingItemId *int `json:"billingItemId,omitempty" xmlrpc:"billingItemId,omitempty"` + + // The date that a billing item association was last changed. + CreateDate *Time `json:"createDate,omitempty" xmlrpc:"createDate,omitempty"` + + // A billing item association history's internal identifier. + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` +} + +// The SoftLayer_Billing_Item_Cancellation_Reason data type contains cancellation reasons. +type Billing_Item_Cancellation_Reason struct { + Entity + + // A cancel reason category internal identifier. + BillingCancelReasonCategoryId *int `json:"billingCancelReasonCategoryId,omitempty" xmlrpc:"billingCancelReasonCategoryId,omitempty"` + + // An billing cancellation reason category. + BillingCancellationReasonCategory *Billing_Item_Cancellation_Reason_Category `json:"billingCancellationReasonCategory,omitempty" xmlrpc:"billingCancellationReasonCategory,omitempty"` + + // A count of the corresponding billing items having the specific cancellation reason. + BillingItemCount *uint `json:"billingItemCount,omitempty" xmlrpc:"billingItemCount,omitempty"` + + // The corresponding billing items having the specific cancellation reason. + BillingItems []Billing_Item `json:"billingItems,omitempty" xmlrpc:"billingItems,omitempty"` + + // A reason internal identifier. + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // A standardized reason internal identifier. + KeyName *string `json:"keyName,omitempty" xmlrpc:"keyName,omitempty"` + + // The descriptoin of the reason + Reason *string `json:"reason,omitempty" xmlrpc:"reason,omitempty"` + + // no documentation yet + TranslatedReason *string `json:"translatedReason,omitempty" xmlrpc:"translatedReason,omitempty"` +} + +// The SoftLayer_Billing_Item_Cancellation_Reason_Category data type contains cancellation reason categories. +type Billing_Item_Cancellation_Reason_Category struct { + Entity + + // A count of the corresponding billing cancellation reasons having the specific billing cancellation reason category. + BillingCancellationReasonCount *uint `json:"billingCancellationReasonCount,omitempty" xmlrpc:"billingCancellationReasonCount,omitempty"` + + // The corresponding billing cancellation reasons having the specific billing cancellation reason category. + BillingCancellationReasons []Billing_Item_Cancellation_Reason `json:"billingCancellationReasons,omitempty" xmlrpc:"billingCancellationReasons,omitempty"` + + // A category internal identifier. + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // The description of the category + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` +} + +// SoftLayer_Billing_Item_Cancellation_Request data type is used to cancel service billing items. +type Billing_Item_Cancellation_Request struct { + Entity + + // The SoftLayer account that a service cancellation request belongs to. + Account *Account `json:"account,omitempty" xmlrpc:"account,omitempty"` + + // The internal identifier of the customer account that a service cancellation record belongs to. + AccountId *int `json:"accountId,omitempty" xmlrpc:"accountId,omitempty"` + + // The last modified date. + BillingCancelReasonId *int `json:"billingCancelReasonId,omitempty" xmlrpc:"billingCancelReasonId,omitempty"` + + // The date that a cancellation request was created. + CreateDate *Time `json:"createDate,omitempty" xmlrpc:"createDate,omitempty"` + + // A cancellation record's internal identifier. + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // A count of a collection of service cancellation items. + ItemCount *uint `json:"itemCount,omitempty" xmlrpc:"itemCount,omitempty"` + + // A collection of service cancellation items. + Items []Billing_Item_Cancellation_Request_Item `json:"items,omitempty" xmlrpc:"items,omitempty"` + + // The last modified date. + ModifyDate *Time `json:"modifyDate,omitempty" xmlrpc:"modifyDate,omitempty"` + + // Brief cancellation note. + Notes *string `json:"notes,omitempty" xmlrpc:"notes,omitempty"` + + // The status of a service cancellation request. + Status *Billing_Item_Cancellation_Request_Status `json:"status,omitempty" xmlrpc:"status,omitempty"` + + // An internal identifier of the service cancellation status that this request is associated with. When a service cancellation is submitted, it will be in "Pending" status until SoftLayer Sales team reviews it. The status of a cancellation request will be updated to "Approved" or "Voided" by SoftLayer Sales. + // + // It will be updated to "Complete" when all services are reclaimed. + StatusId *int `json:"statusId,omitempty" xmlrpc:"statusId,omitempty"` + + // The ticket that is associated with the service cancellation request. + Ticket *Ticket `json:"ticket,omitempty" xmlrpc:"ticket,omitempty"` + + // An internal identifier of the ticket that is associated with a service cancellation request. When a service cancellation is submitted, a support ticket will be created. This ticket contains details on your service cancellation details and SoftLayer Sales team will use it to further communicate with you. + TicketId *int `json:"ticketId,omitempty" xmlrpc:"ticketId,omitempty"` + + // The user that initiated a service cancellation request. + User *User_Customer `json:"user,omitempty" xmlrpc:"user,omitempty"` +} + +// SoftLayer_Billing_Item_Cancellation_Request_Item data type contains a billing item for cancellation. This data type is used to harness billing items to the associated service. +type Billing_Item_Cancellation_Request_Item struct { + Entity + + // The billing item for cancellation. + BillingItem *Billing_Item `json:"billingItem,omitempty" xmlrpc:"billingItem,omitempty"` + + // The internal identifier of a billing item + BillingItemId *int `json:"billingItemId,omitempty" xmlrpc:"billingItemId,omitempty"` + + // The service cancellation request that a cancellation item belongs to. + CancellationRequest *Billing_Item_Cancellation_Request `json:"cancellationRequest,omitempty" xmlrpc:"cancellationRequest,omitempty"` + + // A cancellation request's internal identifier. + CancellationRequestId *int `json:"cancellationRequestId,omitempty" xmlrpc:"cancellationRequestId,omitempty"` + + // A cancellation request item's internal identifier. + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // This flag indicated if a billing item should be canceled immediately or not. Set this flag to true when creating a cancellation request. + ImmediateCancellationFlag *bool `json:"immediateCancellationFlag,omitempty" xmlrpc:"immediateCancellationFlag,omitempty"` + + // The scheduled cancellation date + ScheduledCancellationDate *Time `json:"scheduledCancellationDate,omitempty" xmlrpc:"scheduledCancellationDate,omitempty"` + + // The reclaim status of a service. + ServiceReclaimStatusCode *string `json:"serviceReclaimStatusCode,omitempty" xmlrpc:"serviceReclaimStatusCode,omitempty"` +} + +// SoftLayer_Billing_Item_Cancellation_Request_Status data type represents the status of a service cancellation request. +type Billing_Item_Cancellation_Request_Status struct { + Entity + + // The short description of a cancellation request status + Description *string `json:"description,omitempty" xmlrpc:"description,omitempty"` + + // The internal identifier of a cancellation request status. + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // status key name + KeyName *string `json:"keyName,omitempty" xmlrpc:"keyName,omitempty"` + + // The status name + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` +} + +// The SoftLayer_Billing_Item_Ctc_Account data type contains general information relating to a single SoftLayer billing item for a CTC client account creation +type Billing_Item_Ctc_Account struct { + Billing_Item +} + +// The SoftLayer_Billing_Item_Big_Data_Cluster data type contains general information relating to a single SoftLayer billing item for a big data cluster. +type Billing_Item_Gateway_Appliance_Cluster struct { + Billing_Item + + // The resource for a resource group billing item. + Resource *Resource_Group `json:"resource,omitempty" xmlrpc:"resource,omitempty"` +} + +// The SoftLayer_Billing_Item_Hardware data type contains general information relating to a single SoftLayer billing item for hardware. +type Billing_Item_Hardware struct { + Billing_Item + + // The raw bandwidth usage data for the current billing cycle. One object will be returned for each network this server is attached to. + BillingCycleBandwidthUsage []Network_Bandwidth_Usage `json:"billingCycleBandwidthUsage,omitempty" xmlrpc:"billingCycleBandwidthUsage,omitempty"` + + // A count of the raw bandwidth usage data for the current billing cycle. One object will be returned for each network this server is attached to. + BillingCycleBandwidthUsageCount *uint `json:"billingCycleBandwidthUsageCount,omitempty" xmlrpc:"billingCycleBandwidthUsageCount,omitempty"` + + // The raw private bandwidth usage data for the current billing cycle. + BillingCyclePrivateBandwidthUsage []Network_Bandwidth_Usage `json:"billingCyclePrivateBandwidthUsage,omitempty" xmlrpc:"billingCyclePrivateBandwidthUsage,omitempty"` + + // A count of the raw private bandwidth usage data for the current billing cycle. + BillingCyclePrivateBandwidthUsageCount *uint `json:"billingCyclePrivateBandwidthUsageCount,omitempty" xmlrpc:"billingCyclePrivateBandwidthUsageCount,omitempty"` + + // The total private inbound bandwidth for this hardware for the current billing cycle. + BillingCyclePrivateUsageIn *Float64 `json:"billingCyclePrivateUsageIn,omitempty" xmlrpc:"billingCyclePrivateUsageIn,omitempty"` + + // The total private outbound bandwidth for this hardware for the current billing cycle. + BillingCyclePrivateUsageOut *Float64 `json:"billingCyclePrivateUsageOut,omitempty" xmlrpc:"billingCyclePrivateUsageOut,omitempty"` + + // The total private bandwidth for this hardware for the current billing cycle. + BillingCyclePrivateUsageTotal *uint `json:"billingCyclePrivateUsageTotal,omitempty" xmlrpc:"billingCyclePrivateUsageTotal,omitempty"` + + // The raw public bandwidth usage data for the current billing cycle. + BillingCyclePublicBandwidthUsage []Network_Bandwidth_Usage `json:"billingCyclePublicBandwidthUsage,omitempty" xmlrpc:"billingCyclePublicBandwidthUsage,omitempty"` + + // A count of the raw public bandwidth usage data for the current billing cycle. + BillingCyclePublicBandwidthUsageCount *uint `json:"billingCyclePublicBandwidthUsageCount,omitempty" xmlrpc:"billingCyclePublicBandwidthUsageCount,omitempty"` + + // The total public inbound bandwidth for this hardware for the current billing cycle. + BillingCyclePublicUsageIn *Float64 `json:"billingCyclePublicUsageIn,omitempty" xmlrpc:"billingCyclePublicUsageIn,omitempty"` + + // The total public outbound bandwidth for this hardware for the current billing cycle. + BillingCyclePublicUsageOut *Float64 `json:"billingCyclePublicUsageOut,omitempty" xmlrpc:"billingCyclePublicUsageOut,omitempty"` + + // The total public bandwidth for this hardware for the current billing cycle. + BillingCyclePublicUsageTotal *uint `json:"billingCyclePublicUsageTotal,omitempty" xmlrpc:"billingCyclePublicUsageTotal,omitempty"` + + // A lockbox account associated with a server. + LockboxNetworkStorage *Billing_Item_Network_Storage `json:"lockboxNetworkStorage,omitempty" xmlrpc:"lockboxNetworkStorage,omitempty"` + + // A count of + MonitoringBillingItemCount *uint `json:"monitoringBillingItemCount,omitempty" xmlrpc:"monitoringBillingItemCount,omitempty"` + + // no documentation yet + MonitoringBillingItems []Billing_Item `json:"monitoringBillingItems,omitempty" xmlrpc:"monitoringBillingItems,omitempty"` + + // The resource for a server billing item. + Resource *Hardware_Server `json:"resource,omitempty" xmlrpc:"resource,omitempty"` + + // The resource (unique identifier) for a server billing item. + ResourceTableId *int `json:"resourceTableId,omitempty" xmlrpc:"resourceTableId,omitempty"` +} + +// The SoftLayer_Billing_Item_Hardware data type contains general information relating to a single SoftLayer billing item for hardware. +type Billing_Item_Hardware_Colocation struct { + Billing_Item_Hardware +} + +// The SoftLayer_Billing_Item_Hardware data type contains general information relating to a single SoftLayer billing item for hardware components. +type Billing_Item_Hardware_Component struct { + Billing_Item + + // The hardware component that this billing item points to. + Resource []Hardware_Component `json:"resource,omitempty" xmlrpc:"resource,omitempty"` + + // A count of the hardware component that this billing item points to. + ResourceCount *uint `json:"resourceCount,omitempty" xmlrpc:"resourceCount,omitempty"` + + // The resource (unique identifier) for a server billing item. + ResourceTableId *int `json:"resourceTableId,omitempty" xmlrpc:"resourceTableId,omitempty"` +} + +// The SoftLayer_Billing_Item_Hardware_Security_Module data type contains general information relating to a single SoftLayer billing item for a hardware security module. +type Billing_Item_Hardware_Security_Module struct { + Billing_Item_Hardware +} + +// The SoftLayer_Billing_Item_Hardware_Server data type contains billing information about a bare metal server and its relationship to a particular customer account. +type Billing_Item_Hardware_Server struct { + Billing_Item_Hardware +} + +// no documentation yet +type Billing_Item_Link_ThePlanet struct { + Entity + + // no documentation yet + BillingItem *Billing_Item `json:"billingItem,omitempty" xmlrpc:"billingItem,omitempty"` + + // no documentation yet + ServiceProvider *Service_Provider `json:"serviceProvider,omitempty" xmlrpc:"serviceProvider,omitempty"` +} + +// The SoftLayer_Billing_Item_Network_Application_Delivery_Controller data type describes the billing item related to a NetScaler VPX +type Billing_Item_Network_Application_Delivery_Controller struct { + Billing_Item + + // The bandwidth allotment detail for a billing item. + BandwidthAllotmentDetail *Network_Bandwidth_Version1_Allotment_Detail `json:"bandwidthAllotmentDetail,omitempty" xmlrpc:"bandwidthAllotmentDetail,omitempty"` + + // The network application controller that a billing item is associated with. + Resource *Network_Application_Delivery_Controller `json:"resource,omitempty" xmlrpc:"resource,omitempty"` +} + +// A SoftLayer_Billing_Item_Network_Application_Delivery_Controller_LoadBalancer represents the [[SoftLayer_Billing_Item|billing item]] related to a single [[SoftLayer_Network_Application_Delivery_Controller_LoadBalancer_VirtualIpAddress|load balancer]] instance. +type Billing_Item_Network_Application_Delivery_Controller_LoadBalancer_VirtualIpAddress struct { + Billing_Item + + // The load balancer that a load balancer billing item is associated with. + Resource *Network_Application_Delivery_Controller_LoadBalancer_VirtualIpAddress `json:"resource,omitempty" xmlrpc:"resource,omitempty"` +} + +// The SoftLayer_Billing_Item_Hardware data type contains general information relating to a single SoftLayer billing item for hardware. +type Billing_Item_Network_Bandwidth struct { + Billing_Item +} + +// The SoftLayer_Billing_Item_Network_Firewall data type contains general information relating to a single SoftLayer billing item whose item category code is 'firewall' +type Billing_Item_Network_Firewall struct { + Billing_Item + + // The VLAN firewall that a VLAN firewall billing item is associated with. + Resource *Network_Component_Firewall `json:"resource,omitempty" xmlrpc:"resource,omitempty"` +} + +// The SoftLayer_Billing_Item_Network_Firewall_Module_Context data type describes the billing items related to VLAN Firewalls. +type Billing_Item_Network_Firewall_Module_Context struct { + Billing_Item +} + +// A SoftLayer_Billing_Item_Network_Interconnect represents the [[SoftLayer_Billing_Item|billing item]] related to a network interconnect instance. +type Billing_Item_Network_Interconnect struct { + Billing_Item +} + +// A SoftLayer_Billing_Item_Network_LoadBalancer represents the [[SoftLayer_Billing_Item|billing item]] related to a single [[SoftLayer_Network_LoadBalancer|load balancer]] instance. +type Billing_Item_Network_LoadBalancer struct { + Billing_Item +} + +// The SoftLayer_Billing_Item_Network_LoadBalancer_Global data type contains general information relating to a single SoftLayer billing item whose item category code is 'global_load_balancer' +type Billing_Item_Network_LoadBalancer_Global struct { + Billing_Item + + // The resource for a global load balancer billing item. + Resource *Network_LoadBalancer_Global_Account `json:"resource,omitempty" xmlrpc:"resource,omitempty"` +} + +// A SoftLayer_Billing_Item_Network_LoadBalancer_VirtualIpAddress represents the [[SoftLayer_Billing_Item|billing item]] related to a single [[SoftLayer_Network_LoadBalancer_VirtualIpAddress|load balancer]] instance. +type Billing_Item_Network_LoadBalancer_VirtualIpAddress struct { + Billing_Item + + // The load balancer's virtual IP address that the billing item is associated with. + Resource *Network_LoadBalancer_VirtualIpAddress `json:"resource,omitempty" xmlrpc:"resource,omitempty"` +} + +// The SoftLayer_Billing_Item_Network_Message_Delivery data describes the related billing item. +type Billing_Item_Network_Message_Delivery struct { + Billing_Item + + // The object this billing item is associated with. + Resource *Network_Message_Delivery `json:"resource,omitempty" xmlrpc:"resource,omitempty"` +} + +// The SoftLayer_Billing_Item_Network_Message_Queue data describes the related billing item. +type Billing_Item_Network_Message_Queue struct { + Billing_Item + + // The object this billing item is associated with. + Resource *Network_Message_Queue `json:"resource,omitempty" xmlrpc:"resource,omitempty"` +} + +// The SoftLayer_Billing_Item_Network_Message_Queue data describes the related billing item. +type Billing_Item_Network_Message_Queue_Delivery struct { + Billing_Item_Network_Message_Queue +} + +// The SoftLayer_Billing_Item_Network_PerformanceStorage_Iscsi data type contains general information relating to a single SoftLayer billing item whose item category code is 'performance_storage_iscsi' +type Billing_Item_Network_PerformanceStorage_Iscsi struct { + Billing_Item_Network_Storage +} + +// The SoftLayer_Billing_Item_Network_PerformanceStorage_Nfs data type contains general information relating to a single SoftLayer billing item whose item category code is 'performance_storage_nfs' +type Billing_Item_Network_PerformanceStorage_Nfs struct { + Billing_Item_Network_Storage +} + +// The SoftLayer_Billing_Item_Network_Storage data type describes the billing items related to StorageLayer accounts. +type Billing_Item_Network_Storage struct { + Billing_Item + + // The StorageLayer account that a network storage billing item is associated with. + Resource *Network_Storage `json:"resource,omitempty" xmlrpc:"resource,omitempty"` +} + +// The SoftLayer_Billing_Item_Network_Storage_Hub models all billing items related to hub-based StorageLayer offerings, such as CloudLayer storage. +type Billing_Item_Network_Storage_Hub struct { + Billing_Item_Network_Storage +} + +// The SoftLayer_Billing_Item_Network_Storage_Hub_Bandwidth data type models the billing items created when a CloudLayer storage account generates a bandwidth overage charge. +type Billing_Item_Network_Storage_Hub_Bandwidth struct { + Billing_Item_Network_Storage +} + +// The SoftLayer_Billing_Item_Network_Subnet data type contains general information relating to a single SoftLayer billing item whose item category code is one of the following: +// * pri_ip_address +// * static_sec_ip_addresses (static secondary) +// * sov_sec_ip_addresses (secondary on vlan, also known as "portable ips") +// * sov_sec_ip_addresses_pub (sov_sec_ip_addresses public only) +// * sov_sec_ip_addresses_priv (sov_sec_ip_addresses private only) +// * sec_ip_addresses (old style, secondary ip addresses) +// +// +// These item categories denote that the billing item has subnet information attached. +type Billing_Item_Network_Subnet struct { + Billing_Item + + // The resource for a subnet-related billing item. + Resource *Network_Subnet `json:"resource,omitempty" xmlrpc:"resource,omitempty"` + + // The resource name for a subnet billing item. + ResourceName *string `json:"resourceName,omitempty" xmlrpc:"resourceName,omitempty"` + + // The resource (unique identifier) for a server billing item. + ResourceTableId *int `json:"resourceTableId,omitempty" xmlrpc:"resourceTableId,omitempty"` +} + +// The SoftLayer_Billing_Item_Network_Subnet_IpAddress_Global data type contains general information relating to a single SoftLayer billing item whose item category code is one of the following: +// * global_ipv4 +// * global_ipv6 +// +// +// These item categories denote that the billing item has subnet information attached. +type Billing_Item_Network_Subnet_IpAddress_Global struct { + Billing_Item_Network_Subnet +} + +// The SoftLayer_Billing_Item_Network_Storage data type describes the billing items related to StorageLayer accounts. +type Billing_Item_Network_Tunnel struct { + Billing_Item + + // The IPsec VPN that a network tunnel billing item is associated with. + Resource *Network_Tunnel_Module_Context `json:"resource,omitempty" xmlrpc:"resource,omitempty"` +} + +// The SoftLayer_Billing_Item_Network_Vlant data type contains general information relating to a single SoftLayer billing item whose item category code is one of the following: +// * network_vlan +// +// +// These item categories denote that the billing item has network vlan information attached. +type Billing_Item_Network_Vlan struct { + Billing_Item + + // The resource for a network vlan related billing item. + Resource *Network_Vlan `json:"resource,omitempty" xmlrpc:"resource,omitempty"` +} + +// no documentation yet +type Billing_Item_NewCustomerSetup struct { + Billing_Item +} + +// The SoftLayer_Billing_Item_Private_Cloud data type contains general information relating to a single billing item for a private cloud. +type Billing_Item_Private_Cloud struct { + Billing_Item +} + +// The SoftLayer_Billing_Item_Hardware data type contains general information relating to a single SoftLayer billing item for hardware components. +type Billing_Item_Software_Component struct { + Billing_Item + + // The software component that this billing item points to. + Resource *Software_Component `json:"resource,omitempty" xmlrpc:"resource,omitempty"` + + // The resource (unique identifier) for a software component billing item. + ResourceTableId *int `json:"resourceTableId,omitempty" xmlrpc:"resourceTableId,omitempty"` +} + +// The SoftLayer_Billing_Item_Software_Component_Analytics_Urchin data type contains general information relating to a single SoftLayer billing item for Urchin software components. +type Billing_Item_Software_Component_Analytics_Urchin struct { + Billing_Item +} + +// The SoftLayer_Billing_Item_Software_Component_ControlPanel data type contains general information relating to a single SoftLayer billing item for control panel software components. +type Billing_Item_Software_Component_ControlPanel struct { + Billing_Item +} + +// The SoftLayer_Billing_Item_Software_Component_ControlPanel data type contains general information relating to a single SoftLayer billing item for control panel software components. +type Billing_Item_Software_Component_ControlPanel_Parallels_Plesk_Billing struct { + Billing_Item +} + +// The SoftLayer_Billing_Item_Software_Component_OperatingSystem_Addon data type contains general information relating to a single SoftLayer billing item for operating system add-on software components. +type Billing_Item_Software_Component_OperatingSystem_Addon struct { + Billing_Item +} + +// The SoftLayer_Billing_Item_Software_Component_OperatingSystem_Addon_Citrix_Essentials data type contains general information relating to a single SoftLayer billing item for Citrix Essentials software components. +type Billing_Item_Software_Component_OperatingSystem_Addon_Citrix_Essentials struct { + Billing_Item_Software_Component_OperatingSystem_Addon + + // The Citrix Essentials software component that a billing item is associated with. + Resource *Software_Component `json:"resource,omitempty" xmlrpc:"resource,omitempty"` +} + +// The SoftLayer_Billing_Item_Software_Component_Virtual_OperatingSystem data type contains general information relating to a single SoftLayer billing item for operating system software components on virtual machines. +type Billing_Item_Software_Component_Virtual_OperatingSystem struct { + Billing_Item +} + +// The SoftLayer_Billing_Item_Software_Component_Virtual_OperatingSystem_Microsoft data type contains general information relating to a single SoftLayer billing item for a Microsoft operating system software components on virtual machines. +type Billing_Item_Software_Component_Virtual_OperatingSystem_Microsoft struct { + Billing_Item_Software_Component_Virtual_OperatingSystem + + // The software virtual license to which this billing item points. + Resource *Software_VirtualLicense `json:"resource,omitempty" xmlrpc:"resource,omitempty"` + + // The resource (unique identifier) for a software virtual license billing item. + ResourceTableId *int `json:"resourceTableId,omitempty" xmlrpc:"resourceTableId,omitempty"` +} + +// The SoftLayer_Billing_Item_Software_Component_Virtual_OperatingSystem_Microsoft data type contains general information relating to a single SoftLayer billing item for a Microsoft operating system software components on virtual machines. +type Billing_Item_Software_Component_Virtual_OperatingSystem_Redhat struct { + Billing_Item_Software_Component_Virtual_OperatingSystem + + // The software component to which this billing item points. + Resource *Software_Component `json:"resource,omitempty" xmlrpc:"resource,omitempty"` + + // The resource (unique identifier) for a software component billing item. + ResourceTableId *int `json:"resourceTableId,omitempty" xmlrpc:"resourceTableId,omitempty"` +} + +// The SoftLayer_Billing_Item_Software_License data type contains general information relating to a single SoftLayer billing item for a software license. +type Billing_Item_Software_License struct { + Billing_Item + + // The resource for a software license billing item. + Resource *Software_AccountLicense `json:"resource,omitempty" xmlrpc:"resource,omitempty"` +} + +// The SoftLayer_Billing_Item_Support data type contains general information relating to a premium support offering +type Billing_Item_Support struct { + Billing_Item +} + +// The SoftLayer_Billing_Item_Network_Application_Delivery_Controller data type describes the billing item related to an external authentication binding +type Billing_Item_User_Customer_External_Binding struct { + Billing_Item + + // The external authentication binding that a billing item is associated with. + Resource *User_Customer_External_Binding `json:"resource,omitempty" xmlrpc:"resource,omitempty"` +} + +// no documentation yet +type Billing_Item_Virtual_DedicatedHost struct { + Billing_Item + + // The resource for a virtual dedicated host billing item. + Resource *Virtual_DedicatedHost `json:"resource,omitempty" xmlrpc:"resource,omitempty"` + + // The resource (unique identifier) for a server billing item. + ResourceTableId *int `json:"resourceTableId,omitempty" xmlrpc:"resourceTableId,omitempty"` +} + +// A SoftLayer_Billing_Item_Virtual_Dedicated_Rack data type models the billing information for a single bandwidth pooling. Bandwidth pooling members share their public bandwidth allocations, and incur overage charges instead of the overages on individual rack members. Virtual rack billing items are the parent items for all of it's rack membership billing items. +type Billing_Item_Virtual_Dedicated_Rack struct { + Billing_Item + + // The raw bandwidth usage data for the current billing cycle. One object is returned for each network a virtual rack is attached to. + BillingCycleBandwidthUsage []Network_Bandwidth_Usage `json:"billingCycleBandwidthUsage,omitempty" xmlrpc:"billingCycleBandwidthUsage,omitempty"` + + // A count of the raw bandwidth usage data for the current billing cycle. One object is returned for each network a virtual rack is attached to. + BillingCycleBandwidthUsageCount *uint `json:"billingCycleBandwidthUsageCount,omitempty" xmlrpc:"billingCycleBandwidthUsageCount,omitempty"` + + // The raw private bandwidth usage data for the current billing cycle. + BillingCyclePrivateBandwidthUsage []Network_Bandwidth_Usage `json:"billingCyclePrivateBandwidthUsage,omitempty" xmlrpc:"billingCyclePrivateBandwidthUsage,omitempty"` + + // A count of the raw private bandwidth usage data for the current billing cycle. + BillingCyclePrivateBandwidthUsageCount *uint `json:"billingCyclePrivateBandwidthUsageCount,omitempty" xmlrpc:"billingCyclePrivateBandwidthUsageCount,omitempty"` + + // The total private network inbound bandwidth for this virtual rack for the current billing cycle. + BillingCyclePrivateUsageIn *Float64 `json:"billingCyclePrivateUsageIn,omitempty" xmlrpc:"billingCyclePrivateUsageIn,omitempty"` + + // The total private network outbound bandwidth for this virtual rack for the current billing cycle. + BillingCyclePrivateUsageOut *Float64 `json:"billingCyclePrivateUsageOut,omitempty" xmlrpc:"billingCyclePrivateUsageOut,omitempty"` + + // The total private network bandwidth for this virtual rack for the current billing cycle. + BillingCyclePrivateUsageTotal *uint `json:"billingCyclePrivateUsageTotal,omitempty" xmlrpc:"billingCyclePrivateUsageTotal,omitempty"` + + // The raw public bandwidth usage data for the current billing cycle. + BillingCyclePublicBandwidthUsage []Network_Bandwidth_Usage `json:"billingCyclePublicBandwidthUsage,omitempty" xmlrpc:"billingCyclePublicBandwidthUsage,omitempty"` + + // A count of the raw public bandwidth usage data for the current billing cycle. + BillingCyclePublicBandwidthUsageCount *uint `json:"billingCyclePublicBandwidthUsageCount,omitempty" xmlrpc:"billingCyclePublicBandwidthUsageCount,omitempty"` + + // The total public inbound bandwidth for this virtual rack for the current billing cycle. + BillingCyclePublicUsageIn *Float64 `json:"billingCyclePublicUsageIn,omitempty" xmlrpc:"billingCyclePublicUsageIn,omitempty"` + + // The total public outbound bandwidth for this virtual rack for the current billing cycle. + BillingCyclePublicUsageOut *Float64 `json:"billingCyclePublicUsageOut,omitempty" xmlrpc:"billingCyclePublicUsageOut,omitempty"` + + // The total public bandwidth for this virtual rack for the current billing cycle. + BillingCyclePublicUsageTotal *uint `json:"billingCyclePublicUsageTotal,omitempty" xmlrpc:"billingCyclePublicUsageTotal,omitempty"` + + // The virtual rack that a virtual rack billing item is associated with. + Resource *Network_Bandwidth_Version1_Allotment `json:"resource,omitempty" xmlrpc:"resource,omitempty"` +} + +// The SoftLayer_Billing_Item_Virtual_Disk_Image data type contains general information relating to a single SoftLayer billing item for disk images. +type Billing_Item_Virtual_Disk_Image struct { + Billing_Item + + // The disk image to which the billing item points. + Resource *Virtual_Disk_Image `json:"resource,omitempty" xmlrpc:"resource,omitempty"` + + // The resource (unique identifier) for a disk image billing item. + ResourceTableId *int `json:"resourceTableId,omitempty" xmlrpc:"resourceTableId,omitempty"` +} + +// The SoftLayer_Billing_Item_Virtual_Guest data type contains general information relating to a single SoftLayer billing item for guests. +type Billing_Item_Virtual_Guest struct { + Billing_Item + + // The raw bandwidth usage data for the current billing cycle. One object will be returned for each network this server is attached to. + BillingCycleBandwidthUsage []Network_Bandwidth_Usage `json:"billingCycleBandwidthUsage,omitempty" xmlrpc:"billingCycleBandwidthUsage,omitempty"` + + // A count of the raw bandwidth usage data for the current billing cycle. One object will be returned for each network this server is attached to. + BillingCycleBandwidthUsageCount *uint `json:"billingCycleBandwidthUsageCount,omitempty" xmlrpc:"billingCycleBandwidthUsageCount,omitempty"` + + // The raw private bandwidth usage data for the current billing cycle. + BillingCyclePrivateBandwidthUsage []Network_Bandwidth_Usage `json:"billingCyclePrivateBandwidthUsage,omitempty" xmlrpc:"billingCyclePrivateBandwidthUsage,omitempty"` + + // A count of the raw private bandwidth usage data for the current billing cycle. + BillingCyclePrivateBandwidthUsageCount *uint `json:"billingCyclePrivateBandwidthUsageCount,omitempty" xmlrpc:"billingCyclePrivateBandwidthUsageCount,omitempty"` + + // The total private inbound bandwidth for this virtual server for the current billing cycle. + BillingCyclePrivateUsageIn *Float64 `json:"billingCyclePrivateUsageIn,omitempty" xmlrpc:"billingCyclePrivateUsageIn,omitempty"` + + // The total private outbound bandwidth for this virtual server for the current billing cycle. + BillingCyclePrivateUsageOut *Float64 `json:"billingCyclePrivateUsageOut,omitempty" xmlrpc:"billingCyclePrivateUsageOut,omitempty"` + + // The total private bandwidth for this virtual server for the current billing cycle. + BillingCyclePrivateUsageTotal *uint `json:"billingCyclePrivateUsageTotal,omitempty" xmlrpc:"billingCyclePrivateUsageTotal,omitempty"` + + // The raw public bandwidth usage data for the current billing cycle. + BillingCyclePublicBandwidthUsage []Network_Bandwidth_Usage `json:"billingCyclePublicBandwidthUsage,omitempty" xmlrpc:"billingCyclePublicBandwidthUsage,omitempty"` + + // A count of the raw public bandwidth usage data for the current billing cycle. + BillingCyclePublicBandwidthUsageCount *uint `json:"billingCyclePublicBandwidthUsageCount,omitempty" xmlrpc:"billingCyclePublicBandwidthUsageCount,omitempty"` + + // The total public inbound bandwidth for this virtual server for the current billing cycle. + BillingCyclePublicUsageIn *Float64 `json:"billingCyclePublicUsageIn,omitempty" xmlrpc:"billingCyclePublicUsageIn,omitempty"` + + // The total public outbound bandwidth for this virtual server for the current billing cycle. + BillingCyclePublicUsageOut *Float64 `json:"billingCyclePublicUsageOut,omitempty" xmlrpc:"billingCyclePublicUsageOut,omitempty"` + + // The total public bandwidth for this virtual server for the current billing cycle. + BillingCyclePublicUsageTotal *uint `json:"billingCyclePublicUsageTotal,omitempty" xmlrpc:"billingCyclePublicUsageTotal,omitempty"` + + // A count of + MonitoringBillingItemCount *uint `json:"monitoringBillingItemCount,omitempty" xmlrpc:"monitoringBillingItemCount,omitempty"` + + // no documentation yet + MonitoringBillingItems []Billing_Item `json:"monitoringBillingItems,omitempty" xmlrpc:"monitoringBillingItems,omitempty"` + + // The resource for a cloud server billing item. + Resource *Virtual_Guest `json:"resource,omitempty" xmlrpc:"resource,omitempty"` + + // The resource (unique identifier) for a server billing item. + ResourceTableId *int `json:"resourceTableId,omitempty" xmlrpc:"resourceTableId,omitempty"` +} + +// The SoftLayer_Billing_Item_Virtual_Host_Usage data type contains general information relating to a single SoftLayer billing item for virtual machine peak usage +type Billing_Item_Virtual_Host_Usage struct { + Billing_Item + + // The resource for a peak virtual machine usage billing item. + Resource *Hardware `json:"resource,omitempty" xmlrpc:"resource,omitempty"` + + // The resource (unique identifier) for a server billing item. + ResourceTableId *int `json:"resourceTableId,omitempty" xmlrpc:"resourceTableId,omitempty"` +} + +// The SoftLayer_Billing_Item_Workspace data type contains general information relating to a single SoftLayer billing item whose item category code is 'workspace' +type Billing_Item_Workspace struct { + Billing_Item +} + +// The SoftLayer_Billing_Order data type contains general information relating to an individual order applied to a SoftLayer customer account or to a new customer. Personal information in this type such as names, addresses, and phone numbers are taken from the account's contact information at the time the order is generated for existing SoftLayer customer. +type Billing_Order struct { + Entity + + // The [[SoftLayer_Account|account]] to which an order belongs. + Account *Account `json:"account,omitempty" xmlrpc:"account,omitempty"` + + // The account ID to which an order belongs. + AccountId *int `json:"accountId,omitempty" xmlrpc:"accountId,omitempty"` + + // no documentation yet + Brand *Brand `json:"brand,omitempty" xmlrpc:"brand,omitempty"` + + // A cart is similar to a quote, except that it can be continually modified by the customer and does not have locked-in prices. Not all orders will have a cart associated with them. See [[SoftLayer_Billing_Order_Cart]] for more information. + Cart *Billing_Order_Cart `json:"cart,omitempty" xmlrpc:"cart,omitempty"` + + // A count of the [[SoftLayer_Billing_Order_Item (type)|order items]] that are core restricted + CoreRestrictedItemCount *uint `json:"coreRestrictedItemCount,omitempty" xmlrpc:"coreRestrictedItemCount,omitempty"` + + // The [[SoftLayer_Billing_Order_Item (type)|order items]] that are core restricted + CoreRestrictedItems []Billing_Order_Item `json:"coreRestrictedItems,omitempty" xmlrpc:"coreRestrictedItems,omitempty"` + + // The point in time at which a billing item was created. + CreateDate *Time `json:"createDate,omitempty" xmlrpc:"createDate,omitempty"` + + // A count of all credit card transactions associated with this order. If this order was not placed with a credit card, this will be empty. + CreditCardTransactionCount *uint `json:"creditCardTransactionCount,omitempty" xmlrpc:"creditCardTransactionCount,omitempty"` + + // All credit card transactions associated with this order. If this order was not placed with a credit card, this will be empty. + CreditCardTransactions []Billing_Payment_Card_Transaction `json:"creditCardTransactions,omitempty" xmlrpc:"creditCardTransactions,omitempty"` + + // no documentation yet + ExchangeRate *Billing_Currency_ExchangeRate `json:"exchangeRate,omitempty" xmlrpc:"exchangeRate,omitempty"` + + // * + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // The SoftLayer_User_Customer id of the portal or API user who impersonated the user which submitted an order. + ImpersonatingUserRecordId *int `json:"impersonatingUserRecordId,omitempty" xmlrpc:"impersonatingUserRecordId,omitempty"` + + // no documentation yet + InitialInvoice *Billing_Invoice `json:"initialInvoice,omitempty" xmlrpc:"initialInvoice,omitempty"` + + // A count of the SoftLayer_Billing_Order_items included in an order. + ItemCount *uint `json:"itemCount,omitempty" xmlrpc:"itemCount,omitempty"` + + // The SoftLayer_Billing_Order_items included in an order. + Items []Billing_Order_Item `json:"items,omitempty" xmlrpc:"items,omitempty"` + + // The last time an order was updated. + ModifyDate *Time `json:"modifyDate,omitempty" xmlrpc:"modifyDate,omitempty"` + + // no documentation yet + OrderApprovalDate *Time `json:"orderApprovalDate,omitempty" xmlrpc:"orderApprovalDate,omitempty"` + + // An order's non-server items total monthly fee. + OrderNonServerMonthlyAmount *Float64 `json:"orderNonServerMonthlyAmount,omitempty" xmlrpc:"orderNonServerMonthlyAmount,omitempty"` + + // The SoftLayer_Billing_Order_Quote id of the quote's user who finalized an order. + OrderQuoteId *int `json:"orderQuoteId,omitempty" xmlrpc:"orderQuoteId,omitempty"` + + // An order's server items total monthly fee. + OrderServerMonthlyAmount *Float64 `json:"orderServerMonthlyAmount,omitempty" xmlrpc:"orderServerMonthlyAmount,omitempty"` + + // A count of an order's top level items. This normally includes the server line item and any non-server additional services such as NAS or ISCSI. + OrderTopLevelItemCount *uint `json:"orderTopLevelItemCount,omitempty" xmlrpc:"orderTopLevelItemCount,omitempty"` + + // An order's top level items. This normally includes the server line item and any non-server additional services such as NAS or ISCSI. + OrderTopLevelItems []Billing_Order_Item `json:"orderTopLevelItems,omitempty" xmlrpc:"orderTopLevelItems,omitempty"` + + // This amount represents the order's initial charge including set up fee and taxes. + OrderTotalAmount *Float64 `json:"orderTotalAmount,omitempty" xmlrpc:"orderTotalAmount,omitempty"` + + // An order's total one time amount summing all the set up fees, the labor fees and the one time fees. Taxes will be applied for non-tax-exempt. This amount represents the initial fees that will be charged. + OrderTotalOneTime *Float64 `json:"orderTotalOneTime,omitempty" xmlrpc:"orderTotalOneTime,omitempty"` + + // An order's total one time amount. This amount represents the initial fees before tax. + OrderTotalOneTimeAmount *Float64 `json:"orderTotalOneTimeAmount,omitempty" xmlrpc:"orderTotalOneTimeAmount,omitempty"` + + // An order's total one time tax amount. This amount represents the tax that will be applied to the total charge, if the SoftLayer_Account tied to a SoftLayer_Billing_Order is a taxable account. + OrderTotalOneTimeTaxAmount *Float64 `json:"orderTotalOneTimeTaxAmount,omitempty" xmlrpc:"orderTotalOneTimeTaxAmount,omitempty"` + + // An order's total recurring amount. Taxes will be applied for non-tax-exempt. This amount represents the fees that will be charged on a recurring (usually monthly) basis. + OrderTotalRecurring *Float64 `json:"orderTotalRecurring,omitempty" xmlrpc:"orderTotalRecurring,omitempty"` + + // An order's total recurring amount. This amount represents the fees that will be charged on a recurring (usually monthly) basis. + OrderTotalRecurringAmount *Float64 `json:"orderTotalRecurringAmount,omitempty" xmlrpc:"orderTotalRecurringAmount,omitempty"` + + // The total tax amount of the recurring fees, if the SoftLayer_Account tied to a SoftLayer_Billing_Order is a taxable account. + OrderTotalRecurringTaxAmount *Float64 `json:"orderTotalRecurringTaxAmount,omitempty" xmlrpc:"orderTotalRecurringTaxAmount,omitempty"` + + // An order's total setup fee. + OrderTotalSetupAmount *Float64 `json:"orderTotalSetupAmount,omitempty" xmlrpc:"orderTotalSetupAmount,omitempty"` + + // The type of an order. This lets you know where this order was generated from. + OrderType *Billing_Order_Type `json:"orderType,omitempty" xmlrpc:"orderType,omitempty"` + + // The SoftLayer_Billing_Order_Type id of the order. + OrderTypeId *int `json:"orderTypeId,omitempty" xmlrpc:"orderTypeId,omitempty"` + + // A count of all PayPal transactions associated with this order. If this order was not placed with PayPal, this will be empty. + PaypalTransactionCount *uint `json:"paypalTransactionCount,omitempty" xmlrpc:"paypalTransactionCount,omitempty"` + + // All PayPal transactions associated with this order. If this order was not placed with PayPal, this will be empty. + PaypalTransactions []Billing_Payment_PayPal_Transaction `json:"paypalTransactions,omitempty" xmlrpc:"paypalTransactions,omitempty"` + + // no documentation yet + PresaleEvent *Sales_Presale_Event `json:"presaleEvent,omitempty" xmlrpc:"presaleEvent,omitempty"` + + // no documentation yet + PresaleEventId *int `json:"presaleEventId,omitempty" xmlrpc:"presaleEventId,omitempty"` + + // Flag indicating a private cloud solution order (Deprecated) + PrivateCloudOrderFlag *bool `json:"privateCloudOrderFlag,omitempty" xmlrpc:"privateCloudOrderFlag,omitempty"` + + // The quote of an order. This quote holds information about its expiration date, creation date, name and status. This information is tied to an order having the status 'QUOTE' + Quote *Billing_Order_Quote `json:"quote,omitempty" xmlrpc:"quote,omitempty"` + + // The Referral Partner who referred this order. (Only necessary for new customer orders) + ReferralPartner *Account `json:"referralPartner,omitempty" xmlrpc:"referralPartner,omitempty"` + + // Purchaser current status e.i. Approved, Pending_Approval + Status *string `json:"status,omitempty" xmlrpc:"status,omitempty"` + + // This flag indicates an order is an upgrade. + UpgradeRequestFlag *bool `json:"upgradeRequestFlag,omitempty" xmlrpc:"upgradeRequestFlag,omitempty"` + + // The SoftLayer_User_Customer object tied to an order. + UserRecord *User_Customer `json:"userRecord,omitempty" xmlrpc:"userRecord,omitempty"` + + // The SoftLayer_User_Customer id of the portal or API user who submitted an order. + UserRecordId *int `json:"userRecordId,omitempty" xmlrpc:"userRecordId,omitempty"` +} + +// no documentation yet +type Billing_Order_Cart struct { + Billing_Order_Quote +} + +// Every individual item that a SoftLayer customer is billed for is recorded in the SoftLayer_Billing_Item data type. Billing items range from server chassis to hard drives to control panels, bandwidth quota upgrades and port upgrade charges. Softlayer [[SoftLayer_Billing_Invoice|invoices]] are generated from the cost of a customer's billing items. Billing items are copied from the product catalog as they're ordered by customers to create a reference between an account and the billable items they own. +// +// Billing items exist in a tree relationship. Items are associated with each other by parent/child relationships. Component items such as CPU's, RAM, and software each have a parent billing item for the server chassis they're associated with. Billing Items with a null parent item do not have an associated parent item. +type Billing_Order_Item struct { + Entity + + // The SoftLayer_Billing_Item tied to the order item. + BillingItem *Billing_Item `json:"billingItem,omitempty" xmlrpc:"billingItem,omitempty"` + + // A count of the other items included with an ordered item. + BundledItemCount *uint `json:"bundledItemCount,omitempty" xmlrpc:"bundledItemCount,omitempty"` + + // The other items included with an ordered item. + BundledItems []Billing_Order_Item `json:"bundledItems,omitempty" xmlrpc:"bundledItems,omitempty"` + + // The item category tied to an order item. + Category *Product_Item_Category `json:"category,omitempty" xmlrpc:"category,omitempty"` + + // The category code for the order item. + CategoryCode *string `json:"categoryCode,omitempty" xmlrpc:"categoryCode,omitempty"` + + // The child order items for an order item. All server order items should have children. These children are considered a part of the server. + Children []Billing_Order_Item `json:"children,omitempty" xmlrpc:"children,omitempty"` + + // A count of the child order items for an order item. All server order items should have children. These children are considered a part of the server. + ChildrenCount *uint `json:"childrenCount,omitempty" xmlrpc:"childrenCount,omitempty"` + + // friendly description of purchase item. + Description *string `json:"description,omitempty" xmlrpc:"description,omitempty"` + + // The domain name of the server as designated by the purchaser at the time of order placement. + DomainName *string `json:"domainName,omitempty" xmlrpc:"domainName,omitempty"` + + // A hardware's universally unique identifier. + GlobalIdentifier *string `json:"globalIdentifier,omitempty" xmlrpc:"globalIdentifier,omitempty"` + + // The component type tied to an order item. All hardware-specific items should have a generic hardware component. + HardwareGenericComponent *Hardware_Component_Model_Generic `json:"hardwareGenericComponent,omitempty" xmlrpc:"hardwareGenericComponent,omitempty"` + + // The hostname of the server as designated by the purchaser at the time of order placement. + HostName *string `json:"hostName,omitempty" xmlrpc:"hostName,omitempty"` + + // The amount of money charged per hourly for an order item, if applicable, and only if it was ordered this day. hourlyRecurringFee is measured in US Dollars ($USD). + HourlyRecurringFee *Float64 `json:"hourlyRecurringFee,omitempty" xmlrpc:"hourlyRecurringFee,omitempty"` + + // no documentation yet + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // The SoftLayer_Product_Item tied to an order item. The item is the actual definition of the product being sold. + Item *Product_Item `json:"item,omitempty" xmlrpc:"item,omitempty"` + + // A count of this is an item's category answers. + ItemCategoryAnswerCount *uint `json:"itemCategoryAnswerCount,omitempty" xmlrpc:"itemCategoryAnswerCount,omitempty"` + + // This is an item's category answers. + ItemCategoryAnswers []Billing_Order_Item_Category_Answer `json:"itemCategoryAnswers,omitempty" xmlrpc:"itemCategoryAnswers,omitempty"` + + // The SoftLayer_Product_Item ID for this order item. + ItemId *int `json:"itemId,omitempty" xmlrpc:"itemId,omitempty"` + + // The SoftLayer_Product_Item_Price tied to an order item. The item price object describes the cost of an item. + ItemPrice *Product_Item_Price `json:"itemPrice,omitempty" xmlrpc:"itemPrice,omitempty"` + + // the item price id (SoftLayer_Product_Item_Price->id) of the ordered item. + ItemPriceId *Float64 `json:"itemPriceId,omitempty" xmlrpc:"itemPriceId,omitempty"` + + // An order item's labor fee total after taxes. This does not include any child invoice items. + LaborAfterTaxAmount *Float64 `json:"laborAfterTaxAmount,omitempty" xmlrpc:"laborAfterTaxAmount,omitempty"` + + // The labor fee, if any. This is a one time charge. + LaborFee *Float64 `json:"laborFee,omitempty" xmlrpc:"laborFee,omitempty"` + + // The rate at which labor fees are taxed if you are a taxable customer. + LaborFeeTaxRate *Float64 `json:"laborFeeTaxRate,omitempty" xmlrpc:"laborFeeTaxRate,omitempty"` + + // An order item's labor tax amount. This does not include any child invoice items. + LaborTaxAmount *Float64 `json:"laborTaxAmount,omitempty" xmlrpc:"laborTaxAmount,omitempty"` + + // The location of an ordered item. This is usually the same as the server it is being ordered with. Otherwise it describes the location of the additional service being ordered. + Location *Location `json:"location,omitempty" xmlrpc:"location,omitempty"` + + // no documentation yet + NextOrderChildren []Billing_Order_Item `json:"nextOrderChildren,omitempty" xmlrpc:"nextOrderChildren,omitempty"` + + // A count of + NextOrderChildrenCount *uint `json:"nextOrderChildrenCount,omitempty" xmlrpc:"nextOrderChildrenCount,omitempty"` + + // This is only populated when an upgrade order is placed. The old billing item represents what the billing was before the upgrade happened. + OldBillingItem *Billing_Item `json:"oldBillingItem,omitempty" xmlrpc:"oldBillingItem,omitempty"` + + // An order item's one-time fee total after taxes. This does not include any child invoice items. + OneTimeAfterTaxAmount *Float64 `json:"oneTimeAfterTaxAmount,omitempty" xmlrpc:"oneTimeAfterTaxAmount,omitempty"` + + // The amount of money charged as a one-time charge for an order item, if applicable. oneTimeFee is measured in US Dollars ($USD). + OneTimeFee *Float64 `json:"oneTimeFee,omitempty" xmlrpc:"oneTimeFee,omitempty"` + + // The rate at which one time fees are taxed if you are a taxable customer. + OneTimeFeeTaxRate *Float64 `json:"oneTimeFeeTaxRate,omitempty" xmlrpc:"oneTimeFeeTaxRate,omitempty"` + + // An order item's one-time tax amount. This does not include any child invoice items. + OneTimeTaxAmount *Float64 `json:"oneTimeTaxAmount,omitempty" xmlrpc:"oneTimeTaxAmount,omitempty"` + + // The order to which this item belongs. The order contains all the information related to the items included in an order + Order *Billing_Order `json:"order,omitempty" xmlrpc:"order,omitempty"` + + // no documentation yet + OrderApprovalDate *Time `json:"orderApprovalDate,omitempty" xmlrpc:"orderApprovalDate,omitempty"` + + // The SoftLayer_Product_Package an order item is a part of. + Package *Product_Package `json:"package,omitempty" xmlrpc:"package,omitempty"` + + // The parent order item ID for an item. Items that are associated with a server will have a parent. The parent will be the server item itself. + Parent *Billing_Order_Item `json:"parent,omitempty" xmlrpc:"parent,omitempty"` + + // no documentation yet + ParentId *int `json:"parentId,omitempty" xmlrpc:"parentId,omitempty"` + + // no documentation yet + PromoCodeId *int `json:"promoCodeId,omitempty" xmlrpc:"promoCodeId,omitempty"` + + // the quantity of the ordered item in a quote. + Quantity *int `json:"quantity,omitempty" xmlrpc:"quantity,omitempty"` + + // An order item's recurring fee total after taxes. This does not include any child invoice items. + RecurringAfterTaxAmount *Float64 `json:"recurringAfterTaxAmount,omitempty" xmlrpc:"recurringAfterTaxAmount,omitempty"` + + // The amount of money charged per month for an order item, if applicable. recurringFee is measured in US Dollars ($USD). + RecurringFee *Float64 `json:"recurringFee,omitempty" xmlrpc:"recurringFee,omitempty"` + + // An order item's recurring tax amount. This does not include any child invoice items. + RecurringTaxAmount *Float64 `json:"recurringTaxAmount,omitempty" xmlrpc:"recurringTaxAmount,omitempty"` + + // A count of power supplies contained within this SoftLayer_Billing_Order + RedundantPowerSupplyCount *uint `json:"redundantPowerSupplyCount,omitempty" xmlrpc:"redundantPowerSupplyCount,omitempty"` + + // An order item's setup fee total after taxes. This does not include any child invoice items. + SetupAfterTaxAmount *Float64 `json:"setupAfterTaxAmount,omitempty" xmlrpc:"setupAfterTaxAmount,omitempty"` + + // The setup fee, if any. This is a one time charge. + SetupFee *Float64 `json:"setupFee,omitempty" xmlrpc:"setupFee,omitempty"` + + // The month set up fee deferral. + SetupFeeDeferralMonths *int `json:"setupFeeDeferralMonths,omitempty" xmlrpc:"setupFeeDeferralMonths,omitempty"` + + // The rate at which setup fees are taxed if you are a taxable customer. + SetupFeeTaxRate *Float64 `json:"setupFeeTaxRate,omitempty" xmlrpc:"setupFeeTaxRate,omitempty"` + + // An order item's setup tax amount. This does not include any child invoice items. + SetupTaxAmount *Float64 `json:"setupTaxAmount,omitempty" xmlrpc:"setupTaxAmount,omitempty"` + + // For ordered items that are software items, a full description of that software can be found with this property. + SoftwareDescription *Software_Description `json:"softwareDescription,omitempty" xmlrpc:"softwareDescription,omitempty"` + + // A count of the drive storage groups that are attached to this billing order item. + StorageGroupCount *uint `json:"storageGroupCount,omitempty" xmlrpc:"storageGroupCount,omitempty"` + + // The drive storage groups that are attached to this billing order item. + StorageGroups []Configuration_Storage_Group_Order `json:"storageGroups,omitempty" xmlrpc:"storageGroups,omitempty"` + + // The recurring fee of an ordered item. This amount represents the fees that will be charged on a recurring (usually monthly) basis. + TotalRecurringAmount *Float64 `json:"totalRecurringAmount,omitempty" xmlrpc:"totalRecurringAmount,omitempty"` + + // The next SoftLayer_Product_Item in the upgrade path for this order item. + UpgradeItem *Product_Item `json:"upgradeItem,omitempty" xmlrpc:"upgradeItem,omitempty"` +} + +// The SoftLayer_Billing_Order_Item_Category_Answer data type represents a single answer to an item category question. +type Billing_Order_Item_Category_Answer struct { + Entity + + // The answer to the question. + Answer *string `json:"answer,omitempty" xmlrpc:"answer,omitempty"` + + // The date that the answer was created. + CreateDate *Time `json:"createDate,omitempty" xmlrpc:"createDate,omitempty"` + + // The billing order item that the answer is for. + OrderItem *Billing_Order_Item `json:"orderItem,omitempty" xmlrpc:"orderItem,omitempty"` + + // The question that is being answered. + Question *Product_Item_Category_Question `json:"question,omitempty" xmlrpc:"question,omitempty"` + + // The identifier for the question that the answer belongs to. + QuestionId *int `json:"questionId,omitempty" xmlrpc:"questionId,omitempty"` +} + +// no documentation yet +type Billing_Order_Note struct { + Entity + + // no documentation yet + CreateDate *Time `json:"createDate,omitempty" xmlrpc:"createDate,omitempty"` + + // no documentation yet + Employee *User_Employee `json:"employee,omitempty" xmlrpc:"employee,omitempty"` + + // no documentation yet + Order *Billing_Order `json:"order,omitempty" xmlrpc:"order,omitempty"` +} + +// The SoftLayer_Billing_Oder_Quote data type contains general information relating to an individual order applied to a SoftLayer customer account or to a new customer. Personal information in this type such as names, addresses, and phone numbers are taken from the account's contact information at the time the quote is generated for existing SoftLayer customer. +type Billing_Order_Quote struct { + Entity + + // A quote's corresponding account. + Account *Account `json:"account,omitempty" xmlrpc:"account,omitempty"` + + // Identification Number of the account record tied to the quote + AccountId *int `json:"accountId,omitempty" xmlrpc:"accountId,omitempty"` + + // Identification Number of the order record tied to the quote. + CompletedPurchaseDataId *int `json:"completedPurchaseDataId,omitempty" xmlrpc:"completedPurchaseDataId,omitempty"` + + // Holds the date the quote record was created + CreateDate *Time `json:"createDate,omitempty" xmlrpc:"createDate,omitempty"` + + // This property holds the date of expiration of a quote, after that date the quote would be deem expired + ExpirationDate *Time `json:"expirationDate,omitempty" xmlrpc:"expirationDate,omitempty"` + + // The id use to identify a quote. + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // Holds the date when the quote record was modified with reference to its creation date + ModifyDate *Time `json:"modifyDate,omitempty" xmlrpc:"modifyDate,omitempty"` + + // The name given to quote by the initiator + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` + + // This order contains the records for which products were selected for this quote. + Order *Billing_Order `json:"order,omitempty" xmlrpc:"order,omitempty"` + + // These are all the orders that were created from this quote. + OrdersFromQuote []Billing_Order `json:"ordersFromQuote,omitempty" xmlrpc:"ordersFromQuote,omitempty"` + + // A count of these are all the orders that were created from this quote. + OrdersFromQuoteCount *uint `json:"ordersFromQuoteCount,omitempty" xmlrpc:"ordersFromQuoteCount,omitempty"` + + // This property Holds system generated notes. In our case if a quote is tied to an order where one of the order item has an inactive promotion code, the quote will be considered invalid. + PublicNote *string `json:"publicNote,omitempty" xmlrpc:"publicNote,omitempty"` + + // Holds system generated hash password for the Quote + QuoteKey *string `json:"quoteKey,omitempty" xmlrpc:"quoteKey,omitempty"` + + // This property Holds the current status of a Quote: pending,expired, saved or deleted + Status *string `json:"status,omitempty" xmlrpc:"status,omitempty"` +} + +// The SoftLayer_Billing_Oder_Type data type contains general information relating to all the different types of orders that exist. This data pertains only to where an order was generated from, from any of the SoftLayer websites with ordering interfaces or directly through the SoftLayer API. +type Billing_Order_Type struct { + Entity + + // A brief description of where a SoftLayer order originated from. + Description *string `json:"description,omitempty" xmlrpc:"description,omitempty"` + + // A SoftLayer order type's internal identifier. + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // A simple keyname stating where a SoftLayer order originated from. + Type *string `json:"type,omitempty" xmlrpc:"type,omitempty"` +} + +// The SoftLayer_Billing_Payment_Card_ChangeRequest data type contains general information relating to attempted credit card information changes. +type Billing_Payment_Card_ChangeRequest struct { + Entity + + // no documentation yet + Account *Account `json:"account,omitempty" xmlrpc:"account,omitempty"` + + // The account ID to which the credit card and billing information is associated with. + AccountId *int `json:"accountId,omitempty" xmlrpc:"accountId,omitempty"` + + // The total amount of the attempted transaction, represented in decimal format as US Dollars ($USD). + Amount *Float64 `json:"amount,omitempty" xmlrpc:"amount,omitempty"` + + // The SoftLayer_Billing_Payment_Card_Transaction tied to the authorization performed as part of this change request. + AuthorizedCreditCardTransaction *Billing_Payment_Card_Transaction `json:"authorizedCreditCardTransaction,omitempty" xmlrpc:"authorizedCreditCardTransaction,omitempty"` + + // The physical street address. Reserve information such as "apartment #123" or "Suite 2" for line 1. + BillingAddressLine1 *string `json:"billingAddressLine1,omitempty" xmlrpc:"billingAddressLine1,omitempty"` + + // The second line in the address. Information such as suite number goes here. + BillingAddressLine2 *string `json:"billingAddressLine2,omitempty" xmlrpc:"billingAddressLine2,omitempty"` + + // The city in which a customer's account resides. + BillingCity *string `json:"billingCity,omitempty" xmlrpc:"billingCity,omitempty"` + + // The 2-character Country code for an account's address. (i.e. US) + BillingCountryCode *string `json:"billingCountryCode,omitempty" xmlrpc:"billingCountryCode,omitempty"` + + // The email address associated with a customer account. + BillingEmail *string `json:"billingEmail,omitempty" xmlrpc:"billingEmail,omitempty"` + + // the company name for an account. + BillingNameCompany *string `json:"billingNameCompany,omitempty" xmlrpc:"billingNameCompany,omitempty"` + + // The first name of the customer account owner. + BillingNameFirst *string `json:"billingNameFirst,omitempty" xmlrpc:"billingNameFirst,omitempty"` + + // The last name of the customer account owner + BillingNameLast *string `json:"billingNameLast,omitempty" xmlrpc:"billingNameLast,omitempty"` + + // The fax number associated with a customer account. + BillingPhoneFax *string `json:"billingPhoneFax,omitempty" xmlrpc:"billingPhoneFax,omitempty"` + + // The phone number associated with a customer account. + BillingPhoneVoice *string `json:"billingPhoneVoice,omitempty" xmlrpc:"billingPhoneVoice,omitempty"` + + // The Zip or Postal Code for the billing address on an account. + BillingPostalCode *string `json:"billingPostalCode,omitempty" xmlrpc:"billingPostalCode,omitempty"` + + // The State for the account. + BillingState *string `json:"billingState,omitempty" xmlrpc:"billingState,omitempty"` + + // The SoftLayer_Billing_Payment_Card_Transaction tied to the capture of funds performed as part of this change request. + CaptureCreditCardTransaction *Billing_Payment_Card_Transaction `json:"captureCreditCardTransaction,omitempty" xmlrpc:"captureCreditCardTransaction,omitempty"` + + // The last 4 digits of a customer's credit card. + CardAccountLast4 *string `json:"cardAccountLast4,omitempty" xmlrpc:"cardAccountLast4,omitempty"` + + // The card number submitted in the change request. + CardAccountNumber *string `json:"cardAccountNumber,omitempty" xmlrpc:"cardAccountNumber,omitempty"` + + // The month (MM) in which a customer's payment card will expire. + CardExpirationMonth *string `json:"cardExpirationMonth,omitempty" xmlrpc:"cardExpirationMonth,omitempty"` + + // The year (YYYY) in which a customer's payment card will expire. + CardExpirationYear *string `json:"cardExpirationYear,omitempty" xmlrpc:"cardExpirationYear,omitempty"` + + // no documentation yet + CardNickname *string `json:"cardNickname,omitempty" xmlrpc:"cardNickname,omitempty"` + + // The type of payment card a customer has. (i.e. Visa, MasterCard, American Express). + CardType *string `json:"cardType,omitempty" xmlrpc:"cardType,omitempty"` + + // The credit card verification number submitted in the change request. + CreditCardVerificationNumber *string `json:"creditCardVerificationNumber,omitempty" xmlrpc:"creditCardVerificationNumber,omitempty"` + + // Describes the currency selected for payment + CurrencyShortName *string `json:"currencyShortName,omitempty" xmlrpc:"currencyShortName,omitempty"` + + // Device Fingerprint Identifier - Used internally and can safely be ignored. + DeviceFingerprintId *string `json:"deviceFingerprintId,omitempty" xmlrpc:"deviceFingerprintId,omitempty"` + + // The unique identifier for a single change request. + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // the notes stored about a customer's payment card. + Notes *string `json:"notes,omitempty" xmlrpc:"notes,omitempty"` + + // no documentation yet + PaymentRoleId *int `json:"paymentRoleId,omitempty" xmlrpc:"paymentRoleId,omitempty"` + + // The description of the type of payment sent in a change transaction. + PaymentType *string `json:"paymentType,omitempty" xmlrpc:"paymentType,omitempty"` + + // A count of these are tickets tied to a credit card change request. + TicketAttachmentReferenceCount *uint `json:"ticketAttachmentReferenceCount,omitempty" xmlrpc:"ticketAttachmentReferenceCount,omitempty"` + + // These are tickets tied to a credit card change request. + TicketAttachmentReferences []Ticket_Attachment `json:"ticketAttachmentReferences,omitempty" xmlrpc:"ticketAttachmentReferences,omitempty"` + + // Unique identifier for a ticket discussing the switch between payment methods. + TicketId *int `json:"ticketId,omitempty" xmlrpc:"ticketId,omitempty"` +} + +// The SoftLayer_Billing_Payment_Card_ManualPayment data type contains general information relating to attempted credit card information changes. +type Billing_Payment_Card_ManualPayment struct { + Entity + + // no documentation yet + Account *Account `json:"account,omitempty" xmlrpc:"account,omitempty"` + + // The account ID to which the credit card and billing information is associated with. + AccountId *int `json:"accountId,omitempty" xmlrpc:"accountId,omitempty"` + + // The total amount of the attempted transaction, represented in decimal format as US Dollars ($USD). + Amount *Float64 `json:"amount,omitempty" xmlrpc:"amount,omitempty"` + + // This is the credit card transaction data tied to a credit card manual payment. + AuthorizedCreditCardTransaction *Billing_Payment_Card_Transaction `json:"authorizedCreditCardTransaction,omitempty" xmlrpc:"authorizedCreditCardTransaction,omitempty"` + + // The unique identifier of an attempted credit card transaction. + AuthorizedCreditCardTransactionId *int `json:"authorizedCreditCardTransactionId,omitempty" xmlrpc:"authorizedCreditCardTransactionId,omitempty"` + + // This is the PayPal transaction data tied to a PayPal manual payment. + AuthorizedPayPalTransaction *Billing_Payment_PayPal_Transaction `json:"authorizedPayPalTransaction,omitempty" xmlrpc:"authorizedPayPalTransaction,omitempty"` + + // The unique identifier of an attempted PayPal transaction. + AuthorizedPayPalTransactionId *int `json:"authorizedPayPalTransactionId,omitempty" xmlrpc:"authorizedPayPalTransactionId,omitempty"` + + // The physical street address. Reserve information such as "apartment #123" or "Suite 2" for line 1. + BillingAddressLine1 *string `json:"billingAddressLine1,omitempty" xmlrpc:"billingAddressLine1,omitempty"` + + // The second line in the address. Information such as suite number goes here. + BillingAddressLine2 *string `json:"billingAddressLine2,omitempty" xmlrpc:"billingAddressLine2,omitempty"` + + // The city in which a customer's account resides. + BillingCity *string `json:"billingCity,omitempty" xmlrpc:"billingCity,omitempty"` + + // The 2-character Country code for an account's address. (i.e. US) + BillingCountryCode *string `json:"billingCountryCode,omitempty" xmlrpc:"billingCountryCode,omitempty"` + + // The email address associated with a customer account. + BillingEmail *string `json:"billingEmail,omitempty" xmlrpc:"billingEmail,omitempty"` + + // the company name for an account. + BillingNameCompany *string `json:"billingNameCompany,omitempty" xmlrpc:"billingNameCompany,omitempty"` + + // The first name of the customer account owner. + BillingNameFirst *string `json:"billingNameFirst,omitempty" xmlrpc:"billingNameFirst,omitempty"` + + // The last name of the customer account owner. + BillingNameLast *string `json:"billingNameLast,omitempty" xmlrpc:"billingNameLast,omitempty"` + + // The fax number associated with a customer account. + BillingPhoneFax *string `json:"billingPhoneFax,omitempty" xmlrpc:"billingPhoneFax,omitempty"` + + // The phone number associated with a customer account. + BillingPhoneVoice *string `json:"billingPhoneVoice,omitempty" xmlrpc:"billingPhoneVoice,omitempty"` + + // The Zip or Postal Code for the billing address on an account. + BillingPostalCode *string `json:"billingPostalCode,omitempty" xmlrpc:"billingPostalCode,omitempty"` + + // The State for the account. + BillingState *string `json:"billingState,omitempty" xmlrpc:"billingState,omitempty"` + + // The cancel URL is the page to which PayPal redirects if payment is not approved. + CancelUrl *string `json:"cancelUrl,omitempty" xmlrpc:"cancelUrl,omitempty"` + + // The SoftLayer_Billing_Payment_Card_Transaction tied to the capture performed as part of this manual payment. This will only exist if the manual payment was performed with a credit card. + CaptureCreditCardTransaction *Billing_Payment_Card_Transaction `json:"captureCreditCardTransaction,omitempty" xmlrpc:"captureCreditCardTransaction,omitempty"` + + // The SoftLayer_Billing_Payment_PayPal_Transaction tied to the capture performed as part of this manual payment. This will only exist if the manual payment was performed via PayPal. + CapturePayPalTransaction *Billing_Payment_PayPal_Transaction `json:"capturePayPalTransaction,omitempty" xmlrpc:"capturePayPalTransaction,omitempty"` + + // A hash value of the credit card number. + CardAccountHash *string `json:"cardAccountHash,omitempty" xmlrpc:"cardAccountHash,omitempty"` + + // The last 4 digits of a customer's credit card. + CardAccountLast4 *string `json:"cardAccountLast4,omitempty" xmlrpc:"cardAccountLast4,omitempty"` + + // The card number submitted in the change request. + CardAccountNumber *string `json:"cardAccountNumber,omitempty" xmlrpc:"cardAccountNumber,omitempty"` + + // The month (MM) in which a customer's payment card will expire. + CardExpirationMonth *string `json:"cardExpirationMonth,omitempty" xmlrpc:"cardExpirationMonth,omitempty"` + + // The year (YYYY) in which a customer's payment card will expire. + CardExpirationYear *string `json:"cardExpirationYear,omitempty" xmlrpc:"cardExpirationYear,omitempty"` + + // The method key of the type payment issued (Visa - 001, Mastercard - 002, American Express - 003, Discover - 004, PayPal - paypal). + CardType *string `json:"cardType,omitempty" xmlrpc:"cardType,omitempty"` + + // The credit card verification number submitted in the change request. + CreditCardVerificationNumber *string `json:"creditCardVerificationNumber,omitempty" xmlrpc:"creditCardVerificationNumber,omitempty"` + + // Describes the currency selected for payment + CurrencyShortName *string `json:"currencyShortName,omitempty" xmlrpc:"currencyShortName,omitempty"` + + // Device Fingerprint Identifier - Used internally and can safely be ignored. + DeviceFingerprintId *string `json:"deviceFingerprintId,omitempty" xmlrpc:"deviceFingerprintId,omitempty"` + + // The IP address from which the transaction originates. + FromIpAddress *string `json:"fromIpAddress,omitempty" xmlrpc:"fromIpAddress,omitempty"` + + // The unique identifier for a single manual payment request. + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // Notes generated as a result of the payment request. + Notes *string `json:"notes,omitempty" xmlrpc:"notes,omitempty"` + + // The description of the type of payment sent in a change transaction. + PaymentType *string `json:"paymentType,omitempty" xmlrpc:"paymentType,omitempty"` + + // The return URL is the page to which PayPal redirects after payment is approved. + ReturnUrl *string `json:"returnUrl,omitempty" xmlrpc:"returnUrl,omitempty"` + + // A count of these are tickets tied to a credit card manual payment. + TicketAttachmentReferenceCount *uint `json:"ticketAttachmentReferenceCount,omitempty" xmlrpc:"ticketAttachmentReferenceCount,omitempty"` + + // These are tickets tied to a credit card manual payment. + TicketAttachmentReferences []Ticket_Attachment `json:"ticketAttachmentReferences,omitempty" xmlrpc:"ticketAttachmentReferences,omitempty"` + + // Describes the type of manual payment (PAYPAL or CREDIT_CARD). + Type *string `json:"type,omitempty" xmlrpc:"type,omitempty"` +} + +// The SoftLayer_Billing_Payment_Card_Transaction data type contains general information relating to attempted credit card transactions. +type Billing_Payment_Card_Transaction struct { + Billing_Payment_Transaction + + // The account to which a transaction belongs. + Account *Account `json:"account,omitempty" xmlrpc:"account,omitempty"` + + // The account ID to which the credit card and billing information is associated with. + AccountId *int `json:"accountId,omitempty" xmlrpc:"accountId,omitempty"` + + // The total amount of the attempted transaction, represented in decimal format as US Dollars ($USD). + Amount *Float64 `json:"amount,omitempty" xmlrpc:"amount,omitempty"` + + // The physical street address. Reserve information such as "apartment #123" or "Suite 2" for line 1. + BillingAddressLine1 *string `json:"billingAddressLine1,omitempty" xmlrpc:"billingAddressLine1,omitempty"` + + // The second line in the address. Information such as suite number goes here. + BillingAddressLine2 *string `json:"billingAddressLine2,omitempty" xmlrpc:"billingAddressLine2,omitempty"` + + // The city in which a customer's account resides. + BillingCity *string `json:"billingCity,omitempty" xmlrpc:"billingCity,omitempty"` + + // The 2-character Country code for an account's address. (i.e. US) + BillingCountryCode *string `json:"billingCountryCode,omitempty" xmlrpc:"billingCountryCode,omitempty"` + + // The email address associated with a customer account. + BillingEmail *string `json:"billingEmail,omitempty" xmlrpc:"billingEmail,omitempty"` + + // the company name for an account. + BillingNameCompany *string `json:"billingNameCompany,omitempty" xmlrpc:"billingNameCompany,omitempty"` + + // The first name of the customer account owner. + BillingNameFirst *string `json:"billingNameFirst,omitempty" xmlrpc:"billingNameFirst,omitempty"` + + // The last name of the customer account owner. + BillingNameLast *string `json:"billingNameLast,omitempty" xmlrpc:"billingNameLast,omitempty"` + + // The fax number associated with a customer account. + BillingPhoneFax *string `json:"billingPhoneFax,omitempty" xmlrpc:"billingPhoneFax,omitempty"` + + // The phone number associated with a customer account. + BillingPhoneVoice *string `json:"billingPhoneVoice,omitempty" xmlrpc:"billingPhoneVoice,omitempty"` + + // The Zip or Postal Code for the billing address on an account. + BillingPostalCode *string `json:"billingPostalCode,omitempty" xmlrpc:"billingPostalCode,omitempty"` + + // The State for the account. + BillingState *string `json:"billingState,omitempty" xmlrpc:"billingState,omitempty"` + + // The last 4 digits of a customer's credit card. + CardAccountLast4 *int `json:"cardAccountLast4,omitempty" xmlrpc:"cardAccountLast4,omitempty"` + + // The month (MM) in which a customer's payment card will expire. + CardExpirationMonth *int `json:"cardExpirationMonth,omitempty" xmlrpc:"cardExpirationMonth,omitempty"` + + // The year (YYYY) in which a customer's payment card will expire. + CardExpirationYear *int `json:"cardExpirationYear,omitempty" xmlrpc:"cardExpirationYear,omitempty"` + + // The type of payment issued (i.e. Visa, MasterCard, American Express). + CardType *string `json:"cardType,omitempty" xmlrpc:"cardType,omitempty"` + + // The date that the transaction was attempted. + CreateDate *Time `json:"createDate,omitempty" xmlrpc:"createDate,omitempty"` + + // The unique identifier for a single credit card transaction request. + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // Unique identifier of the invoice to which funds will be applied. + InvoiceId *int `json:"invoiceId,omitempty" xmlrpc:"invoiceId,omitempty"` + + // The date that the transaction was modified. + ModifyDate *Time `json:"modifyDate,omitempty" xmlrpc:"modifyDate,omitempty"` + + // no documentation yet + Order *Billing_Order `json:"order,omitempty" xmlrpc:"order,omitempty"` + + // The IP address from which the transaction originates. + OrderFromIpAddress *string `json:"orderFromIpAddress,omitempty" xmlrpc:"orderFromIpAddress,omitempty"` + + // A code used by the financial institution to refer to the requested transaction. + ReferenceCode *string `json:"referenceCode,omitempty" xmlrpc:"referenceCode,omitempty"` + + // The unique identifier of the request submitted to the financial institution. + RequestId *string `json:"requestId,omitempty" xmlrpc:"requestId,omitempty"` + + // The status code returned from the financial institution. + ReturnStatus *int `json:"returnStatus,omitempty" xmlrpc:"returnStatus,omitempty"` + + // A serialized, delimited string of the transaction request sent to the financial institution. + SerializedReply *string `json:"serializedReply,omitempty" xmlrpc:"serializedReply,omitempty"` + + // A serialized, delimited string of the transaction request sent to the financial institution. + SerializedRequest *string `json:"serializedRequest,omitempty" xmlrpc:"serializedRequest,omitempty"` +} + +// The SoftLayer_Billing_Payment_PayPal_Transaction data type contains general information relating to attempted PayPal transactions. +type Billing_Payment_PayPal_Transaction struct { + Billing_Payment_Transaction + + // The account to which a transaction belongs. + Account *Account `json:"account,omitempty" xmlrpc:"account,omitempty"` + + // The account ID to which the PayPal and billing information is associated with. + AccountId *int `json:"accountId,omitempty" xmlrpc:"accountId,omitempty"` + + // City given in the address of the PayPal user. + AddressCityName *string `json:"addressCityName,omitempty" xmlrpc:"addressCityName,omitempty"` + + // Country given in the named address of the PayPal user. + AddressCountry *string `json:"addressCountry,omitempty" xmlrpc:"addressCountry,omitempty"` + + // Name given to the address provided for the PayPal user. + AddressName *string `json:"addressName,omitempty" xmlrpc:"addressName,omitempty"` + + // Postal Code of the address of the PayPal user. + AddressPostalCode *string `json:"addressPostalCode,omitempty" xmlrpc:"addressPostalCode,omitempty"` + + // State or Province in the address of the PayPal user. + AddressStateProvence *string `json:"addressStateProvence,omitempty" xmlrpc:"addressStateProvence,omitempty"` + + // PayPal defined status of the address of the PayPal user. + AddressStatus *string `json:"addressStatus,omitempty" xmlrpc:"addressStatus,omitempty"` + + // First line of the street address of the PayPal user. + AddressStreet1 *string `json:"addressStreet1,omitempty" xmlrpc:"addressStreet1,omitempty"` + + // Second line of the street address of the PayPal user. + AddressStreet2 *string `json:"addressStreet2,omitempty" xmlrpc:"addressStreet2,omitempty"` + + // Phone number provided for the PayPal user. + ContactPhone *string `json:"contactPhone,omitempty" xmlrpc:"contactPhone,omitempty"` + + // The date that the transaction was attempted. + CreateDate *Time `json:"createDate,omitempty" xmlrpc:"createDate,omitempty"` + + // Exchange rate imposed on the payment amount. + ExchangeRate *string `json:"exchangeRate,omitempty" xmlrpc:"exchangeRate,omitempty"` + + // PayPal fee applied to the payment. + FeeAmount *Float64 `json:"feeAmount,omitempty" xmlrpc:"feeAmount,omitempty"` + + // The total amount of the payment executed by PayPal, represented in decimal format as US Dollars ($USD). + GrossAmount *Float64 `json:"grossAmount,omitempty" xmlrpc:"grossAmount,omitempty"` + + // The unique identifier for a single PayPal transaction request. + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // Unique identifier of the invoice to which funds will be applied. + InvoiceId *int `json:"invoiceId,omitempty" xmlrpc:"invoiceId,omitempty"` + + // The name of the command issued to PayPal with regards to the attempted transaction. + LastPaypalCommand *string `json:"lastPaypalCommand,omitempty" xmlrpc:"lastPaypalCommand,omitempty"` + + // The date that the transaction was modified. + ModifyDate *Time `json:"modifyDate,omitempty" xmlrpc:"modifyDate,omitempty"` + + // no documentation yet + Order *Billing_Order `json:"order,omitempty" xmlrpc:"order,omitempty"` + + // The IP address from where the PayPal payment request originated. + OrderFromIpAddress *string `json:"orderFromIpAddress,omitempty" xmlrpc:"orderFromIpAddress,omitempty"` + + // The amount of the payment submitted through the SoftLayer interface, represented in decimal format as US Dollars ($USD). + OrderTotal *Float64 `json:"orderTotal,omitempty" xmlrpc:"orderTotal,omitempty"` + + // The PayPal user account name (email address) associated with the customer account. + Payer *string `json:"payer,omitempty" xmlrpc:"payer,omitempty"` + + // The name of the business associated with the PayPal user. + PayerBusiness *string `json:"payerBusiness,omitempty" xmlrpc:"payerBusiness,omitempty"` + + // Country given in the address of the PayPal user. + PayerCountry *string `json:"payerCountry,omitempty" xmlrpc:"payerCountry,omitempty"` + + // First name of the PayPal user. + PayerFirstName *string `json:"payerFirstName,omitempty" xmlrpc:"payerFirstName,omitempty"` + + // Unique PayPal user account identifier. + PayerId *string `json:"payerId,omitempty" xmlrpc:"payerId,omitempty"` + + // Last name of the PayPal user. + PayerLastName *string `json:"payerLastName,omitempty" xmlrpc:"payerLastName,omitempty"` + + // Current PayPal status associated with the user account. + PayerStatus *string `json:"payerStatus,omitempty" xmlrpc:"payerStatus,omitempty"` + + // Date that the payment was confirmed in PayPal by the user. + PaymentDate *Time `json:"paymentDate,omitempty" xmlrpc:"paymentDate,omitempty"` + + // PayPal defined status of the attempted payment. + PaymentStatus *string `json:"paymentStatus,omitempty" xmlrpc:"paymentStatus,omitempty"` + + // PayPal defined code used to identify the type of payment. Provided in a PayPal response. + PaymentType *string `json:"paymentType,omitempty" xmlrpc:"paymentType,omitempty"` + + // Reason provided by PayPal for a payment given a pending status. + PendingReason *string `json:"pendingReason,omitempty" xmlrpc:"pendingReason,omitempty"` + + // A serialized, delimited string of the reply received from PayPal. + SerializedReply *string `json:"serializedReply,omitempty" xmlrpc:"serializedReply,omitempty"` + + // A serialized, delimited string of the request submitted to PayPal. + SerializedRequest *string `json:"serializedRequest,omitempty" xmlrpc:"serializedRequest,omitempty"` + + // PayPal defined fee. + SettleAmount *Float64 `json:"settleAmount,omitempty" xmlrpc:"settleAmount,omitempty"` + + // Tax applied by PayPal to the payment amount. + TaxAmount *Float64 `json:"taxAmount,omitempty" xmlrpc:"taxAmount,omitempty"` + + // Value issued by PayPal for referencing the attempted transaction. + Token *string `json:"token,omitempty" xmlrpc:"token,omitempty"` + + // Unique transaction ID provided in a PayPal response. + TransactionId *string `json:"transactionId,omitempty" xmlrpc:"transactionId,omitempty"` + + // PayPal defined code used to identify the type of transaction. Provided in a PayPal response. + TransactionType *string `json:"transactionType,omitempty" xmlrpc:"transactionType,omitempty"` +} + +// no documentation yet +type Billing_Payment_Processor struct { + Entity + + // A count of + BrandAssignmentCount *uint `json:"brandAssignmentCount,omitempty" xmlrpc:"brandAssignmentCount,omitempty"` + + // no documentation yet + BrandAssignments []Brand_Payment_Processor `json:"brandAssignments,omitempty" xmlrpc:"brandAssignments,omitempty"` + + // no documentation yet + Description *string `json:"description,omitempty" xmlrpc:"description,omitempty"` + + // no documentation yet + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` + + // no documentation yet + OwnerAccount *Account `json:"ownerAccount,omitempty" xmlrpc:"ownerAccount,omitempty"` + + // A count of + PaymentMethodCount *uint `json:"paymentMethodCount,omitempty" xmlrpc:"paymentMethodCount,omitempty"` + + // no documentation yet + PaymentMethods []Billing_Payment_Processor_Method `json:"paymentMethods,omitempty" xmlrpc:"paymentMethods,omitempty"` + + // no documentation yet + Type *Billing_Payment_Processor_Type `json:"type,omitempty" xmlrpc:"type,omitempty"` +} + +// no documentation yet +type Billing_Payment_Processor_Method struct { + Entity + + // no documentation yet + MethodKey *string `json:"methodKey,omitempty" xmlrpc:"methodKey,omitempty"` + + // no documentation yet + MultipleCurrencyFlag *bool `json:"multipleCurrencyFlag,omitempty" xmlrpc:"multipleCurrencyFlag,omitempty"` + + // no documentation yet + PaymentProcessor *Billing_Payment_Processor `json:"paymentProcessor,omitempty" xmlrpc:"paymentProcessor,omitempty"` + + // no documentation yet + PaymentType *Billing_Payment_Type `json:"paymentType,omitempty" xmlrpc:"paymentType,omitempty"` +} + +// no documentation yet +type Billing_Payment_Processor_Type struct { + Entity + + // no documentation yet + Description *string `json:"description,omitempty" xmlrpc:"description,omitempty"` + + // no documentation yet + KeyName *string `json:"keyName,omitempty" xmlrpc:"keyName,omitempty"` + + // no documentation yet + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` + + // A count of + PaymentProcessorCount *uint `json:"paymentProcessorCount,omitempty" xmlrpc:"paymentProcessorCount,omitempty"` + + // no documentation yet + PaymentProcessors []Billing_Payment_Processor `json:"paymentProcessors,omitempty" xmlrpc:"paymentProcessors,omitempty"` +} + +// Implementation for payment transactions. +type Billing_Payment_Transaction struct { + Entity +} + +// no documentation yet +type Billing_Payment_Type struct { + Entity + + // no documentation yet + Description *string `json:"description,omitempty" xmlrpc:"description,omitempty"` + + // no documentation yet + KeyName *string `json:"keyName,omitempty" xmlrpc:"keyName,omitempty"` + + // no documentation yet + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` +} diff --git a/vendor/github.com/softlayer/softlayer-go/datatypes/brand.go b/vendor/github.com/softlayer/softlayer-go/datatypes/brand.go new file mode 100644 index 000000000..aec747cf0 --- /dev/null +++ b/vendor/github.com/softlayer/softlayer-go/datatypes/brand.go @@ -0,0 +1,227 @@ +/** + * Copyright 2016 IBM Corp. + * + * 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. + */ + +/** + * AUTOMATICALLY GENERATED CODE - DO NOT MODIFY + */ + +package datatypes + +// The SoftLayer_Brand data type contains brand information relating to the single SoftLayer customer account. +// +// SoftLayer customers are unable to change their brand information in the portal or the API. +type Brand struct { + Entity + + // no documentation yet + Account *Account `json:"account,omitempty" xmlrpc:"account,omitempty"` + + // A count of all accounts owned by the brand. + AllOwnedAccountCount *uint `json:"allOwnedAccountCount,omitempty" xmlrpc:"allOwnedAccountCount,omitempty"` + + // All accounts owned by the brand. + AllOwnedAccounts []Account `json:"allOwnedAccounts,omitempty" xmlrpc:"allOwnedAccounts,omitempty"` + + // This flag indicates if creation of accounts is allowed. + AllowAccountCreationFlag *bool `json:"allowAccountCreationFlag,omitempty" xmlrpc:"allowAccountCreationFlag,omitempty"` + + // The Product Catalog for the Brand + Catalog *Product_Catalog `json:"catalog,omitempty" xmlrpc:"catalog,omitempty"` + + // ID of the Catalog used by this Brand + CatalogId *int `json:"catalogId,omitempty" xmlrpc:"catalogId,omitempty"` + + // A count of the contacts for the brand. + ContactCount *uint `json:"contactCount,omitempty" xmlrpc:"contactCount,omitempty"` + + // The contacts for the brand. + Contacts []Brand_Contact `json:"contacts,omitempty" xmlrpc:"contacts,omitempty"` + + // A count of this references relationship between brands, locations and countries associated with a user's account that are ineligible when ordering products. For example, the India datacenter may not be available on this brand for customers that live in Great Britain. + CustomerCountryLocationRestrictionCount *uint `json:"customerCountryLocationRestrictionCount,omitempty" xmlrpc:"customerCountryLocationRestrictionCount,omitempty"` + + // This references relationship between brands, locations and countries associated with a user's account that are ineligible when ordering products. For example, the India datacenter may not be available on this brand for customers that live in Great Britain. + CustomerCountryLocationRestrictions []Brand_Restriction_Location_CustomerCountry `json:"customerCountryLocationRestrictions,omitempty" xmlrpc:"customerCountryLocationRestrictions,omitempty"` + + // no documentation yet + Distributor *Brand `json:"distributor,omitempty" xmlrpc:"distributor,omitempty"` + + // no documentation yet + DistributorChildFlag *bool `json:"distributorChildFlag,omitempty" xmlrpc:"distributorChildFlag,omitempty"` + + // no documentation yet + DistributorFlag *string `json:"distributorFlag,omitempty" xmlrpc:"distributorFlag,omitempty"` + + // An account's associated hardware objects. + Hardware []Hardware `json:"hardware,omitempty" xmlrpc:"hardware,omitempty"` + + // A count of an account's associated hardware objects. + HardwareCount *uint `json:"hardwareCount,omitempty" xmlrpc:"hardwareCount,omitempty"` + + // no documentation yet + HasAgentSupportFlag *bool `json:"hasAgentSupportFlag,omitempty" xmlrpc:"hasAgentSupportFlag,omitempty"` + + // no documentation yet + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // The brand key name. + KeyName *string `json:"keyName,omitempty" xmlrpc:"keyName,omitempty"` + + // The brand long name. + LongName *string `json:"longName,omitempty" xmlrpc:"longName,omitempty"` + + // The brand name. + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` + + // A count of + OpenTicketCount *uint `json:"openTicketCount,omitempty" xmlrpc:"openTicketCount,omitempty"` + + // no documentation yet + OpenTickets []Ticket `json:"openTickets,omitempty" xmlrpc:"openTickets,omitempty"` + + // A count of active accounts owned by the brand. + OwnedAccountCount *uint `json:"ownedAccountCount,omitempty" xmlrpc:"ownedAccountCount,omitempty"` + + // Active accounts owned by the brand. + OwnedAccounts []Account `json:"ownedAccounts,omitempty" xmlrpc:"ownedAccounts,omitempty"` + + // A count of + TicketCount *uint `json:"ticketCount,omitempty" xmlrpc:"ticketCount,omitempty"` + + // A count of + TicketGroupCount *uint `json:"ticketGroupCount,omitempty" xmlrpc:"ticketGroupCount,omitempty"` + + // no documentation yet + TicketGroups []Ticket_Group `json:"ticketGroups,omitempty" xmlrpc:"ticketGroups,omitempty"` + + // no documentation yet + Tickets []Ticket `json:"tickets,omitempty" xmlrpc:"tickets,omitempty"` + + // A count of + UserCount *uint `json:"userCount,omitempty" xmlrpc:"userCount,omitempty"` + + // no documentation yet + Users []User_Customer `json:"users,omitempty" xmlrpc:"users,omitempty"` + + // A count of an account's associated virtual guest objects. + VirtualGuestCount *uint `json:"virtualGuestCount,omitempty" xmlrpc:"virtualGuestCount,omitempty"` + + // An account's associated virtual guest objects. + VirtualGuests []Virtual_Guest `json:"virtualGuests,omitempty" xmlrpc:"virtualGuests,omitempty"` +} + +// no documentation yet +type Brand_Attribute struct { + Entity + + // no documentation yet + Brand *Brand `json:"brand,omitempty" xmlrpc:"brand,omitempty"` +} + +// SoftLayer_Brand_Contact contains the contact information for the brand such as Corporate or Support contact information +type Brand_Contact struct { + Entity + + // The contact's address 1. + Address1 *string `json:"address1,omitempty" xmlrpc:"address1,omitempty"` + + // The contact's address 2. + Address2 *string `json:"address2,omitempty" xmlrpc:"address2,omitempty"` + + // The contact's alternate phone number. + AlternatePhone *string `json:"alternatePhone,omitempty" xmlrpc:"alternatePhone,omitempty"` + + // no documentation yet + Brand *Brand `json:"brand,omitempty" xmlrpc:"brand,omitempty"` + + // no documentation yet + BrandContactType *Brand_Contact_Type `json:"brandContactType,omitempty" xmlrpc:"brandContactType,omitempty"` + + // The contact's type identifier. + BrandContactTypeId *int `json:"brandContactTypeId,omitempty" xmlrpc:"brandContactTypeId,omitempty"` + + // The contact's city. + City *string `json:"city,omitempty" xmlrpc:"city,omitempty"` + + // The contact's country. + Country *string `json:"country,omitempty" xmlrpc:"country,omitempty"` + + // The contact's email address. + Email *string `json:"email,omitempty" xmlrpc:"email,omitempty"` + + // The contact's fax number. + FaxPhone *string `json:"faxPhone,omitempty" xmlrpc:"faxPhone,omitempty"` + + // The contact's first name. + FirstName *string `json:"firstName,omitempty" xmlrpc:"firstName,omitempty"` + + // The contact's last name. + LastName *string `json:"lastName,omitempty" xmlrpc:"lastName,omitempty"` + + // The contact's phone number. + OfficePhone *string `json:"officePhone,omitempty" xmlrpc:"officePhone,omitempty"` + + // The contact's postal code. + PostalCode *string `json:"postalCode,omitempty" xmlrpc:"postalCode,omitempty"` + + // The contact's state. + State *string `json:"state,omitempty" xmlrpc:"state,omitempty"` +} + +// SoftLayer_Brand_Contact_Type contains the contact type information for the brand contacts such as Corporate or Support contact type +type Brand_Contact_Type struct { + Entity + + // Contact type description. + Description *string `json:"description,omitempty" xmlrpc:"description,omitempty"` + + // Contact type key name. + KeyName *string `json:"keyName,omitempty" xmlrpc:"keyName,omitempty"` + + // Contact type name. + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` +} + +// no documentation yet +type Brand_Payment_Processor struct { + Entity + + // no documentation yet + Brand *Brand `json:"brand,omitempty" xmlrpc:"brand,omitempty"` + + // no documentation yet + PaymentProcessor *Billing_Payment_Processor `json:"paymentProcessor,omitempty" xmlrpc:"paymentProcessor,omitempty"` +} + +// The [[SoftLayer_Brand_Restriction_Location_CustomerCountry]] data type defines the relationship between brands, locations and countries associated with a user's account that are ineligible when ordering products. For example, the India datacenter may not be available on the SoftLayer US brand for customers that live in Great Britain. +type Brand_Restriction_Location_CustomerCountry struct { + Entity + + // This references the brand that has a brand-location-country restriction setup. + Brand *Brand `json:"brand,omitempty" xmlrpc:"brand,omitempty"` + + // The brand associated with customer's account. + BrandId *int `json:"brandId,omitempty" xmlrpc:"brandId,omitempty"` + + // country code associated with customer's account. + CustomerCountryCode *string `json:"customerCountryCode,omitempty" xmlrpc:"customerCountryCode,omitempty"` + + // This references the datacenter that has a brand-location-country restriction setup. For example, if a datacenter is listed with a restriction for Canada, a Canadian customer may not be eligible to order services at that location. + Location *Location `json:"location,omitempty" xmlrpc:"location,omitempty"` + + // The id for datacenter location. + LocationId *int `json:"locationId,omitempty" xmlrpc:"locationId,omitempty"` +} diff --git a/vendor/github.com/softlayer/softlayer-go/datatypes/catalyst.go b/vendor/github.com/softlayer/softlayer-go/datatypes/catalyst.go new file mode 100644 index 000000000..3f8824abe --- /dev/null +++ b/vendor/github.com/softlayer/softlayer-go/datatypes/catalyst.go @@ -0,0 +1,211 @@ +/** + * Copyright 2016 IBM Corp. + * + * 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. + */ + +/** + * AUTOMATICALLY GENERATED CODE - DO NOT MODIFY + */ + +package datatypes + +// no documentation yet +type Catalyst_Affiliate struct { + Entity + + // no documentation yet + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // no documentation yet + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` + + // no documentation yet + SkipCreditCardVerificationFlag *bool `json:"skipCreditCardVerificationFlag,omitempty" xmlrpc:"skipCreditCardVerificationFlag,omitempty"` +} + +// no documentation yet +type Catalyst_Company_Type struct { + Entity + + // no documentation yet + Description *string `json:"description,omitempty" xmlrpc:"description,omitempty"` + + // no documentation yet + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` +} + +// no documentation yet +type Catalyst_Enrollment struct { + Entity + + // no documentation yet + Account *Account `json:"account,omitempty" xmlrpc:"account,omitempty"` + + // no documentation yet + AccountId *int `json:"accountId,omitempty" xmlrpc:"accountId,omitempty"` + + // no documentation yet + Affiliate *Catalyst_Affiliate `json:"affiliate,omitempty" xmlrpc:"affiliate,omitempty"` + + // no documentation yet + AffiliateId *int `json:"affiliateId,omitempty" xmlrpc:"affiliateId,omitempty"` + + // no documentation yet + AgreementCompleteFlag *int `json:"agreementCompleteFlag,omitempty" xmlrpc:"agreementCompleteFlag,omitempty"` + + // no documentation yet + CompanyDescription *string `json:"companyDescription,omitempty" xmlrpc:"companyDescription,omitempty"` + + // no documentation yet + CompanyType *Catalyst_Company_Type `json:"companyType,omitempty" xmlrpc:"companyType,omitempty"` + + // no documentation yet + CompanyTypeId *int `json:"companyTypeId,omitempty" xmlrpc:"companyTypeId,omitempty"` + + // no documentation yet + EnrollmentDate *Time `json:"enrollmentDate,omitempty" xmlrpc:"enrollmentDate,omitempty"` + + // no documentation yet + GraduationDate *Time `json:"graduationDate,omitempty" xmlrpc:"graduationDate,omitempty"` + + // no documentation yet + IsActiveFlag *bool `json:"isActiveFlag,omitempty" xmlrpc:"isActiveFlag,omitempty"` + + // no documentation yet + MonthlyCreditAmount *Float64 `json:"monthlyCreditAmount,omitempty" xmlrpc:"monthlyCreditAmount,omitempty"` + + // no documentation yet + Representative *User_Employee `json:"representative,omitempty" xmlrpc:"representative,omitempty"` + + // no documentation yet + RepresentativeEmployeeId *int `json:"representativeEmployeeId,omitempty" xmlrpc:"representativeEmployeeId,omitempty"` +} + +// Contains user information for Catalyst self-enrollment. +type Catalyst_Enrollment_Request struct { + Entity + + // Applicant's address + Address1 *string `json:"address1,omitempty" xmlrpc:"address1,omitempty"` + + // Additional field for extended address + Address2 *string `json:"address2,omitempty" xmlrpc:"address2,omitempty"` + + // no documentation yet + Affiliate *Catalyst_Affiliate `json:"affiliate,omitempty" xmlrpc:"affiliate,omitempty"` + + // Id of the affiliate who referred applicant's + AffiliateId *int `json:"affiliateId,omitempty" xmlrpc:"affiliateId,omitempty"` + + // no documentation yet + AgreementCompleteFlag *bool `json:"agreementCompleteFlag,omitempty" xmlrpc:"agreementCompleteFlag,omitempty"` + + // Determines whether or not to also apply to the GEP program + ApplyToGepFlag *bool `json:"applyToGepFlag,omitempty" xmlrpc:"applyToGepFlag,omitempty"` + + // no documentation yet + CardAccountNumber *string `json:"cardAccountNumber,omitempty" xmlrpc:"cardAccountNumber,omitempty"` + + // no documentation yet + CardExpirationMonth *string `json:"cardExpirationMonth,omitempty" xmlrpc:"cardExpirationMonth,omitempty"` + + // no documentation yet + CardExpirationYear *string `json:"cardExpirationYear,omitempty" xmlrpc:"cardExpirationYear,omitempty"` + + // no documentation yet + CardType *string `json:"cardType,omitempty" xmlrpc:"cardType,omitempty"` + + // no documentation yet + CardVerificationNumber *string `json:"cardVerificationNumber,omitempty" xmlrpc:"cardVerificationNumber,omitempty"` + + // Applicant's city + City *string `json:"city,omitempty" xmlrpc:"city,omitempty"` + + // Brief description of Startup's product and key differentiators + CompanyDescription *string `json:"companyDescription,omitempty" xmlrpc:"companyDescription,omitempty"` + + // Name of the applicant's company + CompanyName *string `json:"companyName,omitempty" xmlrpc:"companyName,omitempty"` + + // no documentation yet + CompanyType *Catalyst_Company_Type `json:"companyType,omitempty" xmlrpc:"companyType,omitempty"` + + // Id of the company type which best describes applicant's company + CompanyTypeId *int `json:"companyTypeId,omitempty" xmlrpc:"companyTypeId,omitempty"` + + // URL to the Startup's site + CompanyUrl *string `json:"companyUrl,omitempty" xmlrpc:"companyUrl,omitempty"` + + // Applicant's country code + Country *string `json:"country,omitempty" xmlrpc:"country,omitempty"` + + // Index of answer chosen for how many current users question + CurrentUserChoice *int `json:"currentUserChoice,omitempty" xmlrpc:"currentUserChoice,omitempty"` + + // Id of the fingerprint + DeviceFingerprintId *string `json:"deviceFingerprintId,omitempty" xmlrpc:"deviceFingerprintId,omitempty"` + + // Applicant's email address + Email *string `json:"email,omitempty" xmlrpc:"email,omitempty"` + + // Applicant's first name + FirstName *string `json:"firstName,omitempty" xmlrpc:"firstName,omitempty"` + + // Index of answer chosen for how many future users question + FutureUserChoice *int `json:"futureUserChoice,omitempty" xmlrpc:"futureUserChoice,omitempty"` + + // Name of accelerator or incubator startup belongs to, if any + IncubatorName *string `json:"incubatorName,omitempty" xmlrpc:"incubatorName,omitempty"` + + // Name of the investor, if any + InvestorName *string `json:"investorName,omitempty" xmlrpc:"investorName,omitempty"` + + // Applicant's last name + LastName *string `json:"lastName,omitempty" xmlrpc:"lastName,omitempty"` + + // Applicant's primary phone number + OfficePhone *string `json:"officePhone,omitempty" xmlrpc:"officePhone,omitempty"` + + // Whether or not the startup has been operating for more than five years + OverFiveYearsOldFlag *bool `json:"overFiveYearsOldFlag,omitempty" xmlrpc:"overFiveYearsOldFlag,omitempty"` + + // Applicant's postal code + PostalCode *string `json:"postalCode,omitempty" xmlrpc:"postalCode,omitempty"` + + // IBM referral code, if any + ReferralCode *string `json:"referralCode,omitempty" xmlrpc:"referralCode,omitempty"` + + // Whether or not the startup has over one million in annual revenue + RevenueOverOneMillionFlag *bool `json:"revenueOverOneMillionFlag,omitempty" xmlrpc:"revenueOverOneMillionFlag,omitempty"` + + // Determines whether or not to apply to the Catalyst program + SkipCatalystApplicationFlag *bool `json:"skipCatalystApplicationFlag,omitempty" xmlrpc:"skipCatalystApplicationFlag,omitempty"` + + // Applicant's state/region code + State *string `json:"state,omitempty" xmlrpc:"state,omitempty"` + + // Applicant's vatId, if one exists + VatId *string `json:"vatId,omitempty" xmlrpc:"vatId,omitempty"` +} + +// no documentation yet +type Catalyst_Enrollment_Request_Container_AnswerOption struct { + Entity + + // no documentation yet + Answer *string `json:"answer,omitempty" xmlrpc:"answer,omitempty"` + + // no documentation yet + Index *int `json:"index,omitempty" xmlrpc:"index,omitempty"` +} diff --git a/vendor/github.com/softlayer/softlayer-go/datatypes/compliance.go b/vendor/github.com/softlayer/softlayer-go/datatypes/compliance.go new file mode 100644 index 000000000..0efbbf929 --- /dev/null +++ b/vendor/github.com/softlayer/softlayer-go/datatypes/compliance.go @@ -0,0 +1,35 @@ +/** + * Copyright 2016 IBM Corp. + * + * 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. + */ + +/** + * AUTOMATICALLY GENERATED CODE - DO NOT MODIFY + */ + +package datatypes + +// no documentation yet +type Compliance_Report_Type struct { + Entity + + // no documentation yet + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // no documentation yet + KeyName *string `json:"keyName,omitempty" xmlrpc:"keyName,omitempty"` + + // no documentation yet + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` +} diff --git a/vendor/github.com/softlayer/softlayer-go/datatypes/configuration.go b/vendor/github.com/softlayer/softlayer-go/datatypes/configuration.go new file mode 100644 index 000000000..c39b50e34 --- /dev/null +++ b/vendor/github.com/softlayer/softlayer-go/datatypes/configuration.go @@ -0,0 +1,547 @@ +/** + * Copyright 2016 IBM Corp. + * + * 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. + */ + +/** + * AUTOMATICALLY GENERATED CODE - DO NOT MODIFY + */ + +package datatypes + +// no documentation yet +type Configuration_Storage_Filesystem_Type struct { + Entity + + // no documentation yet + KeyName *string `json:"keyName,omitempty" xmlrpc:"keyName,omitempty"` + + // no documentation yet + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` +} + +// Supported hardware raid modes +type Configuration_Storage_Group_Array_Type struct { + Entity + + // no documentation yet + Description *string `json:"description,omitempty" xmlrpc:"description,omitempty"` + + // no documentation yet + DriveMultiplier *int `json:"driveMultiplier,omitempty" xmlrpc:"driveMultiplier,omitempty"` + + // A count of + HardwareComponentModelCount *uint `json:"hardwareComponentModelCount,omitempty" xmlrpc:"hardwareComponentModelCount,omitempty"` + + // no documentation yet + HardwareComponentModels []Hardware_Component_Model `json:"hardwareComponentModels,omitempty" xmlrpc:"hardwareComponentModels,omitempty"` + + // no documentation yet + HotspareAllow *bool `json:"hotspareAllow,omitempty" xmlrpc:"hotspareAllow,omitempty"` + + // no documentation yet + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // no documentation yet + KeyName *string `json:"keyName,omitempty" xmlrpc:"keyName,omitempty"` + + // no documentation yet + MaximumDrives *int `json:"maximumDrives,omitempty" xmlrpc:"maximumDrives,omitempty"` + + // no documentation yet + MinimumDrives *int `json:"minimumDrives,omitempty" xmlrpc:"minimumDrives,omitempty"` + + // no documentation yet + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` +} + +// Single storage group(array) used for a hardware server order. +// +// If a raid configuration is required this object will describe a single array that will be configured on the server. If the server requires more than one array, a storage group will need to be created for each array. +type Configuration_Storage_Group_Order struct { + Entity + + // no documentation yet + ArrayNumber *int `json:"arrayNumber,omitempty" xmlrpc:"arrayNumber,omitempty"` + + // no documentation yet + ArraySize *Float64 `json:"arraySize,omitempty" xmlrpc:"arraySize,omitempty"` + + // Raid mode for the storage group. + ArrayType *Configuration_Storage_Group_Array_Type `json:"arrayType,omitempty" xmlrpc:"arrayType,omitempty"` + + // no documentation yet + ArrayTypeId *int `json:"arrayTypeId,omitempty" xmlrpc:"arrayTypeId,omitempty"` + + // The order item that relates to this storage group. + BillingOrderItem *Billing_Order_Item `json:"billingOrderItem,omitempty" xmlrpc:"billingOrderItem,omitempty"` + + // no documentation yet + BillingOrderItemId *int `json:"billingOrderItemId,omitempty" xmlrpc:"billingOrderItemId,omitempty"` + + // no documentation yet + Controller *int `json:"controller,omitempty" xmlrpc:"controller,omitempty"` + + // no documentation yet + HardDrives []int `json:"hardDrives,omitempty" xmlrpc:"hardDrives,omitempty"` + + // no documentation yet + HotSpareDrives []int `json:"hotSpareDrives,omitempty" xmlrpc:"hotSpareDrives,omitempty"` + + // no documentation yet + LvmFlag *bool `json:"lvmFlag,omitempty" xmlrpc:"lvmFlag,omitempty"` + + // no documentation yet + PartitionData *string `json:"partitionData,omitempty" xmlrpc:"partitionData,omitempty"` +} + +// Single storage group(array) used in a storage group template. +// +// If a server configuration requires a raid configuration this object will describe a single array to be configured. +type Configuration_Storage_Group_Template_Group struct { + Entity + + // Flag to use all available space. + Grow *bool `json:"grow,omitempty" xmlrpc:"grow,omitempty"` + + // Comma delimited integers of drive indexes for the array. This can also be the string 'all' to specify all drives in the server + HardDrivesString *string `json:"hardDrivesString,omitempty" xmlrpc:"hardDrivesString,omitempty"` + + // The order of the arrays in the template. + OrderIndex *int `json:"orderIndex,omitempty" xmlrpc:"orderIndex,omitempty"` + + // Size of array. Must be within limitations of the smallest drive and raid mode + Size *Float64 `json:"size,omitempty" xmlrpc:"size,omitempty"` + + // no documentation yet + Type *Configuration_Storage_Group_Array_Type `json:"type,omitempty" xmlrpc:"type,omitempty"` +} + +// The SoftLayer_Configuration_Template data type contains general information of an arbitrary resource. +type Configuration_Template struct { + Entity + + // no documentation yet + Account *Account `json:"account,omitempty" xmlrpc:"account,omitempty"` + + // Internal identifier of a SoftLayer account that this configuration template belongs to + AccountId *int `json:"accountId,omitempty" xmlrpc:"accountId,omitempty"` + + // A count of + ConfigurationSectionCount *uint `json:"configurationSectionCount,omitempty" xmlrpc:"configurationSectionCount,omitempty"` + + // no documentation yet + ConfigurationSections []Configuration_Template_Section `json:"configurationSections,omitempty" xmlrpc:"configurationSections,omitempty"` + + // no documentation yet + ConfigurationTemplateReference []Monitoring_Agent_Configuration_Template_Group_Reference `json:"configurationTemplateReference,omitempty" xmlrpc:"configurationTemplateReference,omitempty"` + + // A count of + ConfigurationTemplateReferenceCount *uint `json:"configurationTemplateReferenceCount,omitempty" xmlrpc:"configurationTemplateReferenceCount,omitempty"` + + // Created date + CreateDate *Time `json:"createDate,omitempty" xmlrpc:"createDate,omitempty"` + + // A count of + DefaultValueCount *uint `json:"defaultValueCount,omitempty" xmlrpc:"defaultValueCount,omitempty"` + + // no documentation yet + DefaultValues []Configuration_Template_Section_Definition_Value `json:"defaultValues,omitempty" xmlrpc:"defaultValues,omitempty"` + + // A count of + DefinitionCount *uint `json:"definitionCount,omitempty" xmlrpc:"definitionCount,omitempty"` + + // no documentation yet + Definitions []Configuration_Template_Section_Definition `json:"definitions,omitempty" xmlrpc:"definitions,omitempty"` + + // Configuration template description + Description *string `json:"description,omitempty" xmlrpc:"description,omitempty"` + + // Internal identifier of a configuration template. + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // no documentation yet + Item *Product_Item `json:"item,omitempty" xmlrpc:"item,omitempty"` + + // Internal identifier of a product item that this configuration template is associated with + ItemId *int `json:"itemId,omitempty" xmlrpc:"itemId,omitempty"` + + // no documentation yet + LinkedSectionReferences *Configuration_Template_Section_Reference `json:"linkedSectionReferences,omitempty" xmlrpc:"linkedSectionReferences,omitempty"` + + // Last modified date + ModifyDate *Time `json:"modifyDate,omitempty" xmlrpc:"modifyDate,omitempty"` + + // Configuration template name + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` + + // no documentation yet + Parent *Configuration_Template `json:"parent,omitempty" xmlrpc:"parent,omitempty"` + + // Internal identifier of the parent configuration template + ParentId *int `json:"parentId,omitempty" xmlrpc:"parentId,omitempty"` + + // no documentation yet + User *User_Customer `json:"user,omitempty" xmlrpc:"user,omitempty"` + + // Internal identifier of a user that last modified this configuration template + UserRecordId *int `json:"userRecordId,omitempty" xmlrpc:"userRecordId,omitempty"` +} + +// Configuration template attribute class contains supplementary information for a configuration template. +type Configuration_Template_Attribute struct { + Entity + + // no documentation yet + ConfigurationTemplate *Configuration_Template `json:"configurationTemplate,omitempty" xmlrpc:"configurationTemplate,omitempty"` + + // Value of a configuration template attribute + Value *string `json:"value,omitempty" xmlrpc:"value,omitempty"` +} + +// The SoftLayer_Configuration_Template_Section data type contains information of a configuration section. +// +// Configuration can contain sub-sections. +type Configuration_Template_Section struct { + Entity + + // Created date + CreateDate *Time `json:"createDate,omitempty" xmlrpc:"createDate,omitempty"` + + // A count of + DefinitionCount *uint `json:"definitionCount,omitempty" xmlrpc:"definitionCount,omitempty"` + + // no documentation yet + Definitions []Configuration_Template_Section_Definition `json:"definitions,omitempty" xmlrpc:"definitions,omitempty"` + + // Configuration section description + Description *string `json:"description,omitempty" xmlrpc:"description,omitempty"` + + // no documentation yet + DisallowedDeletionFlag *bool `json:"disallowedDeletionFlag,omitempty" xmlrpc:"disallowedDeletionFlag,omitempty"` + + // Internal identifier of a configuration section. + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // no documentation yet + LinkedTemplate *Configuration_Template `json:"linkedTemplate,omitempty" xmlrpc:"linkedTemplate,omitempty"` + + // Internal identifier of a sub configuration template that this section points to. Use this property if you wish to create a reference to a sub configuration template when creating a linked section. + LinkedTemplateId *string `json:"linkedTemplateId,omitempty" xmlrpc:"linkedTemplateId,omitempty"` + + // no documentation yet + LinkedTemplateReference *Configuration_Template_Section_Reference `json:"linkedTemplateReference,omitempty" xmlrpc:"linkedTemplateReference,omitempty"` + + // Last modified date + ModifyDate *Time `json:"modifyDate,omitempty" xmlrpc:"modifyDate,omitempty"` + + // Configuration section name + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` + + // Internal identifier of the parent configuration section + ParentId *int `json:"parentId,omitempty" xmlrpc:"parentId,omitempty"` + + // A count of + ProfileCount *uint `json:"profileCount,omitempty" xmlrpc:"profileCount,omitempty"` + + // no documentation yet + Profiles []Configuration_Template_Section_Profile `json:"profiles,omitempty" xmlrpc:"profiles,omitempty"` + + // no documentation yet + SectionType *Configuration_Template_Section_Type `json:"sectionType,omitempty" xmlrpc:"sectionType,omitempty"` + + // no documentation yet + SectionTypeName *string `json:"sectionTypeName,omitempty" xmlrpc:"sectionTypeName,omitempty"` + + // Sort order + Sort *int `json:"sort,omitempty" xmlrpc:"sort,omitempty"` + + // A count of + SubSectionCount *uint `json:"subSectionCount,omitempty" xmlrpc:"subSectionCount,omitempty"` + + // no documentation yet + SubSections []Configuration_Template_Section `json:"subSections,omitempty" xmlrpc:"subSections,omitempty"` + + // no documentation yet + Template *Configuration_Template `json:"template,omitempty" xmlrpc:"template,omitempty"` + + // Internal identifier of a configuration template that this section belongs to + TemplateId *string `json:"templateId,omitempty" xmlrpc:"templateId,omitempty"` + + // Internal identifier of the configuration section type + TypeId *int `json:"typeId,omitempty" xmlrpc:"typeId,omitempty"` +} + +// Configuration section attribute class contains supplementary information for a configuration section. +type Configuration_Template_Section_Attribute struct { + Entity + + // no documentation yet + ConfigurationSection *Configuration_Template_Section `json:"configurationSection,omitempty" xmlrpc:"configurationSection,omitempty"` + + // Value of a configuration section attribute + Value *string `json:"value,omitempty" xmlrpc:"value,omitempty"` +} + +// Configuration definition gives you details of the value that you're setting. +// +// Some monitoring agents requires values unique to your system. If value type is defined as "Resource Specific Values", you will have to make an additional API call to retrieve your system specific values. +// +// See [[SoftLayer_Monitoring_Agent::getAvailableConfigurationValues|Monitoring Agent]] service to retrieve your system specific values. +type Configuration_Template_Section_Definition struct { + Entity + + // A count of + AttributeCount *uint `json:"attributeCount,omitempty" xmlrpc:"attributeCount,omitempty"` + + // no documentation yet + Attributes []Configuration_Template_Section_Definition_Attribute `json:"attributes,omitempty" xmlrpc:"attributes,omitempty"` + + // Created date + CreateDate *Time `json:"createDate,omitempty" xmlrpc:"createDate,omitempty"` + + // no documentation yet + DefaultValue *Configuration_Template_Section_Definition_Value `json:"defaultValue,omitempty" xmlrpc:"defaultValue,omitempty"` + + // Description of a configuration definition. + Description *string `json:"description,omitempty" xmlrpc:"description,omitempty"` + + // Enumeration values separated by comma. + EnumerationValues *string `json:"enumerationValues,omitempty" xmlrpc:"enumerationValues,omitempty"` + + // no documentation yet + Group *Configuration_Template_Section_Definition_Group `json:"group,omitempty" xmlrpc:"group,omitempty"` + + // Definition group id. + GroupId *string `json:"groupId,omitempty" xmlrpc:"groupId,omitempty"` + + // Internal identifier of a configuration definition. + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // Maximum value of a configuration definition. + MaximumValue *string `json:"maximumValue,omitempty" xmlrpc:"maximumValue,omitempty"` + + // Minimum value of a configuration definition. + MinimumValue *string `json:"minimumValue,omitempty" xmlrpc:"minimumValue,omitempty"` + + // Last modify date + ModifyDate *Time `json:"modifyDate,omitempty" xmlrpc:"modifyDate,omitempty"` + + // no documentation yet + MonitoringDataFlag *bool `json:"monitoringDataFlag,omitempty" xmlrpc:"monitoringDataFlag,omitempty"` + + // Configuration definition name. + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` + + // Definition path. + Path *string `json:"path,omitempty" xmlrpc:"path,omitempty"` + + // Indicates if a configuration value is required for this definition. + RequireValueFlag *int `json:"requireValueFlag,omitempty" xmlrpc:"requireValueFlag,omitempty"` + + // no documentation yet + Section *Configuration_Template_Section `json:"section,omitempty" xmlrpc:"section,omitempty"` + + // Internal identifier of a configuration section. + SectionId *int `json:"sectionId,omitempty" xmlrpc:"sectionId,omitempty"` + + // Shortened configuration definition name. + ShortName *string `json:"shortName,omitempty" xmlrpc:"shortName,omitempty"` + + // Sort order + Sort *int `json:"sort,omitempty" xmlrpc:"sort,omitempty"` + + // Internal identifier of a configuration definition type. + TypeId *int `json:"typeId,omitempty" xmlrpc:"typeId,omitempty"` + + // no documentation yet + ValueType *Configuration_Template_Section_Definition_Type `json:"valueType,omitempty" xmlrpc:"valueType,omitempty"` +} + +// Configuration definition attribute class contains supplementary information for a configuration definition. +type Configuration_Template_Section_Definition_Attribute struct { + Entity + + // no documentation yet + AttributeType *Configuration_Template_Section_Definition_Attribute_Type `json:"attributeType,omitempty" xmlrpc:"attributeType,omitempty"` + + // no documentation yet + ConfigurationDefinition *Configuration_Template_Section_Definition `json:"configurationDefinition,omitempty" xmlrpc:"configurationDefinition,omitempty"` + + // Value of a configuration definition attribute + Value *string `json:"value,omitempty" xmlrpc:"value,omitempty"` +} + +// SoftLayer_Configuration_Template_Attribute_Type models the type of attribute that can be assigned to a configuration definition. +type Configuration_Template_Section_Definition_Attribute_Type struct { + Entity + + // Description of a definition attribute type + Description *string `json:"description,omitempty" xmlrpc:"description,omitempty"` + + // Name of a definition attribute type + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` +} + +// Configuration definition group gives you details of the definition and allows extra functionality. +// +// +type Configuration_Template_Section_Definition_Group struct { + Entity + + // Created date + CreateDate *Time `json:"createDate,omitempty" xmlrpc:"createDate,omitempty"` + + // Internal Description of a definition group. + Description *string `json:"description,omitempty" xmlrpc:"description,omitempty"` + + // Internal identifier of a definition group. + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // Internal Definition group name. + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` + + // no documentation yet + Parent *Configuration_Template_Section_Definition_Group `json:"parent,omitempty" xmlrpc:"parent,omitempty"` + + // Sort order + SortOrder *int `json:"sortOrder,omitempty" xmlrpc:"sortOrder,omitempty"` +} + +// SoftLayer_Configuration_Template_Section_Definition_Type further defines the value of a configuration definition. +type Configuration_Template_Section_Definition_Type struct { + Entity + + // Description of a configuration value type + Description *string `json:"description,omitempty" xmlrpc:"description,omitempty"` + + // Internal identifier of a configuration value type + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // Name of a configuration value type + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` +} + +// SoftLayer_Configuration_Section_Value is used to set the value for a configuration definition +type Configuration_Template_Section_Definition_Value struct { + Entity + + // Created date + CreateDate *Time `json:"createDate,omitempty" xmlrpc:"createDate,omitempty"` + + // no documentation yet + Definition *Configuration_Template_Section_Definition `json:"definition,omitempty" xmlrpc:"definition,omitempty"` + + // Internal identifier of a configuration definition that this configuration value if defined by + DefinitionId *int `json:"definitionId,omitempty" xmlrpc:"definitionId,omitempty"` + + // Internal Last modified date + ModifyDate *Time `json:"modifyDate,omitempty" xmlrpc:"modifyDate,omitempty"` + + // no documentation yet + Template *Configuration_Template `json:"template,omitempty" xmlrpc:"template,omitempty"` + + // Internal identifier of a configuration template that this configuration value belongs to + TemplateId *int `json:"templateId,omitempty" xmlrpc:"templateId,omitempty"` + + // Internal Configuration value + Value *string `json:"value,omitempty" xmlrpc:"value,omitempty"` +} + +// Some configuration templates let you create a unique configuration profiles. +// +// For example, you can create multiple configuration profiles to monitor multiple hard drives with "CPU/Memory/Disk Monitoring Agent". SoftLayer_Configuration_Template_Section_Profile help you keep track of custom configuration profiles. +type Configuration_Template_Section_Profile struct { + Entity + + // Internal identifier of a monitoring agent this profile belongs to. + AgentId *int `json:"agentId,omitempty" xmlrpc:"agentId,omitempty"` + + // no documentation yet + ConfigurationSection *Configuration_Template_Section `json:"configurationSection,omitempty" xmlrpc:"configurationSection,omitempty"` + + // Created date + CreateDate *Time `json:"createDate,omitempty" xmlrpc:"createDate,omitempty"` + + // Internal identifier of a configuration profile. + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // no documentation yet + MonitoringAgent *Monitoring_Agent `json:"monitoringAgent,omitempty" xmlrpc:"monitoringAgent,omitempty"` + + // Name of a configuration profile + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` + + // Internal identifier of a configuration section that this profile belongs to. + SectionId *int `json:"sectionId,omitempty" xmlrpc:"sectionId,omitempty"` +} + +// The SoftLayer_Configuration_Template_Section_Reference data type contains information of a configuration section and its associated configuration template. +type Configuration_Template_Section_Reference struct { + Entity + + // Created date + CreateDate *Time `json:"createDate,omitempty" xmlrpc:"createDate,omitempty"` + + // Internal identifier of a configuration section reference. + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // Modified date + ModifyDate *Time `json:"modifyDate,omitempty" xmlrpc:"modifyDate,omitempty"` + + // no documentation yet + Section *Configuration_Template_Section `json:"section,omitempty" xmlrpc:"section,omitempty"` + + // Internal identifier of a configuration section. + SectionId *int `json:"sectionId,omitempty" xmlrpc:"sectionId,omitempty"` + + // no documentation yet + Template *Configuration_Template `json:"template,omitempty" xmlrpc:"template,omitempty"` + + // Internal identifier of a configuration template. + TemplateId *int `json:"templateId,omitempty" xmlrpc:"templateId,omitempty"` +} + +// The SoftLayer_Configuration_Template_Section_Type data type contains information of a configuration section type. +// +// Configuration can contain sub-sections. +type Configuration_Template_Section_Type struct { + Entity + + // Configuration section type description + Description *string `json:"description,omitempty" xmlrpc:"description,omitempty"` + + // Internal identifier of a configuration section type + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // Configuration section type name + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` +} + +// The SoftLayer_Configuration_Template_Type data type contains configuration template type information. +type Configuration_Template_Type struct { + Entity + + // Created date. This is deprecated now. + CreateDate *Time `json:"createDate,omitempty" xmlrpc:"createDate,omitempty"` + + // Description of a configuration template + Description *string `json:"description,omitempty" xmlrpc:"description,omitempty"` + + // Internal identifier of a configuration template type + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // Name of a configuration template type + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` +} diff --git a/vendor/github.com/softlayer/softlayer-go/datatypes/container.go b/vendor/github.com/softlayer/softlayer-go/datatypes/container.go new file mode 100644 index 000000000..d96feed1a --- /dev/null +++ b/vendor/github.com/softlayer/softlayer-go/datatypes/container.go @@ -0,0 +1,4728 @@ +/** + * Copyright 2016 IBM Corp. + * + * 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. + */ + +/** + * AUTOMATICALLY GENERATED CODE - DO NOT MODIFY + */ + +package datatypes + +// SoftLayer_Container_Account_Discount_Program models a single outbound object for a graph of given data sets. +type Container_Account_Discount_Program struct { + Entity + + // The credit allowance that has already been applied during the current billing cycle. If the lifetime limit has been or soon will be reached, this amount may included credit applied in previous billing cycles. + AppliedCredit *Float64 `json:"appliedCredit,omitempty" xmlrpc:"appliedCredit,omitempty"` + + // Flag to signify whether the account is a participant in the discount program. + IsParticipant *bool `json:"isParticipant,omitempty" xmlrpc:"isParticipant,omitempty"` + + // Credit allowance applied over the course of the entire program enrollment. For enrollments without a lifetime restriction, this property will not be populated as credit will be tracked on a purely monthly basis. + LifetimeAppliedCredit *Float64 `json:"lifetimeAppliedCredit,omitempty" xmlrpc:"lifetimeAppliedCredit,omitempty"` + + // Credit allowance available over the course of the entire program enrollment. If null, enrollment credit is applied on a strictly monthly basis and there is no lifetime maximum. Enrollments with non-null lifetime credit will receive the lesser of the remaining monthly credit or the remaining lifetime credit. + LifetimeCredit *Float64 `json:"lifetimeCredit,omitempty" xmlrpc:"lifetimeCredit,omitempty"` + + // Remaining credit allowance available over the remaining duration of the program enrollment. If null, enrollment credit is applied on a strictly monthly basis and there is no lifetime maximum. Enrollments with non-null remaining lifetime credit will receive the lesser of the remaining monthly credit or the remaining lifetime credit. + LifetimeRemainingCredit *Float64 `json:"lifetimeRemainingCredit,omitempty" xmlrpc:"lifetimeRemainingCredit,omitempty"` + + // Maximum number of orders the enrolled account is allowed to have open at one time. If null, then the Flexible Credit Program does not impose an order limit. + MaximumActiveOrders *Float64 `json:"maximumActiveOrders,omitempty" xmlrpc:"maximumActiveOrders,omitempty"` + + // The monthly credit allowance that is available at the beginning of the billing cycle. + MonthlyCredit *Float64 `json:"monthlyCredit,omitempty" xmlrpc:"monthlyCredit,omitempty"` + + // DEPRECATED: Taxes are calculated in real time and discount amounts are shown pre-tax in all cases. Tax values in the SoftLayer_Container_Account_Discount_Program container are now populated with the related pre-tax values. + PostTaxRemainingCredit *Float64 `json:"postTaxRemainingCredit,omitempty" xmlrpc:"postTaxRemainingCredit,omitempty"` + + // The date at which the program expires in MM/DD/YYYY format. + ProgramEndDate *Time `json:"programEndDate,omitempty" xmlrpc:"programEndDate,omitempty"` + + // Name of the Flexible Credit Program the account is enrolled in. + ProgramName *string `json:"programName,omitempty" xmlrpc:"programName,omitempty"` + + // The credit allowance that is available during the current billing cycle. If the lifetime limit has been or soon will be reached, this amount may be reduced by credit applied in previous billing cycles. + RemainingCredit *Float64 `json:"remainingCredit,omitempty" xmlrpc:"remainingCredit,omitempty"` + + // DEPRECATED: Taxes are calculated in real time and discount amounts are shown pre-tax in all cases. Tax values in the SoftLayer_Container_Account_Discount_Program container are now populated with the related pre-tax values. + RemainingCreditTax *Float64 `json:"remainingCreditTax,omitempty" xmlrpc:"remainingCreditTax,omitempty"` +} + +// SoftLayer_Container_Account_Graph_Outputs <<< EOT +type Container_Account_Graph_Outputs struct { + Entity + + // The count of closed tickets included in this graph. + ClosedTickets *string `json:"closedTickets,omitempty" xmlrpc:"closedTickets,omitempty"` + + // The count of completed backups included in this graph. + CompletedBackupCount *string `json:"completedBackupCount,omitempty" xmlrpc:"completedBackupCount,omitempty"` + + // The count of conflicted backups included in this graph. + ConflictBackupCount *string `json:"conflictBackupCount,omitempty" xmlrpc:"conflictBackupCount,omitempty"` + + // The maximum date included in this graph. + EndDate *Time `json:"endDate,omitempty" xmlrpc:"endDate,omitempty"` + + // The count of failed backups included in this graph. + FailedBackupCount *string `json:"failedBackupCount,omitempty" xmlrpc:"failedBackupCount,omitempty"` + + // Error message encountered during graphing + GraphError *string `json:"graphError,omitempty" xmlrpc:"graphError,omitempty"` + + // The raw PNG binary data to be displayed once the graph is drawn. + GraphImage *[]byte `json:"graphImage,omitempty" xmlrpc:"graphImage,omitempty"` + + // The average of hardware uptime included in this graph. + HardwareUptime *string `json:"hardwareUptime,omitempty" xmlrpc:"hardwareUptime,omitempty"` + + // The inbound bandwidth usage shown in this graph. + InboundUsage *string `json:"inboundUsage,omitempty" xmlrpc:"inboundUsage,omitempty"` + + // The count of open tickets included in this graph. + OpenTickets *string `json:"openTickets,omitempty" xmlrpc:"openTickets,omitempty"` + + // The outbound bandwidth usage shown in this graph. + OutboundUsage *string `json:"outboundUsage,omitempty" xmlrpc:"outboundUsage,omitempty"` + + // The count of tickets included in this graph. + PendingCustomerResponseTicketCount *string `json:"pendingCustomerResponseTicketCount,omitempty" xmlrpc:"pendingCustomerResponseTicketCount,omitempty"` + + // The minimum date included in this graph. + StartDate *Time `json:"startDate,omitempty" xmlrpc:"startDate,omitempty"` + + // The average of url uptime included in this graph. + UrlUptime *string `json:"urlUptime,omitempty" xmlrpc:"urlUptime,omitempty"` + + // The count of tickets included in this graph. + WaitingEmployeeResponseTicketCount *string `json:"waitingEmployeeResponseTicketCount,omitempty" xmlrpc:"waitingEmployeeResponseTicketCount,omitempty"` +} + +// Historical Summary Container for account resource details +type Container_Account_Historical_Summary struct { + Entity + + // Array of server uptime detail containers + Details []Container_Account_Historical_Summary_Detail `json:"details,omitempty" xmlrpc:"details,omitempty"` + + // The maximum date included in the summary. + EndDate *Time `json:"endDate,omitempty" xmlrpc:"endDate,omitempty"` + + // The minimum date included in the summary. + StartDate *Time `json:"startDate,omitempty" xmlrpc:"startDate,omitempty"` +} + +// Historical Summary Details Container for a resource's data +type Container_Account_Historical_Summary_Detail struct { + Entity + + // The maximum date included in the detail. + EndDate *Time `json:"endDate,omitempty" xmlrpc:"endDate,omitempty"` + + // The minimum date included in the detail. + StartDate *Time `json:"startDate,omitempty" xmlrpc:"startDate,omitempty"` +} + +// Historical Summary Details Container for a host resource uptime +type Container_Account_Historical_Summary_Detail_Uptime struct { + Container_Account_Historical_Summary_Detail + + // The hardware for uptime details. + CloudComputingInstance *Virtual_Guest `json:"cloudComputingInstance,omitempty" xmlrpc:"cloudComputingInstance,omitempty"` + + // The configuration value for the detail's resource. + ConfigurationValue *Monitoring_Agent_Configuration_Value `json:"configurationValue,omitempty" xmlrpc:"configurationValue,omitempty"` + + // The data associated with a host uptime details. + Data []Metric_Tracking_Object_Data `json:"data,omitempty" xmlrpc:"data,omitempty"` + + // The hardware for uptime details. + Hardware *Hardware `json:"hardware,omitempty" xmlrpc:"hardware,omitempty"` +} + +// Historical Summary Container for account host's resource uptime details +type Container_Account_Historical_Summary_Uptime struct { + Container_Account_Historical_Summary +} + +// no documentation yet +type Container_Account_Payment_Method_CreditCard struct { + Entity + + // no documentation yet + Address1 *string `json:"address1,omitempty" xmlrpc:"address1,omitempty"` + + // no documentation yet + Address2 *string `json:"address2,omitempty" xmlrpc:"address2,omitempty"` + + // no documentation yet + City *string `json:"city,omitempty" xmlrpc:"city,omitempty"` + + // no documentation yet + Country *string `json:"country,omitempty" xmlrpc:"country,omitempty"` + + // no documentation yet + CurrencyShortName *string `json:"currencyShortName,omitempty" xmlrpc:"currencyShortName,omitempty"` + + // no documentation yet + CybersourceAssignedCardType *string `json:"cybersourceAssignedCardType,omitempty" xmlrpc:"cybersourceAssignedCardType,omitempty"` + + // no documentation yet + ExpireMonth *string `json:"expireMonth,omitempty" xmlrpc:"expireMonth,omitempty"` + + // no documentation yet + ExpireYear *string `json:"expireYear,omitempty" xmlrpc:"expireYear,omitempty"` + + // no documentation yet + FirstName *string `json:"firstName,omitempty" xmlrpc:"firstName,omitempty"` + + // no documentation yet + LastFourDigits *string `json:"lastFourDigits,omitempty" xmlrpc:"lastFourDigits,omitempty"` + + // no documentation yet + LastName *string `json:"lastName,omitempty" xmlrpc:"lastName,omitempty"` + + // no documentation yet + Nickname *string `json:"nickname,omitempty" xmlrpc:"nickname,omitempty"` + + // no documentation yet + PaymentMethodRoleName *string `json:"paymentMethodRoleName,omitempty" xmlrpc:"paymentMethodRoleName,omitempty"` + + // no documentation yet + PaymentTypeId *string `json:"paymentTypeId,omitempty" xmlrpc:"paymentTypeId,omitempty"` + + // no documentation yet + PaymentTypeName *string `json:"paymentTypeName,omitempty" xmlrpc:"paymentTypeName,omitempty"` + + // no documentation yet + PostalCode *string `json:"postalCode,omitempty" xmlrpc:"postalCode,omitempty"` + + // no documentation yet + State *string `json:"state,omitempty" xmlrpc:"state,omitempty"` +} + +// The SoftLayer_Container_Authentication_Request_Common data type contains common information for requests to the getPortalLogin API. This is an abstract class that serves as a base that more specialized classes will derive from. For example, a request class specific to SoftLayer Native IMS Login (username and password). +type Container_Authentication_Request_Common struct { + Container_Authentication_Request_Contract + + // The answer to your security question. + SecurityQuestionAnswer *string `json:"securityQuestionAnswer,omitempty" xmlrpc:"securityQuestionAnswer,omitempty"` + + // A security question you wish to answer when authenticating to the SoftLayer customer portal. This parameter isn't required if no security questions are set on your portal account or if your account is configured to not require answering a security account upon login. + SecurityQuestionId *int `json:"securityQuestionId,omitempty" xmlrpc:"securityQuestionId,omitempty"` +} + +// The SoftLayer_Container_Authentication_Request_Contract provides a common set of operations for implementing classes. +type Container_Authentication_Request_Contract struct { + Entity +} + +// The SoftLayer_Container_Authentication_Request_Native data type contains information for requests to the getPortalLogin API. This class is specific to the SoftLayer Native login (username/password). The request information will be verified to ensure it is valid, and then there will be an attempt to obtain a portal login token in authenticating the user with the provided information. +type Container_Authentication_Request_Native struct { + Container_Authentication_Request_Common + + // Your SoftLayer customer portal user's portal password. + Password *string `json:"password,omitempty" xmlrpc:"password,omitempty"` + + // The username you wish to authenticate to the SoftLayer customer portal with. + Username *string `json:"username,omitempty" xmlrpc:"username,omitempty"` +} + +// The SoftLayer_Container_Authentication_Request_Native_External data type contains information for requests to the getPortalLogin API. This class serves as a base class for more specialized external authentication classes to the SoftLayer Native login (username/password). +type Container_Authentication_Request_Native_External struct { + Container_Authentication_Request_Native +} + +// The SoftLayer_Container_Authentication_Request_Native_External_Totp data type contains information for requests to the getPortalLogin API. This class provides information to allow the user to submit a request to the native SoftLayer (username/password) login service for a portal login token, as well as submitting a request to the TOTP 2 factor authentication service. +type Container_Authentication_Request_Native_External_Totp struct { + Container_Authentication_Request_Native_External + + // no documentation yet + SecondSecurityCode *string `json:"secondSecurityCode,omitempty" xmlrpc:"secondSecurityCode,omitempty"` + + // no documentation yet + SecurityCode *string `json:"securityCode,omitempty" xmlrpc:"securityCode,omitempty"` + + // no documentation yet + Vendor *string `json:"vendor,omitempty" xmlrpc:"vendor,omitempty"` +} + +// The SoftLayer_Container_Authentication_Request_Native_External_Verisign data type contains information for requests to the getPortalLogin API. This class provides information to allow the user to submit a request to the native SoftLayer (username/password) login service for a portal login token, as well as submitting a request to the Verisign 2 factor authentication service. +type Container_Authentication_Request_Native_External_Verisign struct { + Container_Authentication_Request_Native_External + + // no documentation yet + SecondSecurityCode *string `json:"secondSecurityCode,omitempty" xmlrpc:"secondSecurityCode,omitempty"` + + // no documentation yet + SecurityCode *string `json:"securityCode,omitempty" xmlrpc:"securityCode,omitempty"` + + // no documentation yet + Vendor *string `json:"vendor,omitempty" xmlrpc:"vendor,omitempty"` +} + +// The SoftLayer_Container_Authentication_Request_OpenIdConnect data type contains information for requests to the getPortalLogin API. This class is specific to the SoftLayer Cloud Token login. The request information will be verified to ensure it is valid, and then there will be an attempt to obtain a portal login token in authenticating the user with the provided information. +type Container_Authentication_Request_OpenIdConnect struct { + Container_Authentication_Request_Common + + // no documentation yet + OpenIdConnectAccessToken *string `json:"openIdConnectAccessToken,omitempty" xmlrpc:"openIdConnectAccessToken,omitempty"` + + // no documentation yet + OpenIdConnectAccountId *int `json:"openIdConnectAccountId,omitempty" xmlrpc:"openIdConnectAccountId,omitempty"` + + // no documentation yet + OpenIdConnectProvider *string `json:"openIdConnectProvider,omitempty" xmlrpc:"openIdConnectProvider,omitempty"` +} + +// The SoftLayer_Container_Authentication_Request_OpenIdConnect_External data type contains information for requests to the getPortalLogin API. This class serves as a base class for more specialized external authentication classes to the SoftLayer OpenIdConnect login service. +type Container_Authentication_Request_OpenIdConnect_External struct { + Container_Authentication_Request_OpenIdConnect +} + +// The SoftLayer_Container_Authentication_Request_OpenIdConnect_External_Totp data type contains information for requests to the getPortalLogin API. This class provides information to allow the user to submit a request to the SoftLayer OpenIdConnect (token) login service for a portal login token, as well as submitting a request to the TOTP 2 factor authentication service. +type Container_Authentication_Request_OpenIdConnect_External_Totp struct { + Container_Authentication_Request_OpenIdConnect_External + + // no documentation yet + SecondSecurityCode *string `json:"secondSecurityCode,omitempty" xmlrpc:"secondSecurityCode,omitempty"` + + // no documentation yet + SecurityCode *string `json:"securityCode,omitempty" xmlrpc:"securityCode,omitempty"` + + // no documentation yet + Vendor *string `json:"vendor,omitempty" xmlrpc:"vendor,omitempty"` +} + +// The SoftLayer_Container_Authentication_Request_OpenIdConnect_External_Verisign data type contains information for requests to the getPortalLogin API. This class provides information to allow the user to submit a request to the SoftLayer OpenIdConnect (token) login service for a portal login token, as well as submitting a request to the Verisign 2 factor authentication service. +type Container_Authentication_Request_OpenIdConnect_External_Verisign struct { + Container_Authentication_Request_OpenIdConnect_External + + // no documentation yet + SecondSecurityCode *string `json:"secondSecurityCode,omitempty" xmlrpc:"secondSecurityCode,omitempty"` + + // no documentation yet + SecurityCode *int `json:"securityCode,omitempty" xmlrpc:"securityCode,omitempty"` + + // no documentation yet + Vendor *string `json:"vendor,omitempty" xmlrpc:"vendor,omitempty"` +} + +// The SoftLayer_Container_Authentication_Response_2FactorAuthenticationNeeded data type contains information for specific responses from the getPortalLogin API. This class is indicative of a request that is missing the appropriate 2FA information. +type Container_Authentication_Response_2FactorAuthenticationNeeded struct { + Container_Authentication_Response_Common + + // no documentation yet + AdditionalData *Container_Authentication_Response_Common `json:"additionalData,omitempty" xmlrpc:"additionalData,omitempty"` + + // no documentation yet + StatusKeyName *string `json:"statusKeyName,omitempty" xmlrpc:"statusKeyName,omitempty"` +} + +// The SoftLayer_Container_Authentication_Response_Account data type contains account information for responses from the getPortalLogin API. +type Container_Authentication_Response_Account struct { + Entity + + // no documentation yet + AccountCompanyName *string `json:"accountCompanyName,omitempty" xmlrpc:"accountCompanyName,omitempty"` + + // no documentation yet + AccountCountry *string `json:"accountCountry,omitempty" xmlrpc:"accountCountry,omitempty"` + + // no documentation yet + AccountId *int `json:"accountId,omitempty" xmlrpc:"accountId,omitempty"` + + // no documentation yet + AccountStatusName *string `json:"accountStatusName,omitempty" xmlrpc:"accountStatusName,omitempty"` + + // no documentation yet + BluemixAccountId *string `json:"bluemixAccountId,omitempty" xmlrpc:"bluemixAccountId,omitempty"` + + // no documentation yet + CreateDate *Time `json:"createDate,omitempty" xmlrpc:"createDate,omitempty"` + + // no documentation yet + DefaultAccount *bool `json:"defaultAccount,omitempty" xmlrpc:"defaultAccount,omitempty"` + + // no documentation yet + IsMasterUserFlag *bool `json:"isMasterUserFlag,omitempty" xmlrpc:"isMasterUserFlag,omitempty"` + + // no documentation yet + ModifyDate *Time `json:"modifyDate,omitempty" xmlrpc:"modifyDate,omitempty"` + + // no documentation yet + PhoneFactorExternalAuthenticationRequired *bool `json:"phoneFactorExternalAuthenticationRequired,omitempty" xmlrpc:"phoneFactorExternalAuthenticationRequired,omitempty"` + + // no documentation yet + SecurityQuestionRequired *bool `json:"securityQuestionRequired,omitempty" xmlrpc:"securityQuestionRequired,omitempty"` + + // no documentation yet + TotpExternalAuthenticationRequired *bool `json:"totpExternalAuthenticationRequired,omitempty" xmlrpc:"totpExternalAuthenticationRequired,omitempty"` + + // no documentation yet + UserId *int `json:"userId,omitempty" xmlrpc:"userId,omitempty"` + + // no documentation yet + VerisignExternalAuthenticationRequired *bool `json:"verisignExternalAuthenticationRequired,omitempty" xmlrpc:"verisignExternalAuthenticationRequired,omitempty"` +} + +// The SoftLayer_Container_Authentication_Response_AccountIdMissing data type contains information for specific responses from the getPortalLogin API. This class is indicative of a request that is missing the account id. +type Container_Authentication_Response_AccountIdMissing struct { + Container_Authentication_Response_Common + + // no documentation yet + StatusKeyName *string `json:"statusKeyName,omitempty" xmlrpc:"statusKeyName,omitempty"` +} + +// The SoftLayer_Container_Authentication_Response_Common data type contains common information for responses from the getPortalLogin API. This is an abstract class that serves as a base that more specialized classes will derive from. For example, a response class that is specific to a successful response from the getPortalLogin API. +type Container_Authentication_Response_Common struct { + Entity + + // The list of linked accounts for the authenticated SoftLayer customer portal user. + Accounts []Container_Authentication_Response_Account `json:"accounts,omitempty" xmlrpc:"accounts,omitempty"` +} + +// The SoftLayer_Container_Authentication_Response_LOGIN_FAILED data type contains information for specific responses from the getPortalLogin API. This class is indicative of a request where there was an inability to login based on the information that was provided. +type Container_Authentication_Response_LoginFailed struct { + Container_Authentication_Response_Common + + // no documentation yet + ErrorMessage *string `json:"errorMessage,omitempty" xmlrpc:"errorMessage,omitempty"` + + // no documentation yet + StatusKeyName *string `json:"statusKeyName,omitempty" xmlrpc:"statusKeyName,omitempty"` +} + +// The SoftLayer_Container_Authentication_Response_SUCCESS data type contains information for specific responses from the getPortalLogin API. This class is indicative of a request that was successful in obtaining a portal login token from the getPortalLogin API. +type Container_Authentication_Response_Success struct { + Container_Authentication_Response_Common + + // no documentation yet + StatusKeyName *string `json:"statusKeyName,omitempty" xmlrpc:"statusKeyName,omitempty"` + + // The token for interacting with the SoftLayer customer portal. + Token *Container_User_Authentication_Token `json:"token,omitempty" xmlrpc:"token,omitempty"` +} + +// The SoftLayer_Container_Auxiliary_Network_Status_Reading data type contains information relating to an object being monitored from outside the SoftLayer network. It is primarily used to check the status of our edge routers from multiple locations around the world. +type Container_Auxiliary_Network_Status_Reading struct { + Entity + + // Average packet round-trip time. + AveragePing *Float64 `json:"averagePing,omitempty" xmlrpc:"averagePing,omitempty"` + + // Number of failures since the target was last detected to be working properly. + Fails *int `json:"fails,omitempty" xmlrpc:"fails,omitempty"` + + // Monitoring frequency in minutes. + Frequency *int `json:"frequency,omitempty" xmlrpc:"frequency,omitempty"` + + // The target babel. + Label *string `json:"label,omitempty" xmlrpc:"label,omitempty"` + + // Last check date and time. + LastCheckDate *Time `json:"lastCheckDate,omitempty" xmlrpc:"lastCheckDate,omitempty"` + + // Date and time of the last problem detected. + LastDownDate *Time `json:"lastDownDate,omitempty" xmlrpc:"lastDownDate,omitempty"` + + // The total response time in seconds calculated during the last check. + Latency *Float64 `json:"latency,omitempty" xmlrpc:"latency,omitempty"` + + // The monitoring location name. + Location *string `json:"location,omitempty" xmlrpc:"location,omitempty"` + + // Maximum packet round-trip time. + MaximumPing *Float64 `json:"maximumPing,omitempty" xmlrpc:"maximumPing,omitempty"` + + // Minimum packet round-trip time. + MinimumPing *Float64 `json:"minimumPing,omitempty" xmlrpc:"minimumPing,omitempty"` + + // Packet loss percentage. + PingLoss *Float64 `json:"pingLoss,omitempty" xmlrpc:"pingLoss,omitempty"` + + // The date monitoring first began + StartDate *Time `json:"startDate,omitempty" xmlrpc:"startDate,omitempty"` + + // Status Code - one of UP, Down, Test pending. + StatusCode *string `json:"statusCode,omitempty" xmlrpc:"statusCode,omitempty"` + + // The status message from the last effective check. + StatusMessage *string `json:"statusMessage,omitempty" xmlrpc:"statusMessage,omitempty"` + + // The target object. + Target *string `json:"target,omitempty" xmlrpc:"target,omitempty"` + + // A letter indicating the target type. + TargetType *string `json:"targetType,omitempty" xmlrpc:"targetType,omitempty"` +} + +// SoftLayer_Container_Bandwidth_GraphInputs models a single inbound object for a given bandwidth graph. +type Container_Bandwidth_GraphInputs struct { + Entity + + // This is a unix timestamp that represents the stop date/time for a graph. + EndDate *Time `json:"endDate,omitempty" xmlrpc:"endDate,omitempty"` + + // The front-end or back-end network uplink interface associated with this server. + NetworkInterfaceId *int `json:"networkInterfaceId,omitempty" xmlrpc:"networkInterfaceId,omitempty"` + + // * + Pod *int `json:"pod,omitempty" xmlrpc:"pod,omitempty"` + + // This is a human readable name for the server or rack being graphed. + ServerName *string `json:"serverName,omitempty" xmlrpc:"serverName,omitempty"` + + // This is a unix timestamp that represents the begin date/time for a graph. + StartDate *Time `json:"startDate,omitempty" xmlrpc:"startDate,omitempty"` +} + +// SoftLayer_Container_Bandwidth_GraphOutputs models a single outbound object for a given bandwidth graph. +type Container_Bandwidth_GraphOutputs struct { + Entity + + // The raw PNG binary data to be displayed once the graph is drawn. + GraphImage *[]byte `json:"graphImage,omitempty" xmlrpc:"graphImage,omitempty"` + + // The title that ended up being displayed as part of the graph image. + GraphTitle *string `json:"graphTitle,omitempty" xmlrpc:"graphTitle,omitempty"` + + // The maximum date included in this graph. + MaxEndDate *Time `json:"maxEndDate,omitempty" xmlrpc:"maxEndDate,omitempty"` + + // The minimum date included in this graph. + MinStartDate *Time `json:"minStartDate,omitempty" xmlrpc:"minStartDate,omitempty"` +} + +// SoftLayer_Container_Bandwidth_GraphOutputs models an individual bandwidth graph image and certain details about that graph image. +type Container_Bandwidth_GraphOutputsExtended struct { + Entity + + // The raw PNG binary data of a bandwidth graph image. + GraphImage *[]byte `json:"graphImage,omitempty" xmlrpc:"graphImage,omitempty"` + + // A bandwidth graph's title. + GraphTitle *string `json:"graphTitle,omitempty" xmlrpc:"graphTitle,omitempty"` + + // The amount of inbound traffic reported on a bandwidth graph image. + InBoundTotalBytes *uint `json:"inBoundTotalBytes,omitempty" xmlrpc:"inBoundTotalBytes,omitempty"` + + // The ending date of the data represented in a bandwidth graph. + MaxEndDate *Time `json:"maxEndDate,omitempty" xmlrpc:"maxEndDate,omitempty"` + + // The beginning date of the data represented in a bandwidth graph. + MinStartDate *Time `json:"minStartDate,omitempty" xmlrpc:"minStartDate,omitempty"` + + // The amount of outbound traffic reported on a bandwidth graph image. + OutBoundTotalBytes *uint `json:"outBoundTotalBytes,omitempty" xmlrpc:"outBoundTotalBytes,omitempty"` +} + +// SoftLayer_Container_Bandwidth_Projection models projected bandwidth use over a time range. +type Container_Bandwidth_Projection struct { + Entity + + // Bandwidth limit for this hardware. + AllowedUsage *string `json:"allowedUsage,omitempty" xmlrpc:"allowedUsage,omitempty"` + + // Estimated bandwidth usage so far this billing cycle. + EstimatedUsage *string `json:"estimatedUsage,omitempty" xmlrpc:"estimatedUsage,omitempty"` + + // Hardware ID of server to monitor. + HardwareId *int `json:"hardwareId,omitempty" xmlrpc:"hardwareId,omitempty"` + + // Projected usage for this hardware based on previous usage this billing cycle. + ProjectedUsage *string `json:"projectedUsage,omitempty" xmlrpc:"projectedUsage,omitempty"` + + // the text name of the server being monitored. + ServerName *string `json:"serverName,omitempty" xmlrpc:"serverName,omitempty"` + + // The minimum date included in this list. + StartDate *Time `json:"startDate,omitempty" xmlrpc:"startDate,omitempty"` +} + +// no documentation yet +type Container_Billing_Currency_Country struct { + Entity + + // no documentation yet + AvailableCurrencies []Billing_Currency `json:"availableCurrencies,omitempty" xmlrpc:"availableCurrencies,omitempty"` + + // no documentation yet + Country *Locale_Country `json:"country,omitempty" xmlrpc:"country,omitempty"` +} + +// no documentation yet +type Container_Billing_Currency_Format struct { + Entity + + // no documentation yet + Currency *string `json:"currency,omitempty" xmlrpc:"currency,omitempty"` + + // no documentation yet + Display *int `json:"display,omitempty" xmlrpc:"display,omitempty"` + + // no documentation yet + Format *string `json:"format,omitempty" xmlrpc:"format,omitempty"` + + // no documentation yet + Locale *string `json:"locale,omitempty" xmlrpc:"locale,omitempty"` + + // no documentation yet + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` + + // no documentation yet + Position *int `json:"position,omitempty" xmlrpc:"position,omitempty"` + + // no documentation yet + Precision *int `json:"precision,omitempty" xmlrpc:"precision,omitempty"` + + // no documentation yet + Script *string `json:"script,omitempty" xmlrpc:"script,omitempty"` + + // no documentation yet + Service *string `json:"service,omitempty" xmlrpc:"service,omitempty"` + + // no documentation yet + Symbol *string `json:"symbol,omitempty" xmlrpc:"symbol,omitempty"` + + // no documentation yet + Tag *string `json:"tag,omitempty" xmlrpc:"tag,omitempty"` + + // no documentation yet + Value *Float64 `json:"value,omitempty" xmlrpc:"value,omitempty"` +} + +// no documentation yet +type Container_Billing_Info_Ach struct { + Entity + + // no documentation yet + AccountNumber *string `json:"accountNumber,omitempty" xmlrpc:"accountNumber,omitempty"` + + // no documentation yet + AccountType *string `json:"accountType,omitempty" xmlrpc:"accountType,omitempty"` + + // no documentation yet + BankTransitNumber *string `json:"bankTransitNumber,omitempty" xmlrpc:"bankTransitNumber,omitempty"` + + // no documentation yet + City *string `json:"city,omitempty" xmlrpc:"city,omitempty"` + + // no documentation yet + Country *string `json:"country,omitempty" xmlrpc:"country,omitempty"` + + // no documentation yet + FederalTaxId *string `json:"federalTaxId,omitempty" xmlrpc:"federalTaxId,omitempty"` + + // no documentation yet + FirstName *string `json:"firstName,omitempty" xmlrpc:"firstName,omitempty"` + + // no documentation yet + LastName *string `json:"lastName,omitempty" xmlrpc:"lastName,omitempty"` + + // no documentation yet + PhoneNumber *string `json:"phoneNumber,omitempty" xmlrpc:"phoneNumber,omitempty"` + + // no documentation yet + PostalCode *string `json:"postalCode,omitempty" xmlrpc:"postalCode,omitempty"` + + // no documentation yet + State *string `json:"state,omitempty" xmlrpc:"state,omitempty"` + + // no documentation yet + Street1 *string `json:"street1,omitempty" xmlrpc:"street1,omitempty"` + + // no documentation yet + Street2 *string `json:"street2,omitempty" xmlrpc:"street2,omitempty"` +} + +// This container is used to provide all the options for [[SoftLayer_Billing_Invoice/emailInvoices|emailInvoices]] in order to have the necessary invoices generated and links sent to the user's email. +type Container_Billing_Invoice_Email struct { + Entity + + // Excel Invoices to email + ExcelInvoiceIds []int `json:"excelInvoiceIds,omitempty" xmlrpc:"excelInvoiceIds,omitempty"` + + // PDF Invoice Details to email + PdfDetailedInvoiceIds []int `json:"pdfDetailedInvoiceIds,omitempty" xmlrpc:"pdfDetailedInvoiceIds,omitempty"` + + // PDF Invoices to email + PdfInvoiceIds []int `json:"pdfInvoiceIds,omitempty" xmlrpc:"pdfInvoiceIds,omitempty"` + + // The type of Invoices to be emailed [current|next]. If next is selected, the account id will be used. + Type *string `json:"type,omitempty" xmlrpc:"type,omitempty"` +} + +// SoftLayer_Container_Billing_Order_Status models an order status. +type Container_Billing_Order_Status struct { + Entity + + // The description of the status. + Description *string `json:"description,omitempty" xmlrpc:"description,omitempty"` + + // The keyname of the status. + Status *string `json:"status,omitempty" xmlrpc:"status,omitempty"` +} + +// Contains user information used to request a manual Catalyst enrollment. +type Container_Catalyst_ManualEnrollmentRequest struct { + Entity + + // Applicant's email address + CustomerEmail *string `json:"customerEmail,omitempty" xmlrpc:"customerEmail,omitempty"` + + // Applicant's first and last name + CustomerName *string `json:"customerName,omitempty" xmlrpc:"customerName,omitempty"` + + // Name of applicant's startup company + StartupName *string `json:"startupName,omitempty" xmlrpc:"startupName,omitempty"` + + // Flag indicating whether (true) or not (false) and applicant is + VentureAffiliationFlag *bool `json:"ventureAffiliationFlag,omitempty" xmlrpc:"ventureAffiliationFlag,omitempty"` + + // Name of the venture capital fund, if any, applicant is affiliated with + VentureFundName *string `json:"ventureFundName,omitempty" xmlrpc:"ventureFundName,omitempty"` +} + +// This container is used to hold country locale information. +type Container_Collection_Locale_CountryCode struct { + Entity + + // no documentation yet + LongName *string `json:"longName,omitempty" xmlrpc:"longName,omitempty"` + + // no documentation yet + ShortName *string `json:"shortName,omitempty" xmlrpc:"shortName,omitempty"` + + // no documentation yet + StateCodes []Container_Collection_Locale_StateCode `json:"stateCodes,omitempty" xmlrpc:"stateCodes,omitempty"` +} + +// This container is used to hold information regarding a state or province. +type Container_Collection_Locale_StateCode struct { + Entity + + // no documentation yet + LongName *string `json:"longName,omitempty" xmlrpc:"longName,omitempty"` + + // no documentation yet + ShortName *string `json:"shortName,omitempty" xmlrpc:"shortName,omitempty"` +} + +// no documentation yet +type Container_Disk_Image_Capture_Template struct { + Entity + + // no documentation yet + Description *string `json:"description,omitempty" xmlrpc:"description,omitempty"` + + // no documentation yet + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` + + // no documentation yet + Summary *string `json:"summary,omitempty" xmlrpc:"summary,omitempty"` + + // no documentation yet + Volumes []Container_Disk_Image_Capture_Template_Volume `json:"volumes,omitempty" xmlrpc:"volumes,omitempty"` +} + +// no documentation yet +type Container_Disk_Image_Capture_Template_Volume struct { + Entity + + // no documentation yet + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` + + // no documentation yet + Partitions []Container_Disk_Image_Capture_Template_Volume_Partition `json:"partitions,omitempty" xmlrpc:"partitions,omitempty"` +} + +// no documentation yet +type Container_Disk_Image_Capture_Template_Volume_Partition struct { + Entity + + // no documentation yet + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` +} + +// Contact information container for domain registration +type Container_Dns_Domain_Registration_Contact struct { + Entity + + // The street address of the contact. + Address1 *string `json:"address1,omitempty" xmlrpc:"address1,omitempty"` + + // The second line in the address of the contact. + Address2 *string `json:"address2,omitempty" xmlrpc:"address2,omitempty"` + + // The third line in the address of the contact. + Address3 *string `json:"address3,omitempty" xmlrpc:"address3,omitempty"` + + // The city of the contact. + City *string `json:"city,omitempty" xmlrpc:"city,omitempty"` + + // The 2-character Country code. (i.e. US) + Country *string `json:"country,omitempty" xmlrpc:"country,omitempty"` + + // The email address of the contact. + Email *string `json:"email,omitempty" xmlrpc:"email,omitempty"` + + // The fax number of the contact. + Fax *string `json:"fax,omitempty" xmlrpc:"fax,omitempty"` + + // The first name of the contact. + FirstName *string `json:"firstName,omitempty" xmlrpc:"firstName,omitempty"` + + // The last name of the contact. + LastName *string `json:"lastName,omitempty" xmlrpc:"lastName,omitempty"` + + // The organization name of the contact. + OrganizationName *string `json:"organizationName,omitempty" xmlrpc:"organizationName,omitempty"` + + // The phone number of the contact. + Phone *string `json:"phone,omitempty" xmlrpc:"phone,omitempty"` + + // The postal code of the contact. + PostalCode *string `json:"postalCode,omitempty" xmlrpc:"postalCode,omitempty"` + + // The state of the contact. + State *string `json:"state,omitempty" xmlrpc:"state,omitempty"` + + // The type of contact. The following are the valid types of contacts: + // * admin + // * owner + // * billing + // * tech + Type *string `json:"type,omitempty" xmlrpc:"type,omitempty"` +} + +// This container data type contains extended attributes information for a domain of country code TLD. +type Container_Dns_Domain_Registration_ExtendedAttribute struct { + Entity + + // Indicates if this is a child of another extended attribute. + ChildFlag *bool `json:"childFlag,omitempty" xmlrpc:"childFlag,omitempty"` + + // The description of an extended attribute. + Description *string `json:"description,omitempty" xmlrpc:"description,omitempty"` + + // The name of an extended attribute. + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` + + // The collection of options for an extended attribute. + Options []Container_Dns_Domain_Registration_ExtendedAttribute_Option `json:"options,omitempty" xmlrpc:"options,omitempty"` + + // Indicates if extended attribute is required. + RequiredFlag *int `json:"requiredFlag,omitempty" xmlrpc:"requiredFlag,omitempty"` + + // User defined indicates that the value is required from outside sources. + UserDefinedFlag *bool `json:"userDefinedFlag,omitempty" xmlrpc:"userDefinedFlag,omitempty"` +} + +// This is the data type that may need to be populated to complete registraton for domains that are country code TLD's. +type Container_Dns_Domain_Registration_ExtendedAttribute_Configuration struct { + Entity + + // The extended attribute name. + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` + + // The extended attribute option value. + Value *string `json:"value,omitempty" xmlrpc:"value,omitempty"` +} + +// This container data type contains extended attribute options information for a domain of country code TLD. +type Container_Dns_Domain_Registration_ExtendedAttribute_Option struct { + Entity + + // The description of an option. + Description *string `json:"description,omitempty" xmlrpc:"description,omitempty"` + + // Extended Attribute that is required for an option. + RequireExtendedAttributes []Container_Dns_Domain_Registration_ExtendedAttribute_Option_Require `json:"requireExtendedAttributes,omitempty" xmlrpc:"requireExtendedAttributes,omitempty"` + + // The title of an option. + Title *string `json:"title,omitempty" xmlrpc:"title,omitempty"` + + // The value of an option. + Value *string `json:"value,omitempty" xmlrpc:"value,omitempty"` +} + +// This container data type contains the extended attribute name that is required by an extended attribute option. +type Container_Dns_Domain_Registration_ExtendedAttribute_Option_Require struct { + Entity + + // The name of an extended attribute that is required by an extended attribute option. + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` +} + +// Information container for domain registration +type Container_Dns_Domain_Registration_Information struct { + Entity + + // The information of the registered domain. + Contacts []Container_Dns_Domain_Registration_Contact `json:"contacts,omitempty" xmlrpc:"contacts,omitempty"` + + // The date that a domain is set to expire. + ExpireDate *Time `json:"expireDate,omitempty" xmlrpc:"expireDate,omitempty"` + + // The list of nameservers for the domain. + Nameservers []Container_Dns_Domain_Registration_Nameserver `json:"nameservers,omitempty" xmlrpc:"nameservers,omitempty"` + + // no documentation yet + RegistryCreateDate *Time `json:"registryCreateDate,omitempty" xmlrpc:"registryCreateDate,omitempty"` + + // no documentation yet + RegistryExpireDate *Time `json:"registryExpireDate,omitempty" xmlrpc:"registryExpireDate,omitempty"` + + // no documentation yet + RegistryUpdateDate *Time `json:"registryUpdateDate,omitempty" xmlrpc:"registryUpdateDate,omitempty"` +} + +// no documentation yet +type Container_Dns_Domain_Registration_List struct { + Entity + + // The domain name. + DomainName *string `json:"domainName,omitempty" xmlrpc:"domainName,omitempty"` + + // Three-character language tag for the IDN domain that you're trying to register. This is only required for IDN domains. + EncodingType *string `json:"encodingType,omitempty" xmlrpc:"encodingType,omitempty"` + + // Data required by the Registry for some country code top level domains (i.e. example.us). + // + // In order to determine if a domain requires extended attributes, use [[SoftLayer_Dns_Domain_Registration::getExtendedAttributes|domain registration]] service. + ExtendedAttributeConfiguration []Container_Dns_Domain_Registration_ExtendedAttribute_Configuration `json:"extendedAttributeConfiguration,omitempty" xmlrpc:"extendedAttributeConfiguration,omitempty"` + + // The length of the registration period in years. Valid values are 1 – 10. + RegistrationPeriod *int `json:"registrationPeriod,omitempty" xmlrpc:"registrationPeriod,omitempty"` +} + +// Lookup domain container for domain registration +type Container_Dns_Domain_Registration_Lookup struct { + Entity + + // The list of available and taken domain names. + Items []Container_Dns_Domain_Registration_Lookup_Items `json:"items,omitempty" xmlrpc:"items,omitempty"` +} + +// Lookup items container for domain registration +type Container_Dns_Domain_Registration_Lookup_Items struct { + Entity + + // The domain name. + DomainName *string `json:"domainName,omitempty" xmlrpc:"domainName,omitempty"` + + // The status of the domain name if available and can be registered. + Status *string `json:"status,omitempty" xmlrpc:"status,omitempty"` +} + +// Nameserver container for domain registration +type Container_Dns_Domain_Registration_Nameserver struct { + Entity + + // The list of fully qualified names of the nameserver. + Nameservers []Container_Dns_Domain_Registration_Nameserver_List `json:"nameservers,omitempty" xmlrpc:"nameservers,omitempty"` +} + +// Nameservers list container for domain registration +type Container_Dns_Domain_Registration_Nameserver_List struct { + Entity + + // The IPv4 address of the nameserver. + Ipv4Address *string `json:"ipv4Address,omitempty" xmlrpc:"ipv4Address,omitempty"` + + // The IPv6 address of the nameserver. + Ipv6Address *string `json:"ipv6Address,omitempty" xmlrpc:"ipv6Address,omitempty"` + + // The fully qualified name of the nameserver + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` + + // The sort order of the nameserver + SortOrder *int `json:"sortOrder,omitempty" xmlrpc:"sortOrder,omitempty"` +} + +// no documentation yet +type Container_Dns_Domain_Registration_Registrant_Verification_StatusDetail struct { + Entity + + // The current status of the verification. + Status *Dns_Domain_Registration_Registrant_Verification_Status `json:"status,omitempty" xmlrpc:"status,omitempty"` + + // The adate when the domain will be suspended. + VerificationDeadlineDate *Time `json:"verificationDeadlineDate,omitempty" xmlrpc:"verificationDeadlineDate,omitempty"` +} + +// Transfer Information container for domain registration +type Container_Dns_Domain_Registration_Transfer_Information struct { + Entity + + // The reason why a domain is not transferable. + Reason *string `json:"reason,omitempty" xmlrpc:"reason,omitempty"` + + // The registrant email. + RegistrantEmail *string `json:"registrantEmail,omitempty" xmlrpc:"registrantEmail,omitempty"` + + // The status of the latest transfer on the domain. + Status *string `json:"status,omitempty" xmlrpc:"status,omitempty"` + + // The date and time of the most recent update to the state of the transfer. + TimeStamp *Time `json:"timeStamp,omitempty" xmlrpc:"timeStamp,omitempty"` + + // Indicates if the domain can be transferred. + Transferrable *int `json:"transferrable,omitempty" xmlrpc:"transferrable,omitempty"` +} + +// The SoftLayer_Container_Exception data type represents a SoftLayer_Exception. +type Container_Exception struct { + Entity + + // The SoftLayer_Exception class that the error is. + ExceptionClass *string `json:"exceptionClass,omitempty" xmlrpc:"exceptionClass,omitempty"` + + // The exception message. + ExceptionMessage *string `json:"exceptionMessage,omitempty" xmlrpc:"exceptionMessage,omitempty"` +} + +// no documentation yet +type Container_Graph struct { + Entity + + // base units associated with the graph. + BaseUnit *string `json:"baseUnit,omitempty" xmlrpc:"baseUnit,omitempty"` + + // Graph range end datetime. + EndDatetime *string `json:"endDatetime,omitempty" xmlrpc:"endDatetime,omitempty"` + + // The height of the graph image. + Height *int `json:"height,omitempty" xmlrpc:"height,omitempty"` + + // The graph image. + Image *[]byte `json:"image,omitempty" xmlrpc:"image,omitempty"` + + // The graph interval in seconds. + Interval *int `json:"interval,omitempty" xmlrpc:"interval,omitempty"` + + // Metric types associated with the graph. + Metrics []Container_Metric_Data_Type `json:"metrics,omitempty" xmlrpc:"metrics,omitempty"` + + // Indicator to control whether the graph data is normalized. + NormalizeFlag *[]byte `json:"normalizeFlag,omitempty" xmlrpc:"normalizeFlag,omitempty"` + + // The options used to control the graph appearance. + Options []Container_Graph_Option `json:"options,omitempty" xmlrpc:"options,omitempty"` + + // A collection of graph plots. + Plots []Container_Graph_Plot `json:"plots,omitempty" xmlrpc:"plots,omitempty"` + + // option to not return the image. + ReturnImage *bool `json:"returnImage,omitempty" xmlrpc:"returnImage,omitempty"` + + // Graph range start datetime. + StartDatetime *string `json:"startDatetime,omitempty" xmlrpc:"startDatetime,omitempty"` + + // The name of the template to use; may be null. + Template *string `json:"template,omitempty" xmlrpc:"template,omitempty"` + + // The title of the graph image. + Title *string `json:"title,omitempty" xmlrpc:"title,omitempty"` + + // The width of the graph image. + Width *int `json:"width,omitempty" xmlrpc:"width,omitempty"` +} + +// no documentation yet +type Container_Graph_Option struct { + Entity + + // no documentation yet + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` + + // no documentation yet + Value *string `json:"value,omitempty" xmlrpc:"value,omitempty"` +} + +// no documentation yet +type Container_Graph_Plot struct { + Entity + + // no documentation yet + Data []Container_Graph_Plot_Coordinate `json:"data,omitempty" xmlrpc:"data,omitempty"` + + // no documentation yet + Metric *Container_Metric_Data_Type `json:"metric,omitempty" xmlrpc:"metric,omitempty"` + + // no documentation yet + Unit *string `json:"unit,omitempty" xmlrpc:"unit,omitempty"` +} + +// no documentation yet +type Container_Graph_Plot_Coordinate struct { + Entity + + // no documentation yet + XValue *Float64 `json:"xValue,omitempty" xmlrpc:"xValue,omitempty"` + + // no documentation yet + YValue *Float64 `json:"yValue,omitempty" xmlrpc:"yValue,omitempty"` + + // no documentation yet + ZValue *Float64 `json:"zValue,omitempty" xmlrpc:"zValue,omitempty"` +} + +// The hardware configuration container is used to provide configuration options for servers. +// +// Each configuration option will include both an itemPrice and a template. +// +// The itemPrice value will provide hourly and monthly costs (if either are applicable), and a description of the option. +// +// The template will provide a fragment of the request with the properties and values that must be sent when creating a server with the option. +// +// The [[SoftLayer_Hardware/getCreateObjectOptions|getCreateObjectOptions]] method returns this data structure. +// +// +type Container_Hardware_Configuration struct { + Entity + + // + //
+ // Available datacenter options. + // + // + // The datacenter.name value in the template represents which datacenter the server will be provisioned in. + //
+ Datacenters []Container_Hardware_Configuration_Option `json:"datacenters,omitempty" xmlrpc:"datacenters,omitempty"` + + // + //
+ // Available fixed configuration preset options. + // + // + // The fixedConfigurationPreset.keyName value in the template is an identifier for a particular fixed configuration. When provided exactly as shown in the template, that fixed configuration will be used. + // + // + // When providing a fixedConfigurationPreset.keyName while ordering a server the processors and hardDrives configuration options cannot be used. + //
+ FixedConfigurationPresets []Container_Hardware_Configuration_Option `json:"fixedConfigurationPresets,omitempty" xmlrpc:"fixedConfigurationPresets,omitempty"` + + // + //
+ // Available hard drive options. + // + // + // A server will have at least one hard drive. + // + // + // The hardDrives.capacity value in the template represents the size, in gigabytes, of the disk. + //
+ HardDrives []Container_Hardware_Configuration_Option `json:"hardDrives,omitempty" xmlrpc:"hardDrives,omitempty"` + + // + //
+ // Available network component options. + // + // + // The networkComponent.maxSpeed value in the template represents the link speed, in megabits per second, of the network connections for a server. + //
+ NetworkComponents []Container_Hardware_Configuration_Option `json:"networkComponents,omitempty" xmlrpc:"networkComponents,omitempty"` + + // + //
+ // Available operating system options. + // + // + // The operatingSystemReferenceCode value in the template is an identifier for a particular operating system. When provided exactly as shown in the template, that operating system will be used. + // + // + // A reference code is structured as three tokens separated by underscores. The first token represents the product, the second is the version of the product, and the third is whether the OS is 32 or 64bit. + // + // + // When providing an operatingSystemReferenceCode while ordering a server the only token required to match exactly is the product. The version token may be given as 'LATEST', else it will require an exact match as well. When the bits token is not provided, 64 bits will be assumed. + // + // + // Providing the value of 'LATEST' for a version will select the latest release of that product for the operating system. As this may change over time, you should be sure that the release version is irrelevant for your applications. + // + // + // For Windows based operating systems the version will represent both the release version (2008, 2012, etc) and the edition (Standard, Enterprise, etc). For all other operating systems the version will represent the major version (Centos 6, Ubuntu 12, etc) of that operating system, minor versions are represented in few reference codes where they are significant. + //
+ OperatingSystems []Container_Hardware_Configuration_Option `json:"operatingSystems,omitempty" xmlrpc:"operatingSystems,omitempty"` + + // + //
+ // Available processor options. + // + // + // The processorCoreAmount value in the template represents the number of cores allocated to the server. + // The memoryCapacity value in the template represents the amount of memory, in gigabytes, allocated to the server. + //
+ Processors []Container_Hardware_Configuration_Option `json:"processors,omitempty" xmlrpc:"processors,omitempty"` +} + +// An option found within a [[SoftLayer_Container_Hardware_Configuration (type)]] structure. +type Container_Hardware_Configuration_Option struct { + Entity + + // + // Provides hourly and monthly costs (if either are applicable), and a description of the option. + ItemPrice *Product_Item_Price `json:"itemPrice,omitempty" xmlrpc:"itemPrice,omitempty"` + + // + // Provides a description of a fixed configuration preset with monthly and hourly costs. + Preset *Product_Package_Preset `json:"preset,omitempty" xmlrpc:"preset,omitempty"` + + // + // Provides a fragment of the request with the properties and values that must be sent when creating a server with the option. + Template *Hardware `json:"template,omitempty" xmlrpc:"template,omitempty"` +} + +// no documentation yet +type Container_Hardware_MassUpdate struct { + Entity + + // The hardwares updated by the mass update tool + HardwareId *int `json:"hardwareId,omitempty" xmlrpc:"hardwareId,omitempty"` + + // Errors encountered while mass updating hardwares + Message *string `json:"message,omitempty" xmlrpc:"message,omitempty"` + + // The hardwares that failed to update + SuccessFlag *string `json:"successFlag,omitempty" xmlrpc:"successFlag,omitempty"` +} + +// no documentation yet +type Container_Hardware_Pool_Details struct { + Entity + + // no documentation yet + PoolDescription *string `json:"poolDescription,omitempty" xmlrpc:"poolDescription,omitempty"` + + // no documentation yet + PoolKeyName *string `json:"poolKeyName,omitempty" xmlrpc:"poolKeyName,omitempty"` + + // no documentation yet + PoolName *string `json:"poolName,omitempty" xmlrpc:"poolName,omitempty"` + + // no documentation yet + Routers []Container_Hardware_Pool_Details_Router `json:"routers,omitempty" xmlrpc:"routers,omitempty"` + + // no documentation yet + TotalHardware *int `json:"totalHardware,omitempty" xmlrpc:"totalHardware,omitempty"` + + // no documentation yet + TotalInventoryHardware *int `json:"totalInventoryHardware,omitempty" xmlrpc:"totalInventoryHardware,omitempty"` + + // no documentation yet + TotalProvisionedHardware *int `json:"totalProvisionedHardware,omitempty" xmlrpc:"totalProvisionedHardware,omitempty"` + + // no documentation yet + TotalTestedHardware *int `json:"totalTestedHardware,omitempty" xmlrpc:"totalTestedHardware,omitempty"` + + // no documentation yet + TotalTestingHardware *int `json:"totalTestingHardware,omitempty" xmlrpc:"totalTestingHardware,omitempty"` +} + +// no documentation yet +type Container_Hardware_Pool_Details_Router struct { + Entity + + // no documentation yet + RouterId *int `json:"routerId,omitempty" xmlrpc:"routerId,omitempty"` + + // no documentation yet + RouterName *string `json:"routerName,omitempty" xmlrpc:"routerName,omitempty"` + + // no documentation yet + TotalHardware *int `json:"totalHardware,omitempty" xmlrpc:"totalHardware,omitempty"` + + // no documentation yet + TotalInventoryHardware *int `json:"totalInventoryHardware,omitempty" xmlrpc:"totalInventoryHardware,omitempty"` + + // no documentation yet + TotalProvisionedHardware *int `json:"totalProvisionedHardware,omitempty" xmlrpc:"totalProvisionedHardware,omitempty"` + + // no documentation yet + TotalTestedHardware *int `json:"totalTestedHardware,omitempty" xmlrpc:"totalTestedHardware,omitempty"` + + // no documentation yet + TotalTestingHardware *int `json:"totalTestingHardware,omitempty" xmlrpc:"totalTestingHardware,omitempty"` +} + +// The SoftLayer_Container_Hardware_Server_Configuration data type contains information relating to a server's item price information, and hard drive partition information. +type Container_Hardware_Server_Configuration struct { + Entity + + // A flag indicating that the server will be moved into the spare pool after an Operating system reload. + AddToSparePoolAfterOsReload *int `json:"addToSparePoolAfterOsReload,omitempty" xmlrpc:"addToSparePoolAfterOsReload,omitempty"` + + // The customer provision uri will be used to download and execute a customer defined script on the host at the end of provisioning. + CustomProvisionScriptUri *string `json:"customProvisionScriptUri,omitempty" xmlrpc:"customProvisionScriptUri,omitempty"` + + // A flag indicating that the primary drive will be converted to a portable storage volume during an Operating System reload. + DriveRetentionFlag *bool `json:"driveRetentionFlag,omitempty" xmlrpc:"driveRetentionFlag,omitempty"` + + // A flag indicating that all data will be erased from drives during an Operating System reload. + EraseHardDrives *int `json:"eraseHardDrives,omitempty" xmlrpc:"eraseHardDrives,omitempty"` + + // The hard drive partitions that a server can be partitioned with. + HardDrives []Hardware_Component `json:"hardDrives,omitempty" xmlrpc:"hardDrives,omitempty"` + + // An Image Template ID [[SoftLayer_Virtual_Guest_Block_Device_Template_Group]] that will be deployed to the host. If provided no item prices are required. + ImageTemplateId *int `json:"imageTemplateId,omitempty" xmlrpc:"imageTemplateId,omitempty"` + + // The item prices that a server can be configured with. + ItemPrices []Product_Item_Price `json:"itemPrices,omitempty" xmlrpc:"itemPrices,omitempty"` + + // A flag indicating that the provision should use LVM for all logical drives. + LvmFlag *bool `json:"lvmFlag,omitempty" xmlrpc:"lvmFlag,omitempty"` + + // A flag indicating that the remote management cards password will be reset. + ResetIpmiPassword *int `json:"resetIpmiPassword,omitempty" xmlrpc:"resetIpmiPassword,omitempty"` + + // IDs to SoftLayer_Security_Ssh_Key objects on the current account which will be added to the server for authentication. SSH Keys will not be added to servers with Microsoft Windows. + SshKeyIds []int `json:"sshKeyIds,omitempty" xmlrpc:"sshKeyIds,omitempty"` + + // A flag indicating that the BIOS will be updated when installing the operating system. + UpgradeBios *int `json:"upgradeBios,omitempty" xmlrpc:"upgradeBios,omitempty"` + + // A flag indicating that the firmware on all hard drives will be updated when installing the operating system. + UpgradeHardDriveFirmware *int `json:"upgradeHardDriveFirmware,omitempty" xmlrpc:"upgradeHardDriveFirmware,omitempty"` +} + +// The SoftLayer_Container_Hardware_Server_Details data type contains information relating to a server's component information, network information, and software information. +type Container_Hardware_Server_Details struct { + Entity + + // The components that belong to a piece of hardware. + Components []Hardware_Component `json:"components,omitempty" xmlrpc:"components,omitempty"` + + // The network components that belong to a piece of hardware. + NetworkComponents []Network_Component `json:"networkComponents,omitempty" xmlrpc:"networkComponents,omitempty"` + + // The software that belong to a piece of hardware. + Software []Software_Component `json:"software,omitempty" xmlrpc:"software,omitempty"` +} + +// no documentation yet +type Container_Hardware_Server_Request struct { + Entity + + // no documentation yet + HardwareId *int `json:"hardwareId,omitempty" xmlrpc:"hardwareId,omitempty"` + + // no documentation yet + Message *string `json:"message,omitempty" xmlrpc:"message,omitempty"` + + // no documentation yet + SuccessFlag *bool `json:"successFlag,omitempty" xmlrpc:"successFlag,omitempty"` +} + +// SoftLayer_Container_KnowledgeLayer_QuestionAnswer models a single question and answer pair from SoftLayer's KnowledgeLayer knowledge base. SoftLayer's backend network interfaces with the KnowledgeLayer to recommend helpful articles when support tickets are created. +type Container_KnowledgeLayer_QuestionAnswer struct { + Entity + + // The answer to a question asked on the SoftLayer KnowledgeLayer. + Answer *string `json:"answer,omitempty" xmlrpc:"answer,omitempty"` + + // The link to a question asked on the SoftLayer KnowledgeLayer. + Link *string `json:"link,omitempty" xmlrpc:"link,omitempty"` + + // A question asked on the SoftLayer KnowledgeLayer. + Question *string `json:"question,omitempty" xmlrpc:"question,omitempty"` +} + +// no documentation yet +type Container_Message struct { + Entity + + // no documentation yet + Message *string `json:"message,omitempty" xmlrpc:"message,omitempty"` + + // no documentation yet + Type *string `json:"type,omitempty" xmlrpc:"type,omitempty"` +} + +// no documentation yet +type Container_Metric_Data_Type struct { + Entity + + // no documentation yet + KeyName *string `json:"keyName,omitempty" xmlrpc:"keyName,omitempty"` + + // no documentation yet + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` + + // no documentation yet + SummaryType *string `json:"summaryType,omitempty" xmlrpc:"summaryType,omitempty"` + + // no documentation yet + Unit *string `json:"unit,omitempty" xmlrpc:"unit,omitempty"` +} + +// SoftLayer_Container_Metric_Tracking_Object_Details This container is a parent class for detailing diverse metrics. +type Container_Metric_Tracking_Object_Details struct { + Entity + + // The name that best describes the metric being collected. + MetricName *string `json:"metricName,omitempty" xmlrpc:"metricName,omitempty"` +} + +// SoftLayer_Container_Metric_Tracking_Object_Summary This container is a parent class for summarizing diverse metrics. +type Container_Metric_Tracking_Object_Summary struct { + Entity + + // The name that best describes the metric being collected. + MetricName *string `json:"metricName,omitempty" xmlrpc:"metricName,omitempty"` +} + +// SoftLayer_Container_Metric_Tracking_Object_Virtual_Host_Details This container details a virtual host's metric data. +type Container_Metric_Tracking_Object_Virtual_Host_Details struct { + Container_Metric_Tracking_Object_Details + + // The day this metric was collected. + Day *Time `json:"day,omitempty" xmlrpc:"day,omitempty"` + + // The maximum number of guests hosted by this platform for the given day. + MaxInstances *int `json:"maxInstances,omitempty" xmlrpc:"maxInstances,omitempty"` + + // The maximum amount of memory utilized by this platform for the given day. + MaxMemoryUsage *int `json:"maxMemoryUsage,omitempty" xmlrpc:"maxMemoryUsage,omitempty"` + + // The mean number of guests hosted by this platform for the given day. + MeanInstances *Float64 `json:"meanInstances,omitempty" xmlrpc:"meanInstances,omitempty"` + + // The mean amount of memory utilized by this platform for the given day. + MeanMemoryUsage *Float64 `json:"meanMemoryUsage,omitempty" xmlrpc:"meanMemoryUsage,omitempty"` + + // The minimum number of guests hosted by this platform for the given day. + MinInstances *int `json:"minInstances,omitempty" xmlrpc:"minInstances,omitempty"` + + // The minimum amount of memory utilized by this platform for the given day. + MinMemoryUsage *int `json:"minMemoryUsage,omitempty" xmlrpc:"minMemoryUsage,omitempty"` +} + +// SoftLayer_Container_Metric_Tracking_Object_Virtual_Host_Summary This container summarizes a virtual host's metric data. +type Container_Metric_Tracking_Object_Virtual_Host_Summary struct { + Container_Metric_Tracking_Object_Summary + + // The average amount of memory usage thus far in this billing cycle. + AvgMemoryUsageInBillingCycle *int `json:"avgMemoryUsageInBillingCycle,omitempty" xmlrpc:"avgMemoryUsageInBillingCycle,omitempty"` + + // Current bill cycle end date. + CurrentBillCycleEnd *Time `json:"currentBillCycleEnd,omitempty" xmlrpc:"currentBillCycleEnd,omitempty"` + + // Current bill cycle start date. + CurrentBillCycleStart *Time `json:"currentBillCycleStart,omitempty" xmlrpc:"currentBillCycleStart,omitempty"` + + // The last count of instances this platform was hosting. + LastInstanceCount *int `json:"lastInstanceCount,omitempty" xmlrpc:"lastInstanceCount,omitempty"` + + // The last amount of memory this platform was using. + LastMemoryUsageAmount *int `json:"lastMemoryUsageAmount,omitempty" xmlrpc:"lastMemoryUsageAmount,omitempty"` + + // The last time this virtual host was polled for metrics. + LastPollTime *Time `json:"lastPollTime,omitempty" xmlrpc:"lastPollTime,omitempty"` + + // The max number of instances hosted thus far in this billing cycle. + MaxInstanceInBillingCycle *int `json:"maxInstanceInBillingCycle,omitempty" xmlrpc:"maxInstanceInBillingCycle,omitempty"` + + // Previous bill cycle end date. + PreviousBillCycleEnd *Time `json:"previousBillCycleEnd,omitempty" xmlrpc:"previousBillCycleEnd,omitempty"` + + // Previous bill cycle start date. + PreviousBillCycleStart *Time `json:"previousBillCycleStart,omitempty" xmlrpc:"previousBillCycleStart,omitempty"` + + // This virtual hosting platform name. + VirtualPlatformName *string `json:"virtualPlatformName,omitempty" xmlrpc:"virtualPlatformName,omitempty"` +} + +// The SoftLayer_Container_Monitoring_Alarm_History data type contains information relating to SoftLayer monitoring alarm history. +type Container_Monitoring_Alarm_History struct { + Entity + + // Account ID that this alarm belongs to + AccountId *int `json:"accountId,omitempty" xmlrpc:"accountId,omitempty"` + + // ID of the monitoring agent that triggered this alarm + AgentId *int `json:"agentId,omitempty" xmlrpc:"agentId,omitempty"` + + // Alarm ID + AlarmId *string `json:"alarmId,omitempty" xmlrpc:"alarmId,omitempty"` + + // Time that an alarm was closed. + ClosedDate *Time `json:"closedDate,omitempty" xmlrpc:"closedDate,omitempty"` + + // Time that an alarm was triggered + CreateDate *Time `json:"createDate,omitempty" xmlrpc:"createDate,omitempty"` + + // Alarm message + Message *string `json:"message,omitempty" xmlrpc:"message,omitempty"` + + // Robot ID + RobotId *int `json:"robotId,omitempty" xmlrpc:"robotId,omitempty"` + + // Severity of an alarm + Severity *string `json:"severity,omitempty" xmlrpc:"severity,omitempty"` +} + +// SoftLayer_Container_Monitoring_Graph_Outputs models a single outbound object for a graph of given data sets. +type Container_Monitoring_Graph_Outputs struct { + Entity + + // The maximum date included in this graph. + EndDate *Time `json:"endDate,omitempty" xmlrpc:"endDate,omitempty"` + + // Error message encountered during graphing + GraphError *string `json:"graphError,omitempty" xmlrpc:"graphError,omitempty"` + + // The raw PNG binary data to be displayed once the graph is drawn. + GraphImage *[]byte `json:"graphImage,omitempty" xmlrpc:"graphImage,omitempty"` + + // The minimum date included in this graph. + StartDate *Time `json:"startDate,omitempty" xmlrpc:"startDate,omitempty"` +} + +// This object holds authentication data to a server. +type Container_Network_Authentication_Data struct { + Entity + + // The name of a host + Host *string `json:"host,omitempty" xmlrpc:"host,omitempty"` + + // The authentication password + Password *string `json:"password,omitempty" xmlrpc:"password,omitempty"` + + // The port number + Port *int `json:"port,omitempty" xmlrpc:"port,omitempty"` + + // The type of network protocol. This can be ftp, ssh and so on. + Type *string `json:"type,omitempty" xmlrpc:"type,omitempty"` + + // The authentication username + Username *string `json:"username,omitempty" xmlrpc:"username,omitempty"` +} + +// SoftLayer_Container_Network_Bandwidth_Data_Summary models an interface's overall bandwidth usage during it's current billing cycle. +type Container_Network_Bandwidth_Data_Summary struct { + Entity + + // The amount of bandwidth a server has allocated to it in it's current billing period. + AllowedUsage *Float64 `json:"allowedUsage,omitempty" xmlrpc:"allowedUsage,omitempty"` + + // The amount of bandwidth that a server has used within it's current billing period. + EstimatedUsage *Float64 `json:"estimatedUsage,omitempty" xmlrpc:"estimatedUsage,omitempty"` + + // The amount of bandwidth a server is projected to use within its billing period, based on it's current usage. + ProjectedUsage *Float64 `json:"projectedUsage,omitempty" xmlrpc:"projectedUsage,omitempty"` + + // The unit of measurement used in a bandwidth data summary. + UsageUnits *string `json:"usageUnits,omitempty" xmlrpc:"usageUnits,omitempty"` +} + +// SoftLayer_Container_Network_Bandwidth_Version1_Usage models an hourly bandwidth record. +type Container_Network_Bandwidth_Version1_Usage struct { + Entity + + // The amount of incoming bandwidth that a server has used within the hour of the recordedDate. + IncomingAmount *Float64 `json:"incomingAmount,omitempty" xmlrpc:"incomingAmount,omitempty"` + + // The amount of outgoing bandwidth that a server has used within the hour of the recordedDate. + OutgoingAmount *Float64 `json:"outgoingAmount,omitempty" xmlrpc:"outgoingAmount,omitempty"` + + // The date and time that the bandwidth was used by a piece of hardware + RecordedDate *Time `json:"recordedDate,omitempty" xmlrpc:"recordedDate,omitempty"` +} + +// SoftLayer_Container_Network_ContentDelivery_Authentication_Directory represents a token authentication directory on your CDN FTP or on your origin server. +type Container_Network_ContentDelivery_Authentication_Directory struct { + Entity + + // The date that a token authentication directory was created. + CreateDate *Time `json:"createDate,omitempty" xmlrpc:"createDate,omitempty"` + + // The name of a directory or a file within a directory listing. + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` + + // The type of platform that a token authentication directory is defined for. Possible types are HTTP Large, HTTP Small, Flash and Windows Media + Type *string `json:"type,omitempty" xmlrpc:"type,omitempty"` +} + +// This container is used for CDN content authentication service. +type Container_Network_ContentDelivery_Authentication_Parameter struct { + Entity + + // A CDN account name + CdnAccountName *string `json:"cdnAccountName,omitempty" xmlrpc:"cdnAccountName,omitempty"` + + // A client IP address + ClientIp *string `json:"clientIp,omitempty" xmlrpc:"clientIp,omitempty"` + + // A client referrer information + Referrer *string `json:"referrer,omitempty" xmlrpc:"referrer,omitempty"` + + // A source URL + SourceUrl *string `json:"sourceUrl,omitempty" xmlrpc:"sourceUrl,omitempty"` + + // An authentication token string + Token *string `json:"token,omitempty" xmlrpc:"token,omitempty"` +} + +// CDN supports the content authentication service. With the content authentication service, customers can control access to their contents. There are several scenarios where this authentication capability could be useful. Websites can prevent other rogue websites from linking to their videos. Content owners can prevent users from passing around http links, thus forcing them to login to view contents. It is also possible to authenticate via the client IP address. Referrer information is also checked if provided by a client's browser. servers will invoke a web service method to validate a content authentication token. +// +// CDN uses the default authentication web service provided by SoftLayer to validate a token. A customer can use their own implementation of the token authentication web service by using [[SoftLayer_Network_ContentDelivery_Account::setAuthenticationServiceEndpoint|setAuthenticationServiceEndpoint]] method. +// +// This container class holds the token validation web service endpoint information. CDN supports 3 different protocols: HTTP, RTMP (streaming Flash), and MMS (streaming Windows Media) +type Container_Network_ContentDelivery_Authentication_ServiceEndpoint struct { + Entity + + // The authentication web service endpoint that CDN servers will use to validate a token + Endpoint *string `json:"endpoint,omitempty" xmlrpc:"endpoint,omitempty"` + + // The protocol that the WSDL will be used for. This can be HTTP, WINDOWSMEDIA, or FLASH + Protocol *string `json:"protocol,omitempty" xmlrpc:"protocol,omitempty"` +} + +// SoftLayer_Container_Network_ContentDelivery_Bandwidth_PointsOfPresence_Summary models an individual CDN point of presence's bandwidth usage for a CDN account within a given date range. CDN POPs are located throughout the world, so individual POP usage may be beneficial in determining who is downloading your CDN hosted content. +type Container_Network_ContentDelivery_Bandwidth_PointsOfPresence_Summary struct { + Entity + + // The amount of bandwidth used by a CDN POP. + Bandwidth *uint `json:"bandwidth,omitempty" xmlrpc:"bandwidth,omitempty"` + + // The ending date of a CDN POP bandwidth summary. + EndDateTime *Time `json:"endDateTime,omitempty" xmlrpc:"endDateTime,omitempty"` + + // A CDN POP's name. This is typically the city the POP resides in. + PopName *string `json:"popName,omitempty" xmlrpc:"popName,omitempty"` + + // The starting date of a CDN POP bandwidth summary. + StartDateTime *Time `json:"startDateTime,omitempty" xmlrpc:"startDateTime,omitempty"` + + // The unit of measurement used in a CDN POP bandwidth summary. + UsageUnits *string `json:"usageUnits,omitempty" xmlrpc:"usageUnits,omitempty"` + + // The view count + ViewCount *uint `json:"viewCount,omitempty" xmlrpc:"viewCount,omitempty"` +} + +// SoftLayer_Container_Network_ContentDelivery_Bandwidth_Summary models a CDN account's overall bandwidth usage and overages within a given date range. +type Container_Network_ContentDelivery_Bandwidth_Summary struct { + Entity + + // The CDN account id + CdnAccountId *int `json:"cdnAccountId,omitempty" xmlrpc:"cdnAccountId,omitempty"` + + // The ending date of a CDN bandwidth summary. + EndDateTime *Time `json:"endDateTime,omitempty" xmlrpc:"endDateTime,omitempty"` + + // The name of a file that is requested by visitors + FileName *string `json:"fileName,omitempty" xmlrpc:"fileName,omitempty"` + + // The media type + MediaType *string `json:"mediaType,omitempty" xmlrpc:"mediaType,omitempty"` + + // The starting date of a CDN bandwidth summary. + StartDateTime *Time `json:"startDateTime,omitempty" xmlrpc:"startDateTime,omitempty"` + + // The amount of bandwidth used by a CDN account in between a given starting and ending date. + Usage *Float64 `json:"usage,omitempty" xmlrpc:"usage,omitempty"` + + // The unit of measurement used in a CDN bandwidth summary. + UsageUnits *string `json:"usageUnits,omitempty" xmlrpc:"usageUnits,omitempty"` +} + +// SoftLayer_Container_Network_ContentDelivery_Bandwidth_Summary_File models a CDN account's overall bandwidth usage and overages within a given date range. +type Container_Network_ContentDelivery_Bandwidth_Summary_Detail struct { + Container_Network_ContentDelivery_Bandwidth_Summary + + // The duration of a file that is viewed. + Duration *Float64 `json:"duration,omitempty" xmlrpc:"duration,omitempty"` + + // The number of times that a file is viewed. + ViewCount *int `json:"viewCount,omitempty" xmlrpc:"viewCount,omitempty"` +} + +// SoftLayer's CDN allows for multiple origin pull domains and CNAME records. This container holds the origin pull configuration details. CDN currently supports origin pull method for HTTP content. +type Container_Network_ContentDelivery_OriginPull_Mapping struct { + Entity + + // The CNAME record. + Cname *string `json:"cname,omitempty" xmlrpc:"cname,omitempty"` + + // The unique identifier of an origin pull configuration + Id *string `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // This indicates if an origin pull mapping is for the secure content or not. + IsSecureContent *bool `json:"isSecureContent,omitempty" xmlrpc:"isSecureContent,omitempty"` + + // The type of a media supported by CDN. Supported media types are: "HTTP", "FLASH" and "WM" + MediaType *string `json:"mediaType,omitempty" xmlrpc:"mediaType,omitempty"` + + // The URL of a origin server. A URL can contain a directory path. + OriginUrl *string `json:"originUrl,omitempty" xmlrpc:"originUrl,omitempty"` +} + +// SoftLayer's CDN content delivery network offering replicates your data to a number of Points of Presence (POP's) around the world. SoftLayer_Container_Network_ContentDelivery_PointsOfPresence models one of these POP locations. +type Container_Network_ContentDelivery_PointsOfPresence struct { + Entity + + // A CDN Point of Presence's internal identifier. + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // A CDN Point of Presence's name. This is typically the city that the POP is located in. + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` +} + +// This container holds information on a purge request. [[SoftLayer_Network_ContentDelivery_Account::purgeCache|Purge method]] for more details. +// +// Status code can be "SUCCESS", "FAILED", or "INVALID_URL" "INVALID_URL" code is returned when a URL is malformed or does not belong to customer. "FAILED" is returned in case there was an internal error. +type Container_Network_ContentDelivery_PurgeService_Response struct { + Entity + + // A status code indicates whether your request was successful or not + StatusCode *string `json:"statusCode,omitempty" xmlrpc:"statusCode,omitempty"` + + // A URL that you wish to purge its cache object + Url *string `json:"url,omitempty" xmlrpc:"url,omitempty"` +} + +// no documentation yet +type Container_Network_ContentDelivery_Report_Usage struct { + Entity + + // no documentation yet + ApplicationDeliveryNetwork *Float64 `json:"applicationDeliveryNetwork,omitempty" xmlrpc:"applicationDeliveryNetwork,omitempty"` + + // no documentation yet + ApplicationDeliveryNetworkSsl *Float64 `json:"applicationDeliveryNetworkSsl,omitempty" xmlrpc:"applicationDeliveryNetworkSsl,omitempty"` + + // no documentation yet + DiskSpace *Float64 `json:"diskSpace,omitempty" xmlrpc:"diskSpace,omitempty"` + + // no documentation yet + EndDate *Time `json:"endDate,omitempty" xmlrpc:"endDate,omitempty"` + + // no documentation yet + Flash *Float64 `json:"flash,omitempty" xmlrpc:"flash,omitempty"` + + // no documentation yet + Http *Float64 `json:"http,omitempty" xmlrpc:"http,omitempty"` + + // no documentation yet + HttpSmall *Float64 `json:"httpSmall,omitempty" xmlrpc:"httpSmall,omitempty"` + + // no documentation yet + Https *Float64 `json:"https,omitempty" xmlrpc:"https,omitempty"` + + // no documentation yet + HttpsSmall *Float64 `json:"httpsSmall,omitempty" xmlrpc:"httpsSmall,omitempty"` + + // no documentation yet + Region *string `json:"region,omitempty" xmlrpc:"region,omitempty"` + + // no documentation yet + SslTotal *Float64 `json:"sslTotal,omitempty" xmlrpc:"sslTotal,omitempty"` + + // no documentation yet + StandardTotal *Float64 `json:"standardTotal,omitempty" xmlrpc:"standardTotal,omitempty"` + + // no documentation yet + StartDate *Time `json:"startDate,omitempty" xmlrpc:"startDate,omitempty"` + + // no documentation yet + WindowsMedia *Float64 `json:"windowsMedia,omitempty" xmlrpc:"windowsMedia,omitempty"` +} + +// SoftLayer's CDN content delivery network allows for multiple types of media hosting in addition to traditional HTTP hosting. Each of these media types are accessible form a different URL. SoftLayer_Container_Network_ContentDelivery_SupportedProtocol holds details about CDN supported media types and their associated URLs. +// +// CDN media URLs follow the standard ://..cdn.softlayer.net +// +// Flash streaming, Windows Media streaming and HTTP protocols are supported: Flash streaming: rtmp://.flash.cdn.softlayer.net Windows Media streaming: mms://.wm.cdn.softlayer.net HTTP: http://.http.cdn.softlayer.net +type Container_Network_ContentDelivery_SupportedProtocol struct { + Entity + + // The host name related to CDN supported media, and is represented in the hostname portion of a CDN URL. + Host *string `json:"host,omitempty" xmlrpc:"host,omitempty"` + + // The type of a media supported by CDN such as "FLASH", "WINDOWSMEDIA" or "HTTP" + MediaType *string `json:"mediaType,omitempty" xmlrpc:"mediaType,omitempty"` + + // The platform name. It's a friendly name of media type. + Platform *string `json:"platform,omitempty" xmlrpc:"platform,omitempty"` + + // The media protocol supported by CDN. This represents the media portion of a CDN URL. Currently supported protocols are: rtmp, mms and http + Protocol *string `json:"protocol,omitempty" xmlrpc:"protocol,omitempty"` +} + +// SoftLayer_Container_Network_Directory_Listing represents a single entry in a listing of files within a remote directory. API methods that return remote directory listings typically return arrays of SoftLayer_Container_Network_Directory_Listing objects. +type Container_Network_Directory_Listing struct { + Entity + + // If the file in a directory listing is a directory itself then fileCount is the number of files within the directory. + FileCount *int `json:"fileCount,omitempty" xmlrpc:"fileCount,omitempty"` + + // The name of a directory or a file within a directory listing. + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` + + // The type of file in a directory listing. If a directory listing entry is a directory itself then type is set to "directory". Otherwise, type is a blank string. + Type *string `json:"type,omitempty" xmlrpc:"type,omitempty"` +} + +// The IntrusionProtection_Event object stores information about individual intrusion protection events. +// +// It is a data container that cannot be edited, deleted, or saved. +// +// It is returned by many methods in the TippingPointReporting object, but never directly, always as a child of another container object. +type Container_Network_IntrusionProtection_Event struct { + Entity + + // The CVE ID(s), if any, associated with this attack signature. + CVEId *string `json:"CVEId,omitempty" xmlrpc:"CVEId,omitempty"` + + // The action that was taken when this attack was discovered. Can be either "Block" or "Permit" + ActionTaken *string `json:"actionTaken,omitempty" xmlrpc:"actionTaken,omitempty"` + + // The number of attacks in this block. Attacks are grouped differently based on the query performed on the tippingPointReporting object. + AttackCount *int `json:"attackCount,omitempty" xmlrpc:"attackCount,omitempty"` + + // Long description of the attack. May contain links to more information + AttackLongDescription *string `json:"attackLongDescription,omitempty" xmlrpc:"attackLongDescription,omitempty"` + + // Name of the attack + AttackName *string `json:"attackName,omitempty" xmlrpc:"attackName,omitempty"` + + // The starting timestamp of the attack recorded, in Y-m-d H:i:s format. May not be set, depending on the type of query performed. + BeginTime *string `json:"beginTime,omitempty" xmlrpc:"beginTime,omitempty"` + + // The BugTraq ID(s), if any, associated with this attack signature. + BugtraqId *string `json:"bugtraqId,omitempty" xmlrpc:"bugtraqId,omitempty"` + + // The human-readable classification of the attack + Classification *string `json:"classification,omitempty" xmlrpc:"classification,omitempty"` + + // The IP Address (as a dotted decimal string) of the machine that was the target of the attack + DestinationIpAddress *string `json:"destinationIpAddress,omitempty" xmlrpc:"destinationIpAddress,omitempty"` + + // The port the attack was directed at + DestinationPort *int `json:"destinationPort,omitempty" xmlrpc:"destinationPort,omitempty"` + + // The ending timestamp of the attack recorded, in Y-m-d H:i:s format. May not be set, depending on the type of query performed. + EndTime *string `json:"endTime,omitempty" xmlrpc:"endTime,omitempty"` + + // The platform affected by the attack + Platform *string `json:"platform,omitempty" xmlrpc:"platform,omitempty"` + + // The protocol used in the attack + Protocol *string `json:"protocol,omitempty" xmlrpc:"protocol,omitempty"` + + // The human-readable severity of this attack, from "Low" to "Critical" + Severity *string `json:"severity,omitempty" xmlrpc:"severity,omitempty"` + + // Unique ID of the "Signature" in question. The signature determines the type of attack recorded. SignatureId is used in the drillDown() function on the TippingPointReporting service + SignatureId *string `json:"signatureId,omitempty" xmlrpc:"signatureId,omitempty"` + + // The IP Address (as a dotted decimal string) of the machine originating the attack + SourceIpAddress *string `json:"sourceIpAddress,omitempty" xmlrpc:"sourceIpAddress,omitempty"` + + // The port the attack originated from + SourcePort *int `json:"sourcePort,omitempty" xmlrpc:"sourcePort,omitempty"` +} + +// The IntrusionProtection_Statistic is used exclusively by the getMainStatistics method on the TippingPointReporting service, and serves mainly as a pair object, storing a name and an attack count. Name is usually the name of an attack, but it can also be an attacking IP Address +type Container_Network_IntrusionProtection_Statistic struct { + Entity + + // The number of attacks effecting this name over the time period + AttackCount *int `json:"attackCount,omitempty" xmlrpc:"attackCount,omitempty"` + + // Either the name of the attack in question, or the attacking IP Address + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` +} + +// The IntrusionProtection_Statistics Type is used as a container for SoftLayer_Container_Network_IntrusionProtection_Statistic objects. The SoftLayer_Container_Network_IntrusionProtection_Statistics class holds the "header" information, like the item being queried (either account or data center), the time frame, and the grand total of the attacks. +type Container_Network_IntrusionProtection_Statistics struct { + Entity + + // The actual target, either a datacenter name, an account ID, or a subnet IP + Target *string `json:"target,omitempty" xmlrpc:"target,omitempty"` + + // The type of the target, right now either "datacenter", "account", or "subnet" + TargetType *string `json:"targetType,omitempty" xmlrpc:"targetType,omitempty"` + + // The time frame of the attack, in string form, like "Last 24 hours" + TimeFrame *string `json:"timeFrame,omitempty" xmlrpc:"timeFrame,omitempty"` + + // The top attacks for this target over this time frame + TopAttacks []Container_Network_IntrusionProtection_Statistic `json:"topAttacks,omitempty" xmlrpc:"topAttacks,omitempty"` + + // Total attacks for this $target over this time frame + TotalAttacks *int `json:"totalAttacks,omitempty" xmlrpc:"totalAttacks,omitempty"` +} + +// The IntrusionProtection_SubnetReport object is the container that holds the SoftLayer_Container_Network_IntrusionProtection_Event objects for a particular subnet, or "All Subnets", whatever the case may be. Subnet, subnet mask, direction, and the individual events are returned by this object. +type Container_Network_IntrusionProtection_SubnetReport struct { + Entity + + // cidr for this report. If the subnetIpAddress is "All Subnets", this is set to 32 and should be ignored. + Cidr *int `json:"cidr,omitempty" xmlrpc:"cidr,omitempty"` + + // Direction of the attack, either 'Inbound' or 'Outbound' + Direction *string `json:"direction,omitempty" xmlrpc:"direction,omitempty"` + + // The class SoftLayer_Container_Network_IntrusionProtection_Event objects on this report. + Events []Container_Network_IntrusionProtection_Event `json:"events,omitempty" xmlrpc:"events,omitempty"` + + // The "target" of this report, could be an IP address, a subnet's network identifier, or "All Subnets" + SubnetIpAddress *string `json:"subnetIpAddress,omitempty" xmlrpc:"subnetIpAddress,omitempty"` +} + +// The LoadBalancer_StatusEntry object stores information about the current status of a particular load balancer service. +// +// It is a data container that cannot be edited, deleted, or saved. +// +// It is returned exclusively by the getStatus method on the [[SoftLayer_Network_LoadBalancer_Service]] service +type Container_Network_LoadBalancer_StatusEntry struct { + Entity + + // The value of the entry. + Content *string `json:"content,omitempty" xmlrpc:"content,omitempty"` + + // Text description of the status entry + Label *string `json:"label,omitempty" xmlrpc:"label,omitempty"` +} + +// This container class holds information on a media file such as file name, codec, frame rate and so on +type Container_Network_Media_Information struct { + Entity + + // The audio bit rate + AudioBitRate *int `json:"audioBitRate,omitempty" xmlrpc:"audioBitRate,omitempty"` + + // The audio channel mode + AudioChannelMode *string `json:"audioChannelMode,omitempty" xmlrpc:"audioChannelMode,omitempty"` + + // The number of audio channels + AudioChannels *int `json:"audioChannels,omitempty" xmlrpc:"audioChannels,omitempty"` + + // The audio codec name + AudioCodec *string `json:"audioCodec,omitempty" xmlrpc:"audioCodec,omitempty"` + + // The audio sample rate + AudioSampleRate *int `json:"audioSampleRate,omitempty" xmlrpc:"audioSampleRate,omitempty"` + + // The duration of a media + Duration *Float64 `json:"duration,omitempty" xmlrpc:"duration,omitempty"` + + // The error message if any. + ErrorMessage *string `json:"errorMessage,omitempty" xmlrpc:"errorMessage,omitempty"` + + // The name of a media file + File *string `json:"file,omitempty" xmlrpc:"file,omitempty"` + + // The file format + FileFormat *string `json:"fileFormat,omitempty" xmlrpc:"fileFormat,omitempty"` + + // The size of a media file in byte + FileSize *uint `json:"fileSize,omitempty" xmlrpc:"fileSize,omitempty"` + + // The frame rate + FrameRate *Float64 `json:"frameRate,omitempty" xmlrpc:"frameRate,omitempty"` + + // The width of a media in pixel + SizeX *int `json:"sizeX,omitempty" xmlrpc:"sizeX,omitempty"` + + // The height of a media in pixel + SizeY *int `json:"sizeY,omitempty" xmlrpc:"sizeY,omitempty"` + + // The total of frames + TotalFrames *uint `json:"totalFrames,omitempty" xmlrpc:"totalFrames,omitempty"` + + // The width in a video's width to height aspect ratio + VideoAspectX *Float64 `json:"videoAspectX,omitempty" xmlrpc:"videoAspectX,omitempty"` + + // The height in a video's width to height aspect ratio + VideoAspectY *int `json:"videoAspectY,omitempty" xmlrpc:"videoAspectY,omitempty"` + + // The video codec name + VideoCodec *string `json:"videoCodec,omitempty" xmlrpc:"videoCodec,omitempty"` +} + +// no documentation yet +type Container_Network_Media_Transcode_Job_Watermark struct { + Entity + + // Time to stop showing watermark in milliseconds + EndTime *int `json:"endTime,omitempty" xmlrpc:"endTime,omitempty"` + + // Filename of image to use as watermark in transcoding job + FileName *string `json:"fileName,omitempty" xmlrpc:"fileName,omitempty"` + + // Position to place watermark at + Position *Container_Network_Media_Transcode_Job_Watermark_Position `json:"position,omitempty" xmlrpc:"position,omitempty"` + + // Time to start showing watermark in milliseconds + StartTime *int `json:"startTime,omitempty" xmlrpc:"startTime,omitempty"` + + // Text to Place in Watermark + Text *string `json:"text,omitempty" xmlrpc:"text,omitempty"` + + // Percentage Transparent watermark should be + TransparencyPercentage *int `json:"transparencyPercentage,omitempty" xmlrpc:"transparencyPercentage,omitempty"` +} + +// no documentation yet +type Container_Network_Media_Transcode_Job_Watermark_Position struct { + Entity + + // X Coordinate of Watermark + X *int `json:"x,omitempty" xmlrpc:"x,omitempty"` + + // vertical Coordinate of Watermark + Y *int `json:"y,omitempty" xmlrpc:"y,omitempty"` +} + +// Transcode preset is a set of configuration parameters that defines a Transcode output format. SoftLayer_Container_Network_Media_Transcode_Preset contains a preset information defined on a Transcode server +type Container_Network_Media_Transcode_Preset struct { + Entity + + // The unique id that is used by a Transcode server + GUID *string `json:"GUID,omitempty" xmlrpc:"GUID,omitempty"` + + // The category that a preset belongs to + Category *string `json:"category,omitempty" xmlrpc:"category,omitempty"` + + // The description of the preset + Description *string `json:"description,omitempty" xmlrpc:"description,omitempty"` + + // The friendly name of a preset + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` +} + +// Transcode preset element +type Container_Network_Media_Transcode_Preset_Element struct { + Entity + + // The additional elements for DROPDOWNLIST element + AdditionalElements []Container_Network_Media_Transcode_Preset_Element_Option `json:"additionalElements,omitempty" xmlrpc:"additionalElements,omitempty"` + + // The default value of an element. + DefaultValue *string `json:"defaultValue,omitempty" xmlrpc:"defaultValue,omitempty"` + + // The description of a preset element + Description *string `json:"description,omitempty" xmlrpc:"description,omitempty"` + + // The flag that indicates whether an element is enabled or not + Enabled *bool `json:"enabled,omitempty" xmlrpc:"enabled,omitempty"` + + // The extended description of a preset element + ExtendedDescription *string `json:"extendedDescription,omitempty" xmlrpc:"extendedDescription,omitempty"` + + // The flag that indicates whether an element is hidden or not + Hidden *bool `json:"hidden,omitempty" xmlrpc:"hidden,omitempty"` + + // The maximum value of an element + MaximumValue *int `json:"maximumValue,omitempty" xmlrpc:"maximumValue,omitempty"` + + // The minimum value of an element + MinimumValue *int `json:"minimumValue,omitempty" xmlrpc:"minimumValue,omitempty"` + + // The name of an preset element + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` + + // The name of a parent element + ParentName *string `json:"parentName,omitempty" xmlrpc:"parentName,omitempty"` + + // The type of an preset element. + Type *string `json:"type,omitempty" xmlrpc:"type,omitempty"` +} + +// Transcode preset element +type Container_Network_Media_Transcode_Preset_Element_Option struct { + Entity + + // The name of a additional preset element + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` + + // The value of a additional preset element + Value *string `json:"value,omitempty" xmlrpc:"value,omitempty"` +} + +// no documentation yet +type Container_Network_Message_Delivery_Email struct { + Entity + + // no documentation yet + Body *string `json:"body,omitempty" xmlrpc:"body,omitempty"` + + // no documentation yet + ContainsHtml *bool `json:"containsHtml,omitempty" xmlrpc:"containsHtml,omitempty"` + + // no documentation yet + From *string `json:"from,omitempty" xmlrpc:"from,omitempty"` + + // no documentation yet + Subject *string `json:"subject,omitempty" xmlrpc:"subject,omitempty"` + + // no documentation yet + To *string `json:"to,omitempty" xmlrpc:"to,omitempty"` +} + +// no documentation yet +type Container_Network_Message_Delivery_Email_Sendgrid_Account_Overview struct { + Entity + + // no documentation yet + CreditsAllowed *int `json:"creditsAllowed,omitempty" xmlrpc:"creditsAllowed,omitempty"` + + // no documentation yet + CreditsOverage *int `json:"creditsOverage,omitempty" xmlrpc:"creditsOverage,omitempty"` + + // no documentation yet + CreditsRemain *int `json:"creditsRemain,omitempty" xmlrpc:"creditsRemain,omitempty"` + + // no documentation yet + CreditsUsed *int `json:"creditsUsed,omitempty" xmlrpc:"creditsUsed,omitempty"` + + // no documentation yet + Package *string `json:"package,omitempty" xmlrpc:"package,omitempty"` + + // no documentation yet + Reputation *int `json:"reputation,omitempty" xmlrpc:"reputation,omitempty"` + + // no documentation yet + Requests *int `json:"requests,omitempty" xmlrpc:"requests,omitempty"` +} + +// no documentation yet +type Container_Network_Message_Delivery_Email_Sendgrid_Customer_Profile struct { + Entity + + // no documentation yet + Address *string `json:"address,omitempty" xmlrpc:"address,omitempty"` + + // no documentation yet + City *string `json:"city,omitempty" xmlrpc:"city,omitempty"` + + // no documentation yet + Country *string `json:"country,omitempty" xmlrpc:"country,omitempty"` + + // no documentation yet + Email *string `json:"email,omitempty" xmlrpc:"email,omitempty"` + + // no documentation yet + FirstName *string `json:"firstName,omitempty" xmlrpc:"firstName,omitempty"` + + // no documentation yet + LastName *string `json:"lastName,omitempty" xmlrpc:"lastName,omitempty"` + + // no documentation yet + Phone *string `json:"phone,omitempty" xmlrpc:"phone,omitempty"` + + // no documentation yet + State *string `json:"state,omitempty" xmlrpc:"state,omitempty"` + + // no documentation yet + Website *string `json:"website,omitempty" xmlrpc:"website,omitempty"` + + // no documentation yet + Zip *string `json:"zip,omitempty" xmlrpc:"zip,omitempty"` +} + +// no documentation yet +type Container_Network_Message_Delivery_Email_Sendgrid_List_Entry struct { + Entity + + // no documentation yet + Created *string `json:"created,omitempty" xmlrpc:"created,omitempty"` + + // no documentation yet + Email *string `json:"email,omitempty" xmlrpc:"email,omitempty"` + + // no documentation yet + Reason *string `json:"reason,omitempty" xmlrpc:"reason,omitempty"` + + // no documentation yet + Status *string `json:"status,omitempty" xmlrpc:"status,omitempty"` +} + +// no documentation yet +type Container_Network_Message_Delivery_Email_Sendgrid_Statistics struct { + Entity + + // no documentation yet + Blocks *int `json:"blocks,omitempty" xmlrpc:"blocks,omitempty"` + + // no documentation yet + Bounces *int `json:"bounces,omitempty" xmlrpc:"bounces,omitempty"` + + // no documentation yet + Clicks *int `json:"clicks,omitempty" xmlrpc:"clicks,omitempty"` + + // no documentation yet + Date *string `json:"date,omitempty" xmlrpc:"date,omitempty"` + + // no documentation yet + Delivered *int `json:"delivered,omitempty" xmlrpc:"delivered,omitempty"` + + // no documentation yet + InvalidEmail *int `json:"invalidEmail,omitempty" xmlrpc:"invalidEmail,omitempty"` + + // no documentation yet + Opens *int `json:"opens,omitempty" xmlrpc:"opens,omitempty"` + + // no documentation yet + RepeatBounces *int `json:"repeatBounces,omitempty" xmlrpc:"repeatBounces,omitempty"` + + // no documentation yet + RepeatSpamReports *int `json:"repeatSpamReports,omitempty" xmlrpc:"repeatSpamReports,omitempty"` + + // no documentation yet + RepeatUnsubscribes *int `json:"repeatUnsubscribes,omitempty" xmlrpc:"repeatUnsubscribes,omitempty"` + + // no documentation yet + Requests *int `json:"requests,omitempty" xmlrpc:"requests,omitempty"` + + // no documentation yet + SpamReports *int `json:"spamReports,omitempty" xmlrpc:"spamReports,omitempty"` + + // no documentation yet + UniqueClicks *int `json:"uniqueClicks,omitempty" xmlrpc:"uniqueClicks,omitempty"` + + // no documentation yet + UniqueOpens *int `json:"uniqueOpens,omitempty" xmlrpc:"uniqueOpens,omitempty"` + + // no documentation yet + Unsubscribes *int `json:"unsubscribes,omitempty" xmlrpc:"unsubscribes,omitempty"` +} + +// no documentation yet +type Container_Network_Message_Delivery_Email_Sendgrid_Statistics_Graph struct { + Entity + + // no documentation yet + GraphError *string `json:"graphError,omitempty" xmlrpc:"graphError,omitempty"` + + // no documentation yet + GraphImage *[]byte `json:"graphImage,omitempty" xmlrpc:"graphImage,omitempty"` + + // no documentation yet + GraphTitle *string `json:"graphTitle,omitempty" xmlrpc:"graphTitle,omitempty"` +} + +// no documentation yet +type Container_Network_Message_Delivery_Email_Sendgrid_Statistics_Options struct { + Entity + + // no documentation yet + AggregatesOnly *bool `json:"aggregatesOnly,omitempty" xmlrpc:"aggregatesOnly,omitempty"` + + // no documentation yet + Category *string `json:"category,omitempty" xmlrpc:"category,omitempty"` + + // no documentation yet + Days *int `json:"days,omitempty" xmlrpc:"days,omitempty"` + + // no documentation yet + EndDate *Time `json:"endDate,omitempty" xmlrpc:"endDate,omitempty"` + + // no documentation yet + SelectedStatistics []string `json:"selectedStatistics,omitempty" xmlrpc:"selectedStatistics,omitempty"` + + // no documentation yet + StartDate *Time `json:"startDate,omitempty" xmlrpc:"startDate,omitempty"` +} + +// no documentation yet +type Container_Network_Port_Statistic struct { + Entity + + // no documentation yet + AdministrativeStatus *int `json:"administrativeStatus,omitempty" xmlrpc:"administrativeStatus,omitempty"` + + // no documentation yet + InDiscardPackets *uint `json:"inDiscardPackets,omitempty" xmlrpc:"inDiscardPackets,omitempty"` + + // no documentation yet + InErrorPackets *uint `json:"inErrorPackets,omitempty" xmlrpc:"inErrorPackets,omitempty"` + + // no documentation yet + InOctets *uint `json:"inOctets,omitempty" xmlrpc:"inOctets,omitempty"` + + // no documentation yet + InUnicastPackets *uint `json:"inUnicastPackets,omitempty" xmlrpc:"inUnicastPackets,omitempty"` + + // no documentation yet + MaximumTransmissionUnit *uint `json:"maximumTransmissionUnit,omitempty" xmlrpc:"maximumTransmissionUnit,omitempty"` + + // no documentation yet + OperationalStatus *int `json:"operationalStatus,omitempty" xmlrpc:"operationalStatus,omitempty"` + + // no documentation yet + OutDiscardPackets *uint `json:"outDiscardPackets,omitempty" xmlrpc:"outDiscardPackets,omitempty"` + + // no documentation yet + OutErrorPackets *uint `json:"outErrorPackets,omitempty" xmlrpc:"outErrorPackets,omitempty"` + + // no documentation yet + OutOctets *uint `json:"outOctets,omitempty" xmlrpc:"outOctets,omitempty"` + + // no documentation yet + OutUnicastPackets *uint `json:"outUnicastPackets,omitempty" xmlrpc:"outUnicastPackets,omitempty"` + + // no documentation yet + PortDuplex *uint `json:"portDuplex,omitempty" xmlrpc:"portDuplex,omitempty"` + + // no documentation yet + Speed *uint `json:"speed,omitempty" xmlrpc:"speed,omitempty"` +} + +// no documentation yet +type Container_Network_Service_Resource_ObjectStorage_ConnectionInformation struct { + Entity + + // no documentation yet + Datacenter *string `json:"datacenter,omitempty" xmlrpc:"datacenter,omitempty"` + + // no documentation yet + DatacenterShortName *string `json:"datacenterShortName,omitempty" xmlrpc:"datacenterShortName,omitempty"` + + // no documentation yet + PrivateEndpoint *string `json:"privateEndpoint,omitempty" xmlrpc:"privateEndpoint,omitempty"` + + // no documentation yet + PublicEndpoint *string `json:"publicEndpoint,omitempty" xmlrpc:"publicEndpoint,omitempty"` +} + +// no documentation yet +type Container_Network_Storage_Backup_Evault_WebCc_Authentication_Details struct { + Entity + + // no documentation yet + EventValidation *string `json:"eventValidation,omitempty" xmlrpc:"eventValidation,omitempty"` + + // no documentation yet + ViewState *string `json:"viewState,omitempty" xmlrpc:"viewState,omitempty"` + + // no documentation yet + WebCcUrl *string `json:"webCcUrl,omitempty" xmlrpc:"webCcUrl,omitempty"` +} + +// SoftLayer's StorageLayer Evault services provides details regarding the the purchased vault. +// +// When a job is created using the Webcc Console, the job created is identified as a task on the vault. Using this service, information regarding the task can be retrieved. +// +// +type Container_Network_Storage_Evault_Vault_Task struct { + Entity + + // Unique identifier for the task. + Id *uint `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // The hostname provided at time of agent registration. + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` + + // Total compressed bytes used for the task. + UsedPoolsize *uint `json:"usedPoolsize,omitempty" xmlrpc:"usedPoolsize,omitempty"` +} + +// The SoftLayer_Container_Network_Storage_Evault_WebCc_AgentStatus will contain the timestamp of the last backup performed by the EVault agent. The agent status will also be returned. +type Container_Network_Storage_Evault_WebCc_AgentStatus struct { + Entity + + // Timestamp of last backup performed by the EVault backup agent + LastBackup *Time `json:"lastBackup,omitempty" xmlrpc:"lastBackup,omitempty"` + + // Status indicating the accumulative status result of all jobs performed by the evault agent. For example, if one job out three jobs failed agent status will by "Failed Backup(s)". + Status *string `json:"status,omitempty" xmlrpc:"status,omitempty"` +} + +// The SoftLayer_Container_Network_Storage_Evault_WebCc_BackupResults will contain the timeframe of backups and the results will also be returned. +type Container_Network_Storage_Evault_WebCc_BackupResults struct { + Entity + + // Timestamp of begin time + BeginTime *Time `json:"beginTime,omitempty" xmlrpc:"beginTime,omitempty"` + + // Count of backups with conflicts. + Conflict *string `json:"conflict,omitempty" xmlrpc:"conflict,omitempty"` + + // Timestamp of end time + EndTime *Time `json:"endTime,omitempty" xmlrpc:"endTime,omitempty"` + + // Count of failed backups. + Failed *string `json:"failed,omitempty" xmlrpc:"failed,omitempty"` + + // Count of successfull backups. + Success *string `json:"success,omitempty" xmlrpc:"success,omitempty"` +} + +// The SoftLayer_Container_Network_Storage_Evault_WebCc_JobDetails will contain basic details for all backup and restore jobs performed by the StorageLayer EVault service offering. +type Container_Network_Storage_Evault_WebCc_JobDetails struct { + Entity + + // The number of bytes currently used by the backup job. (provided only for backup jobs) + BytesUsed *uint `json:"bytesUsed,omitempty" xmlrpc:"bytesUsed,omitempty"` + + // Description of the backup/restore job + Description *string `json:"description,omitempty" xmlrpc:"description,omitempty"` + + // hardware id + HardwareId *int `json:"hardwareId,omitempty" xmlrpc:"hardwareId,omitempty"` + + // Date of the last jobrun. + LastRunDate *Time `json:"lastRunDate,omitempty" xmlrpc:"lastRunDate,omitempty"` + + // Name of the backup/restore job + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` + + // Size of backup job when it was first run. (provided only for backup jobs) + OriginalSize *uint `json:"originalSize,omitempty" xmlrpc:"originalSize,omitempty"` + + // Percentage of overall used space allocated by the job. (provided only for backup jobs) + PercentageOfTotalUsage *int `json:"percentageOfTotalUsage,omitempty" xmlrpc:"percentageOfTotalUsage,omitempty"` + + // Result of the latest jobrun. + Result *string `json:"result,omitempty" xmlrpc:"result,omitempty"` + + // virtual guest id + VirtualGuestId *int `json:"virtualGuestId,omitempty" xmlrpc:"virtualGuestId,omitempty"` +} + +// The SoftLayer_Container_Network_Storage_Host will contain the reference id field for the object associated with the host. The host object type will also be returned. +type Container_Network_Storage_Host struct { + Entity + + // Reference id field for object associated with host. + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // Type for the object associated with host + ObjectType *string `json:"objectType,omitempty" xmlrpc:"objectType,omitempty"` +} + +// SoftLayer_Container_Network_Storage_Hub_ObjectStorage_Bucket provides description of a bucket +type Container_Network_Storage_Hub_ObjectStorage_Bucket struct { + Entity + + // no documentation yet + BytesUsed *int `json:"bytesUsed,omitempty" xmlrpc:"bytesUsed,omitempty"` + + // no documentation yet + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` + + // no documentation yet + ObjectCount *int `json:"objectCount,omitempty" xmlrpc:"objectCount,omitempty"` + + // no documentation yet + StorageLocation *string `json:"storageLocation,omitempty" xmlrpc:"storageLocation,omitempty"` +} + +// SoftLayer_Container_Network_Storage_Hub_ObjectStorage_ContentDeliveryUrl provides specific details is a container which contains the cdn urls associated with an object storage account +type Container_Network_Storage_Hub_ObjectStorage_ContentDeliveryUrl struct { + Entity + + // no documentation yet + Datacenter *string `json:"datacenter,omitempty" xmlrpc:"datacenter,omitempty"` + + // no documentation yet + FlashUrl *string `json:"flashUrl,omitempty" xmlrpc:"flashUrl,omitempty"` + + // no documentation yet + HttpUrl *string `json:"httpUrl,omitempty" xmlrpc:"httpUrl,omitempty"` +} + +// SoftLayer_Container_Network_Storage_Hub_ObjectStorage_Endpoint provides specific details on available endpoint URLs and locations. +type Container_Network_Storage_Hub_ObjectStorage_Endpoint struct { + Entity + + // no documentation yet + Location *string `json:"location,omitempty" xmlrpc:"location,omitempty"` + + // no documentation yet + Region *string `json:"region,omitempty" xmlrpc:"region,omitempty"` + + // no documentation yet + Type *string `json:"type,omitempty" xmlrpc:"type,omitempty"` + + // no documentation yet + Url *string `json:"url,omitempty" xmlrpc:"url,omitempty"` +} + +// SoftLayer_Container_Network_Storage_Hub_ObjectStorage_File provides specific details that only apply to files that are sent or received from CloudLayer storage resources. +type Container_Network_Storage_Hub_ObjectStorage_File struct { + Container_Utility_File_Entity + + // no documentation yet + Folder *string `json:"folder,omitempty" xmlrpc:"folder,omitempty"` + + // no documentation yet + Hash *string `json:"hash,omitempty" xmlrpc:"hash,omitempty"` +} + +// SoftLayer_Container_Network_Storage_Hub_Container provides details about containers which store collections of files. +type Container_Network_Storage_Hub_ObjectStorage_Folder struct { + Entity + + // no documentation yet + Bytes *uint `json:"bytes,omitempty" xmlrpc:"bytes,omitempty"` + + // no documentation yet + Count *uint `json:"count,omitempty" xmlrpc:"count,omitempty"` + + // no documentation yet + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` +} + +// SoftLayer_Container_Network_Storage_Hub_ObjectStorage_Node provides detailed information for a particular object storage node +type Container_Network_Storage_Hub_ObjectStorage_Node struct { + Entity + + // no documentation yet + DeviceName *string `json:"deviceName,omitempty" xmlrpc:"deviceName,omitempty"` + + // no documentation yet + ResourceName *string `json:"resourceName,omitempty" xmlrpc:"resourceName,omitempty"` + + // no documentation yet + UserAuthUrl *string `json:"userAuthUrl,omitempty" xmlrpc:"userAuthUrl,omitempty"` +} + +// SoftLayer_Container_Network_Storage_Hub_ObjectStorage_Policy provides specific details on available storage policies. +type Container_Network_Storage_Hub_ObjectStorage_Policy struct { + Entity + + // no documentation yet + PolicyCode *string `json:"policyCode,omitempty" xmlrpc:"policyCode,omitempty"` +} + +// SoftLayer_Container_Network_Storage_Hub_ObjectStorage_Provision provides description of a provision +type Container_Network_Storage_Hub_ObjectStorage_Provision struct { + Entity + + // no documentation yet + AccountId *int `json:"accountId,omitempty" xmlrpc:"accountId,omitempty"` + + // no documentation yet + Provision *string `json:"provision,omitempty" xmlrpc:"provision,omitempty"` + + // no documentation yet + ProvisionCreateDate *Time `json:"provisionCreateDate,omitempty" xmlrpc:"provisionCreateDate,omitempty"` + + // no documentation yet + ProvisionModifyDate *Time `json:"provisionModifyDate,omitempty" xmlrpc:"provisionModifyDate,omitempty"` + + // no documentation yet + ProvisionTime *int `json:"provisionTime,omitempty" xmlrpc:"provisionTime,omitempty"` +} + +// no documentation yet +type Container_Network_Storage_NetworkConnectionInformation struct { + Entity + + // no documentation yet + Id *string `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // no documentation yet + IpAddress *string `json:"ipAddress,omitempty" xmlrpc:"ipAddress,omitempty"` + + // no documentation yet + StorageType *string `json:"storageType,omitempty" xmlrpc:"storageType,omitempty"` +} + +// Container for Volume Duplicate Information +type Container_Network_Storage_VolumeDuplicateParameters struct { + Entity + + // The number of ongoing concurrentDuplicateOperations. + ConcurrentDuplicateOperations *int `json:"concurrentDuplicateOperations,omitempty" xmlrpc:"concurrentDuplicateOperations,omitempty"` + + // The iopsPerGB of the volume + IopsPerGb *Float64 `json:"iopsPerGb,omitempty" xmlrpc:"iopsPerGb,omitempty"` + + // Returns true if volume can be duplicated; false otherwise + IsDuplicatable *bool `json:"isDuplicatable,omitempty" xmlrpc:"isDuplicatable,omitempty"` + + // This represents the location id + LocationId *int `json:"locationId,omitempty" xmlrpc:"locationId,omitempty"` + + // This represents the location name + LocationName *string `json:"locationName,omitempty" xmlrpc:"locationName,omitempty"` + + // The maximumIopsPerGb allowed for a duplicated volume + MaximumIopsPerGb *Float64 `json:"maximumIopsPerGb,omitempty" xmlrpc:"maximumIopsPerGb,omitempty"` + + // The maximumIopsTier allowed for a duplicated volume + MaximumIopsTier *Float64 `json:"maximumIopsTier,omitempty" xmlrpc:"maximumIopsTier,omitempty"` + + // The maximumVolumeSize allowed for a duplicated volume + MaximumVolumeSize *int `json:"maximumVolumeSize,omitempty" xmlrpc:"maximumVolumeSize,omitempty"` + + // The minimumIopsPerGb allowed for a duplicated volume + MinimumIopsPerGb *Float64 `json:"minimumIopsPerGb,omitempty" xmlrpc:"minimumIopsPerGb,omitempty"` + + // The minimumIopsTier allowed for a duplicated volume + MinimumIopsTier *Float64 `json:"minimumIopsTier,omitempty" xmlrpc:"minimumIopsTier,omitempty"` + + // The minimumVolumeSize allowed for a duplicated volume + MinimumVolumeSize *int `json:"minimumVolumeSize,omitempty" xmlrpc:"minimumVolumeSize,omitempty"` + + // The snapshotSpaceSize allowed for a cloned volume + SnapshotSpaceSize *int `json:"snapshotSpaceSize,omitempty" xmlrpc:"snapshotSpaceSize,omitempty"` + + // The volume duplicate status description + Status *string `json:"status,omitempty" xmlrpc:"status,omitempty"` + + // This represents the volume username + VolumeUsername *string `json:"volumeUsername,omitempty" xmlrpc:"volumeUsername,omitempty"` +} + +// SoftLayer_Container_Subnet_IPAddress models an IP v4 address as it exists as a member of it's subnet, letting the user know if it is a network identifier, gateway, broadcast, or useable address. Addresses that are neither the network identifier nor the gateway nor the broadcast addresses are usable by SoftLayer servers. +type Container_Network_Subnet_IpAddress struct { + Entity + + // The hardware that an IP address is associated with. + Hardware *Hardware `json:"hardware,omitempty" xmlrpc:"hardware,omitempty"` + + // An IP address expressed in dotted-quad notation. + IpAddress *string `json:"ipAddress,omitempty" xmlrpc:"ipAddress,omitempty"` + + // Whether an IP address is its subnet's broadcast address. + IsBroadcastAddress *bool `json:"isBroadcastAddress,omitempty" xmlrpc:"isBroadcastAddress,omitempty"` + + // Whether an IP address is its subnet's gateway address. Gateway addresses exist on SoftLayer's routers and many not be assigned to servers. + IsGatewayAddress *bool `json:"isGatewayAddress,omitempty" xmlrpc:"isGatewayAddress,omitempty"` + + // Whether an IP address is its subnet's network identifier address. + IsNetworkAddress *bool `json:"isNetworkAddress,omitempty" xmlrpc:"isNetworkAddress,omitempty"` +} + +// SoftLayer_Container_Network_Subnet_Registration_SubnetReference is provided to reference [[SoftLayer_Network_Subnet_Registration]] object and the [[SoftLayer_Network_Subnet]] it references, in CIDR form. +type Container_Network_Subnet_Registration_SubnetReference struct { + Entity + + // The ID of the [[SoftLayer_Network_Subnet_Registration]] object. + RegistrationId *int `json:"registrationId,omitempty" xmlrpc:"registrationId,omitempty"` + + // The subnet address in CIDR form. + SubnetCidr *string `json:"subnetCidr,omitempty" xmlrpc:"subnetCidr,omitempty"` +} + +// SoftLayer_Container_Subnet_Registration_TransactionDetails is provided to return details of a newly created Subnet Registration Transaction. +type Container_Network_Subnet_Registration_TransactionDetails struct { + Entity + + // The IDs and Subnets of the [[SoftLayer_Network_Subnet_Registration]] object. + SubnetReferences []Container_Network_Subnet_Registration_SubnetReference `json:"subnetReferences,omitempty" xmlrpc:"subnetReferences,omitempty"` + + // The ID of the Transaction object. + TransactionId *int `json:"transactionId,omitempty" xmlrpc:"transactionId,omitempty"` +} + +// no documentation yet +type Container_Notification_Mass_Filter_TemplateKey struct { + Entity +} + +// no documentation yet +type Container_Notification_Mass_Filter_TemplateValue struct { + Entity +} + +// Represents the acceptance status of a Policy. +type Container_Policy_Acceptance struct { + Entity + + // Flag to indicate if a policy has been previously accepted. + AcceptedFlag *bool `json:"acceptedFlag,omitempty" xmlrpc:"acceptedFlag,omitempty"` + + // Name of the policy for which we are representing it's acceptance status. + PolicyName *string `json:"policyName,omitempty" xmlrpc:"policyName,omitempty"` + + // ID of the [[SoftLayer_Product_Item_Policy_Assignment]]. + ProductPolicyAssignmentId *int `json:"productPolicyAssignmentId,omitempty" xmlrpc:"productPolicyAssignmentId,omitempty"` +} + +// The SoftLayer_Container_Product_Item_Category data type represents a single product item category. +type Container_Product_Item_Category struct { + Entity + + // identifier for category. + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` +} + +// The SoftLayer_Container_Product_Item_Category_Question_Answer data type represents an answer to an item category question. It contains the category, the question being answered, and the answer. +type Container_Product_Item_Category_Question_Answer struct { + Entity + + // The answer to the question. + Answer *string `json:"answer,omitempty" xmlrpc:"answer,omitempty"` + + // The product item category code. + CategoryCode *string `json:"categoryCode,omitempty" xmlrpc:"categoryCode,omitempty"` + + // The product item category id. + CategoryId *int `json:"categoryId,omitempty" xmlrpc:"categoryId,omitempty"` + + // The product item category question id. + QuestionId *int `json:"questionId,omitempty" xmlrpc:"questionId,omitempty"` +} + +// The SoftLayer_Container_Product_Item_Category_ZeroFee_Count data type represents a count of zero fee billing/invoice items. +type Container_Product_Item_Category_ZeroFee_Count struct { + Entity + + // The product item category code. + CategoryCode *string `json:"categoryCode,omitempty" xmlrpc:"categoryCode,omitempty"` + + // The product item category id. + CategoryId *int `json:"categoryId,omitempty" xmlrpc:"categoryId,omitempty"` + + // The product item category name. + CategoryName *string `json:"categoryName,omitempty" xmlrpc:"categoryName,omitempty"` + + // The count of zero fee items for this category. + Count *int `json:"count,omitempty" xmlrpc:"count,omitempty"` +} + +// The SoftLayer_Container_Product_Item_Discount_Program data type represents the information about a discount that is related to a specific product item. +type Container_Product_Item_Discount_Program struct { + Entity + + // The number of times the item discount(s) may be applied for that order container. At a minimum the number will be 1 and at most, it will match the quantity of the order container. + ApplicableQuantity *int `json:"applicableQuantity,omitempty" xmlrpc:"applicableQuantity,omitempty"` + + // The product item that the discount applies to. + Item *Product_Item `json:"item,omitempty" xmlrpc:"item,omitempty"` + + // The sum of the one time fees (one time, setup and labor) of the prices of this container multiplied by the applicable quantity of this container. + OneTimeAmount *Float64 `json:"oneTimeAmount,omitempty" xmlrpc:"oneTimeAmount,omitempty"` + + // The tax amount on the one time fees (one time, setup and labor) of the prices of this container mulitiplied by the applicable quantity of this container. + OneTimeTax *Float64 `json:"oneTimeTax,omitempty" xmlrpc:"oneTimeTax,omitempty"` + + // The item prices that contain the amount of the discount in the recurringFee field. There may be one or more prices. + Prices []Product_Item_Price `json:"prices,omitempty" xmlrpc:"prices,omitempty"` + + // The sum of the one time fees (one time, setup and labor) of the prices of this container multiplied by the applicable quantity of this container with the proration factor applied. + ProratedOneTimeAmount *Float64 `json:"proratedOneTimeAmount,omitempty" xmlrpc:"proratedOneTimeAmount,omitempty"` + + // The tax amount on the one time fees (one time, setup and labor) of the prices of this container mulitiplied by the applicable quantity of this container with the proration factor applied. + ProratedOneTimeTax *Float64 `json:"proratedOneTimeTax,omitempty" xmlrpc:"proratedOneTimeTax,omitempty"` + + // The sum of the recurring fees of the prices of this container multiplied by the applicable quantity of this container with the proration factor applied. + ProratedRecurringAmount *Float64 `json:"proratedRecurringAmount,omitempty" xmlrpc:"proratedRecurringAmount,omitempty"` + + // The tax amount on the recurring fees of the prices of this container mulitiplied by the applicable quantity of this container with the proration factor applied. + ProratedRecurringTax *Float64 `json:"proratedRecurringTax,omitempty" xmlrpc:"proratedRecurringTax,omitempty"` + + // The sum of the recurring fees of the prices of this container multiplied by the applicable quantity of this container. + RecurringAmount *Float64 `json:"recurringAmount,omitempty" xmlrpc:"recurringAmount,omitempty"` + + // The tax amount on the recurring fees of the prices of this container mulitiplied by the applicable quantity of this container. + RecurringTax *Float64 `json:"recurringTax,omitempty" xmlrpc:"recurringTax,omitempty"` +} + +// This is the datatype that needs to be populated and sent to SoftLayer_Product_Order::placeOrder. This datatype has everything required to place an order with SoftLayer. +type Container_Product_Order struct { + Entity + + // Flag for identifying an order for Big Data Deployment. + BigDataOrderFlag *bool `json:"bigDataOrderFlag,omitempty" xmlrpc:"bigDataOrderFlag,omitempty"` + + // Billing Information associated with an order. For existing customers this information is completely ignored. Do not send this information for existing customers. + BillingInformation *Container_Product_Order_Billing_Information `json:"billingInformation,omitempty" xmlrpc:"billingInformation,omitempty"` + + // This is the ID of the [[SoftLayer_Billing_Order_Item]] of this configuration/container. It is used for rebuilding an order container from a quote and is set automatically. + BillingOrderItemId *int `json:"billingOrderItemId,omitempty" xmlrpc:"billingOrderItemId,omitempty"` + + // The URL to which PayPal redirects browser after checkout has been canceled before completion of a payment. + CancelUrl *string `json:"cancelUrl,omitempty" xmlrpc:"cancelUrl,omitempty"` + + // Added by Gopherlayer. This hints to the API what kind of product order this is. + ComplexType *string `json:"complexType,omitempty" xmlrpc:"complexType,omitempty"` + + // User-specified description to identify a particular order container. This is useful if you have a multi-configuration order (multiple orderContainers) and you want to be able to easily determine one from another. Populating this value may be helpful if an exception is thrown when placing an order and it's tied to a specific order container. + ContainerIdentifier *string `json:"containerIdentifier,omitempty" xmlrpc:"containerIdentifier,omitempty"` + + // This hash is internally-generated and is used to for tracking order containers. + ContainerSplHash *string `json:"containerSplHash,omitempty" xmlrpc:"containerSplHash,omitempty"` + + // The currency type chosen at checkout. + CurrencyShortName *string `json:"currencyShortName,omitempty" xmlrpc:"currencyShortName,omitempty"` + + // Device Fingerprint Identifier - Optional. + DeviceFingerprintId *string `json:"deviceFingerprintId,omitempty" xmlrpc:"deviceFingerprintId,omitempty"` + + // This is the configuration identifier for tracking orders on the HTML order forms. + DisplayLayerSessionId *string `json:"displayLayerSessionId,omitempty" xmlrpc:"displayLayerSessionId,omitempty"` + + // no documentation yet + ExtendedHardwareTesting *bool `json:"extendedHardwareTesting,omitempty" xmlrpc:"extendedHardwareTesting,omitempty"` + + // The [[SoftLayer_Product_Item_Price]] for the Flexible Credit Program discount. The oneTimeFee field contains the calculated discount being applied to the order. + FlexibleCreditProgramPrice *Product_Item_Price `json:"flexibleCreditProgramPrice,omitempty" xmlrpc:"flexibleCreditProgramPrice,omitempty"` + + // For orders that contain servers (bare metal, virtual server, big data, etc.), the hardware property is required. This property is an array of [[SoftLayer_Hardware]] objects. The hostname and domain properties are required for each hardware object. Note that virtual server ([[SoftLayer_Container_Product_Order_Virtual_Guest]]) orders may populate this field instead of the virtualGuests property. + Hardware []Hardware `json:"hardware,omitempty" xmlrpc:"hardware,omitempty"` + + // An optional virtual disk image template identifier to be used as an installation base for a computing instance order + ImageTemplateGlobalIdentifier *string `json:"imageTemplateGlobalIdentifier,omitempty" xmlrpc:"imageTemplateGlobalIdentifier,omitempty"` + + // An optional virtual disk image template identifier to be used as an installation base for a computing instance order + ImageTemplateId *int `json:"imageTemplateId,omitempty" xmlrpc:"imageTemplateId,omitempty"` + + // Flag to identify a "managed" order. This value is set internally. + IsManagedOrder *int `json:"isManagedOrder,omitempty" xmlrpc:"isManagedOrder,omitempty"` + + // The collection of [[SoftLayer_Container_Product_Item_Category_Question_Answer]] for any product category that has additional questions requiring user input. + ItemCategoryQuestionAnswers []Container_Product_Item_Category_Question_Answer `json:"itemCategoryQuestionAnswers,omitempty" xmlrpc:"itemCategoryQuestionAnswers,omitempty"` + + // The [[SoftLayer_Location_Region]] keyname or specific [[SoftLayer_Location_Datacenter]] id where the order should be provisioned. If this value is provided and the regionalGroup property is also specified, an exception will be thrown indicating that only 1 is allowed. + Location *string `json:"location,omitempty" xmlrpc:"location,omitempty"` + + // This [[SoftLayer_Location]] object will be determined from the location property and will be returned in the order verification or placement response. Any value specified here will get overwritten by the verification process. + LocationObject *Location `json:"locationObject,omitempty" xmlrpc:"locationObject,omitempty"` + + // A generic message about the order. Does not need to be sent in with any orders. + Message *string `json:"message,omitempty" xmlrpc:"message,omitempty"` + + // Orders may contain an array of configurations. Populating this property allows you to purchase multiple configurations within a single order. Each order container will have its own individual settings independent of the other order containers. For example, it is possible to order a bare metal server in one configuration and a virtual server in another. + // + // If orderContainers is populated on the base order container, most of the configuration-specific properties are ignored on the base container. For example, prices, location and packageId will be ignored on the base container, but since the billingInformation is a property that's not specific to a single order container (but the order as a whole) it must be populated on the base container. + OrderContainers []Container_Product_Order `json:"orderContainers,omitempty" xmlrpc:"orderContainers,omitempty"` + + // This is deprecated and does not do anything. + OrderHostnames []string `json:"orderHostnames,omitempty" xmlrpc:"orderHostnames,omitempty"` + + // Collection of exceptions resulting from the verification of the order. This value is set internally and is not required for end users when placing an order. When placing API orders, users can use this value to determine the container-specific exception that was thrown. + OrderVerificationExceptions []Container_Exception `json:"orderVerificationExceptions,omitempty" xmlrpc:"orderVerificationExceptions,omitempty"` + + // The [[SoftLayer_Product_Package]] id for an order container. This is required to place an order. + PackageId *int `json:"packageId,omitempty" xmlrpc:"packageId,omitempty"` + + // The Payment Type is Optional. If nothing is sent in, then the normal method of payment will be used. For paypal customers, this means a paypalToken will be returned in the receipt. This token is to be used on the paypal website to complete the order. For Credit Card customers, the card on file in our system will be used to make an initial authorization. To force the order to use a payment type, use one of the following: CARD_ON_FILE or PAYPAL + PaymentType *string `json:"paymentType,omitempty" xmlrpc:"paymentType,omitempty"` + + // The post-tax recurring charge for the order. This is the sum of preTaxRecurring + totalRecurringTax. + PostTaxRecurring *Float64 `json:"postTaxRecurring,omitempty" xmlrpc:"postTaxRecurring,omitempty"` + + // The post-tax recurring hourly charge for the order. Since taxes are not calculated for hourly orders, this value will be the same as preTaxRecurringHourly. + PostTaxRecurringHourly *Float64 `json:"postTaxRecurringHourly,omitempty" xmlrpc:"postTaxRecurringHourly,omitempty"` + + // The post-tax recurring monthly charge for the order. This is the sum of preTaxRecurringMonthly + totalRecurringTax. + PostTaxRecurringMonthly *Float64 `json:"postTaxRecurringMonthly,omitempty" xmlrpc:"postTaxRecurringMonthly,omitempty"` + + // The post-tax setup fees of the order. This is the sum of preTaxSetup + totalSetupTax; + PostTaxSetup *Float64 `json:"postTaxSetup,omitempty" xmlrpc:"postTaxSetup,omitempty"` + + // The pre-tax recurring total of the order. If there are mixed monthly and hourly prices on the order, this will be the sum of preTaxRecurringHourly and preTaxRecurringMonthly. + PreTaxRecurring *Float64 `json:"preTaxRecurring,omitempty" xmlrpc:"preTaxRecurring,omitempty"` + + // The pre-tax hourly recurring total of the order. If there are only monthly prices on the order, this value will be 0. + PreTaxRecurringHourly *Float64 `json:"preTaxRecurringHourly,omitempty" xmlrpc:"preTaxRecurringHourly,omitempty"` + + // The pre-tax monthly recurring total of the order. If there are only hourly prices on the order, this value will be 0. + PreTaxRecurringMonthly *Float64 `json:"preTaxRecurringMonthly,omitempty" xmlrpc:"preTaxRecurringMonthly,omitempty"` + + // The pre-tax setup fee total of the order. + PreTaxSetup *Float64 `json:"preTaxSetup,omitempty" xmlrpc:"preTaxSetup,omitempty"` + + // If there are any presale events available for an order, this value will be populated. It is set internally and is not required for end users when placing an order. See [[SoftLayer_Sales_Presale_Event]] for more info. + PresaleEvent *Sales_Presale_Event `json:"presaleEvent,omitempty" xmlrpc:"presaleEvent,omitempty"` + + // A preset configuration id for the package. Is required if not submitting any prices. + PresetId *int `json:"presetId,omitempty" xmlrpc:"presetId,omitempty"` + + // This is a collection of [[SoftLayer_Product_Item_Price]] objects. The only required property to populate for an item price object when ordering is its id - all other supplied information about the price (e.g., recurringFee, setupFee, etc.) will be ignored. Unless the [[SoftLayer_Product_Package]] associated with the order allows for preset prices, this property is required to place an order. + Prices []Product_Item_Price `json:"prices,omitempty" xmlrpc:"prices,omitempty"` + + // The id of a [[SoftLayer_Hardware_Component_Partition_Template]]. This property is optional. If no partition template is provided, a default will be used according to the operating system chosen with the order. Using the [[SoftLayer_Hardware_Component_Partition_OperatingSystem]] service, getPartitionTemplates will return those available for the particular operating system. + PrimaryDiskPartitionId *int `json:"primaryDiskPartitionId,omitempty" xmlrpc:"primaryDiskPartitionId,omitempty"` + + // Priorities to set on replication set servers. + Priorities []string `json:"priorities,omitempty" xmlrpc:"priorities,omitempty"` + + // Flag for identifying a container as Virtual Server (Private Node). + PrivateCloudOrderFlag *bool `json:"privateCloudOrderFlag,omitempty" xmlrpc:"privateCloudOrderFlag,omitempty"` + + // Type of Virtual Server (Private Node) order. Potential values: INITIAL, ADDHOST, ADDIPS, ADDZONE + PrivateCloudOrderType *string `json:"privateCloudOrderType,omitempty" xmlrpc:"privateCloudOrderType,omitempty"` + + // Optional promotion code for an order. + PromotionCode *string `json:"promotionCode,omitempty" xmlrpc:"promotionCode,omitempty"` + + // Generic properties. + Properties []Container_Product_Order_Property `json:"properties,omitempty" xmlrpc:"properties,omitempty"` + + // The Prorated Initial Charge plus the balance on the account. Only the recurring fees are prorated. Here's how the calculation works: We take the postTaxRecurring value and we prorate it based on the time between now and the next bill date for this account. After this, we add in the setup fee since this is not prorated. Then, if there is a balance on the account, we add that to the account. In the event that there is a credit balance on the account, we will subtract this amount from the order total. If the credit balance on the account is greater than the prorated initial charge, the order will go through without a charge to the credit card on the account or requiring a paypal payment. The credit on the account will be reduced by the order total, and the order will await approval from sales, as normal. If there is a pending order already in the system, We will ignore the balance on the account completely, in the calculation of the initial charge. This is to protect against two orders coming into the system and getting the benefit of a credit balance, or worse, both orders being charged the order amount + the balance on the account. + ProratedInitialCharge *Float64 `json:"proratedInitialCharge,omitempty" xmlrpc:"proratedInitialCharge,omitempty"` + + // This is the same as the proratedInitialCharge, except the balance on the account is ignored. This is the prorated total amount of the order. + ProratedOrderTotal *Float64 `json:"proratedOrderTotal,omitempty" xmlrpc:"proratedOrderTotal,omitempty"` + + // The URLs for scripts to execute on their respective servers after they have been provisioned. Provision scripts are not available for Microsoft Windows servers. + ProvisionScripts []string `json:"provisionScripts,omitempty" xmlrpc:"provisionScripts,omitempty"` + + // The quantity of the item being ordered + Quantity *int `json:"quantity,omitempty" xmlrpc:"quantity,omitempty"` + + // A custom name to be assigned to the quote. + QuoteName *string `json:"quoteName,omitempty" xmlrpc:"quoteName,omitempty"` + + // Specifying a regional group name allows you to not worry about placing your server or service at a specific datacenter, but to any datacenter within that regional group. See [[SoftLayer_Location_Group_Regional]] to get a list of available regional group names. + // + // location and regionalGroup are mutually exclusive on an order container. If both location and regionalGroup are provided, an exception will be thrown indicating that only 1 is allowed. + // + // If a regional group is provided and VLANs are specified (within the hardware or virtualGuests properties), we will use the datacenter where the VLANs are located. If no VLANs are specified, we will use the preferred datacenter on the regional group object. + RegionalGroup *string `json:"regionalGroup,omitempty" xmlrpc:"regionalGroup,omitempty"` + + // An optional resource group identifier specifying the resource group to attach the order to + ResourceGroupId *int `json:"resourceGroupId,omitempty" xmlrpc:"resourceGroupId,omitempty"` + + // This variable specifies the name of the resource group the server configuration belongs to. For MongoDB Replica sets, it would be the replica set name. + ResourceGroupName *string `json:"resourceGroupName,omitempty" xmlrpc:"resourceGroupName,omitempty"` + + // An optional resource group template identifier to be used as a deployment base for a Virtual Server (Private Node) order. + ResourceGroupTemplateId *int `json:"resourceGroupTemplateId,omitempty" xmlrpc:"resourceGroupTemplateId,omitempty"` + + // The URL to which PayPal redirects browser after a payment is completed. + ReturnUrl *string `json:"returnUrl,omitempty" xmlrpc:"returnUrl,omitempty"` + + // This flag indicates that the quote should be sent to the email address associated with the account or order. + SendQuoteEmailFlag *bool `json:"sendQuoteEmailFlag,omitempty" xmlrpc:"sendQuoteEmailFlag,omitempty"` + + // The number of cores for the server being ordered. This value is set internally. + ServerCoreCount *int `json:"serverCoreCount,omitempty" xmlrpc:"serverCoreCount,omitempty"` + + // The token of a requesting service. Do not set. + ServiceToken *string `json:"serviceToken,omitempty" xmlrpc:"serviceToken,omitempty"` + + // An optional computing instance identifier to be used as an installation base for a computing instance order + SourceVirtualGuestId *int `json:"sourceVirtualGuestId,omitempty" xmlrpc:"sourceVirtualGuestId,omitempty"` + + // The containers which hold SoftLayer_Security_Ssh_Key IDs to add to their respective servers. The order of containers passed in needs to match the order they are assigned to either hardware or virtualGuests. SSH Keys will not be assigned for servers with Microsoft Windows. + SshKeys []Container_Product_Order_SshKeys `json:"sshKeys,omitempty" xmlrpc:"sshKeys,omitempty"` + + // An optional parameter for step-based order processing. + StepId *int `json:"stepId,omitempty" xmlrpc:"stepId,omitempty"` + + // + // + // For orders that want to add storage groups such as RAID across multiple disks, simply add [[SoftLayer_Container_Product_Order_Storage_Group]] objects to this array. Storage groups will only be used if the 'RAID' disk controller price is selected. Any other disk controller types will ignore the storage groups set here. + // + // The first storage group in this array will be considered the primary storage group, which is used for the OS. Any other storage groups will act as data storage. + // + // + StorageGroups []Container_Product_Order_Storage_Group `json:"storageGroups,omitempty" xmlrpc:"storageGroups,omitempty"` + + // The order container may not contain the final tax rates when it is returned from [[SoftLayer_Product_Order/verifyOrder|verifyOrder]]. This hash will facilitate checking if the tax rates have finished being calculated and retrieving the accurate tax rate values. + TaxCacheHash *string `json:"taxCacheHash,omitempty" xmlrpc:"taxCacheHash,omitempty"` + + // Flag to indicate if the order container has the final tax rates for the order. Some tax rates are calculated in the background because they take longer, and they might not be finished when the container is returned from [[SoftLayer_Product_Order/verifyOrder|verifyOrder]]. + TaxCompletedFlag *bool `json:"taxCompletedFlag,omitempty" xmlrpc:"taxCompletedFlag,omitempty"` + + // The SoftLayer_Product_Item_Price for the Tech Incubator discount. The oneTimeFee field contain the calculated discount being applied to the order. + TechIncubatorItemPrice *Product_Item_Price `json:"techIncubatorItemPrice,omitempty" xmlrpc:"techIncubatorItemPrice,omitempty"` + + // The total tax portion of the recurring fees. + TotalRecurringTax *Float64 `json:"totalRecurringTax,omitempty" xmlrpc:"totalRecurringTax,omitempty"` + + // The tax amount of the setup fees. + TotalSetupTax *Float64 `json:"totalSetupTax,omitempty" xmlrpc:"totalSetupTax,omitempty"` + + // An optional flag to use hourly pricing instead of standard monthly pricing. + UseHourlyPricing *bool `json:"useHourlyPricing,omitempty" xmlrpc:"useHourlyPricing,omitempty"` + + // For virtual guest (virtual server) orders, this property is required if you did not specify data in the hardware property. This is an array of [[SoftLayer_Virtual_Guest]] objects. The hostname and domain properties are required for each virtual guest object. There is no need to specify data in this property and the hardware property - only one is required for virtual server orders. + VirtualGuests []Virtual_Guest `json:"virtualGuests,omitempty" xmlrpc:"virtualGuests,omitempty"` +} + +// This datatype is to be used for data transfer requests. +type Container_Product_Order_Account_Media_Data_Transfer_Request struct { + Container_Product_Order + + // An instance of [[SoftLayer_Account_Media_Data_Transfer_Request]] + Request *Account_Media_Data_Transfer_Request `json:"request,omitempty" xmlrpc:"request,omitempty"` +} + +// This is the datatype that needs to be populated and sent to SoftLayer_Product_Order::placeOrder. The SoftLayer_Container_Product_Order_Attribute_Address datatype contains the address information. +type Container_Product_Order_Attribute_Address struct { + Entity + + // The physical street address. + AddressLine1 *string `json:"addressLine1,omitempty" xmlrpc:"addressLine1,omitempty"` + + // The second line in the address. Information such as suite number goes here. + AddressLine2 *string `json:"addressLine2,omitempty" xmlrpc:"addressLine2,omitempty"` + + // The city name + City *string `json:"city,omitempty" xmlrpc:"city,omitempty"` + + // The 2-character Country code. (i.e. US) + CountryCode *string `json:"countryCode,omitempty" xmlrpc:"countryCode,omitempty"` + + // The non US/Canadian state or region. + NonUsState *string `json:"nonUsState,omitempty" xmlrpc:"nonUsState,omitempty"` + + // The Zip or Postal Code. + PostalCode *string `json:"postalCode,omitempty" xmlrpc:"postalCode,omitempty"` + + // The state or region. + State *string `json:"state,omitempty" xmlrpc:"state,omitempty"` +} + +// This is the datatype that needs to be populated and sent to SoftLayer_Product_Order::placeOrder. The SoftLayer_Container_Product_Order_Attribute_Contact datatype contains the contact information. +type Container_Product_Order_Attribute_Contact struct { + Entity + + // The address information of the contact. + Address *Container_Product_Order_Attribute_Address `json:"address,omitempty" xmlrpc:"address,omitempty"` + + // The email address of the contact. + EmailAddress *string `json:"emailAddress,omitempty" xmlrpc:"emailAddress,omitempty"` + + // The fax number associated with a contact. This is an optional value. + FaxNumber *string `json:"faxNumber,omitempty" xmlrpc:"faxNumber,omitempty"` + + // The first name of the contact. + FirstName *string `json:"firstName,omitempty" xmlrpc:"firstName,omitempty"` + + // The last name of the contact. + LastName *string `json:"lastName,omitempty" xmlrpc:"lastName,omitempty"` + + // The organization name of the contact. + OrganizationName *string `json:"organizationName,omitempty" xmlrpc:"organizationName,omitempty"` + + // The phone number associated with a contact. + PhoneNumber *string `json:"phoneNumber,omitempty" xmlrpc:"phoneNumber,omitempty"` + + // The title of the contact. + Title *string `json:"title,omitempty" xmlrpc:"title,omitempty"` +} + +// This is the datatype that needs to be populated and sent to SoftLayer_Product_Order::placeOrder. The SoftLayer_Container_Product_Order_Attribute_Organization datatype contains the organization information. +type Container_Product_Order_Attribute_Organization struct { + Entity + + // The address information of the contact. + Address *Container_Product_Order_Attribute_Address `json:"address,omitempty" xmlrpc:"address,omitempty"` + + // The fax number associated with an organization. This is an optional value. + FaxNumber *string `json:"faxNumber,omitempty" xmlrpc:"faxNumber,omitempty"` + + // The name of an organization. + OrganizationName *string `json:"organizationName,omitempty" xmlrpc:"organizationName,omitempty"` + + // The phone number associated with an organization. + PhoneNumber *string `json:"phoneNumber,omitempty" xmlrpc:"phoneNumber,omitempty"` +} + +// This is the datatype that needs to be populated and sent to SoftLayer_Product_Order::placeOrder. This datatype has everything required to place an order with SoftLayer. +type Container_Product_Order_Billing_Information struct { + Entity + + // The physical street address. Reserve information such as "apartment #123" or "Suite 2" for line 1. + BillingAddressLine1 *string `json:"billingAddressLine1,omitempty" xmlrpc:"billingAddressLine1,omitempty"` + + // The second line in the address. Information such as suite number goes here. + BillingAddressLine2 *string `json:"billingAddressLine2,omitempty" xmlrpc:"billingAddressLine2,omitempty"` + + // The city in which a customer's account resides. + BillingCity *string `json:"billingCity,omitempty" xmlrpc:"billingCity,omitempty"` + + // The 2-character Country code for an account's address. (i.e. US) + BillingCountryCode *string `json:"billingCountryCode,omitempty" xmlrpc:"billingCountryCode,omitempty"` + + // The email address associated with a customer account. + BillingEmail *string `json:"billingEmail,omitempty" xmlrpc:"billingEmail,omitempty"` + + // the company name for an account. + BillingNameCompany *string `json:"billingNameCompany,omitempty" xmlrpc:"billingNameCompany,omitempty"` + + // The first name of the customer account owner. + BillingNameFirst *string `json:"billingNameFirst,omitempty" xmlrpc:"billingNameFirst,omitempty"` + + // The last name of the customer account owner + BillingNameLast *string `json:"billingNameLast,omitempty" xmlrpc:"billingNameLast,omitempty"` + + // The fax number associated with a customer account. + BillingPhoneFax *string `json:"billingPhoneFax,omitempty" xmlrpc:"billingPhoneFax,omitempty"` + + // The phone number associated with a customer account. + BillingPhoneVoice *string `json:"billingPhoneVoice,omitempty" xmlrpc:"billingPhoneVoice,omitempty"` + + // The Zip or Postal Code for the billing address on an account. + BillingPostalCode *string `json:"billingPostalCode,omitempty" xmlrpc:"billingPostalCode,omitempty"` + + // The State for the account. + BillingState *string `json:"billingState,omitempty" xmlrpc:"billingState,omitempty"` + + // The credit card number to use. + CardAccountNumber *string `json:"cardAccountNumber,omitempty" xmlrpc:"cardAccountNumber,omitempty"` + + // The payment card expiration month + CardExpirationMonth *int `json:"cardExpirationMonth,omitempty" xmlrpc:"cardExpirationMonth,omitempty"` + + // The payment card expiration year + CardExpirationYear *int `json:"cardExpirationYear,omitempty" xmlrpc:"cardExpirationYear,omitempty"` + + // The Card Verification Value Code (CVV) number + CreditCardVerificationNumber *string `json:"creditCardVerificationNumber,omitempty" xmlrpc:"creditCardVerificationNumber,omitempty"` + + // Tax exempt status. 1 = exempt (not taxable), 0 = not exempt (taxable) + TaxExempt *int `json:"taxExempt,omitempty" xmlrpc:"taxExempt,omitempty"` + + // The VAT ID entered at checkout + VatId *string `json:"vatId,omitempty" xmlrpc:"vatId,omitempty"` +} + +// This is the datatype that needs to be populated and sent to SoftLayer_Product_Order::placeOrder. The SoftLayer_Container_Product_Order_Dns_Domain_Registration datatype contains everything required to place a domain registration order with SoftLayer. +type Container_Product_Order_Dns_Domain_Registration struct { + Container_Product_Order + + // Administrative contact information associated with an registraton or transfer. This is required if registration type is 'new' or 'transfer'. + AdministrativeContact *Container_Dns_Domain_Registration_Contact `json:"administrativeContact,omitempty" xmlrpc:"administrativeContact,omitempty"` + + // Billing contact information associated with an registraton or transfer. This is required if registration type is 'new' or 'transfer'. + BillingContact *Container_Dns_Domain_Registration_Contact `json:"billingContact,omitempty" xmlrpc:"billingContact,omitempty"` + + // The list of domains to be registered. This is required if registration type is 'new', 'renew', or 'transfer'. + DomainRegistrationList []Container_Dns_Domain_Registration_List `json:"domainRegistrationList,omitempty" xmlrpc:"domainRegistrationList,omitempty"` + + // Owner contact information associated with an registraton or transfer. This is required if registration type is 'new' or 'transfer'. + OwnerContact *Container_Dns_Domain_Registration_Contact `json:"ownerContact,omitempty" xmlrpc:"ownerContact,omitempty"` + + // The type of a domain registration order. The registration type is Required. Allowed values are new, transfer, and renew + RegistrationType *string `json:"registrationType,omitempty" xmlrpc:"registrationType,omitempty"` + + // Technical contact information associated with an registraton or transfer. This is required if registration type is 'new' or 'transfer'. + TechnicalContact *Container_Dns_Domain_Registration_Contact `json:"technicalContact,omitempty" xmlrpc:"technicalContact,omitempty"` +} + +// This is the datatype that needs to be populated and sent to SoftLayer_Product_Order::placeOrder. The SoftLayer_Container_Product_Order_Dns_Domain_Reseller datatype contains everything required to place a domain reseller credit order with SoftLayer. +type Container_Product_Order_Dns_Domain_Reseller struct { + Container_Product_Order + + // Amount to be credited to the domain reseller account. + CreditAmount *Float64 `json:"creditAmount,omitempty" xmlrpc:"creditAmount,omitempty"` +} + +// This is the datatype that needs to be populated and sent to SoftLayer_Product_Order::placeOrder. This datatype has everything required to place a Gateway Appliance Cluster order with SoftLayer. +type Container_Product_Order_Gateway_Appliance_Cluster struct { + Container_Product_Order + + // Used to identify which items on an order belong in the same cluster. + ClusterIdentifier *string `json:"clusterIdentifier,omitempty" xmlrpc:"clusterIdentifier,omitempty"` + + // Indicates what type of cluster order is being placed (HA, Provision). + ClusterOrderType *string `json:"clusterOrderType,omitempty" xmlrpc:"clusterOrderType,omitempty"` +} + +// This is the datatype that needs to be populated and sent to SoftLayer_Product_Order::placeOrder. This datatype has everything required to place a hardware security module order with SoftLayer. +type Container_Product_Order_Hardware_Security_Module struct { + Container_Product_Order_Hardware_Server +} + +// This is the datatype that needs to be populated and sent to SoftLayer_Product_Order::placeOrder. This datatype has everything required to place an order with SoftLayer. +type Container_Product_Order_Hardware_Server struct { + Container_Product_Order + + // Used to identify which items on an order belong in the same cluster. + ClusterIdentifier *string `json:"clusterIdentifier,omitempty" xmlrpc:"clusterIdentifier,omitempty"` + + // Indicates what type of cluster order is being placed (HA, Provision). + ClusterOrderType *string `json:"clusterOrderType,omitempty" xmlrpc:"clusterOrderType,omitempty"` + + // Used to identify which gateway is being upgraded to HA. + ClusterResourceId *int `json:"clusterResourceId,omitempty" xmlrpc:"clusterResourceId,omitempty"` + + // Id of the [[SoftLayer_Monitoring_Agent_Configuration_Template_Group]] to be used with the monitoring package + MonitoringAgentConfigurationTemplateGroupId *int `json:"monitoringAgentConfigurationTemplateGroupId,omitempty" xmlrpc:"monitoringAgentConfigurationTemplateGroupId,omitempty"` + + // When ordering Virtual Server (Private Node), this variable specifies the role of the server configuration. (Deprecated) + PrivateCloudServerRole *string `json:"privateCloudServerRole,omitempty" xmlrpc:"privateCloudServerRole,omitempty"` + + // Used to identify which device the new server should be attached to. + RequiredUpstreamDeviceId *int `json:"requiredUpstreamDeviceId,omitempty" xmlrpc:"requiredUpstreamDeviceId,omitempty"` + + // tags (used in MongoDB deployments). (Deprecated) + Tags []Container_Product_Order_Property `json:"tags,omitempty" xmlrpc:"tags,omitempty"` +} + +// This is the datatype that needs to be populated and sent to SoftLayer_Product_Order::placeOrder. This datatype has everything required to place an order with SoftLayer. +type Container_Product_Order_Hardware_Server_Colocation struct { + Container_Product_Order_Hardware_Server +} + +// This is the datatype that needs to be populated and sent to SoftLayer_Product_Order::placeOrder. This datatype has everything required to place a Gateway Appliance order. +type Container_Product_Order_Hardware_Server_Gateway_Appliance struct { + Container_Product_Order_Hardware_Server +} + +// This is the datatype that needs to be populated and sent to SoftLayer_Product_Order::placeOrder. This datatype has everything required to place an order with SoftLayer. +type Container_Product_Order_Hardware_Server_Upgrade struct { + Container_Product_Order_Hardware_Server +} + +// This is the datatype that needs to be populated and sent to SoftLayer_Product_Order::placeOrder. This datatype has everything required to place a Monitoring Package order with SoftLayer. +type Container_Product_Order_Monitoring_Package struct { + Container_Product_Order + + // no documentation yet + ConfigurationTemplateGroups []Monitoring_Agent_Configuration_Template_Group `json:"configurationTemplateGroups,omitempty" xmlrpc:"configurationTemplateGroups,omitempty"` + + // no documentation yet + ServerType *string `json:"serverType,omitempty" xmlrpc:"serverType,omitempty"` +} + +// This is a datatype used with multi-configuration deployments. Multi-configuration deployments also have a deployment specific datatype that should be used in lieu of this one. +type Container_Product_Order_MultiConfiguration struct { + Container_Product_Order +} + +// no documentation yet +type Container_Product_Order_MultiConfiguration_Tornado struct { + Container_Product_Order_MultiConfiguration +} + +// This type contains the structure of network-related objects that may be specified when ordering services. +type Container_Product_Order_Network struct { + Entity + + // The [[SoftLayer_Network]] object. + Network *Network `json:"network,omitempty" xmlrpc:"network,omitempty"` + + // The list of public [[SoftLayer_Container_Product_Order_Network_Vlan|vlans]] available for ordering. Each VLAN will have list of public subnets that are accessible to the VLAN. + PublicVlans []Container_Product_Order `json:"publicVlans,omitempty" xmlrpc:"publicVlans,omitempty"` + + // The list of private [[SoftLayer_Container_Product_Order_Network_Subnet|subnets]] available for ordering with a description of their available IP space. + Subnets []Container_Product_Order `json:"subnets,omitempty" xmlrpc:"subnets,omitempty"` +} + +// This is the datatype that needs to be populated and sent to SoftLayer_Product_Order::placeOrder. This datatype has everything required to place an application delivery controller order with SoftLayer. +type Container_Product_Order_Network_Application_Delivery_Controller struct { + Container_Product_Order + + // An optional [[SoftLayer_Network_Application_Delivery_Controller]] identifier that is used for upgrading an existing application delivery controller. + ApplicationDeliveryControllerId *int `json:"applicationDeliveryControllerId,omitempty" xmlrpc:"applicationDeliveryControllerId,omitempty"` +} + +// This is the datatype that needs to be populated and sent to SoftLayer_Product_Order::placeOrder. This datatype has everything required to place a CDN order with SoftLayer. +type Container_Product_Order_Network_ContentDelivery_Account struct { + Container_Product_Order + + // The CDN account name + CdnAccountName *string `json:"cdnAccountName,omitempty" xmlrpc:"cdnAccountName,omitempty"` +} + +// This is the datatype that needs to be populated and sent to SoftLayer_Product_Order::placeOrder. This datatype has everything required to place a CDN order with SoftLayer. +type Container_Product_Order_Network_ContentDelivery_Account_Upgrade struct { + Container_Product_Order + + // ID of an existing CDN account. You can use this to upgrade an existing CDN account. + CdnAccountId *string `json:"cdnAccountId,omitempty" xmlrpc:"cdnAccountId,omitempty"` +} + +// This is the default container type for network load balancer orders. +type Container_Product_Order_Network_LoadBalancer struct { + Container_Product_Order +} + +// This is the datatype that needs to be populated and sent to SoftLayer_Product_Order::placeOrder. This datatype has everything required to place an order for a Load Balancer as a Service. +type Container_Product_Order_Network_LoadBalancer_AsAService struct { + Container_Product_Order + + // A description of this Load Balancer. + Description *string `json:"description,omitempty" xmlrpc:"description,omitempty"` + + // A name to identify this Load Balancer. + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` + + // The [[SoftLayer_Network_LBaaS_LoadBalancerProtocolConfiguration]]s for this Load Balancer. + ProtocolConfigurations []Network_LBaaS_LoadBalancerProtocolConfiguration `json:"protocolConfigurations,omitempty" xmlrpc:"protocolConfigurations,omitempty"` + + // The [[SoftLayer_Network_LBaaS_LoadBalancerServerInstanceInfo]]s for this Load Balancer. + ServerInstancesInformation []Network_LBaaS_LoadBalancerServerInstanceInfo `json:"serverInstancesInformation,omitempty" xmlrpc:"serverInstancesInformation,omitempty"` + + // The [[SoftLayer_Network_Subnet]]s where this Load Balancer will be provisioned. + Subnets []Network_Subnet `json:"subnets,omitempty" xmlrpc:"subnets,omitempty"` +} + +// This is the datatype that needs to be populated and sent to SoftLayer_Product_Order::placeOrder. This datatype has everything required to place a global load balancer order with SoftLayer. +type Container_Product_Order_Network_LoadBalancer_Global struct { + Container_Product_Order + + // The domain name that will be load balanced. + Domain *string `json:"domain,omitempty" xmlrpc:"domain,omitempty"` + + // The hostname that will be load balanced. + Hostname *string `json:"hostname,omitempty" xmlrpc:"hostname,omitempty"` +} + +// This is the datatype that needs to be populated and sent to SoftLayer_Product_Order::placeOrder. This datatype has everything required to place a network message delivery order with SoftLayer. +type Container_Product_Order_Network_Message_Delivery struct { + Container_Product_Order + + // The account password for SendGrid enrollment. + AccountPassword *string `json:"accountPassword,omitempty" xmlrpc:"accountPassword,omitempty"` + + // The username for SendGrid enrollment. + AccountUsername *string `json:"accountUsername,omitempty" xmlrpc:"accountUsername,omitempty"` + + // The email address for SendGrid enrollment. + EmailAddress *string `json:"emailAddress,omitempty" xmlrpc:"emailAddress,omitempty"` +} + +// This is the datatype that needs to be populated and sent to SoftLayer_Product_Order::placeOrder. This datatype has everything required to place a Message Queue order with SoftLayer. +type Container_Product_Order_Network_Message_Queue struct { + Container_Product_Order +} + +// This is the base data type for Performance storage order containers. If you wish to place an order you must not use this class and instead use the appropriate child container for the type of storage you would like to order: [[SoftLayer_Container_Product_Order_Network_PerformanceStorage_Nfs]] for File and [[SoftLayer_Container_Product_Order_Network_PerformanceStorage_Iscsi]] for Block storage. +type Container_Product_Order_Network_PerformanceStorage struct { + Container_Product_Order +} + +// This is the datatype that needs to be populated and sent to SoftLayer_Product_Order::placeOrder. This datatype has everything required to place an order for iSCSI (Block) Performance Storage +type Container_Product_Order_Network_PerformanceStorage_Iscsi struct { + Container_Product_Order_Network_PerformanceStorage + + // OS Type to be used when formatting the storage space, this should match the OS type that will be connecting to the LUN. The only required property its the keyName of the OS type. + OsFormatType *Network_Storage_Iscsi_OS_Type `json:"osFormatType,omitempty" xmlrpc:"osFormatType,omitempty"` +} + +// This is the datatype that needs to be populated and sent to SoftLayer_Product_Order::placeOrder. This datatype has everything required to place an order for NFS (File) Performance Storage +type Container_Product_Order_Network_PerformanceStorage_Nfs struct { + Container_Product_Order_Network_PerformanceStorage +} + +// This is the datatype that needs to be populated and sent to SoftLayer_Product_Order::placeOrder. This datatype has everything required to place a hardware firewall order with SoftLayer. +type Container_Product_Order_Network_Protection_Firewall struct { + Container_Product_Order +} + +// This is the datatype that needs to be populated and sent to SoftLayer_Product_Order::placeOrder. This datatype has everything required to place a hardware (dedicated) firewall order with SoftLayer. +type Container_Product_Order_Network_Protection_Firewall_Dedicated struct { + Container_Product_Order + + // generic properties. + Vlan *Network_Vlan `json:"vlan,omitempty" xmlrpc:"vlan,omitempty"` + + // generic properties. + VlanId *int `json:"vlanId,omitempty" xmlrpc:"vlanId,omitempty"` +} + +// This is the datatype that needs to be populated and sent to SoftLayer_Product_Order::placeOrder. This datatype has everything required to place an order for Storage as a Service. +type Container_Product_Order_Network_Storage_AsAService struct { + Container_Product_Order + + // This must be populated only for duplicating a specific snapshot for volume duplicating. It represents the identifier of the origin [[SoftLayer_Network_Storage_Snapshot]] + DuplicateOriginSnapshotId *int `json:"duplicateOriginSnapshotId,omitempty" xmlrpc:"duplicateOriginSnapshotId,omitempty"` + + // This must be populated only for duplicate volume ordering. It represents the identifier of the origin [[SoftLayer_Network_Storage]]. + DuplicateOriginVolumeId *int `json:"duplicateOriginVolumeId,omitempty" xmlrpc:"duplicateOriginVolumeId,omitempty"` + + // When ordering performance by IOPS, populate this property with how many. + Iops *int `json:"iops,omitempty" xmlrpc:"iops,omitempty"` + + // This must be populated only for replicant volume ordering. It represents the identifier of the origin [[SoftLayer_Network_Storage]]. + OriginVolumeId *int `json:"originVolumeId,omitempty" xmlrpc:"originVolumeId,omitempty"` + + // This must be populated only for replicant volume ordering. It represents the [[SoftLayer_Network_Storage_Schedule]] that will be be used to replicate the origin [[SoftLayer_Network_Storage]] volume. + OriginVolumeScheduleId *int `json:"originVolumeScheduleId,omitempty" xmlrpc:"originVolumeScheduleId,omitempty"` + + // This must be populated for block storage orders. This should match the OS type of the host(s) that will connect to the volume. The only required property is the keyName of the OS type. This property is ignored for file storage orders. + OsFormatType *Network_Storage_Iscsi_OS_Type `json:"osFormatType,omitempty" xmlrpc:"osFormatType,omitempty"` + + // Volume size in GB's. + VolumeSize *int `json:"volumeSize,omitempty" xmlrpc:"volumeSize,omitempty"` +} + +// This is the datatype that needs to be populated and sent to SoftLayer_Product_Order::placeOrder. This datatype has everything required to place an order for additional Evault plugins. +type Container_Product_Order_Network_Storage_Backup_Evault_Plugin struct { + Container_Product_Order +} + +// This is the datatype that needs to be populated and sent to SoftLayer_Product_Order::placeOrder. This datatype has everything required to place an Evault order with SoftLayer. +type Container_Product_Order_Network_Storage_Backup_Evault_Vault struct { + Container_Product_Order +} + +// This is the datatype that needs to be populated and sent to SoftLayer_Product_Order::placeOrder. This datatype has everything required to place an order for Enterprise Storage +type Container_Product_Order_Network_Storage_Enterprise struct { + Container_Product_Order + + // This must be populated only for replicant volume ordering. It represents the identifier of the origin [[SoftLayer_Network_Storage]]. + OriginVolumeId *int `json:"originVolumeId,omitempty" xmlrpc:"originVolumeId,omitempty"` + + // This must be populated only for replicant volume ordering. It represents the [[SoftLayer_Network_Storage_Schedule]] that will be be used to replicate the origin [[SoftLayer_Network_Storage]] volume. + OriginVolumeScheduleId *int `json:"originVolumeScheduleId,omitempty" xmlrpc:"originVolumeScheduleId,omitempty"` + + // This must be populated for block storage orders. This should match the OS type of the host(s) that will connect to the volume. The only required property is the keyName of the OS type. This property is ignored for file storage orders. + OsFormatType *Network_Storage_Iscsi_OS_Type `json:"osFormatType,omitempty" xmlrpc:"osFormatType,omitempty"` +} + +// This is the datatype that needs to be populated and sent to SoftLayer_Product_Order::placeOrder. This datatype has everything required to place an order for Enterprise Storage Snapshot Space. +type Container_Product_Order_Network_Storage_Enterprise_SnapshotSpace struct { + Container_Product_Order + + // The [[SoftLayer_Network_Storage]] id for which snapshot space is being ordered for. + VolumeId *int `json:"volumeId,omitempty" xmlrpc:"volumeId,omitempty"` +} + +// This is the datatype that needs to be populated and sent to SoftLayer_Product_Order::placeOrder. This datatype has everything required to place an upgrade order for Enterprise Storage Snapshot Space. +type Container_Product_Order_Network_Storage_Enterprise_SnapshotSpace_Upgrade struct { + Container_Product_Order_Network_Storage_Enterprise_SnapshotSpace +} + +// This datatype is to be used for object storage orders. +type Container_Product_Order_Network_Storage_Hub struct { + Container_Product_Order +} + +// This class is used to contain a datacenter location and its associated active usage rate prices for object storage ordering. +type Container_Product_Order_Network_Storage_Hub_Datacenter struct { + Entity + + // The datacenter location where object storage is available. + Location *Location `json:"location,omitempty" xmlrpc:"location,omitempty"` + + // The collection of active usage rate item prices. + UsageRatePrices []Product_Item_Price `json:"usageRatePrices,omitempty" xmlrpc:"usageRatePrices,omitempty"` +} + +// This is the datatype that needs to be populated and sent to SoftLayer_Product_Order::placeOrder. This datatype has everything required to place an ISCSI order with SoftLayer. +type Container_Product_Order_Network_Storage_Iscsi struct { + Container_Product_Order +} + +// This is the datatype that needs to be populated and sent to SoftLayer_Product_Order::placeOrder. This datatype has everything required to place an ISCSI Replication order with SoftLayer. +type Container_Product_Order_Network_Storage_Iscsi_Replication struct { + Container_Product_Order + + // the [[SoftLayer_Network_Storage_Iscsi_EqualLogic_Version3]] Id. + VolumeId *int `json:"volumeId,omitempty" xmlrpc:"volumeId,omitempty"` +} + +// This is the datatype that needs to be populated and sent to SoftLayer_Product_Order::placeOrder. This datatype has everything required to place an ISCSI Snapshot Space order with SoftLayer. +type Container_Product_Order_Network_Storage_Iscsi_SnapshotSpace struct { + Container_Product_Order + + // the [[SoftLayer_Network_Storage_Iscsi_EqualLogic_Version3]] Id. + VolumeId *int `json:"volumeId,omitempty" xmlrpc:"volumeId,omitempty"` +} + +// The SoftLayer_Container_Product_Order_Network_Storage_Modification datatype has everything required to place a modification to an existing StorageLayer account with SoftLayer. Modifications, at present time, include upgrade and downgrades only. The ''volumeId'' property must be set to the network storage volume id to be upgraded. Once populated send this container to the [[SoftLayer_Product_Order::placeOrder]] method. +// +// The ''packageId'' property passed in for CloudLayer storage accounts must be set to 0 (zero) and the ''quantity'' property must be set to 1. The location does not have to be set. Please use the [[SoftLayer_Product_Package]] service to retrieve a list of CloudLayer items. +// +// NOTE: When upgrading CloudLayer storage service from a metered plan (pay as you go) to a non-metered plan, make sure the chosen plan's storage allotment has enough space to cover the current usage. If the chosen plan's usage allotment is less than the CloudLayer storage's usage the order will be rejected. +type Container_Product_Order_Network_Storage_Modification struct { + Container_Product_Order + + // The id of the StorageLayer account to modify. + VolumeId *int `json:"volumeId,omitempty" xmlrpc:"volumeId,omitempty"` +} + +// This is the datatype that needs to be populated and sent to SoftLayer_Product_Order::placeOrder when placing network attached storage orders. +type Container_Product_Order_Network_Storage_Nas struct { + Container_Product_Order +} + +// This datatype is to be used for ordering object storage products using the object_storage [[SoftLayer_Product_Item_Category|category]]. For object storage products using hub [[SoftLayer_Product_Item_Category|category]] use the [[SoftLayer_Container_Product_Order_Network_Storage_Hub]] order container. +type Container_Product_Order_Network_Storage_Object struct { + Container_Product_Order +} + +// This class is used to contain a location group and its associated active usage rate prices for object storage ordering. +type Container_Product_Order_Network_Storage_ObjectStorage_LocationGroup struct { + Entity + + // The datacenter location where object storage is available. + ClusterGeolocationType *string `json:"clusterGeolocationType,omitempty" xmlrpc:"clusterGeolocationType,omitempty"` + + // The datacenter location where object storage is available. + LocationGroup *Location_Group `json:"locationGroup,omitempty" xmlrpc:"locationGroup,omitempty"` + + // The collection of active usage rate item prices. + UsageRatePrices []Product_Item_Price `json:"usageRatePrices,omitempty" xmlrpc:"usageRatePrices,omitempty"` +} + +// This is the datatype that needs to be populated and sent to SoftLayer_Product_Order::placeOrder. This datatype has everything required to place a subnet order with SoftLayer. +type Container_Product_Order_Network_Subnet struct { + Container_Product_Order + + // The description which includes the network identifier, Classless Inter-Domain Routing prefix and the available slot count. + Description *string `json:"description,omitempty" xmlrpc:"description,omitempty"` + + // The [[SoftLayer_Network_Subnet_IpAddress]] id. + EndPointIpAddressId *int `json:"endPointIpAddressId,omitempty" xmlrpc:"endPointIpAddressId,omitempty"` + + // The [[SoftLayer_Network_Vlan]] id. + EndPointVlanId *int `json:"endPointVlanId,omitempty" xmlrpc:"endPointVlanId,omitempty"` + + // The [[SoftLayer_Network_Subnet]] id. + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // This is the hostname for the router associated with the [[SoftLayer_Network_Subnet|subnet]]. This is a readonly property. + RouterHostname *string `json:"routerHostname,omitempty" xmlrpc:"routerHostname,omitempty"` +} + +// This is the datatype that needs to be populated and sent to SoftLayer_Product_Order::placeOrder. This datatype has everything required to place a network ipsec vpn order with SoftLayer. +type Container_Product_Order_Network_Tunnel_Ipsec struct { + Container_Product_Order +} + +// This is the datatype that needs to be populated and sent to SoftLayer_Product_Order::placeOrder. This datatype has everything required to place a network vlan order with SoftLayer. +type Container_Product_Order_Network_Vlan struct { + Container_Product_Order + + // The description which includes the primary router's hostname plus the vlan number. + Description *string `json:"description,omitempty" xmlrpc:"description,omitempty"` + + // The datacenter portion of the hostname. + HostnameDatacenter *string `json:"hostnameDatacenter,omitempty" xmlrpc:"hostnameDatacenter,omitempty"` + + // The router portion of the hostname. + HostnameRouter *string `json:"hostnameRouter,omitempty" xmlrpc:"hostnameRouter,omitempty"` + + // The [[SoftLayer_Network_Vlan]] id. + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // The optional name for this VLAN + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` + + // The router object on which the new VLAN should be created. + Router *Hardware `json:"router,omitempty" xmlrpc:"router,omitempty"` + + // The ID of the [[SoftLayer_Hardware_Router]] object on which the new VLAN should be created. + RouterId *int `json:"routerId,omitempty" xmlrpc:"routerId,omitempty"` + + // The collection of subnets associated with this vlan. + Subnets []Container_Product_Order `json:"subnets,omitempty" xmlrpc:"subnets,omitempty"` + + // The vlan number. + VlanNumber *int `json:"vlanNumber,omitempty" xmlrpc:"vlanNumber,omitempty"` +} + +// This class contains the collections of public and private VLANs that are available during the ordering process. +type Container_Product_Order_Network_Vlans struct { + Entity + + // The collection of private vlans available during ordering. + PrivateVlans []Container_Product_Order `json:"privateVlans,omitempty" xmlrpc:"privateVlans,omitempty"` + + // The collection of public vlans available during ordering. + PublicVlans []Container_Product_Order `json:"publicVlans,omitempty" xmlrpc:"publicVlans,omitempty"` +} + +// This is the datatype that needs to be populated and sent to SoftLayer_Product_Order::placeOrder when linking a Bluemix account to a newly created SoftLayer account. +type Container_Product_Order_NewCustomerSetup struct { + Container_Product_Order + + // no documentation yet + AuthorizationToken *string `json:"authorizationToken,omitempty" xmlrpc:"authorizationToken,omitempty"` + + // no documentation yet + ExternalAccountId *string `json:"externalAccountId,omitempty" xmlrpc:"externalAccountId,omitempty"` + + // no documentation yet + ExternalServiceProviderKey *string `json:"externalServiceProviderKey,omitempty" xmlrpc:"externalServiceProviderKey,omitempty"` +} + +// This is the datatype that needs to be populated and sent to SoftLayer_Product_Order::placeOrder. This datatype has everything required to place an order for Private Cloud. +type Container_Product_Order_Private_Cloud struct { + Container_Product_Order +} + +// This is used for storing various items about the order. Currently used for storing additional raid information when ordering servers. This is optional +type Container_Product_Order_Property struct { + Entity + + // The property name + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` + + // The property value + Value *string `json:"value,omitempty" xmlrpc:"value,omitempty"` +} + +// When an order is placed (SoftLayer_Product_Order::placeOrder), a receipt is returned when the order is created successfully. The information in the receipt helps explain information about the order. It's order ID, and all the data within the order as well. +// +// For PayPal Orders, an URL is also returned to the user so that the user can complete the transaction. Users paying with PayPal must continue on to this URL, login and pay. When doing this, PayPal will redirect the user back to a SoftLayer page which will then "finalize" the authorization process. From here, Sales will verify the order by contacting the user in some way, unless sales has already spoken to the user about approving the order. +// +// For users paying with a credit card, a receipt means the order has gone to sales and is awaiting approval. +type Container_Product_Order_Receipt struct { + Entity + + // This URL refers to the location where you will visit to complete the payment authorization for an external service, such as PayPal. This property is associated with externalPaymentToken and will only be populated when purchasing products with an external service. + // + // Once you visit this location, you will be presented with the options to confirm payment or deny payment. If you confirm payment, you will be redirected back to the receipt for your order. If you deny, you will be redirected back to the cancel order page where you do not need to take any additional action. + // + // Until you confirm payment with the external service, your products will not be provisioned or accessible for your consumption. Upon successfully confirming payment, our system will be notified and the order approval and provisioning systems will begin processing. After provisioning is complete, your services will be available. + ExternalPaymentCheckoutUrl *string `json:"externalPaymentCheckoutUrl,omitempty" xmlrpc:"externalPaymentCheckoutUrl,omitempty"` + + // This token refers to the identifier for the external payment authorization. This token is associated with the externalPaymentCheckoutUrl and is only populated when purchasing products with an external service like PayPal. + ExternalPaymentToken *string `json:"externalPaymentToken,omitempty" xmlrpc:"externalPaymentToken,omitempty"` + + // The date when SoftLayer received the order. + OrderDate *Time `json:"orderDate,omitempty" xmlrpc:"orderDate,omitempty"` + + // This is a copy of the order container (SoftLayer_Container_Product_Order) which holds all the data related to an order. This will only return when an order is processed successfully. It will contain all the items in an order as well as the order totals. + OrderDetails *Container_Product_Order `json:"orderDetails,omitempty" xmlrpc:"orderDetails,omitempty"` + + // SoftLayer's unique identifier for the order. + OrderId *int `json:"orderId,omitempty" xmlrpc:"orderId,omitempty"` + + // Deprecation notice: use externalPaymentCheckoutUrl instead of this property. + // + // This URL refers to the location where you will visit to complete the payment authorization for PayPal. This property is associated with paypalToken and will only be populated when purchasing products with PayPal. + // + // Once you visit PayPal's site, you will be presented with the options to confirm payment or deny payment. If you confirm payment, you will be redirected back to the receipt for your order. If you deny, you will be redirected back to the cancel order page where you do not need to take any additional action. + // + // Until you confirm payment with PayPal, your products will not be provisioned or accessible for your consumption. Upon successfully confirming payment, our system will be notified and the order approval and provisioning systems will begin processing. After provisioning is complete, your services will be available. + PaypalCheckoutUrl *string `json:"paypalCheckoutUrl,omitempty" xmlrpc:"paypalCheckoutUrl,omitempty"` + + // Deprecation notice: use externalPaymentToken instead of this property. + // + // This token refers to the identifier provided when payment is processed via PayPal. This token is associated with the paypalCheckoutUrl. + PaypalToken *string `json:"paypalToken,omitempty" xmlrpc:"paypalToken,omitempty"` + + // This is a copy of the order that was successfully placed (SoftLayer_Billing_Order). This will only return when an order is processed successfully. + PlacedOrder *Billing_Order `json:"placedOrder,omitempty" xmlrpc:"placedOrder,omitempty"` + + // This is a copy of the quote container (SoftLayer_Billing_Order_Quote) which holds all the data related to a quote. This will only return when a quote is processed successfully. + Quote *Billing_Order_Quote `json:"quote,omitempty" xmlrpc:"quote,omitempty"` +} + +// This is the datatype that needs to be populated and sent to SoftLayer_Product_Order::placeOrder. This datatype contains everything required to place a secure certificate order with SoftLayer. +type Container_Product_Order_Security_Certificate struct { + Container_Product_Order + + // The administrator contact associated with a SSL certificate. If the contact is not provided the technical contact will be used. If the address is not provided the organization information address will be used. + AdministrativeContact *Container_Product_Order_Attribute_Contact `json:"administrativeContact,omitempty" xmlrpc:"administrativeContact,omitempty"` + + // The billing contact associated with a SSL certificate. If the contact is not provided the technical contact will be used. If the address is not provided the organization information address will be used. + BillingContact *Container_Product_Order_Attribute_Contact `json:"billingContact,omitempty" xmlrpc:"billingContact,omitempty"` + + // The base64 encoded string that sent from an applicant to a certificate authority. The CSR contains information identifying the applicant and the public key chosen by the applicant. The corresponding private key should not be included. + CertificateSigningRequest *string `json:"certificateSigningRequest,omitempty" xmlrpc:"certificateSigningRequest,omitempty"` + + // The email address that can approve a secure certificate order. + OrderApproverEmailAddress *string `json:"orderApproverEmailAddress,omitempty" xmlrpc:"orderApproverEmailAddress,omitempty"` + + // The organization information associated with a SSL certificate. + OrganizationInformation *Container_Product_Order_Attribute_Organization `json:"organizationInformation,omitempty" xmlrpc:"organizationInformation,omitempty"` + + // Indicates if it is an renewal order of an existing SSL certificate. + RenewalFlag *bool `json:"renewalFlag,omitempty" xmlrpc:"renewalFlag,omitempty"` + + // The number of servers. + ServerCount *int `json:"serverCount,omitempty" xmlrpc:"serverCount,omitempty"` + + // The server type. This is the name from a [[SoftLayer_Security_Certificate_Request_ServerType]] object. + ServerType *string `json:"serverType,omitempty" xmlrpc:"serverType,omitempty"` + + // The technical contact associated with a SSL certificate. If the address is not provided the organization information address will be used. + TechnicalContact *Container_Product_Order_Attribute_Contact `json:"technicalContact,omitempty" xmlrpc:"technicalContact,omitempty"` + + // The period that a SSL certificate is valid for. For example, 12, 24, 36 + ValidityMonths *int `json:"validityMonths,omitempty" xmlrpc:"validityMonths,omitempty"` +} + +// This is the datatype that needs to be populated and sent to SoftLayer_Product_Order::placeOrder. +type Container_Product_Order_Service struct { + Container_Product_Order +} + +// This is the datatype that needs to be populated and sent to SoftLayer_Product_Order::placeOrder. This datatype has everything required to place a virtual license order with SoftLayer. +type Container_Product_Order_Software_Component_Virtual struct { + Container_Product_Order + + // array of ip address ids for which a license should be allocated for. + EndPointIpAddressIds []int `json:"endPointIpAddressIds,omitempty" xmlrpc:"endPointIpAddressIds,omitempty"` +} + +// This is the datatype that needs to be populated and sent to SoftLayer_Product_Order::placeOrder. This datatype has everything required to place a hardware security module order with SoftLayer. +type Container_Product_Order_Software_License struct { + Container_Product_Order +} + +// This object holds all of the ssh key ids that will allow authentication to a single server. +type Container_Product_Order_SshKeys struct { + Entity + + // An array of SoftLayer_Security_Ssh_Key IDs to assign to a server. + SshKeyIds []int `json:"sshKeyIds,omitempty" xmlrpc:"sshKeyIds,omitempty"` +} + +// A single storage group container used for a hardware server order. +// +// This object describes a single storage group that can be added to an order container. +type Container_Product_Order_Storage_Group struct { + Entity + + // Size of the array in gigabytes. Must be within limitations of the smallest drive assigned to the storage group and the storage group type. + ArraySize *Float64 `json:"arraySize,omitempty" xmlrpc:"arraySize,omitempty"` + + // The array type id from a [[SoftLayer_Configuration_Storage_Group_Array_Type]] object. + ArrayTypeId *int `json:"arrayTypeId,omitempty" xmlrpc:"arrayTypeId,omitempty"` + + // Integer array of drive indexes to use in the storage group. + HardDrives []int `json:"hardDrives,omitempty" xmlrpc:"hardDrives,omitempty"` + + // If an array should be protected by an hotspare, the drive index of the hotspares should be here. + // + // If a drive is a hotspare for all arrays then a separate storage group with array type GLOBAL_HOT_SPARE should be used + HotSpareDrives []int `json:"hotSpareDrives,omitempty" xmlrpc:"hotSpareDrives,omitempty"` + + // The id for a [[SoftLayer_Hardware_Component_Partition_Template]] object, which will determine the partitions to add to the storage group. + // + // If this storage group is not a primary storage group, then this will not be used. + PartitionTemplateId *int `json:"partitionTemplateId,omitempty" xmlrpc:"partitionTemplateId,omitempty"` + + // Defines the partitions for the storage group. + // + // If this storage group is not a secondary storage group, then this will not be used. + Partitions []Container_Product_Order_Storage_Group_Partition `json:"partitions,omitempty" xmlrpc:"partitions,omitempty"` +} + +// A storage group partition container used for a hardware server order. +// +// This object describes the partitions for a single storage group that can be added to an order container. +type Container_Product_Order_Storage_Group_Partition struct { + Entity + + // Is this a grow partition + IsGrow *bool `json:"isGrow,omitempty" xmlrpc:"isGrow,omitempty"` + + // The name of this partition + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` + + // The size of this partition + Size *Float64 `json:"size,omitempty" xmlrpc:"size,omitempty"` +} + +// When ordering paid support this datatype needs to be populated and sent to SoftLayer_Product_Order::placeOrder. +type Container_Product_Order_Support struct { + Container_Product_Order +} + +// This container type is used for placing orders for external authentication, such as phone-based authentication. +type Container_Product_Order_User_Customer_External_Binding struct { + Container_Product_Order + + // The external id that access to external authentication is being purchased for. + ExternalId *string `json:"externalId,omitempty" xmlrpc:"externalId,omitempty"` + + // The SoftLayer [[SoftLayer_User_Customer|user]] identifier that an external binding is being purchased for. + UserId *int `json:"userId,omitempty" xmlrpc:"userId,omitempty"` + + // The [[SoftLayer_User_Customer_External_Binding_Vendor|vendor]] identifier for the external binding being purchased. + VendorId *int `json:"vendorId,omitempty" xmlrpc:"vendorId,omitempty"` +} + +// This is the default container type for Dedicated Virtual Host orders. +type Container_Product_Order_Virtual_DedicatedHost struct { + Container_Product_Order +} + +// This is the datatype that needs to be populated and sent to SoftLayer_Product_Order::placeOrder. This datatype has everything required to place a Portable Storage order with SoftLayer. +type Container_Product_Order_Virtual_Disk_Image struct { + Container_Product_Order + + // Label for the portable storage volume. + DiskDescription *string `json:"diskDescription,omitempty" xmlrpc:"diskDescription,omitempty"` +} + +// This is the datatype that needs to be populated and sent to SoftLayer_Product_Order::placeOrder. This datatype has everything required to place an order with SoftLayer. +type Container_Product_Order_Virtual_Guest struct { + Container_Product_Order_Hardware_Server + + // Identifier of the [[SoftLayer_Virtual_Disk_Image]] to boot from. + BootableDiskId *int `json:"bootableDiskId,omitempty" xmlrpc:"bootableDiskId,omitempty"` + + // Identifier of [[SoftLayer_Virtual_DedicatedHost]] to order + HostId *int `json:"hostId,omitempty" xmlrpc:"hostId,omitempty"` +} + +// This is the datatype that needs to be populated and sent to SoftLayer_Product_Order::placeOrder. This datatype has everything required to place an order with SoftLayer. +type Container_Product_Order_Virtual_Guest_Upgrade struct { + Container_Product_Order_Virtual_Guest +} + +// This is the datatype that needs to be populated and sent to SoftLayer_Provisioning_Maintenance_Window::addCustomerUpgradeWindow. This datatype has everything required to place an order with SoftLayer. +type Container_Provisioning_Maintenance_Window struct { + Entity + + // Maintenance classifications. + ClassificationIds []Provisioning_Maintenance_Classification `json:"classificationIds,omitempty" xmlrpc:"classificationIds,omitempty"` + + // Maintenance classifications. + ItemCategoryIds []Product_Item_Category `json:"itemCategoryIds,omitempty" xmlrpc:"itemCategoryIds,omitempty"` + + // The maintenance window id + MaintenanceWindowId *int `json:"maintenanceWindowId,omitempty" xmlrpc:"maintenanceWindowId,omitempty"` + + // Maintenance window ticket id + TicketId *int `json:"ticketId,omitempty" xmlrpc:"ticketId,omitempty"` + + // Maintenance window date + WindowMaintenanceDate *Time `json:"windowMaintenanceDate,omitempty" xmlrpc:"windowMaintenanceDate,omitempty"` +} + +// no documentation yet +type Container_Referral_Partner_Commission struct { + Entity + + // no documentation yet + CommissionAmount *Float64 `json:"commissionAmount,omitempty" xmlrpc:"commissionAmount,omitempty"` + + // no documentation yet + CommissionRate *Float64 `json:"commissionRate,omitempty" xmlrpc:"commissionRate,omitempty"` + + // no documentation yet + CreateDate *Time `json:"createDate,omitempty" xmlrpc:"createDate,omitempty"` + + // no documentation yet + ReferralAccountId *int `json:"referralAccountId,omitempty" xmlrpc:"referralAccountId,omitempty"` + + // no documentation yet + ReferralCompanyName *string `json:"referralCompanyName,omitempty" xmlrpc:"referralCompanyName,omitempty"` + + // no documentation yet + ReferralPartnerAccountId *int `json:"referralPartnerAccountId,omitempty" xmlrpc:"referralPartnerAccountId,omitempty"` + + // no documentation yet + ReferralRevenue *Float64 `json:"referralRevenue,omitempty" xmlrpc:"referralRevenue,omitempty"` +} + +// no documentation yet +type Container_Referral_Partner_Payment_Option struct { + Entity + + // no documentation yet + AccountNumber *string `json:"accountNumber,omitempty" xmlrpc:"accountNumber,omitempty"` + + // no documentation yet + AccountType *string `json:"accountType,omitempty" xmlrpc:"accountType,omitempty"` + + // no documentation yet + Address1 *string `json:"address1,omitempty" xmlrpc:"address1,omitempty"` + + // no documentation yet + Address2 *string `json:"address2,omitempty" xmlrpc:"address2,omitempty"` + + // no documentation yet + BankTransitNumber *string `json:"bankTransitNumber,omitempty" xmlrpc:"bankTransitNumber,omitempty"` + + // no documentation yet + City *string `json:"city,omitempty" xmlrpc:"city,omitempty"` + + // no documentation yet + CompanyName *string `json:"companyName,omitempty" xmlrpc:"companyName,omitempty"` + + // no documentation yet + Country *string `json:"country,omitempty" xmlrpc:"country,omitempty"` + + // no documentation yet + FederalTaxId *string `json:"federalTaxId,omitempty" xmlrpc:"federalTaxId,omitempty"` + + // no documentation yet + FirstName *string `json:"firstName,omitempty" xmlrpc:"firstName,omitempty"` + + // no documentation yet + LastName *string `json:"lastName,omitempty" xmlrpc:"lastName,omitempty"` + + // no documentation yet + PaymentType *string `json:"paymentType,omitempty" xmlrpc:"paymentType,omitempty"` + + // no documentation yet + PaypalEmail *string `json:"paypalEmail,omitempty" xmlrpc:"paypalEmail,omitempty"` + + // no documentation yet + PhoneNumber *string `json:"phoneNumber,omitempty" xmlrpc:"phoneNumber,omitempty"` + + // no documentation yet + PostalCode *string `json:"postalCode,omitempty" xmlrpc:"postalCode,omitempty"` + + // no documentation yet + State *string `json:"state,omitempty" xmlrpc:"state,omitempty"` +} + +// no documentation yet +type Container_Referral_Partner_Prospect struct { + Entity + + // no documentation yet + Address1 *string `json:"address1,omitempty" xmlrpc:"address1,omitempty"` + + // no documentation yet + Address2 *string `json:"address2,omitempty" xmlrpc:"address2,omitempty"` + + // no documentation yet + City *string `json:"city,omitempty" xmlrpc:"city,omitempty"` + + // no documentation yet + CompanyName *string `json:"companyName,omitempty" xmlrpc:"companyName,omitempty"` + + // no documentation yet + Country *string `json:"country,omitempty" xmlrpc:"country,omitempty"` + + // no documentation yet + Email *string `json:"email,omitempty" xmlrpc:"email,omitempty"` + + // no documentation yet + FirstName *string `json:"firstName,omitempty" xmlrpc:"firstName,omitempty"` + + // no documentation yet + LastName *string `json:"lastName,omitempty" xmlrpc:"lastName,omitempty"` + + // no documentation yet + OfficePhone *string `json:"officePhone,omitempty" xmlrpc:"officePhone,omitempty"` + + // no documentation yet + PostalCode *string `json:"postalCode,omitempty" xmlrpc:"postalCode,omitempty"` + + // no documentation yet + Questions []string `json:"questions,omitempty" xmlrpc:"questions,omitempty"` + + // no documentation yet + Responses []Survey_Response `json:"responses,omitempty" xmlrpc:"responses,omitempty"` + + // no documentation yet + State *string `json:"state,omitempty" xmlrpc:"state,omitempty"` + + // no documentation yet + SurveyId *string `json:"surveyId,omitempty" xmlrpc:"surveyId,omitempty"` +} + +// The SoftLayer_Container_RemoteManagement_Graphs_SensorSpeed contains graphs to display speed for each of the server's fans. Fan speeds are gathered from the server's remote management card. +type Container_RemoteManagement_Graphs_SensorSpeed struct { + Entity + + // The graph to display the server's fan speed. + Graph *[]byte `json:"graph,omitempty" xmlrpc:"graph,omitempty"` + + // A title that may be used to display for the graph. + Title *string `json:"title,omitempty" xmlrpc:"title,omitempty"` +} + +// The SoftLayer_Container_RemoteManagement_Graphs_SensorTemperature contains graphs to display the cpu(s) and system temperatures retrieved from the management card using thermometer graphs. +type Container_RemoteManagement_Graphs_SensorTemperature struct { + Entity + + // The graph to display the server's cpu(s) and system temperatures. + Graph *[]byte `json:"graph,omitempty" xmlrpc:"graph,omitempty"` + + // A title that may be used to display for the graph. + Title *string `json:"title,omitempty" xmlrpc:"title,omitempty"` +} + +// The SoftLayer_Container_RemoteManagement_PmInfo contains pminfo information retrieved from a server's remote management card. +type Container_RemoteManagement_PmInfo struct { + Entity + + // PmInfo ID + PmInfoId *string `json:"pmInfoId,omitempty" xmlrpc:"pmInfoId,omitempty"` + + // PmInfo Reading + PmInfoReading *string `json:"pmInfoReading,omitempty" xmlrpc:"pmInfoReading,omitempty"` +} + +// The SoftLayer_Container_RemoteManagement_SensorReadings contains sensor information retrieved from a server's remote management card. +type Container_RemoteManagement_SensorReading struct { + Entity + + // Lower Non-Recoverable threshold + LowerCritical *string `json:"lowerCritical,omitempty" xmlrpc:"lowerCritical,omitempty"` + + // Lower Non-Critical threshold + LowerNonCritical *string `json:"lowerNonCritical,omitempty" xmlrpc:"lowerNonCritical,omitempty"` + + // Lower Non-Recoverable threshold + LowerNonRecoverable *string `json:"lowerNonRecoverable,omitempty" xmlrpc:"lowerNonRecoverable,omitempty"` + + // Sensor ID + SensorId *string `json:"sensorId,omitempty" xmlrpc:"sensorId,omitempty"` + + // Sensor Reading + SensorReading *string `json:"sensorReading,omitempty" xmlrpc:"sensorReading,omitempty"` + + // Sensor Units + SensorUnits *string `json:"sensorUnits,omitempty" xmlrpc:"sensorUnits,omitempty"` + + // Sensor Status + Status *string `json:"status,omitempty" xmlrpc:"status,omitempty"` + + // Upper Critical threshold + UpperCritical *string `json:"upperCritical,omitempty" xmlrpc:"upperCritical,omitempty"` + + // Upper Non-Critical threshold + UpperNonCritical *string `json:"upperNonCritical,omitempty" xmlrpc:"upperNonCritical,omitempty"` + + // Upper Non-Recoverable threshold + UpperNonRecoverable *string `json:"upperNonRecoverable,omitempty" xmlrpc:"upperNonRecoverable,omitempty"` +} + +// The SoftLayer_Container_RemoteManagement_SensorReadingsWithGraphs contains the raw data retrieved from a server's remote management card. Along with the raw data, two sets of graphs will be returned. One set of graphs is used to display, using thermometer graphs, the temperatures (cpu(s) and system) retrieved from the management card. The other set is used to display speed for each of the server's fans. +type Container_RemoteManagement_SensorReadingsWithGraphs struct { + Entity + + // The raw data returned from the server's remote management card. + RawData []Container_RemoteManagement_SensorReading `json:"rawData,omitempty" xmlrpc:"rawData,omitempty"` + + // The graph(s) to display the server's fan speeds. + SpeedGraphs []Container_RemoteManagement_Graphs_SensorSpeed `json:"speedGraphs,omitempty" xmlrpc:"speedGraphs,omitempty"` + + // The graph(s) to display the server's cpu(s) and system temperatures. + TemperatureGraphs []Container_RemoteManagement_Graphs_SensorTemperature `json:"temperatureGraphs,omitempty" xmlrpc:"temperatureGraphs,omitempty"` +} + +// The metadata service resource container is used to store information about a single service resource. +type Container_Resource_Metadata_ServiceResource struct { + Entity + + // The backend IP address for this resource + BackendIpAddress *string `json:"backendIpAddress,omitempty" xmlrpc:"backendIpAddress,omitempty"` + + // The type for this resource + Type *Network_Service_Resource_Type `json:"type,omitempty" xmlrpc:"type,omitempty"` +} + +// This data type is a container that stores information about a single indexed object type. Object type information can be used for discovery of searchable data and for creation or validation of object index search strings. Each of these containers holds a collection of [[SoftLayer_Container_Search_ObjectType_Property (type)|SoftLayer_Container_Search_ObjectType_Property]] objects, specifying which object properties are exposed for the current user. Refer to the the documentation for the [[SoftLayer_Search/search|search()]] method for information on using object types in search strings. +type Container_Search_ObjectType struct { + Entity + + // Name of object type. + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` + + // A collection of [[SoftLayer_Container_Search_ObjectType_Property|object properties]]. + Properties []Container_Search_ObjectType_Property `json:"properties,omitempty" xmlrpc:"properties,omitempty"` +} + +// This data type is a container that stores information about a single property of a searchable object type. Each [[SoftLayer_Container_Search_ObjectType (type)|SoftLayer_Container_Search_ObjectType]] object holds a collection of these properties. Property information can be used for discovery of searchable data and for the creation or validation of object index search strings. Note that properties are only understood by the [[SoftLayer_Search/advancedSearch|advancedSearch()]] method. Refer to the advancedSearch() method for information on using properties in search strings. +type Container_Search_ObjectType_Property struct { + Entity + + // Name of property. + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` + + // Indicates if this property can be sorted. + SortableFlag *bool `json:"sortableFlag,omitempty" xmlrpc:"sortableFlag,omitempty"` + + // Property data type. Valid values include 'boolean', 'integer', 'date', 'string' or 'text'. + Type *string `json:"type,omitempty" xmlrpc:"type,omitempty"` +} + +// The SoftLayer_Container_Search_Result data type represents a result row from an execution of Search service. +type Container_Search_Result struct { + Entity + + // An array of terms that were matched in the resource object. + MatchedTerms []string `json:"matchedTerms,omitempty" xmlrpc:"matchedTerms,omitempty"` + + // The score ratio of the result for relevance to the search criteria. + RelevanceScore *Float64 `json:"relevanceScore,omitempty" xmlrpc:"relevanceScore,omitempty"` + + // A search results resource object that matched search criteria. + Resource *Entity `json:"resource,omitempty" xmlrpc:"resource,omitempty"` + + // The type of the resource object that matched search criteria. + ResourceType *string `json:"resourceType,omitempty" xmlrpc:"resourceType,omitempty"` +} + +// The SoftLayer_Container_Software_Component_HostIps_Policy container holds the title and value of a current host ips policy. +type Container_Software_Component_HostIps_Policy struct { + Entity + + // The value of a host ips category. + Policy *string `json:"policy,omitempty" xmlrpc:"policy,omitempty"` + + // The category title of a host ips policy. + PolicyTitle *string `json:"policyTitle,omitempty" xmlrpc:"policyTitle,omitempty"` +} + +// These are the results of a tax calculation. The tax calculation was kicked off but allowed to run in the background. This type stores the results so that an interface can be updated with up-to-date information. +type Container_Tax_Cache struct { + Entity + + // The percentage of the final total that should be tax. + EffectiveTaxRate *Float64 `json:"effectiveTaxRate,omitempty" xmlrpc:"effectiveTaxRate,omitempty"` + + // The container that holds the four actual tax rates, one for each fee type. + Items []Container_Tax_Cache_Item `json:"items,omitempty" xmlrpc:"items,omitempty"` + + // The status of the tax request. This should be PENDING, FAILED, or COMPLETED. + Status *string `json:"status,omitempty" xmlrpc:"status,omitempty"` + + // The final amount of tax for the order. + TotalTaxAmount *Float64 `json:"totalTaxAmount,omitempty" xmlrpc:"totalTaxAmount,omitempty"` +} + +// This represents one order item in a tax calculation. +type Container_Tax_Cache_Item struct { + Entity + + // The category code for the referenced product. + CategoryCode *string `json:"categoryCode,omitempty" xmlrpc:"categoryCode,omitempty"` + + // This hash will match to the hash on an order container. + ContainerHash *string `json:"containerHash,omitempty" xmlrpc:"containerHash,omitempty"` + + // The reference to the price for this order item. + ItemPriceId *int `json:"itemPriceId,omitempty" xmlrpc:"itemPriceId,omitempty"` + + // This is the container containing the individual tax rates. + TaxRates *Container_Tax_Rates `json:"taxRates,omitempty" xmlrpc:"taxRates,omitempty"` +} + +// This contains the four tax rates, one for each fee type. +type Container_Tax_Rates struct { + Entity + + // The tax rate associated with the labor fee. + LaborTaxRate *Float64 `json:"laborTaxRate,omitempty" xmlrpc:"laborTaxRate,omitempty"` + + // A reference to a location. + LocationId *Float64 `json:"locationId,omitempty" xmlrpc:"locationId,omitempty"` + + // The tax rate associated with the one-time fee. + OneTimeTaxRate *Float64 `json:"oneTimeTaxRate,omitempty" xmlrpc:"oneTimeTaxRate,omitempty"` + + // The tax rate associated with the recurring fee. + RecurringTaxRate *Float64 `json:"recurringTaxRate,omitempty" xmlrpc:"recurringTaxRate,omitempty"` + + // The tax rate associated with the setup fee. + SetupTaxRate *Float64 `json:"setupTaxRate,omitempty" xmlrpc:"setupTaxRate,omitempty"` +} + +// SoftLayer_Container_Ticket_GraphInputs models a single inbound object for a given ticket graph. +type Container_Ticket_GraphInputs struct { + Entity + + // This is a unix timestamp that represents the stop date/time for a graph. + EndDate *Time `json:"endDate,omitempty" xmlrpc:"endDate,omitempty"` + + // The front-end or back-end network uplink interface associated with this server. + NetworkInterfaceId *int `json:"networkInterfaceId,omitempty" xmlrpc:"networkInterfaceId,omitempty"` + + // * + Pod *int `json:"pod,omitempty" xmlrpc:"pod,omitempty"` + + // This is a human readable name for the server or rack being graphed. + ServerName *string `json:"serverName,omitempty" xmlrpc:"serverName,omitempty"` + + // This is a unix timestamp that represents the begin date/time for a graph. + StartDate *Time `json:"startDate,omitempty" xmlrpc:"startDate,omitempty"` +} + +// SoftLayer_Container_Ticket_GraphOutputs models a single outbound object for a given bandwidth graph. +type Container_Ticket_GraphOutputs struct { + Entity + + // The raw PNG binary data to be displayed once the graph is drawn. + GraphImage *[]byte `json:"graphImage,omitempty" xmlrpc:"graphImage,omitempty"` + + // The title that ended up being displayed as part of the graph image. + GraphTitle *string `json:"graphTitle,omitempty" xmlrpc:"graphTitle,omitempty"` + + // The maximum date included in this graph. + MaxEndDate *Time `json:"maxEndDate,omitempty" xmlrpc:"maxEndDate,omitempty"` + + // The minimum date included in this graph. + MinStartDate *Time `json:"minStartDate,omitempty" xmlrpc:"minStartDate,omitempty"` +} + +// no documentation yet +type Container_Ticket_Priority struct { + Entity + + // no documentation yet + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` + + // no documentation yet + Value *int `json:"value,omitempty" xmlrpc:"value,omitempty"` +} + +// no documentation yet +type Container_Ticket_Survey_Preference struct { + Entity + + // no documentation yet + Applicable *bool `json:"applicable,omitempty" xmlrpc:"applicable,omitempty"` + + // no documentation yet + OptedOut *bool `json:"optedOut,omitempty" xmlrpc:"optedOut,omitempty"` + + // no documentation yet + OptedOutDate *Time `json:"optedOutDate,omitempty" xmlrpc:"optedOutDate,omitempty"` +} + +// Container class used to hold user authentication token +type Container_User_Authentication_Token struct { + Entity + + // hash that gets populated for user authentication + Hash *string `json:"hash,omitempty" xmlrpc:"hash,omitempty"` + + // the user authenticated object + User *User_Customer `json:"user,omitempty" xmlrpc:"user,omitempty"` + + // the id of the user to authenticate + UserId *int `json:"userId,omitempty" xmlrpc:"userId,omitempty"` +} + +// Container classed used to hold external authentication information +type Container_User_Customer_External_Binding struct { + Entity + + // The unique token that is created by an external authentication request. + AuthenticationToken *string `json:"authenticationToken,omitempty" xmlrpc:"authenticationToken,omitempty"` + + // The OpenID Connect access token which provides access to a resource by the OpenID Connect provider. + OpenIdConnectAccessToken *string `json:"openIdConnectAccessToken,omitempty" xmlrpc:"openIdConnectAccessToken,omitempty"` + + // The account to login to, if not provided a default will be used. + OpenIdConnectAccountId *int `json:"openIdConnectAccountId,omitempty" xmlrpc:"openIdConnectAccountId,omitempty"` + + // The OpenID Connect provider type, as a string. + OpenIdConnectProvider *string `json:"openIdConnectProvider,omitempty" xmlrpc:"openIdConnectProvider,omitempty"` + + // Your SoftLayer customer portal user's portal password. + Password *string `json:"password,omitempty" xmlrpc:"password,omitempty"` + + // The answer to your security question. + SecurityQuestionAnswer *string `json:"securityQuestionAnswer,omitempty" xmlrpc:"securityQuestionAnswer,omitempty"` + + // A security question you wish to answer when authenticating to the SoftLayer customer portal. This parameter isn't required if no security questions are set on your portal account or if your account is configured to not require answering a security account upon login. + SecurityQuestionId *int `json:"securityQuestionId,omitempty" xmlrpc:"securityQuestionId,omitempty"` + + // The username you wish to authenticate to the SoftLayer customer portal with. + Username *string `json:"username,omitempty" xmlrpc:"username,omitempty"` + + // The name of the vendor that will be used for external authentication + Vendor *string `json:"vendor,omitempty" xmlrpc:"vendor,omitempty"` +} + +// Container classed used to hold portal token +type Container_User_Customer_External_Binding_Phone struct { + Container_User_Customer_External_Binding +} + +// This container can be used to configure the phone authentication mode. By default, "VOICE_CALL" in "STANDARD" mode with no Pin number will be used. With the default mode, you will have to answer a phone call from a trusted 2 form factor vendor during authentication process. You have to answer the call and follow the instruction in order to complete the authentication. +// +// You can also use SMS text message or PhoneFactor mobile app modes (in case you're using PhoneFactor). Additionally, you can set up a Pin number. By requiring you to verify your secret PIN, you can ensure that you have possession of your phone. +type Container_User_Customer_External_Binding_Phone_Mode struct { + Entity + + // Authentication mode. Valid modes are: VOICE_CALL, SMS_TEXT, PHONE_APP + // + // + // *VOICE_CALL + // In this mode, users will receive a phone call to authenticate. Using PIN can enhance the security of the phone authentication by requiring the user to enter a PIN during the authentication call. Valid Pin modes are: PIN, VOICE_PRINT, STANDARD + // + // + // **STANDARD: (default) No PIN is used. + // **PIN: 4 to 10 digit numeric value + // **VOICE_PRINT: The user's voice will be used to identify the user. + // + // + // *SMS_TEXT + // SMS Text mode will send a SMS text message to the user's phone to complete the authentication. There are 2 different pin modes: + // + // + // **OTP: (default) A text message containing a One-Time Passcode (OTP) is sent to the user. The user must reply to the text message entering this OTP to complete the authentication. + // **OTP_PIN: This mode enhances the security of the authentication by requiring the user to enter the OTP + their PIN in the text reply. + // + // + // + // + // *PHONE_APP + // This mode is applicable for PhoneFactor. Phone App mode results in a notification being sent to the user's PhoneFactor phone app. There are 2 different pin modes for the mobile app authentication. + // **STANDARD: (default) The first authentication is when the user signs on using a username and password. + // The second authentication is when the user receives a notification in the PhoneFactor phone app. In Standard Mode, users will prompted to authenticate, deny, or deny and report fraud. + // **PIN: This mode enhances the security of the authentication by requiring the user to enter their PIN in the phone app. + Mode *string `json:"mode,omitempty" xmlrpc:"mode,omitempty"` + + // Optional authentication pin. + Pin *string `json:"pin,omitempty" xmlrpc:"pin,omitempty"` + + // Available Pin modes are: PIN, VOICE_PRINT, STANDARD Default: STANDARD (Pin is not used) + PinMode *string `json:"pinMode,omitempty" xmlrpc:"pinMode,omitempty"` +} + +// Container classed used to hold portal token +type Container_User_Customer_External_Binding_Totp struct { + Container_User_Customer_External_Binding + + // The security code used to validate a Totp credential. + SecurityCode *string `json:"securityCode,omitempty" xmlrpc:"securityCode,omitempty"` +} + +// Container classed used to hold details about an external authentication vendor. +type Container_User_Customer_External_Binding_Vendor struct { + Entity + + // The keyname used to identify an external authentication vendor. + KeyName *string `json:"keyName,omitempty" xmlrpc:"keyName,omitempty"` + + // The name of an external authentication vendor. + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` +} + +// Container classed used to hold portal token +type Container_User_Customer_External_Binding_Verisign struct { + Container_User_Customer_External_Binding + + // A second security code that is only required if your credential has become unsynchronized. + SecondSecurityCode *string `json:"secondSecurityCode,omitempty" xmlrpc:"secondSecurityCode,omitempty"` + + // The security code used to validate a VeriSign credential. + SecurityCode *string `json:"securityCode,omitempty" xmlrpc:"securityCode,omitempty"` +} + +// no documentation yet +type Container_User_Customer_OpenIdConnect_LoginAccountInfo struct { + Entity + + // The customer account's internal identifier. + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // The company name associated with an account. + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` +} + +// no documentation yet +type Container_User_Customer_OpenIdConnect_MigrationState struct { + Entity + + // The number of days remaining in the grace period for this user's account to + DaysToGracePeriodEnd *int `json:"daysToGracePeriodEnd,omitempty" xmlrpc:"daysToGracePeriodEnd,omitempty"` + + // Flag for whether the email address inside this SoftLayer_User_Customer object + EmailAlreadyUsedForInvitationToAccount *bool `json:"emailAlreadyUsedForInvitationToAccount,omitempty" xmlrpc:"emailAlreadyUsedForInvitationToAccount,omitempty"` + + // Flag for whether the email address inside this SoftLayer_User_Customer object + EmailAlreadyUsedForLinkToAccount *bool `json:"emailAlreadyUsedForLinkToAccount,omitempty" xmlrpc:"emailAlreadyUsedForLinkToAccount,omitempty"` + + // The IBMid email address where an invitation was sent. + ExistingInvitationOpenIdConnectName *string `json:"existingInvitationOpenIdConnectName,omitempty" xmlrpc:"existingInvitationOpenIdConnectName,omitempty"` + + // Flag for whether the account is OpenIdConnect authenticated or not. + IsAccountOpenIdConnectAuthenticated *bool `json:"isAccountOpenIdConnectAuthenticated,omitempty" xmlrpc:"isAccountOpenIdConnectAuthenticated,omitempty"` +} + +// Container for holding information necessary for the setting and resetting of customer passwords +// +// +type Container_User_Customer_PasswordSet struct { + Entity + + // id of SoftLayer_User_Security_Question + AnsweredSecurityQuestionId *int `json:"answeredSecurityQuestionId,omitempty" xmlrpc:"answeredSecurityQuestionId,omitempty"` + + // the authentication methods required + AuthenticationMethods []int `json:"authenticationMethods,omitempty" xmlrpc:"authenticationMethods,omitempty"` + + // the password key provided to user in the password set url link sent via email + Key *string `json:"key,omitempty" xmlrpc:"key,omitempty"` + + // the user's new password + Password *string `json:"password,omitempty" xmlrpc:"password,omitempty"` + + // answer to security question provided by the user + SecurityAnswer *string `json:"securityAnswer,omitempty" xmlrpc:"securityAnswer,omitempty"` + + // array of SoftLayer_User_Security_Question + SecurityQuestions []User_Security_Question `json:"securityQuestions,omitempty" xmlrpc:"securityQuestions,omitempty"` + + // the id of the user to authenticate + UserId *int `json:"userId,omitempty" xmlrpc:"userId,omitempty"` +} + +// Container classed used to hold mobile portal token +type Container_User_Customer_Portal_MobileToken struct { + Container_User_Customer_Portal_Token + + // True if this user login required an external binding. + HasExternalBinding *bool `json:"hasExternalBinding,omitempty" xmlrpc:"hasExternalBinding,omitempty"` +} + +// Container classed used to hold portal token +type Container_User_Customer_Portal_Token struct { + Entity + + // hash of logged in user session id + Hash *string `json:"hash,omitempty" xmlrpc:"hash,omitempty"` + + // the logged in user data + User *User_Customer `json:"user,omitempty" xmlrpc:"user,omitempty"` + + // the id of the logged in user + UserId *int `json:"userId,omitempty" xmlrpc:"userId,omitempty"` +} + +// This container holds user's phone information. +type Container_User_Data_Phone struct { + Entity + + // Country code number for the phone number Default: 1 (United States & Canada +1) + CountryCode *int `json:"countryCode,omitempty" xmlrpc:"countryCode,omitempty"` + + // Phone extension code. It can be digits, commas, *, and # are allowed. + Extension *string `json:"extension,omitempty" xmlrpc:"extension,omitempty"` + + // Phone number can be a mobile phone number, desk phone number, or some other option. The phone number format must match the format selected in the country code. + Phone *string `json:"phone,omitempty" xmlrpc:"phone,omitempty"` + + // Type of phone number such as "primary", "office" or "home" + PhoneType *string `json:"phoneType,omitempty" xmlrpc:"phoneType,omitempty"` +} + +// Container classed used to hold portal token +type Container_User_Employee_External_Binding_Verisign struct { + Entity +} + +// At times,such as when attaching files to tickets, it is necessary to send files to SoftLayer API methods. The SoftLayer_Container_Utility_File_Attachment data type models a single file to upload to the API. +type Container_Utility_File_Attachment struct { + Entity + + // The contents of a file that is uploaded to the SoftLayer API. + Data *[]byte `json:"data,omitempty" xmlrpc:"data,omitempty"` + + // The name of a file that is uploaded to the SoftLayer API. + Filename *string `json:"filename,omitempty" xmlrpc:"filename,omitempty"` +} + +// Used to describe a document in the file system on the file server +type Container_Utility_File_Descriptor struct { + Entity + + // The name of a file as it exists on the file server. + FileName *string `json:"fileName,omitempty" xmlrpc:"fileName,omitempty"` + + // The friendly name of a file as it exists on the file server. + FriendlyName *string `json:"friendlyName,omitempty" xmlrpc:"friendlyName,omitempty"` + + // The date the file was last modified on the file server. + ModifyDate *Time `json:"modifyDate,omitempty" xmlrpc:"modifyDate,omitempty"` +} + +// SoftLayer_Container_Utility_File_Entity data type models a single entity on a storage resource. Entities can include anything within a storage volume including files, folders, directories, and CloudLayer storage projects. +type Container_Utility_File_Entity struct { + Entity + + // A file entity's raw content. + Content *[]byte `json:"content,omitempty" xmlrpc:"content,omitempty"` + + // A file entity's MIME content type. + ContentType *string `json:"contentType,omitempty" xmlrpc:"contentType,omitempty"` + + // The date a file entity was created. + CreateDate *Time `json:"createDate,omitempty" xmlrpc:"createDate,omitempty"` + + // The date a CloudLayer storage file entity was moved into the recycle bin. This field applies to files that are pending deletion in the recycle bin. + DeleteDate *Time `json:"deleteDate,omitempty" xmlrpc:"deleteDate,omitempty"` + + // Unique identifier for the file. This can be either a number or guid. + Id *string `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // Whether a CloudLayer storage file entity is shared with another CloudLayer user. + IsShared *int `json:"isShared,omitempty" xmlrpc:"isShared,omitempty"` + + // The date a file entity was last changed. + ModifyDate *Time `json:"modifyDate,omitempty" xmlrpc:"modifyDate,omitempty"` + + // A file entity's name. + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` + + // The owner is usually the account who first upload or created the file on the resource or the account who is responsible for the file at the moment. + Owner *string `json:"owner,omitempty" xmlrpc:"owner,omitempty"` + + // The size of a file entity in bytes. + Size *uint `json:"size,omitempty" xmlrpc:"size,omitempty"` + + // A CloudLayer storage file entity's type. Types can include "file", "folder", "dir", and "project". + Type *string `json:"type,omitempty" xmlrpc:"type,omitempty"` + + // The latest revision of a file on a CloudLayer storage volume. This number increments each time a new revision of the file is uploaded. + Version *int `json:"version,omitempty" xmlrpc:"version,omitempty"` +} + +// no documentation yet +type Container_Utility_Message struct { + Entity + + // no documentation yet + CreateDate *Time `json:"createDate,omitempty" xmlrpc:"createDate,omitempty"` + + // no documentation yet + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // no documentation yet + Message *string `json:"message,omitempty" xmlrpc:"message,omitempty"` + + // no documentation yet + ModifyDate *Time `json:"modifyDate,omitempty" xmlrpc:"modifyDate,omitempty"` + + // no documentation yet + Summary *string `json:"summary,omitempty" xmlrpc:"summary,omitempty"` +} + +// SoftLayer customer servers that are purchased with the Microsoft Windows operating system are configured by default to retrieve updates from SoftLayer's local Windows Server Update Services (WSUS) server. Periodically, these servers synchronize and check for new updates from their local WSUS server. SoftLayer_Container_Utility_Microsoft_Windows_UpdateServices_Status models the results of a server's last synchronization attempt as queried from SoftLayer's WSUS servers. +type Container_Utility_Microsoft_Windows_UpdateServices_Status struct { + Entity + + // The last time a server rebooted due to a Windows Update. + LastRebootDate *Time `json:"lastRebootDate,omitempty" xmlrpc:"lastRebootDate,omitempty"` + + // The last time that SoftLayer's local WSUS server received a status update from a customer server. + LastStatusDate *Time `json:"lastStatusDate,omitempty" xmlrpc:"lastStatusDate,omitempty"` + + // The last time a server synchronized with SoftLayer's local WSUS server. + LastSyncDate *Time `json:"lastSyncDate,omitempty" xmlrpc:"lastSyncDate,omitempty"` + + // This is the private IP address for this server. + PrivateIPAddress *string `json:"privateIPAddress,omitempty" xmlrpc:"privateIPAddress,omitempty"` + + // The status message returned from a server's last synchronization with SoftLayer's local WSUS server. + SyncStatus *string `json:"syncStatus,omitempty" xmlrpc:"syncStatus,omitempty"` + + // A server's update status, as retrieved form SoftLayer's local WSUS server. + UpdateStatus *string `json:"updateStatus,omitempty" xmlrpc:"updateStatus,omitempty"` +} + +// SoftLayer_Container_Utility_Microsoft_Windows_UpdateServices_UpdateItem models a single Microsoft Update as reported by SoftLayer's private Windows Server Update Services (WSUS) services. All servers purchased with Microsoft Windows retrieve updates from SoftLayer's WSUS servers by default. +type Container_Utility_Microsoft_Windows_UpdateServices_UpdateItem struct { + Entity + + // A short description of a Microsoft Windows Update. + Description *string `json:"description,omitempty" xmlrpc:"description,omitempty"` + + // Flag indicating that this patch failed to properly install + Failed *bool `json:"failed,omitempty" xmlrpc:"failed,omitempty"` + + // A Windows Update's knowledge base article number. Every Windows Update can be referenced on the Microsoft Help and Support site at the URL http://support.microsoft.com/kb/
. + KbArticleNumber *int `json:"kbArticleNumber,omitempty" xmlrpc:"kbArticleNumber,omitempty"` + + // Flag indicating that the update is entirely optionals + Optional *bool `json:"optional,omitempty" xmlrpc:"optional,omitempty"` + + // Flag indicating that a reboot is needed for this update to be fully applied + RequiresReboot *bool `json:"requiresReboot,omitempty" xmlrpc:"requiresReboot,omitempty"` +} + +// The SoftLayer_Container_Utility_Network_Firewall_Rule_Attribute data type contains information relating to a single firewall rule. +type Container_Utility_Network_Firewall_Rule_Attribute struct { + Entity + + // The valid actions for use with rules. + Actions []string `json:"actions,omitempty" xmlrpc:"actions,omitempty"` + + // Maximum allowed number of rules. + MaximumRuleCount *int `json:"maximumRuleCount,omitempty" xmlrpc:"maximumRuleCount,omitempty"` + + // The valid protocols for use with rules. + Protocols []string `json:"protocols,omitempty" xmlrpc:"protocols,omitempty"` + + // The valid source ip subnet masks for use with rules. + SourceIpSubnetMasks []Container_Utility_Network_Subnet_Mask_Generic_Detail `json:"sourceIpSubnetMasks,omitempty" xmlrpc:"sourceIpSubnetMasks,omitempty"` +} + +// The SoftLayer_Container_Utility_Network_Subnet_Mask_Generic_Detail data type contains information relating to a subnet mask and details associated with that object. +type Container_Utility_Network_Subnet_Mask_Generic_Detail struct { + Entity + + // The subnet cidr prefix. + Cidr *string `json:"cidr,omitempty" xmlrpc:"cidr,omitempty"` + + // The subnet mask description. + Description *string `json:"description,omitempty" xmlrpc:"description,omitempty"` + + // The subnet mask. + Mask *string `json:"mask,omitempty" xmlrpc:"mask,omitempty"` +} + +// This type represents the structure to hold the allocation properties of a [[SoftLayer_Virtual_DedicatedHost]]. +type Container_Virtual_DedicatedHost_AllocationStatus struct { + Entity + + // Number of CPU cores allocated on the specified DedicatedHost + CpuAllocated *int `json:"cpuAllocated,omitempty" xmlrpc:"cpuAllocated,omitempty"` + + // Number of CPU cores available on the specified DedicatedHost + CpuAvailable *int `json:"cpuAvailable,omitempty" xmlrpc:"cpuAvailable,omitempty"` + + // Total number of cpu cores on the DedicatedHost + CpuCount *int `json:"cpuCount,omitempty" xmlrpc:"cpuCount,omitempty"` + + // Amount of disk space allocated on the specified DedicatedHost + DiskAllocated *int `json:"diskAllocated,omitempty" xmlrpc:"diskAllocated,omitempty"` + + // Amount of disk space available on the specified DedicatedHost + DiskAvailable *int `json:"diskAvailable,omitempty" xmlrpc:"diskAvailable,omitempty"` + + // Total amount of disk capacity on the DedicatedHost + DiskCapacity *int `json:"diskCapacity,omitempty" xmlrpc:"diskCapacity,omitempty"` + + // Number of guests allocated on the specified DedicatedHost + GuestCount *int `json:"guestCount,omitempty" xmlrpc:"guestCount,omitempty"` + + // Amount of memory allocated on the specified DedicatedHost + MemoryAllocated *int `json:"memoryAllocated,omitempty" xmlrpc:"memoryAllocated,omitempty"` + + // Amount of memory available on the specified DedicatedHost + MemoryAvailable *int `json:"memoryAvailable,omitempty" xmlrpc:"memoryAvailable,omitempty"` + + // Total amount of memory capacity on the DedicatedHost + MemoryCapacity *int `json:"memoryCapacity,omitempty" xmlrpc:"memoryCapacity,omitempty"` +} + +// The SoftLayer_Container_Virtual_Guest_Block_Device_Template_Configuration data type contains information relating to a template's external location for importing and exporting +type Container_Virtual_Guest_Block_Device_Template_Configuration struct { + Entity + + // + // Optional virtualization boot mode parameter, if set, can mark a template to boot specifically into PV or HVM. + BootMode *string `json:"bootMode,omitempty" xmlrpc:"bootMode,omitempty"` + + // + // Specifies if image is using a customer's software license. + Byol *bool `json:"byol,omitempty" xmlrpc:"byol,omitempty"` + + // + // Specifies if image requires cloud-init. + CloudInit *bool `json:"cloudInit,omitempty" xmlrpc:"cloudInit,omitempty"` + + // The group name to be applied to the imported template + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` + + // The note to be applied to the imported template + Note *string `json:"note,omitempty" xmlrpc:"note,omitempty"` + + // + // The referenceCode of the operating system software description for the imported VHD + OperatingSystemReferenceCode *string `json:"operatingSystemReferenceCode,omitempty" xmlrpc:"operatingSystemReferenceCode,omitempty"` + + // + // The URI for an object storage object (.vhd/.iso file) + // swift://@// + Uri *string `json:"uri,omitempty" xmlrpc:"uri,omitempty"` +} + +// The guest configuration container is used to provide configuration options for creating computing instances. +// +// Each configuration option will include both an itemPrice and a template. +// +// The itemPrice value will provide hourly and monthly costs (if either are applicable), and a description of the option. +// +// The template will provide a fragment of the request with the properties and values that must be sent when creating a computing instance with the option. +// +// The [[SoftLayer_Virtual_Guest/getCreateObjectOptions|getCreateObjectOptions]] method returns this data structure. +// +// +type Container_Virtual_Guest_Configuration struct { + Entity + + // + //
+ // Available block device options. + // + // + // A computing instance will have at least one block device represented by a device number of '0'. + // + // + // The blockDevices.device value in the template represents which device the option is for. + // The blockDevices.diskImage.capacity value in the template represents the size, in gigabytes, of the disk. + // The localDiskFlag value in the template represents whether the option is a local or SAN based disk. + // + // + // Note: The block device number '1' is reserved for the SWAP disk attached to the computing instance. + //
+ BlockDevices []Container_Virtual_Guest_Configuration_Option `json:"blockDevices,omitempty" xmlrpc:"blockDevices,omitempty"` + + // + //
+ // Available datacenter options. + // + // + // The datacenter.name value in the template represents which datacenter the computing instance will be provisioned in. + //
+ Datacenters []Container_Virtual_Guest_Configuration_Option `json:"datacenters,omitempty" xmlrpc:"datacenters,omitempty"` + + // + //
+ // Available memory options. + // + // + // The maxMemory value in the template represents the amount of memory, in megabytes, allocated to the computing instance. + //
+ Memory []Container_Virtual_Guest_Configuration_Option `json:"memory,omitempty" xmlrpc:"memory,omitempty"` + + // + //
+ // Available network component options. + // + // + // The networkComponent.maxSpeed value in the template represents the link speed, in megabits per second, of the network connections for a computing instance. + //
+ NetworkComponents []Container_Virtual_Guest_Configuration_Option `json:"networkComponents,omitempty" xmlrpc:"networkComponents,omitempty"` + + // + //
+ // Available operating system options. + // + // + // The operatingSystemReferenceCode value in the template is an identifier for a particular operating system. When provided exactly as shown in the template, that operating system will be used. + // + // + // A reference code is structured as three tokens separated by underscores. The first token represents the product, the second is the version of the product, and the third is whether the OS is 32 or 64bit. + // + // + // When providing an operatingSystemReferenceCode while ordering a computing instance the only token required to match exactly is the product. The version token may be given as 'LATEST', else it will require an exact match as well. When the bits token is not provided, 64 bits will be assumed. + // + // + // Providing the value of 'LATEST' for a version will select the latest release of that product for the operating system. As this may change over time, you should be sure that the release version is irrelevant for your applications. + // + // + // For Windows based operating systems the version will represent both the release version (2008, 2012, etc) and the edition (Standard, Enterprise, etc). For all other operating systems the version will represent the major version (Centos 6, Ubuntu 12, etc) of that operating system, minor versions are not represented in a reference code. + // + // + // Notice - Some operating systems are charged based on the value specified in startCpus. The price which is used can be determined by calling [[SoftLayer_Virtual_Guest/generateOrderTemplate|generateOrderTemplate]] with your desired device specifications. + //
+ OperatingSystems []Container_Virtual_Guest_Configuration_Option `json:"operatingSystems,omitempty" xmlrpc:"operatingSystems,omitempty"` + + // + //
+ // Available processor options. + // + // + // The startCpus value in the template represents the number of cores allocated to the computing instance. + // The dedicatedAccountHostOnlyFlag value in the template represents whether the instance will run on hosts with instances belonging to other accounts. + //
+ Processors []Container_Virtual_Guest_Configuration_Option `json:"processors,omitempty" xmlrpc:"processors,omitempty"` +} + +// An option found within a [[SoftLayer_Container_Virtual_Guest_Configuration (type)]] structure. +type Container_Virtual_Guest_Configuration_Option struct { + Entity + + // + // Provides hourly and monthly costs (if either are applicable), and a description of the option. + ItemPrice *Product_Item_Price `json:"itemPrice,omitempty" xmlrpc:"itemPrice,omitempty"` + + // + // Provides a fragment of the request with the properties and values that must be sent when creating a computing instance with the option. + Template *Virtual_Guest `json:"template,omitempty" xmlrpc:"template,omitempty"` +} diff --git a/vendor/github.com/softlayer/softlayer-go/datatypes/dns.go b/vendor/github.com/softlayer/softlayer-go/datatypes/dns.go new file mode 100644 index 000000000..98be7e711 --- /dev/null +++ b/vendor/github.com/softlayer/softlayer-go/datatypes/dns.go @@ -0,0 +1,430 @@ +/** + * Copyright 2016 IBM Corp. + * + * 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. + */ + +/** + * AUTOMATICALLY GENERATED CODE - DO NOT MODIFY + */ + +package datatypes + +// The SoftLayer_Dns_Domain data type represents a single DNS domain record hosted on the SoftLayer nameservers. Domains contain general information about the domain name such as name and serial. Individual records such as A, AAAA, CTYPE, and MX records are stored in the domain's associated [[SoftLayer_Dns_Domain_ResourceRecord (type)|SoftLayer_Dns_Domain_ResourceRecord]] records. +type Dns_Domain struct { + Entity + + // The SoftLayer customer account that owns a domain. + Account *Account `json:"account,omitempty" xmlrpc:"account,omitempty"` + + // A domain record's internal identifier. + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // A flag indicating that the dns domain record is a managed resource. + ManagedResourceFlag *bool `json:"managedResourceFlag,omitempty" xmlrpc:"managedResourceFlag,omitempty"` + + // A domain's name including top-level domain, for example "example.com". + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` + + // A count of the individual records contained within a domain record. These include but are not limited to A, AAAA, MX, CTYPE, SPF and TXT records. + ResourceRecordCount *uint `json:"resourceRecordCount,omitempty" xmlrpc:"resourceRecordCount,omitempty"` + + // The individual records contained within a domain record. These include but are not limited to A, AAAA, MX, CTYPE, SPF and TXT records. + ResourceRecords []Dns_Domain_ResourceRecord `json:"resourceRecords" xmlrpc:"resourceRecords"` + + // The secondary DNS record that defines this domain as being managed through zone transfers. + Secondary *Dns_Secondary `json:"secondary,omitempty" xmlrpc:"secondary,omitempty"` + + // A unique number denoting the latest revision of a domain. Whenever a domain is changed its corresponding serial number is also changed. Serial numbers typically follow the format yyyymmdd## where yyyy is the current year, mm is the current month, dd is the current day of the month, and ## is the number of the revision for that day. A domain's serial number is automatically updated when edited via the API. + Serial *int `json:"serial,omitempty" xmlrpc:"serial,omitempty"` + + // The start of authority (SOA) record contains authoritative and propagation details for a DNS zone. This property is not considered in requests to createObject and editObject. + SoaResourceRecord *Dns_Domain_ResourceRecord_SoaType `json:"soaResourceRecord,omitempty" xmlrpc:"soaResourceRecord,omitempty"` + + // The date that this domain record was last updated. + UpdateDate *Time `json:"updateDate,omitempty" xmlrpc:"updateDate,omitempty"` +} + +// The SoftLayer_Dns_Domain_Forward data type represents a single DNS domain record hosted on the SoftLayer nameservers. Domains contain general information about the domain name such as name and serial. Individual records such as A, AAAA, CTYPE, and MX records are stored in the domain's associated [[SoftLayer_Dns_Domain_ResourceRecord (type)|SoftLayer_Dns_Domain_ResourceRecord]] records. +type Dns_Domain_Forward struct { + Dns_Domain +} + +// The SoftLayer_Dns_Domain_Registration data type represents a domain registration record. +type Dns_Domain_Registration struct { + Entity + + // The SoftLayer customer account that the domain is registered to. + Account *Account `json:"account,omitempty" xmlrpc:"account,omitempty"` + + // no documentation yet + CreateDate *Time `json:"createDate,omitempty" xmlrpc:"createDate,omitempty"` + + // The domain registration status. + DomainRegistrationStatus *Dns_Domain_Registration_Status `json:"domainRegistrationStatus,omitempty" xmlrpc:"domainRegistrationStatus,omitempty"` + + // no documentation yet + DomainRegistrationStatusId *int `json:"domainRegistrationStatusId,omitempty" xmlrpc:"domainRegistrationStatusId,omitempty"` + + // The date that the domain registration will expire. + ExpireDate *Time `json:"expireDate,omitempty" xmlrpc:"expireDate,omitempty"` + + // A domain record's internal identifier. + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // Indicates whether a domain is locked or unlocked. + LockedFlag *int `json:"lockedFlag,omitempty" xmlrpc:"lockedFlag,omitempty"` + + // no documentation yet + ModifyDate *Time `json:"modifyDate,omitempty" xmlrpc:"modifyDate,omitempty"` + + // A domain's name, for example "example.com". + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` + + // The registrant verification status. + RegistrantVerificationStatus *Dns_Domain_Registration_Registrant_Verification_Status `json:"registrantVerificationStatus,omitempty" xmlrpc:"registrantVerificationStatus,omitempty"` + + // no documentation yet + RegistrantVerificationStatusId *int `json:"registrantVerificationStatusId,omitempty" xmlrpc:"registrantVerificationStatusId,omitempty"` + + // no documentation yet + ServiceProvider *Service_Provider `json:"serviceProvider,omitempty" xmlrpc:"serviceProvider,omitempty"` + + // no documentation yet + ServiceProviderId *int `json:"serviceProviderId,omitempty" xmlrpc:"serviceProviderId,omitempty"` +} + +// SoftLayer_Dns_Domain_Registration_Registrant_Verification_Status models the state of the registrant. Here are the following status codes: +// +// +// *'''Admin Reviewing''': The registrant data has been submitted and being reviewed by compliance team. +// *'''Pending''': The verification process has been inititated, and verification email will be sent. +// *'''Suspended''': The registrant has failed verification and the domain has been suspended. +// *'''Verified''': The registrant has been validated. +// *'''Verifying''': The verification process has been initiated and is waiting for registrant response. +// *'''Unverified''': The verification process has not been inititated. +// +// +type Dns_Domain_Registration_Registrant_Verification_Status struct { + Entity + + // The description of the registrant verification status. + Description *string `json:"description,omitempty" xmlrpc:"description,omitempty"` + + // The unique identifier of the registrant verification status + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // The unique keyname of the registrant verification status. + KeyName *string `json:"keyName,omitempty" xmlrpc:"keyName,omitempty"` + + // The name of the registrant verification status. + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` +} + +// SoftLayer_Dns_Domain_Registration_Status models the state of domain name. Here are the following status codes: +// +// +// *'''Active''': This domain name is active. +// *'''Pending Owner Approval''': Pending owner approval for completion of transfer. +// *'''Pending Admin Review''': Pending admin review for transfer. +// *'''Pending Registry''': Pending registry for transfer. +// *'''Expired''': Domain name has expired. +// +// +type Dns_Domain_Registration_Status struct { + Entity + + // The description of the domain registration status names. + Description *string `json:"description,omitempty" xmlrpc:"description,omitempty"` + + // The unique identifier of the domain registration status + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // The unique keyname of the domain registration status. + KeyName *string `json:"keyName,omitempty" xmlrpc:"keyName,omitempty"` + + // The name of the domain registration status. + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` +} + +// The SoftLayer_Dns_Domain_ResourceRecord data type represents a single resource record entry in a SoftLayer hosted domain. Each resource record contains a ''host'' and ''data'' property, defining a resource's name and it's target data. Domains contain multiple types of resource records. The ''type'' property separates out resource records by type. ''Type'' can take one of the following values: +// * '''"a"''' for [[SoftLayer_Dns_Domain_ResourceRecord_AType|address]] records +// * '''"aaaa"''' for [[SoftLayer_Dns_Domain_ResourceRecord_AaaaType|address]] records +// * '''"cname"''' for [[SoftLayer_Dns_Domain_ResourceRecord_CnameType|canonical name]] records +// * '''"mx"''' for [[SoftLayer_Dns_Domain_ResourceRecord_MxType|mail exchanger]] records +// * '''"ns"''' for [[SoftLayer_Dns_Domain_ResourceRecord_NsType|name server]] records +// * '''"ptr"''' for [[SoftLayer_Dns_Domain_ResourceRecord_PtrType|pointer]] records in reverse domains +// * '''"soa"''' for a domain's [[SoftLayer_Dns_Domain_ResourceRecord_SoaType|start of authority]] record +// * '''"spf"''' for [[SoftLayer_Dns_Domain_ResourceRecord_SpfType|sender policy framework]] records +// * '''"srv"''' for [[SoftLayer_Dns_Domain_ResourceRecord_SrvType|service]] records +// * '''"txt"''' for [[SoftLayer_Dns_Domain_ResourceRecord_TxtType|text]] records +// +// +// As ''SoftLayer_Dns_Domain_ResourceRecord'' objects are created and loaded, the API verifies the ''type'' property and casts the object as the appropriate type. +type Dns_Domain_ResourceRecord struct { + Entity + + // The value of a domain's resource record. This can be an IP address or a hostname. Fully qualified host and domain name data must end with the "." character. + Data *string `json:"data,omitempty" xmlrpc:"data,omitempty"` + + // The domain that a resource record belongs to. + Domain *Dns_Domain `json:"domain,omitempty" xmlrpc:"domain,omitempty"` + + // An identifier belonging to the domain that a resource record is associated with. + DomainId *int `json:"domainId,omitempty" xmlrpc:"domainId,omitempty"` + + // The amount of time in seconds that a secondary name server (or servers) will hold a zone before it is no longer considered authoritative. + Expire *int `json:"expire,omitempty" xmlrpc:"expire,omitempty"` + + // The host defined by a resource record. A value of "@" denotes a wildcard. + Host *string `json:"host,omitempty" xmlrpc:"host,omitempty"` + + // A domain resource record's internal identifier. + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // Whether the address associated with a PTR record is the gateway address of a subnet. + IsGatewayAddress *bool `json:"isGatewayAddress,omitempty" xmlrpc:"isGatewayAddress,omitempty"` + + // The amount of time in seconds that a domain's resource records are valid. This is also known as a minimum TTL, and can be overridden by an individual resource record's TTL. + Minimum *int `json:"minimum,omitempty" xmlrpc:"minimum,omitempty"` + + // Useful in cases where a domain has more than one mail exchanger, the priority property is the priority of the MTA that delivers mail for a domain. A lower number denotes a higher priority, and mail will attempt to deliver through that MTA before moving to lower priority mail servers. Priority is defaulted to 10 upon resource record creation. + MxPriority *int `json:"mxPriority,omitempty" xmlrpc:"mxPriority,omitempty"` + + // The TCP or UDP port on which the service is to be found. + Port *int `json:"port,omitempty" xmlrpc:"port,omitempty"` + + // The priority of the target host, lower value means more preferred. + Priority *int `json:"priority,omitempty" xmlrpc:"priority,omitempty"` + + // The protocol of the desired service; this is usually either TCP or UDP. + Protocol *string `json:"protocol,omitempty" xmlrpc:"protocol,omitempty"` + + // The amount of time in seconds that a secondary name server should wait to check for a new copy of a DNS zone from the domain's primary name server. If a zone file has changed then the secondary DNS server will update it's copy of the zone to match the primary DNS server's zone. + Refresh *int `json:"refresh,omitempty" xmlrpc:"refresh,omitempty"` + + // The email address of the person responsible for a domain, with the "@" replaced with a ".". For instance, if root@example.org is responsible for example.org, then example.org's SOA responsibility is "root.example.org.". + ResponsiblePerson *string `json:"responsiblePerson,omitempty" xmlrpc:"responsiblePerson,omitempty"` + + // The amount of time in seconds that a domain's primary name server (or servers) should wait if an attempt to refresh by a secondary name server failed before attempting to refresh a domain's zone with that secondary name server again. + Retry *int `json:"retry,omitempty" xmlrpc:"retry,omitempty"` + + // The symbolic name of the desired service + Service *string `json:"service,omitempty" xmlrpc:"service,omitempty"` + + // The Time To Live value of a resource record, measured in seconds. TTL is used by a name server to determine how long to cache a resource record. An SOA record's TTL value defines the domain's overall TTL. + Ttl *int `json:"ttl,omitempty" xmlrpc:"ttl,omitempty"` + + // A domain resource record's type. A value of "a" denotes an A (address) record, "aaaa" denotes an AAAA (IPv6 address) record, "cname" denotes a CNAME (canonical name) record, "mx" denotes an MX (mail exchanger) record, "ns" denotes an NS (nameserver) record, "ptr" denotes a PTR (pointer/reverse) record, "soa" denotes the SOA (start of authority) record, "spf" denotes a SPF (sender policy framework) record, and "txt" denotes a TXT (text) record. A domain record's type also denotes which class in the SoftLayer API is a best match for extending a resource record. + Type *string `json:"type,omitempty" xmlrpc:"type,omitempty"` + + // A relative weight for records with the same priority. + Weight *int `json:"weight,omitempty" xmlrpc:"weight,omitempty"` +} + +// SoftLayer_Dns_Domain_ResourceRecord_AType is a SoftLayer_Dns_Domain_ResourceRecord object whose ''type'' property is set to "a" and defines a DNS A record on a SoftLayer hosted domain. An A record directs a host name to an IP address. For instance if the A record for "host.example.org" points to the IP address 10.0.0.1 then the ''host'' property for the A record equals "host" and the ''data'' property equals "10.0.0.1". +type Dns_Domain_ResourceRecord_AType struct { + Dns_Domain_ResourceRecord +} + +// SoftLayer_Dns_Domain_ResourceRecord_AaaaType is a SoftLayer_Dns_Domain_ResourceRecord object whose ''type'' property is set to "aaaa" and defines a DNS AAAA record on a SoftLayer hosted domain. An AAAA record directs a host name to an IPv6 address. For instance if the AAAA record for "host.example.org" points to the IPv6 address "fe80:0:0:0:0:0:a00:0" then the ''host'' property for the AAAA record equals "host" and the ''data'' property equals "fe80:0:0:0:0:0:a00:0". +type Dns_Domain_ResourceRecord_AaaaType struct { + Dns_Domain_ResourceRecord +} + +// SoftLayer_Dns_Domain_ResourceRecord_CnameType is a SoftLayer_Dns_Domain_ResourceRecord object whose ''type'' property is set to "cname" and defines a DNS CNAME record on a SoftLayer hosted domain. A CNAME record directs a host name to another host. For instance, if the CNAME record for "alias.example.org" points to the host "host.example.org" then the ''host'' property equals "alias" and the ''data'' property equals "host.example.org.". +// +// DNS entries defined by CNAME should not be used as the data field for an MX record. +type Dns_Domain_ResourceRecord_CnameType struct { + Dns_Domain_ResourceRecord +} + +// SoftLayer_Dns_Domain_ResourceRecord_MxType is a SoftLayer_Dns_Domain_ResourceRecord object whose ''type'' property is set to "mx" and used to describe MX resource records. MX records control which hosts are responsible as mail exchangers for a domain. For instance, in the domain example.org, an MX record whose host is "@" and data is "mail" says that the host "mail.example.org" is responsible for handling mail for example.org. That means mail sent to users @example.org are delivered to mail.example.org. +// +// Domains can have more than one MX record if it uses more than one server to send mail through. Multiple MX records are denoted by their priority, defined by the mxPriority property. +// +// MX records must be defined for hosts with accompanying A or AAAA resource records. They may not point mail towards a host defined by a CNAME record. +type Dns_Domain_ResourceRecord_MxType struct { + Dns_Domain_ResourceRecord +} + +// SoftLayer_Dns_Domain_ResourceRecord_NsType is a SoftLayer_Dns_Domain_ResourceRecord object whose ''type'' property is set to "ns" and defines a DNS NS record on a SoftLayer hosted domain. An NS record defines the authoritative name server for a domain. All SoftLayer hosted domains contain NS records for "ns1.softlayer.com" and "ns2.softlayer.com" . For instance, if example.org is hosted on ns1.softlayer.com, then example.org contains an NS record whose ''host'' property equals "@" and whose ''data'' property equals "ns1.example.org". +// +// NS resource records pointing to ns1.softlayer.com or ns2.softlayer.com many not be removed from a SoftLayer hosted domain. +type Dns_Domain_ResourceRecord_NsType struct { + Dns_Domain_ResourceRecord +} + +// SoftLayer_Dns_Domain_ResourceRecord_PtrType is a SoftLayer_Dns_Domain_ResourceRecord object whose ''type'' property is set to "ptr" and defines a reverse DNS PTR record on the SoftLayer name servers. +// +// The format for a reverse DNS PTR record varies based on whether it is for an IPv4 or IPv6 address. +// +// For an IPv4 address the ''host'' property for every PTR record is the last octet of the IP address that the PTR record belongs to, while the ''data'' property is the canonical name of the host that the reverse lookup resolves to. Every PTR record belongs to a domain on the SoftLayer name servers named by the first three octets of an IP address in reverse order followed by ".in-addr.arpa". +// +// For instance, if the reverse DNS record for 10.0.0.1 is "host.example.org" then it's corresponding SoftLayer_Dns_Domain_ResourceRecord_PtrType host is "1", while it's data property equals "host.example.org". The full name of the reverse record for host.example.org including the domain name is "1.0.0.10.in-addr.arpa". +// +// For an IPv6 address the ''host'' property for every PTR record is the last four octets of the IP address that the PTR record belongs to. The last four octets need to be in reversed order and each digit separated by a period. The ''data'' property is the canonical name of the host that the reverse lookup resolves to. Every PTR record belongs to a domain on the SoftLayer name servers named by the first four octets of an IP address in reverse order, split up by digit with a period, and followed by ".ip6.arpa". +// +// For instance, if the reverse DNS record for fe80:0000:0000:0000:0000:0000:0a00:0001 is "host.example.org" then it's corresponding SoftLayer_Dns_Domain_ResourceRecord_PtrType host is "1.0.0.0.0.0.a.0.0.0.0.0.0.0.0.0", while it's data property equals "host.example.org". The full name of the reverse record for host.example.org including the domain name is "1.0.0.0.0.0.a.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.8.e.f.ip6.arpa". +// +// PTR record host names may not be changed by [[SoftLayer_Dns_Domain_ResourceRecord::editObject]] or [[SoftLayer_Dns_Domain_ResourceRecord::editObjects]]. +type Dns_Domain_ResourceRecord_PtrType struct { + Dns_Domain_ResourceRecord + + // Whether the address associated with a PTR record is the gateway address of a subnet. + IsGatewayAddress *bool `json:"isGatewayAddress,omitempty" xmlrpc:"isGatewayAddress,omitempty"` +} + +// SoftLayer_Dns_Domain_ResourceRecord_SoaType defines a domains' Start of Authority (or SOA) resource record. A domain's SOA record contains a domain's general and propagation information. Every domain must have one SOA record, and it is not possible to remove a domain's SOA record. +// +// SOA records typically contain a domain's serial number, but the SoftLayer API associates a domain's serial number directly with it's SoftLayer_Dns_Domain record. +type Dns_Domain_ResourceRecord_SoaType struct { + Dns_Domain_ResourceRecord +} + +// SoftLayer_Dns_Domain_ResourceRecord_SpfType is a SoftLayer_Dns_Domain_ResourceRecord object whose ''type'' property is set to "spf" and defines a DNS SPF record on a SoftLayer hosted domain. An SPF record provides sender policy framework data for a host. For instance, if defining the SPF record "v=spf1 mx:mail.example.org ~all" for "host.example.org". then the ''host'' property equals "host" and the ''data'' property equals "v=spf1 mx:mail.example.org ~all". +// +// SPF records are commonly used in email verification methods such as Sender Policy Framework. +type Dns_Domain_ResourceRecord_SpfType struct { + Dns_Domain_ResourceRecord_TxtType +} + +// SoftLayer_Dns_Domain_ResourceRecord_SrvType is a SoftLayer_Dns_Domain_ResourceRecord object whose ''type'' property is set to "srv" and defines a DNS SRV record on a SoftLayer hosted domain. +type Dns_Domain_ResourceRecord_SrvType struct { + Dns_Domain_ResourceRecord + + // The TCP or UDP port on which the service is to be found. + Port *int `json:"port,omitempty" xmlrpc:"port,omitempty"` + + // The priority of the target host, lower value means more preferred. + Priority *int `json:"priority,omitempty" xmlrpc:"priority,omitempty"` + + // The protocol of the desired service; this is usually either TCP or UDP. + Protocol *string `json:"protocol,omitempty" xmlrpc:"protocol,omitempty"` + + // The symbolic name of the desired service + Service *string `json:"service,omitempty" xmlrpc:"service,omitempty"` + + // A relative weight for records with the same priority. + Weight *int `json:"weight,omitempty" xmlrpc:"weight,omitempty"` +} + +// SoftLayer_Dns_Domain_ResourceRecord_TxtType is a SoftLayer_Dns_Domain_ResourceRecord object whose ''type'' property is set to "txt" and defines a DNS TXT record on a SoftLayer hosted domain. A TXT record provides a text description for a host. For instance, if defining the TXT record "My test host" for "host.example.org". then the ''host'' property equals "host" and the ''data'' property equals "My test host". +// +// TXT records are commonly used in email verification methods such as Sender Policy Framework. +type Dns_Domain_ResourceRecord_TxtType struct { + Dns_Domain_ResourceRecord +} + +// The SoftLayer_Dns_Domain_Reverse data type represents a reverse IP address record. +type Dns_Domain_Reverse struct { + Dns_Domain + + // Network address the domain is associated with. + NetworkAddress *string `json:"networkAddress,omitempty" xmlrpc:"networkAddress,omitempty"` +} + +// The SoftLayer_Dns_Domain_Reverse_Version4 data type represents a reverse IPv4 address record. +type Dns_Domain_Reverse_Version4 struct { + Dns_Domain_Reverse +} + +// The SoftLayer_Dns_Domain_Reverse_Version6 data type represents a reverse IPv6 address record. +type Dns_Domain_Reverse_Version6 struct { + Dns_Domain_Reverse +} + +// The SoftLayer_Dns_Message data type contains information for a single message generated by the SoftLayer DNS system. SoftLayer_Dns_Messages are typically created during the secondary DNS transfer process. +type Dns_Message struct { + Entity + + // The date the message was created. + CreateDate *Time `json:"createDate,omitempty" xmlrpc:"createDate,omitempty"` + + // The domain that is associated with a message. + Domain *Dns_Domain `json:"domain,omitempty" xmlrpc:"domain,omitempty"` + + // The internal identifier for a DNS message. + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // The message text. + Message *string `json:"message,omitempty" xmlrpc:"message,omitempty"` + + // The priority level for a DNS message. The possible levels are 'notice' and 'error'. + Priority *string `json:"priority,omitempty" xmlrpc:"priority,omitempty"` + + // The resource record that is associated with a message. + ResourceRecord *Dns_Domain_ResourceRecord `json:"resourceRecord,omitempty" xmlrpc:"resourceRecord,omitempty"` + + // The secondary DNS record that a message belongs to. + Secondary *Dns_Secondary `json:"secondary,omitempty" xmlrpc:"secondary,omitempty"` +} + +// The SoftLayer_Dns_Secondary data type contains information on a single secondary DNS zone which is managed through SoftLayer's zone transfer service. Domains created via zone transfer may not be modified by the SoftLayer portal or API. +type Dns_Secondary struct { + Entity + + // The SoftLayer account that owns a secondary DNS record. + Account *Account `json:"account,omitempty" xmlrpc:"account,omitempty"` + + // The date a secondary DNS record was created. + CreateDate *Time `json:"createDate,omitempty" xmlrpc:"createDate,omitempty"` + + // The domain record created by zone transfer from a secondary DNS record. + Domain *Dns_Domain `json:"domain,omitempty" xmlrpc:"domain,omitempty"` + + // A count of the error messages created during secondary DNS record transfer. + ErrorMessageCount *uint `json:"errorMessageCount,omitempty" xmlrpc:"errorMessageCount,omitempty"` + + // The error messages created during secondary DNS record transfer. + ErrorMessages []Dns_Message `json:"errorMessages,omitempty" xmlrpc:"errorMessages,omitempty"` + + // The internal identifier for a secondary DNS record. + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // The date when the most recent secondary DNS zone transfer took place. + LastUpdate *Time `json:"lastUpdate,omitempty" xmlrpc:"lastUpdate,omitempty"` + + // The IP address of the master name server where a secondary DNS zone is transferred from. + MasterIpAddress *string `json:"masterIpAddress,omitempty" xmlrpc:"masterIpAddress,omitempty"` + + // The current status of the secondary DNS zone. + Status *Dns_Status `json:"status,omitempty" xmlrpc:"status,omitempty"` + + // The current status of a secondary DNS record. The status may be one of the following: + // :*'''0''': Disabled + // :*'''1''': Active + // :*'''2''': Transfer Now + // :*'''3''': An error occurred that prevented the zone transfer from being completed. + StatusId *int `json:"statusId,omitempty" xmlrpc:"statusId,omitempty"` + + // The textual representation of a secondary DNS zone's status. + StatusText *string `json:"statusText,omitempty" xmlrpc:"statusText,omitempty"` + + // How often a secondary DNS zone should be transferred in minutes. + TransferFrequency *int `json:"transferFrequency,omitempty" xmlrpc:"transferFrequency,omitempty"` + + // The name of the zone that is transferred. + ZoneName *string `json:"zoneName,omitempty" xmlrpc:"zoneName,omitempty"` +} + +// The SoftLayer_Dns_Status data type contains information for a DNS status +type Dns_Status struct { + Entity + + // Internal identifier of a DNS status + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // Monitoring DNS status name + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` +} diff --git a/vendor/github.com/softlayer/softlayer-go/datatypes/entity.go b/vendor/github.com/softlayer/softlayer-go/datatypes/entity.go new file mode 100644 index 000000000..49e32cf35 --- /dev/null +++ b/vendor/github.com/softlayer/softlayer-go/datatypes/entity.go @@ -0,0 +1,25 @@ +/** + * Copyright 2016 IBM Corp. + * + * 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. + */ + +/** + * AUTOMATICALLY GENERATED CODE - DO NOT MODIFY + */ + +package datatypes + +// no documentation yet +type Entity struct { +} diff --git a/vendor/github.com/softlayer/softlayer-go/datatypes/event.go b/vendor/github.com/softlayer/softlayer-go/datatypes/event.go new file mode 100644 index 000000000..ee0084edb --- /dev/null +++ b/vendor/github.com/softlayer/softlayer-go/datatypes/event.go @@ -0,0 +1,71 @@ +/** + * Copyright 2016 IBM Corp. + * + * 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. + */ + +/** + * AUTOMATICALLY GENERATED CODE - DO NOT MODIFY + */ + +package datatypes + +// The SoftLayer_Event_Log data type contains an event detail occurred upon various SoftLayer resources. +type Event_Log struct { + Entity + + // Account id with which the event is associated + AccountId *int `json:"accountId,omitempty" xmlrpc:"accountId,omitempty"` + + // Event creation date in millisecond precision + EventCreateDate *Time `json:"eventCreateDate,omitempty" xmlrpc:"eventCreateDate,omitempty"` + + // Event name such as "reboot", "cancel", "update host" and so on. + EventName *string `json:"eventName,omitempty" xmlrpc:"eventName,omitempty"` + + // The remote IP Address that made the request + IpAddress *string `json:"ipAddress,omitempty" xmlrpc:"ipAddress,omitempty"` + + // Label or description of the event object + Label *string `json:"label,omitempty" xmlrpc:"label,omitempty"` + + // Meta data for an event in JSON string + MetaData *string `json:"metaData,omitempty" xmlrpc:"metaData,omitempty"` + + // Event object id + ObjectId *int `json:"objectId,omitempty" xmlrpc:"objectId,omitempty"` + + // Event object name such as "server", "dns" and so on. + ObjectName *string `json:"objectName,omitempty" xmlrpc:"objectName,omitempty"` + + // OpenIdConnectUserName of the customer who initiated the event + OpenIdConnectUserName *string `json:"openIdConnectUserName,omitempty" xmlrpc:"openIdConnectUserName,omitempty"` + + // A resource object that is associated with the event + Resource *Entity `json:"resource,omitempty" xmlrpc:"resource,omitempty"` + + // A unique trace id. Multiple event can be grouped by a trace id. + TraceId *string `json:"traceId,omitempty" xmlrpc:"traceId,omitempty"` + + // no documentation yet + User *User_Customer `json:"user,omitempty" xmlrpc:"user,omitempty"` + + // Id of customer who initiated the event + UserId *int `json:"userId,omitempty" xmlrpc:"userId,omitempty"` + + // Type of user that triggered the event. User type can be CUSTOMER, EMPLOYEE or SYSTEM. + UserType *string `json:"userType,omitempty" xmlrpc:"userType,omitempty"` + + // Customer username who initiated the event + Username *string `json:"username,omitempty" xmlrpc:"username,omitempty"` +} diff --git a/vendor/github.com/softlayer/softlayer-go/datatypes/flexiblecredit.go b/vendor/github.com/softlayer/softlayer-go/datatypes/flexiblecredit.go new file mode 100644 index 000000000..23da7fbfe --- /dev/null +++ b/vendor/github.com/softlayer/softlayer-go/datatypes/flexiblecredit.go @@ -0,0 +1,110 @@ +/** + * Copyright 2016 IBM Corp. + * + * 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. + */ + +/** + * AUTOMATICALLY GENERATED CODE - DO NOT MODIFY + */ + +package datatypes + +// no documentation yet +type FlexibleCredit_Affiliate struct { + Entity + + // Flexible Credit Program the affiliate belongs to. + FlexibleCreditProgram *FlexibleCredit_Program `json:"flexibleCreditProgram,omitempty" xmlrpc:"flexibleCreditProgram,omitempty"` + + // Primary ID for the affiliate + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // Name of this affiliate + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` +} + +// no documentation yet +type FlexibleCredit_Company_Type struct { + Entity + + // Description of the company type + Description *string `json:"description,omitempty" xmlrpc:"description,omitempty"` + + // Primary ID for the company type + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` +} + +// no documentation yet +type FlexibleCredit_Enrollment struct { + Entity + + // Account the enrollment belongs to + Account *Account `json:"account,omitempty" xmlrpc:"account,omitempty"` + + // Account ID associated with this enrollment + AccountId *int `json:"accountId,omitempty" xmlrpc:"accountId,omitempty"` + + // Affiliate associated with the account enrollment + Affiliate *FlexibleCredit_Affiliate `json:"affiliate,omitempty" xmlrpc:"affiliate,omitempty"` + + // ID of the corresponding Flexible Credit Program Affiliate + AffiliateId *int `json:"affiliateId,omitempty" xmlrpc:"affiliateId,omitempty"` + + // Indicates signing of Flexible Credit agreement (independent from MSA) + AgreementCompleteFlag *int `json:"agreementCompleteFlag,omitempty" xmlrpc:"agreementCompleteFlag,omitempty"` + + // Brief description of the company + CompanyDescription *string `json:"companyDescription,omitempty" xmlrpc:"companyDescription,omitempty"` + + // Category which best describes the company + CompanyType *FlexibleCredit_Company_Type `json:"companyType,omitempty" xmlrpc:"companyType,omitempty"` + + // ID of the Flexible Credit Program Company classification for this enrollment + CompanyTypeId *int `json:"companyTypeId,omitempty" xmlrpc:"companyTypeId,omitempty"` + + // Date when participation in the Flexible Credit program began + EnrollmentDate *Time `json:"enrollmentDate,omitempty" xmlrpc:"enrollmentDate,omitempty"` + + // Discount program the enrollment belongs to + FlexibleCreditProgram *FlexibleCredit_Program `json:"flexibleCreditProgram,omitempty" xmlrpc:"flexibleCreditProgram,omitempty"` + + // Date Flexible Credit Program benefits end. + GraduationDate *Time `json:"graduationDate,omitempty" xmlrpc:"graduationDate,omitempty"` + + // Flag indicating whether an enrollment is active (true) or inactive (false) + IsActiveFlag *bool `json:"isActiveFlag,omitempty" xmlrpc:"isActiveFlag,omitempty"` + + // Amount of monthly credit (USD) given to the account + MonthlyCreditAmount *Float64 `json:"monthlyCreditAmount,omitempty" xmlrpc:"monthlyCreditAmount,omitempty"` + + // Employee overseeing the enrollment + Representative *User_Employee `json:"representative,omitempty" xmlrpc:"representative,omitempty"` + + // ID of the employee representing this account. + RepresentativeEmployeeId *int `json:"representativeEmployeeId,omitempty" xmlrpc:"representativeEmployeeId,omitempty"` +} + +// no documentation yet +type FlexibleCredit_Program struct { + Entity + + // Primary ID of the Flexible Credit Program + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // Unique name for the Flexible Credit Program + KeyName *string `json:"keyName,omitempty" xmlrpc:"keyName,omitempty"` + + // Name of the Flexible Credit Program. + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` +} diff --git a/vendor/github.com/softlayer/softlayer-go/datatypes/hardware.go b/vendor/github.com/softlayer/softlayer-go/datatypes/hardware.go new file mode 100644 index 000000000..db77f3363 --- /dev/null +++ b/vendor/github.com/softlayer/softlayer-go/datatypes/hardware.go @@ -0,0 +1,1761 @@ +/** + * Copyright 2016 IBM Corp. + * + * 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. + */ + +/** + * AUTOMATICALLY GENERATED CODE - DO NOT MODIFY + */ + +package datatypes + +// The SoftLayer_Hardware data type contains general information relating to a single SoftLayer hardware. +type Hardware struct { + Entity + + // The account associated with a piece of hardware. + Account *Account `json:"account,omitempty" xmlrpc:"account,omitempty"` + + // A hardware's associated [[SoftLayer_Account|account]] id. + AccountId *int `json:"accountId,omitempty" xmlrpc:"accountId,omitempty"` + + // A count of a piece of hardware's active physical components. + ActiveComponentCount *uint `json:"activeComponentCount,omitempty" xmlrpc:"activeComponentCount,omitempty"` + + // A piece of hardware's active physical components. + ActiveComponents []Hardware_Component `json:"activeComponents,omitempty" xmlrpc:"activeComponents,omitempty"` + + // A piece of hardware's active network monitoring incidents. + ActiveNetworkMonitorIncident []Network_Monitor_Version1_Incident `json:"activeNetworkMonitorIncident,omitempty" xmlrpc:"activeNetworkMonitorIncident,omitempty"` + + // A count of a piece of hardware's active network monitoring incidents. + ActiveNetworkMonitorIncidentCount *uint `json:"activeNetworkMonitorIncidentCount,omitempty" xmlrpc:"activeNetworkMonitorIncidentCount,omitempty"` + + // A count of + AllPowerComponentCount *uint `json:"allPowerComponentCount,omitempty" xmlrpc:"allPowerComponentCount,omitempty"` + + // no documentation yet + AllPowerComponents []Hardware_Power_Component `json:"allPowerComponents,omitempty" xmlrpc:"allPowerComponents,omitempty"` + + // The SoftLayer_Network_Storage_Allowed_Host information to connect this server to Network Storage volumes that require access control lists. + AllowedHost *Network_Storage_Allowed_Host `json:"allowedHost,omitempty" xmlrpc:"allowedHost,omitempty"` + + // The SoftLayer_Network_Storage objects that this SoftLayer_Hardware has access to. + AllowedNetworkStorage []Network_Storage `json:"allowedNetworkStorage,omitempty" xmlrpc:"allowedNetworkStorage,omitempty"` + + // A count of the SoftLayer_Network_Storage objects that this SoftLayer_Hardware has access to. + AllowedNetworkStorageCount *uint `json:"allowedNetworkStorageCount,omitempty" xmlrpc:"allowedNetworkStorageCount,omitempty"` + + // A count of the SoftLayer_Network_Storage objects whose Replica that this SoftLayer_Hardware has access to. + AllowedNetworkStorageReplicaCount *uint `json:"allowedNetworkStorageReplicaCount,omitempty" xmlrpc:"allowedNetworkStorageReplicaCount,omitempty"` + + // The SoftLayer_Network_Storage objects whose Replica that this SoftLayer_Hardware has access to. + AllowedNetworkStorageReplicas []Network_Storage `json:"allowedNetworkStorageReplicas,omitempty" xmlrpc:"allowedNetworkStorageReplicas,omitempty"` + + // Information regarding an antivirus/spyware software component object. + AntivirusSpywareSoftwareComponent *Software_Component `json:"antivirusSpywareSoftwareComponent,omitempty" xmlrpc:"antivirusSpywareSoftwareComponent,omitempty"` + + // A count of information regarding a piece of hardware's specific attributes. + AttributeCount *uint `json:"attributeCount,omitempty" xmlrpc:"attributeCount,omitempty"` + + // Information regarding a piece of hardware's specific attributes. + Attributes []Hardware_Attribute `json:"attributes,omitempty" xmlrpc:"attributes,omitempty"` + + // The average daily public bandwidth usage for the current billing cycle. + AverageDailyPublicBandwidthUsage *Float64 `json:"averageDailyPublicBandwidthUsage,omitempty" xmlrpc:"averageDailyPublicBandwidthUsage,omitempty"` + + // A count of a piece of hardware's back-end or private network components. + BackendNetworkComponentCount *uint `json:"backendNetworkComponentCount,omitempty" xmlrpc:"backendNetworkComponentCount,omitempty"` + + // A piece of hardware's back-end or private network components. + BackendNetworkComponents []Network_Component `json:"backendNetworkComponents,omitempty" xmlrpc:"backendNetworkComponents,omitempty"` + + // A count of a hardware's backend or private router. + BackendRouterCount *uint `json:"backendRouterCount,omitempty" xmlrpc:"backendRouterCount,omitempty"` + + // A hardware's backend or private router. + BackendRouters []Hardware `json:"backendRouters,omitempty" xmlrpc:"backendRouters,omitempty"` + + // A hardware's allotted bandwidth (measured in GB). + BandwidthAllocation *Float64 `json:"bandwidthAllocation,omitempty" xmlrpc:"bandwidthAllocation,omitempty"` + + // A hardware's allotted detail record. Allotment details link bandwidth allocation with allotments. + BandwidthAllotmentDetail *Network_Bandwidth_Version1_Allotment_Detail `json:"bandwidthAllotmentDetail,omitempty" xmlrpc:"bandwidthAllotmentDetail,omitempty"` + + // When true, this flag specifies that a hardware is Bare Metal Server. Bare Metal Servers are physical bare metal servers that are billed with the same options as Virtual Servers, with monthly and hourly rates. Bare Metal instances are ordered based on processor core count and ram amount. + BareMetalInstanceFlag *int `json:"bareMetalInstanceFlag,omitempty" xmlrpc:"bareMetalInstanceFlag,omitempty"` + + // A count of information regarding a piece of hardware's benchmark certifications. + BenchmarkCertificationCount *uint `json:"benchmarkCertificationCount,omitempty" xmlrpc:"benchmarkCertificationCount,omitempty"` + + // Information regarding a piece of hardware's benchmark certifications. + BenchmarkCertifications []Hardware_Benchmark_Certification `json:"benchmarkCertifications,omitempty" xmlrpc:"benchmarkCertifications,omitempty"` + + // Information regarding the billing item for a server. + BillingItem *Billing_Item_Hardware `json:"billingItem,omitempty" xmlrpc:"billingItem,omitempty"` + + // A flag indicating that a billing item exists. + BillingItemFlag *bool `json:"billingItemFlag,omitempty" xmlrpc:"billingItemFlag,omitempty"` + + // Determines whether the hardware is ineligible for cancellation because it is disconnected. + BlockCancelBecauseDisconnectedFlag *bool `json:"blockCancelBecauseDisconnectedFlag,omitempty" xmlrpc:"blockCancelBecauseDisconnectedFlag,omitempty"` + + // Status indicating whether or not a piece of hardware has business continuance insurance. + BusinessContinuanceInsuranceFlag *bool `json:"businessContinuanceInsuranceFlag,omitempty" xmlrpc:"businessContinuanceInsuranceFlag,omitempty"` + + // Child hardware. + ChildrenHardware []Hardware `json:"childrenHardware,omitempty" xmlrpc:"childrenHardware,omitempty"` + + // A count of child hardware. + ChildrenHardwareCount *uint `json:"childrenHardwareCount,omitempty" xmlrpc:"childrenHardwareCount,omitempty"` + + // A count of a piece of hardware's components. + ComponentCount *uint `json:"componentCount,omitempty" xmlrpc:"componentCount,omitempty"` + + // A piece of hardware's components. + Components []Hardware_Component `json:"components,omitempty" xmlrpc:"components,omitempty"` + + // A continuous data protection/server backup software component object. + ContinuousDataProtectionSoftwareComponent *Software_Component `json:"continuousDataProtectionSoftwareComponent,omitempty" xmlrpc:"continuousDataProtectionSoftwareComponent,omitempty"` + + // The current billable public outbound bandwidth for this hardware for the current billing cycle. + CurrentBillableBandwidthUsage *Float64 `json:"currentBillableBandwidthUsage,omitempty" xmlrpc:"currentBillableBandwidthUsage,omitempty"` + + // Information regarding the datacenter in which a piece of hardware resides. + Datacenter *Location `json:"datacenter,omitempty" xmlrpc:"datacenter,omitempty"` + + // The name of the datacenter in which a piece of hardware resides. + DatacenterName *string `json:"datacenterName,omitempty" xmlrpc:"datacenterName,omitempty"` + + // A piece of hardware's local network domain name. + Domain *string `json:"domain,omitempty" xmlrpc:"domain,omitempty"` + + // All hardware that has uplink network connections to a piece of hardware. + DownlinkHardware []Hardware `json:"downlinkHardware,omitempty" xmlrpc:"downlinkHardware,omitempty"` + + // A count of all hardware that has uplink network connections to a piece of hardware. + DownlinkHardwareCount *uint `json:"downlinkHardwareCount,omitempty" xmlrpc:"downlinkHardwareCount,omitempty"` + + // All hardware that has uplink network connections to a piece of hardware. + DownlinkNetworkHardware []Hardware `json:"downlinkNetworkHardware,omitempty" xmlrpc:"downlinkNetworkHardware,omitempty"` + + // A count of all hardware that has uplink network connections to a piece of hardware. + DownlinkNetworkHardwareCount *uint `json:"downlinkNetworkHardwareCount,omitempty" xmlrpc:"downlinkNetworkHardwareCount,omitempty"` + + // A count of information regarding all servers attached to a piece of network hardware. + DownlinkServerCount *uint `json:"downlinkServerCount,omitempty" xmlrpc:"downlinkServerCount,omitempty"` + + // Information regarding all servers attached to a piece of network hardware. + DownlinkServers []Hardware `json:"downlinkServers,omitempty" xmlrpc:"downlinkServers,omitempty"` + + // A count of information regarding all virtual guests attached to a piece of network hardware. + DownlinkVirtualGuestCount *uint `json:"downlinkVirtualGuestCount,omitempty" xmlrpc:"downlinkVirtualGuestCount,omitempty"` + + // Information regarding all virtual guests attached to a piece of network hardware. + DownlinkVirtualGuests []Virtual_Guest `json:"downlinkVirtualGuests,omitempty" xmlrpc:"downlinkVirtualGuests,omitempty"` + + // A count of all hardware downstream from a network device. + DownstreamHardwareBindingCount *uint `json:"downstreamHardwareBindingCount,omitempty" xmlrpc:"downstreamHardwareBindingCount,omitempty"` + + // All hardware downstream from a network device. + DownstreamHardwareBindings []Network_Component_Uplink_Hardware `json:"downstreamHardwareBindings,omitempty" xmlrpc:"downstreamHardwareBindings,omitempty"` + + // All network hardware downstream from the selected piece of hardware. + DownstreamNetworkHardware []Hardware `json:"downstreamNetworkHardware,omitempty" xmlrpc:"downstreamNetworkHardware,omitempty"` + + // A count of all network hardware downstream from the selected piece of hardware. + DownstreamNetworkHardwareCount *uint `json:"downstreamNetworkHardwareCount,omitempty" xmlrpc:"downstreamNetworkHardwareCount,omitempty"` + + // A count of all network hardware with monitoring warnings or errors that are downstream from the selected piece of hardware. + DownstreamNetworkHardwareWithIncidentCount *uint `json:"downstreamNetworkHardwareWithIncidentCount,omitempty" xmlrpc:"downstreamNetworkHardwareWithIncidentCount,omitempty"` + + // All network hardware with monitoring warnings or errors that are downstream from the selected piece of hardware. + DownstreamNetworkHardwareWithIncidents []Hardware `json:"downstreamNetworkHardwareWithIncidents,omitempty" xmlrpc:"downstreamNetworkHardwareWithIncidents,omitempty"` + + // A count of information regarding all servers attached downstream to a piece of network hardware. + DownstreamServerCount *uint `json:"downstreamServerCount,omitempty" xmlrpc:"downstreamServerCount,omitempty"` + + // Information regarding all servers attached downstream to a piece of network hardware. + DownstreamServers []Hardware `json:"downstreamServers,omitempty" xmlrpc:"downstreamServers,omitempty"` + + // A count of information regarding all virtual guests attached to a piece of network hardware. + DownstreamVirtualGuestCount *uint `json:"downstreamVirtualGuestCount,omitempty" xmlrpc:"downstreamVirtualGuestCount,omitempty"` + + // Information regarding all virtual guests attached to a piece of network hardware. + DownstreamVirtualGuests []Virtual_Guest `json:"downstreamVirtualGuests,omitempty" xmlrpc:"downstreamVirtualGuests,omitempty"` + + // A count of the drive controllers contained within a piece of hardware. + DriveControllerCount *uint `json:"driveControllerCount,omitempty" xmlrpc:"driveControllerCount,omitempty"` + + // The drive controllers contained within a piece of hardware. + DriveControllers []Hardware_Component `json:"driveControllers,omitempty" xmlrpc:"driveControllers,omitempty"` + + // Information regarding a piece of hardware's associated EVault network storage service account. + EvaultNetworkStorage []Network_Storage `json:"evaultNetworkStorage,omitempty" xmlrpc:"evaultNetworkStorage,omitempty"` + + // A count of information regarding a piece of hardware's associated EVault network storage service account. + EvaultNetworkStorageCount *uint `json:"evaultNetworkStorageCount,omitempty" xmlrpc:"evaultNetworkStorageCount,omitempty"` + + // Information regarding a piece of hardware's firewall services. + FirewallServiceComponent *Network_Component_Firewall `json:"firewallServiceComponent,omitempty" xmlrpc:"firewallServiceComponent,omitempty"` + + // Defines the fixed components in a fixed configuration bare metal server. + FixedConfigurationPreset *Product_Package_Preset `json:"fixedConfigurationPreset,omitempty" xmlrpc:"fixedConfigurationPreset,omitempty"` + + // A count of a piece of hardware's front-end or public network components. + FrontendNetworkComponentCount *uint `json:"frontendNetworkComponentCount,omitempty" xmlrpc:"frontendNetworkComponentCount,omitempty"` + + // A piece of hardware's front-end or public network components. + FrontendNetworkComponents []Network_Component `json:"frontendNetworkComponents,omitempty" xmlrpc:"frontendNetworkComponents,omitempty"` + + // A count of a hardware's frontend or public router. + FrontendRouterCount *uint `json:"frontendRouterCount,omitempty" xmlrpc:"frontendRouterCount,omitempty"` + + // A hardware's frontend or public router. + FrontendRouters []Hardware `json:"frontendRouters,omitempty" xmlrpc:"frontendRouters,omitempty"` + + // A name reflecting the hostname and domain of the hardware. This is created from the combined values of the hardware's hostname and domain name automatically, and thus should not be edited directly. + FullyQualifiedDomainName *string `json:"fullyQualifiedDomainName,omitempty" xmlrpc:"fullyQualifiedDomainName,omitempty"` + + // A hardware's universally unique identifier. + GlobalIdentifier *string `json:"globalIdentifier,omitempty" xmlrpc:"globalIdentifier,omitempty"` + + // A count of the hard drives contained within a piece of hardware. + HardDriveCount *uint `json:"hardDriveCount,omitempty" xmlrpc:"hardDriveCount,omitempty"` + + // The hard drives contained within a piece of hardware. + HardDrives []Hardware_Component `json:"hardDrives,omitempty" xmlrpc:"hardDrives,omitempty"` + + // The chassis that a piece of hardware is housed in. + HardwareChassis *Hardware_Chassis `json:"hardwareChassis,omitempty" xmlrpc:"hardwareChassis,omitempty"` + + // A hardware's function. + HardwareFunction *Hardware_Function `json:"hardwareFunction,omitempty" xmlrpc:"hardwareFunction,omitempty"` + + // A hardware's function. + HardwareFunctionDescription *string `json:"hardwareFunctionDescription,omitempty" xmlrpc:"hardwareFunctionDescription,omitempty"` + + // A hardware's status. + HardwareStatus *Hardware_Status `json:"hardwareStatus,omitempty" xmlrpc:"hardwareStatus,omitempty"` + + // A number reflecting the state of a hardware + HardwareStatusId *int `json:"hardwareStatusId,omitempty" xmlrpc:"hardwareStatusId,omitempty"` + + // Determine in hardware object has TPM enabled. + HasTrustedPlatformModuleBillingItemFlag *bool `json:"hasTrustedPlatformModuleBillingItemFlag,omitempty" xmlrpc:"hasTrustedPlatformModuleBillingItemFlag,omitempty"` + + // Information regarding a host IPS software component object. + HostIpsSoftwareComponent *Software_Component `json:"hostIpsSoftwareComponent,omitempty" xmlrpc:"hostIpsSoftwareComponent,omitempty"` + + // A hardware's hostname + Hostname *string `json:"hostname,omitempty" xmlrpc:"hostname,omitempty"` + + // A server's hourly billing status. + HourlyBillingFlag *bool `json:"hourlyBillingFlag,omitempty" xmlrpc:"hourlyBillingFlag,omitempty"` + + // A hardware's internal identification number + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // The sum of all the inbound network traffic data for the last 30 days. + InboundBandwidthUsage *Float64 `json:"inboundBandwidthUsage,omitempty" xmlrpc:"inboundBandwidthUsage,omitempty"` + + // The total public inbound bandwidth for this hardware for the current billing cycle. + InboundPublicBandwidthUsage *Float64 `json:"inboundPublicBandwidthUsage,omitempty" xmlrpc:"inboundPublicBandwidthUsage,omitempty"` + + // Information regarding the last transaction a server performed. + LastTransaction *Provisioning_Version1_Transaction `json:"lastTransaction,omitempty" xmlrpc:"lastTransaction,omitempty"` + + // A piece of hardware's latest network monitoring incident. + LatestNetworkMonitorIncident *Network_Monitor_Version1_Incident `json:"latestNetworkMonitorIncident,omitempty" xmlrpc:"latestNetworkMonitorIncident,omitempty"` + + // Where a piece of hardware is located within SoftLayer's location hierarchy. + Location *Location `json:"location,omitempty" xmlrpc:"location,omitempty"` + + // no documentation yet + LocationPathString *string `json:"locationPathString,omitempty" xmlrpc:"locationPathString,omitempty"` + + // Information regarding a lockbox account associated with a server. + LockboxNetworkStorage *Network_Storage `json:"lockboxNetworkStorage,omitempty" xmlrpc:"lockboxNetworkStorage,omitempty"` + + // A flag indicating that the hardware is a managed resource. + ManagedResourceFlag *bool `json:"managedResourceFlag,omitempty" xmlrpc:"managedResourceFlag,omitempty"` + + // A hardware's serial number that is supplied by the manufacturer. + ManufacturerSerialNumber *string `json:"manufacturerSerialNumber,omitempty" xmlrpc:"manufacturerSerialNumber,omitempty"` + + // Information regarding a piece of hardware's memory. + Memory []Hardware_Component `json:"memory,omitempty" xmlrpc:"memory,omitempty"` + + // The amount of memory a piece of hardware has, measured in gigabytes. + MemoryCapacity *uint `json:"memoryCapacity,omitempty" xmlrpc:"memoryCapacity,omitempty"` + + // A count of information regarding a piece of hardware's memory. + MemoryCount *uint `json:"memoryCount,omitempty" xmlrpc:"memoryCount,omitempty"` + + // A piece of hardware's metric tracking object. + MetricTrackingObject *Metric_Tracking_Object_HardwareServer `json:"metricTrackingObject,omitempty" xmlrpc:"metricTrackingObject,omitempty"` + + // A count of information regarding the monitoring agents associated with a piece of hardware. + MonitoringAgentCount *uint `json:"monitoringAgentCount,omitempty" xmlrpc:"monitoringAgentCount,omitempty"` + + // Information regarding the monitoring agents associated with a piece of hardware. + MonitoringAgents []Monitoring_Agent `json:"monitoringAgents,omitempty" xmlrpc:"monitoringAgents,omitempty"` + + // Information regarding the hardware's monitoring robot. + MonitoringRobot *Monitoring_Robot `json:"monitoringRobot,omitempty" xmlrpc:"monitoringRobot,omitempty"` + + // Information regarding a piece of hardware's network monitoring services. + MonitoringServiceComponent *Network_Monitor_Version1_Query_Host_Stratum `json:"monitoringServiceComponent,omitempty" xmlrpc:"monitoringServiceComponent,omitempty"` + + // The monitoring service flag eligibility status for a piece of hardware. + MonitoringServiceEligibilityFlag *bool `json:"monitoringServiceEligibilityFlag,omitempty" xmlrpc:"monitoringServiceEligibilityFlag,omitempty"` + + // The service flag status for a piece of hardware. + MonitoringServiceFlag *bool `json:"monitoringServiceFlag,omitempty" xmlrpc:"monitoringServiceFlag,omitempty"` + + // Information regarding a piece of hardware's motherboard. + Motherboard *Hardware_Component `json:"motherboard,omitempty" xmlrpc:"motherboard,omitempty"` + + // A count of information regarding a piece of hardware's network cards. + NetworkCardCount *uint `json:"networkCardCount,omitempty" xmlrpc:"networkCardCount,omitempty"` + + // Information regarding a piece of hardware's network cards. + NetworkCards []Hardware_Component `json:"networkCards,omitempty" xmlrpc:"networkCards,omitempty"` + + // A count of returns a hardware's network components. + NetworkComponentCount *uint `json:"networkComponentCount,omitempty" xmlrpc:"networkComponentCount,omitempty"` + + // Returns a hardware's network components. + NetworkComponents []Network_Component `json:"networkComponents,omitempty" xmlrpc:"networkComponents,omitempty"` + + // The gateway member if this device is part of a network gateway. + NetworkGatewayMember *Network_Gateway_Member `json:"networkGatewayMember,omitempty" xmlrpc:"networkGatewayMember,omitempty"` + + // Whether or not this device is part of a network gateway. + NetworkGatewayMemberFlag *bool `json:"networkGatewayMemberFlag,omitempty" xmlrpc:"networkGatewayMemberFlag,omitempty"` + + // A piece of hardware's network management IP address. + NetworkManagementIpAddress *string `json:"networkManagementIpAddress,omitempty" xmlrpc:"networkManagementIpAddress,omitempty"` + + // All servers with failed monitoring that are attached downstream to a piece of hardware. + NetworkMonitorAttachedDownHardware []Hardware `json:"networkMonitorAttachedDownHardware,omitempty" xmlrpc:"networkMonitorAttachedDownHardware,omitempty"` + + // A count of all servers with failed monitoring that are attached downstream to a piece of hardware. + NetworkMonitorAttachedDownHardwareCount *uint `json:"networkMonitorAttachedDownHardwareCount,omitempty" xmlrpc:"networkMonitorAttachedDownHardwareCount,omitempty"` + + // A count of virtual guests that are attached downstream to a hardware that have failed monitoring + NetworkMonitorAttachedDownVirtualGuestCount *uint `json:"networkMonitorAttachedDownVirtualGuestCount,omitempty" xmlrpc:"networkMonitorAttachedDownVirtualGuestCount,omitempty"` + + // Virtual guests that are attached downstream to a hardware that have failed monitoring + NetworkMonitorAttachedDownVirtualGuests []Virtual_Guest `json:"networkMonitorAttachedDownVirtualGuests,omitempty" xmlrpc:"networkMonitorAttachedDownVirtualGuests,omitempty"` + + // A count of information regarding a piece of hardware's network monitors. + NetworkMonitorCount *uint `json:"networkMonitorCount,omitempty" xmlrpc:"networkMonitorCount,omitempty"` + + // A count of the status of all of a piece of hardware's network monitoring incidents. + NetworkMonitorIncidentCount *uint `json:"networkMonitorIncidentCount,omitempty" xmlrpc:"networkMonitorIncidentCount,omitempty"` + + // The status of all of a piece of hardware's network monitoring incidents. + NetworkMonitorIncidents []Network_Monitor_Version1_Incident `json:"networkMonitorIncidents,omitempty" xmlrpc:"networkMonitorIncidents,omitempty"` + + // Information regarding a piece of hardware's network monitors. + NetworkMonitors []Network_Monitor_Version1_Query_Host `json:"networkMonitors,omitempty" xmlrpc:"networkMonitors,omitempty"` + + // The value of a hardware's network status attribute. + NetworkStatus *string `json:"networkStatus,omitempty" xmlrpc:"networkStatus,omitempty"` + + // The hardware's related network status attribute. + NetworkStatusAttribute *Hardware_Attribute `json:"networkStatusAttribute,omitempty" xmlrpc:"networkStatusAttribute,omitempty"` + + // Information regarding a piece of hardware's associated network storage service account. + NetworkStorage []Network_Storage `json:"networkStorage,omitempty" xmlrpc:"networkStorage,omitempty"` + + // A count of information regarding a piece of hardware's associated network storage service account. + NetworkStorageCount *uint `json:"networkStorageCount,omitempty" xmlrpc:"networkStorageCount,omitempty"` + + // A count of the network virtual LANs (VLANs) associated with a piece of hardware's network components. + NetworkVlanCount *uint `json:"networkVlanCount,omitempty" xmlrpc:"networkVlanCount,omitempty"` + + // The network virtual LANs (VLANs) associated with a piece of hardware's network components. + NetworkVlans []Network_Vlan `json:"networkVlans,omitempty" xmlrpc:"networkVlans,omitempty"` + + // A hardware's allotted bandwidth for the next billing cycle (measured in GB). + NextBillingCycleBandwidthAllocation *Float64 `json:"nextBillingCycleBandwidthAllocation,omitempty" xmlrpc:"nextBillingCycleBandwidthAllocation,omitempty"` + + // A small note about a piece of hardware to use at your discretion. + Notes *string `json:"notes,omitempty" xmlrpc:"notes,omitempty"` + + // no documentation yet + NotesHistory []Hardware_Note `json:"notesHistory,omitempty" xmlrpc:"notesHistory,omitempty"` + + // A count of + NotesHistoryCount *uint `json:"notesHistoryCount,omitempty" xmlrpc:"notesHistoryCount,omitempty"` + + // Information regarding a piece of hardware's operating system. + OperatingSystem *Software_Component_OperatingSystem `json:"operatingSystem,omitempty" xmlrpc:"operatingSystem,omitempty"` + + // A hardware's operating system software description. + OperatingSystemReferenceCode *string `json:"operatingSystemReferenceCode,omitempty" xmlrpc:"operatingSystemReferenceCode,omitempty"` + + // The sum of all the outbound network traffic data for the last 30 days. + OutboundBandwidthUsage *Float64 `json:"outboundBandwidthUsage,omitempty" xmlrpc:"outboundBandwidthUsage,omitempty"` + + // The total public outbound bandwidth for this hardware for the current billing cycle. + OutboundPublicBandwidthUsage *Float64 `json:"outboundPublicBandwidthUsage,omitempty" xmlrpc:"outboundPublicBandwidthUsage,omitempty"` + + // Parent Hardware. + ParentHardware *Hardware `json:"parentHardware,omitempty" xmlrpc:"parentHardware,omitempty"` + + // Information regarding the Point of Presence (PoP) location in which a piece of hardware resides. + PointOfPresenceLocation *Location `json:"pointOfPresenceLocation,omitempty" xmlrpc:"pointOfPresenceLocation,omitempty"` + + // URI of the script to be downloaded and executed after installation is complete. + PostInstallScriptUri *string `json:"postInstallScriptUri,omitempty" xmlrpc:"postInstallScriptUri,omitempty"` + + // A count of the power components for a hardware object. + PowerComponentCount *uint `json:"powerComponentCount,omitempty" xmlrpc:"powerComponentCount,omitempty"` + + // The power components for a hardware object. + PowerComponents []Hardware_Power_Component `json:"powerComponents,omitempty" xmlrpc:"powerComponents,omitempty"` + + // Information regarding a piece of hardware's power supply. + PowerSupply []Hardware_Component `json:"powerSupply,omitempty" xmlrpc:"powerSupply,omitempty"` + + // A count of information regarding a piece of hardware's power supply. + PowerSupplyCount *uint `json:"powerSupplyCount,omitempty" xmlrpc:"powerSupplyCount,omitempty"` + + // The hardware's primary private IP address. + PrimaryBackendIpAddress *string `json:"primaryBackendIpAddress,omitempty" xmlrpc:"primaryBackendIpAddress,omitempty"` + + // Information regarding the hardware's primary back-end network component. + PrimaryBackendNetworkComponent *Network_Component `json:"primaryBackendNetworkComponent,omitempty" xmlrpc:"primaryBackendNetworkComponent,omitempty"` + + // The hardware's primary public IP address. + PrimaryIpAddress *string `json:"primaryIpAddress,omitempty" xmlrpc:"primaryIpAddress,omitempty"` + + // Information regarding the hardware's primary public network component. + PrimaryNetworkComponent *Network_Component `json:"primaryNetworkComponent,omitempty" xmlrpc:"primaryNetworkComponent,omitempty"` + + // Whether the hardware only has access to the private network. + PrivateNetworkOnlyFlag *bool `json:"privateNetworkOnlyFlag,omitempty" xmlrpc:"privateNetworkOnlyFlag,omitempty"` + + // The total number of processor cores, summed from all processors that are attached to a piece of hardware + ProcessorCoreAmount *uint `json:"processorCoreAmount,omitempty" xmlrpc:"processorCoreAmount,omitempty"` + + // A count of information regarding a piece of hardware's processors. + ProcessorCount *uint `json:"processorCount,omitempty" xmlrpc:"processorCount,omitempty"` + + // The total number of physical processor cores, summed from all processors that are attached to a piece of hardware + ProcessorPhysicalCoreAmount *uint `json:"processorPhysicalCoreAmount,omitempty" xmlrpc:"processorPhysicalCoreAmount,omitempty"` + + // Information regarding a piece of hardware's processors. + Processors []Hardware_Component `json:"processors,omitempty" xmlrpc:"processors,omitempty"` + + // no documentation yet + ProvisionDate *Time `json:"provisionDate,omitempty" xmlrpc:"provisionDate,omitempty"` + + // no documentation yet + Rack *Location `json:"rack,omitempty" xmlrpc:"rack,omitempty"` + + // A count of the RAID controllers contained within a piece of hardware. + RaidControllerCount *uint `json:"raidControllerCount,omitempty" xmlrpc:"raidControllerCount,omitempty"` + + // The RAID controllers contained within a piece of hardware. + RaidControllers []Hardware_Component `json:"raidControllers,omitempty" xmlrpc:"raidControllers,omitempty"` + + // A count of recent events that impact this hardware. + RecentEventCount *uint `json:"recentEventCount,omitempty" xmlrpc:"recentEventCount,omitempty"` + + // Recent events that impact this hardware. + RecentEvents []Notification_Occurrence_Event `json:"recentEvents,omitempty" xmlrpc:"recentEvents,omitempty"` + + // A count of user credentials to issue commands and/or interact with the server's remote management card. + RemoteManagementAccountCount *uint `json:"remoteManagementAccountCount,omitempty" xmlrpc:"remoteManagementAccountCount,omitempty"` + + // User credentials to issue commands and/or interact with the server's remote management card. + RemoteManagementAccounts []Hardware_Component_RemoteManagement_User `json:"remoteManagementAccounts,omitempty" xmlrpc:"remoteManagementAccounts,omitempty"` + + // A hardware's associated remote management component. This is normally IPMI. + RemoteManagementComponent *Network_Component `json:"remoteManagementComponent,omitempty" xmlrpc:"remoteManagementComponent,omitempty"` + + // A count of + ResourceConfigurationCount *uint `json:"resourceConfigurationCount,omitempty" xmlrpc:"resourceConfigurationCount,omitempty"` + + // no documentation yet + ResourceConfigurations []Hardware_Resource_Configuration `json:"resourceConfigurations,omitempty" xmlrpc:"resourceConfigurations,omitempty"` + + // A count of the resource groups in which this hardware is a member. + ResourceGroupCount *uint `json:"resourceGroupCount,omitempty" xmlrpc:"resourceGroupCount,omitempty"` + + // A count of + ResourceGroupMemberReferenceCount *uint `json:"resourceGroupMemberReferenceCount,omitempty" xmlrpc:"resourceGroupMemberReferenceCount,omitempty"` + + // no documentation yet + ResourceGroupMemberReferences []Resource_Group_Member `json:"resourceGroupMemberReferences,omitempty" xmlrpc:"resourceGroupMemberReferences,omitempty"` + + // A count of + ResourceGroupRoleCount *uint `json:"resourceGroupRoleCount,omitempty" xmlrpc:"resourceGroupRoleCount,omitempty"` + + // no documentation yet + ResourceGroupRoles []Resource_Group_Role `json:"resourceGroupRoles,omitempty" xmlrpc:"resourceGroupRoles,omitempty"` + + // The resource groups in which this hardware is a member. + ResourceGroups []Resource_Group `json:"resourceGroups,omitempty" xmlrpc:"resourceGroups,omitempty"` + + // A count of a hardware's routers. + RouterCount *uint `json:"routerCount,omitempty" xmlrpc:"routerCount,omitempty"` + + // A hardware's routers. + Routers []Hardware `json:"routers,omitempty" xmlrpc:"routers,omitempty"` + + // A count of collection of scale assets this hardware corresponds to. + ScaleAssetCount *uint `json:"scaleAssetCount,omitempty" xmlrpc:"scaleAssetCount,omitempty"` + + // Collection of scale assets this hardware corresponds to. + ScaleAssets []Scale_Asset `json:"scaleAssets,omitempty" xmlrpc:"scaleAssets,omitempty"` + + // A count of information regarding a piece of hardware's vulnerability scan requests. + SecurityScanRequestCount *uint `json:"securityScanRequestCount,omitempty" xmlrpc:"securityScanRequestCount,omitempty"` + + // Information regarding a piece of hardware's vulnerability scan requests. + SecurityScanRequests []Network_Security_Scanner_Request `json:"securityScanRequests,omitempty" xmlrpc:"securityScanRequests,omitempty"` + + // A hardware's serial number that is supplied by SoftLayer. + SerialNumber *string `json:"serialNumber,omitempty" xmlrpc:"serialNumber,omitempty"` + + // Information regarding the server room in which the hardware is located. + ServerRoom *Location `json:"serverRoom,omitempty" xmlrpc:"serverRoom,omitempty"` + + // Information regarding the piece of hardware's service provider. + ServiceProvider *Service_Provider `json:"serviceProvider,omitempty" xmlrpc:"serviceProvider,omitempty"` + + // no documentation yet + ServiceProviderId *int `json:"serviceProviderId,omitempty" xmlrpc:"serviceProviderId,omitempty"` + + // A hardware's internal identification number at its service provider + ServiceProviderResourceId *int `json:"serviceProviderResourceId,omitempty" xmlrpc:"serviceProviderResourceId,omitempty"` + + // A count of information regarding a piece of hardware's installed software. + SoftwareComponentCount *uint `json:"softwareComponentCount,omitempty" xmlrpc:"softwareComponentCount,omitempty"` + + // Information regarding a piece of hardware's installed software. + SoftwareComponents []Software_Component `json:"softwareComponents,omitempty" xmlrpc:"softwareComponents,omitempty"` + + // Information regarding the billing item for a spare pool server. + SparePoolBillingItem *Billing_Item_Hardware `json:"sparePoolBillingItem,omitempty" xmlrpc:"sparePoolBillingItem,omitempty"` + + // A count of sSH keys to be installed on the server during provisioning or an OS reload. + SshKeyCount *uint `json:"sshKeyCount,omitempty" xmlrpc:"sshKeyCount,omitempty"` + + // SSH keys to be installed on the server during provisioning or an OS reload. + SshKeys []Security_Ssh_Key `json:"sshKeys,omitempty" xmlrpc:"sshKeys,omitempty"` + + // A count of + StorageNetworkComponentCount *uint `json:"storageNetworkComponentCount,omitempty" xmlrpc:"storageNetworkComponentCount,omitempty"` + + // no documentation yet + StorageNetworkComponents []Network_Component `json:"storageNetworkComponents,omitempty" xmlrpc:"storageNetworkComponents,omitempty"` + + // A count of + TagReferenceCount *uint `json:"tagReferenceCount,omitempty" xmlrpc:"tagReferenceCount,omitempty"` + + // no documentation yet + TagReferences []Tag_Reference `json:"tagReferences,omitempty" xmlrpc:"tagReferences,omitempty"` + + // no documentation yet + TopLevelLocation *Location `json:"topLevelLocation,omitempty" xmlrpc:"topLevelLocation,omitempty"` + + // An account's associated upgrade request object, if any. + UpgradeRequest *Product_Upgrade_Request `json:"upgradeRequest,omitempty" xmlrpc:"upgradeRequest,omitempty"` + + // The network device connected to a piece of hardware. + UplinkHardware *Hardware `json:"uplinkHardware,omitempty" xmlrpc:"uplinkHardware,omitempty"` + + // A count of information regarding the network component that is one level higher than a piece of hardware on the network infrastructure. + UplinkNetworkComponentCount *uint `json:"uplinkNetworkComponentCount,omitempty" xmlrpc:"uplinkNetworkComponentCount,omitempty"` + + // Information regarding the network component that is one level higher than a piece of hardware on the network infrastructure. + UplinkNetworkComponents []Network_Component `json:"uplinkNetworkComponents,omitempty" xmlrpc:"uplinkNetworkComponents,omitempty"` + + // A string containing custom user data for a hardware order. + UserData []Hardware_Attribute `json:"userData,omitempty" xmlrpc:"userData,omitempty"` + + // A count of a string containing custom user data for a hardware order. + UserDataCount *uint `json:"userDataCount,omitempty" xmlrpc:"userDataCount,omitempty"` + + // Information regarding the virtual chassis for a piece of hardware. + VirtualChassis *Hardware_Group `json:"virtualChassis,omitempty" xmlrpc:"virtualChassis,omitempty"` + + // A count of information regarding the virtual chassis siblings for a piece of hardware. + VirtualChassisSiblingCount *uint `json:"virtualChassisSiblingCount,omitempty" xmlrpc:"virtualChassisSiblingCount,omitempty"` + + // Information regarding the virtual chassis siblings for a piece of hardware. + VirtualChassisSiblings []Hardware `json:"virtualChassisSiblings,omitempty" xmlrpc:"virtualChassisSiblings,omitempty"` + + // A piece of hardware's virtual host record. + VirtualHost *Virtual_Host `json:"virtualHost,omitempty" xmlrpc:"virtualHost,omitempty"` + + // A count of information regarding a piece of hardware's virtual software licenses. + VirtualLicenseCount *uint `json:"virtualLicenseCount,omitempty" xmlrpc:"virtualLicenseCount,omitempty"` + + // Information regarding a piece of hardware's virtual software licenses. + VirtualLicenses []Software_VirtualLicense `json:"virtualLicenses,omitempty" xmlrpc:"virtualLicenses,omitempty"` + + // Information regarding the bandwidth allotment to which a piece of hardware belongs. + VirtualRack *Network_Bandwidth_Version1_Allotment `json:"virtualRack,omitempty" xmlrpc:"virtualRack,omitempty"` + + // The name of the bandwidth allotment belonging to a piece of hardware. + VirtualRackId *int `json:"virtualRackId,omitempty" xmlrpc:"virtualRackId,omitempty"` + + // The name of the bandwidth allotment belonging to a piece of hardware. + VirtualRackName *string `json:"virtualRackName,omitempty" xmlrpc:"virtualRackName,omitempty"` + + // A piece of hardware's virtualization platform software. + VirtualizationPlatform *Software_Component `json:"virtualizationPlatform,omitempty" xmlrpc:"virtualizationPlatform,omitempty"` +} + +// The SoftLayer_Hardware_Attribute type contains general information for a hardware attribute. Hardware attributes can be assigned to specific hardware objects to describe relatively arbitrary information. +type Hardware_Attribute struct { + Entity + + // The type of hardware attribute that this represents. + HardwareAttributeType *Hardware_Attribute_Type `json:"hardwareAttributeType,omitempty" xmlrpc:"hardwareAttributeType,omitempty"` + + // The unique identifier of a hardware attribute's type. + HardwareAttributeTypeId *int `json:"hardwareAttributeTypeId,omitempty" xmlrpc:"hardwareAttributeTypeId,omitempty"` + + // A hardware attribute's unique identifier. + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // A hardware attribute's value. + Value *string `json:"value,omitempty" xmlrpc:"value,omitempty"` +} + +// Retrieve attributes associated with a hardware object. +type Hardware_Attribute_Type struct { + Entity + + // The attribute type key name or code. + Keyname *string `json:"keyname,omitempty" xmlrpc:"keyname,omitempty"` + + // The attribute type name. + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` +} + +// no documentation yet +type Hardware_Attribute_UserData struct { + Hardware_Attribute +} + +// The SoftLayer_Hardware_Benchmark_Certification data type contains general information relating to a single SoftLayer hardware benchmark certification document. +type Hardware_Benchmark_Certification struct { + Entity + + // Information regarding a benchmark certification result's associated SoftLayer customer account. + Account *Account `json:"account,omitempty" xmlrpc:"account,omitempty"` + + // The internal identifier of the SoftLayer customer account associated with a benchmark certification result. + AccountId *int `json:"accountId,omitempty" xmlrpc:"accountId,omitempty"` + + // The date that a benchmark certification result was generated. + CreateDate *Time `json:"createDate,omitempty" xmlrpc:"createDate,omitempty"` + + // Information regarding the piece of hardware on which a benchmark certification test was performed. + Hardware *Hardware `json:"hardware,omitempty" xmlrpc:"hardware,omitempty"` + + // A benchmark certification results's associated hardware's internal identification number. + HardwareId *int `json:"hardwareId,omitempty" xmlrpc:"hardwareId,omitempty"` +} + +// Every piece of hardware in SoftLayer's datacenters, including customer servers, are housed in one of many hardware chassis. The SoftLayer_Hardware_Chassis data type defines these chassis. +type Hardware_Chassis struct { + Entity + + // no documentation yet + BackplaneCapacity *string `json:"backplaneCapacity,omitempty" xmlrpc:"backplaneCapacity,omitempty"` + + // no documentation yet + BayCapacity *string `json:"bayCapacity,omitempty" xmlrpc:"bayCapacity,omitempty"` + + // no documentation yet + BookCapacity *string `json:"bookCapacity,omitempty" xmlrpc:"bookCapacity,omitempty"` + + // no documentation yet + DriveCapacity *string `json:"driveCapacity,omitempty" xmlrpc:"driveCapacity,omitempty"` + + // no documentation yet + DriveControllerCapacity *string `json:"driveControllerCapacity,omitempty" xmlrpc:"driveControllerCapacity,omitempty"` + + // A hardware form factor internal identifier. + FormFactorId *int `json:"formFactorId,omitempty" xmlrpc:"formFactorId,omitempty"` + + // no documentation yet + GpuCapacity *string `json:"gpuCapacity,omitempty" xmlrpc:"gpuCapacity,omitempty"` + + // A hardware's function. + HardwareFunction *Hardware_Function `json:"hardwareFunction,omitempty" xmlrpc:"hardwareFunction,omitempty"` + + // A hardware chassis' internal identifier. + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // A hardware chassis' manufacturer. + Manufacturer *string `json:"manufacturer,omitempty" xmlrpc:"manufacturer,omitempty"` + + // A hardware chassis' name. + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` + + // no documentation yet + PowerCapacity *string `json:"powerCapacity,omitempty" xmlrpc:"powerCapacity,omitempty"` + + // The physical size of a hardware chassis. Currently this relates to the 'U' size of a chassis buy default. + UnitSize *int `json:"unitSize,omitempty" xmlrpc:"unitSize,omitempty"` + + // A hardware chassis' revision number. + Version *string `json:"version,omitempty" xmlrpc:"version,omitempty"` +} + +// The SoftLayer_Hardware_Component data type abstracts information related to a hardware component. +type Hardware_Component struct { + Entity + + // A component's capacity. + Capacity *Float64 `json:"capacity,omitempty" xmlrpc:"capacity,omitempty"` + + // A components sub components. Devices that are usually integrated or in some way attached to a component. + Children []Hardware_Component `json:"children,omitempty" xmlrpc:"children,omitempty"` + + // A count of a components sub components. Devices that are usually integrated or in some way attached to a component. + ChildrenCount *uint `json:"childrenCount,omitempty" xmlrpc:"childrenCount,omitempty"` + + // A count of + DownlinkHardwareComponentCount *uint `json:"downlinkHardwareComponentCount,omitempty" xmlrpc:"downlinkHardwareComponentCount,omitempty"` + + // no documentation yet + DownlinkHardwareComponents []Hardware_Component `json:"downlinkHardwareComponents,omitempty" xmlrpc:"downlinkHardwareComponents,omitempty"` + + // The hardware object that this component belongs to. + Hardware *Hardware `json:"hardware,omitempty" xmlrpc:"hardware,omitempty"` + + // The general group of component models. + HardwareComponentModel *Hardware_Component_Model `json:"hardwareComponentModel,omitempty" xmlrpc:"hardwareComponentModel,omitempty"` + + // The internal identifier of a hardware component's component model. + HardwareComponentModelId *int `json:"hardwareComponentModelId,omitempty" xmlrpc:"hardwareComponentModelId,omitempty"` + + // A components type. + HardwareComponentType *Hardware_Component_Type `json:"hardwareComponentType,omitempty" xmlrpc:"hardwareComponentType,omitempty"` + + // The internal identifier of the hardware that a hardware component resides inside. + HardwareId *int `json:"hardwareId,omitempty" xmlrpc:"hardwareId,omitempty"` + + // A hardware component's internal identifier. + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // The date that a hardware component was last modified. + ModifyDate *Time `json:"modifyDate,omitempty" xmlrpc:"modifyDate,omitempty"` + + // A count of the module's hardware components + ModuleComponentCount *uint `json:"moduleComponentCount,omitempty" xmlrpc:"moduleComponentCount,omitempty"` + + // The module's hardware components + ModuleComponents []Hardware_Component `json:"moduleComponents,omitempty" xmlrpc:"moduleComponents,omitempty"` + + // A count of the module's hardware components + ModuleHardwareComponentCount *uint `json:"moduleHardwareComponentCount,omitempty" xmlrpc:"moduleHardwareComponentCount,omitempty"` + + // The module's hardware components + ModuleHardwareComponents []Hardware_Component `json:"moduleHardwareComponents,omitempty" xmlrpc:"moduleHardwareComponents,omitempty"` + + // A count of the module's network components + ModuleNetworkComponentCount *uint `json:"moduleNetworkComponentCount,omitempty" xmlrpc:"moduleNetworkComponentCount,omitempty"` + + // The module's network components + ModuleNetworkComponents []Hardware_Component `json:"moduleNetworkComponents,omitempty" xmlrpc:"moduleNetworkComponents,omitempty"` + + // The name of this component as referenced by the operating system. + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` + + // A count of the components local ethernet and remote management interfaces + NetworkComponentCount *uint `json:"networkComponentCount,omitempty" xmlrpc:"networkComponentCount,omitempty"` + + // The components local ethernet and remote management interfaces + NetworkComponents []Network_Component `json:"networkComponents,omitempty" xmlrpc:"networkComponents,omitempty"` + + // The account this component belongs to. + Owner *Account `json:"owner,omitempty" xmlrpc:"owner,omitempty"` + + // A components parent. Devices that are usually integrated or in some way attached to a component. + Parent *Hardware_Component `json:"parent,omitempty" xmlrpc:"parent,omitempty"` + + // no documentation yet + ParentModule *Hardware_Component `json:"parentModule,omitempty" xmlrpc:"parentModule,omitempty"` + + // no documentation yet + PrefixAttribute *Hardware_Component_Model_Generic_Attribute `json:"prefixAttribute,omitempty" xmlrpc:"prefixAttribute,omitempty"` + + // A RAID controllers RAID mode. + RaidMode *string `json:"raidMode,omitempty" xmlrpc:"raidMode,omitempty"` + + // The component serial number. + SerialNumber *string `json:"serialNumber,omitempty" xmlrpc:"serialNumber,omitempty"` + + // no documentation yet + ServiceProvider *Service_Provider `json:"serviceProvider,omitempty" xmlrpc:"serviceProvider,omitempty"` + + // A hardware's internal identification number at its service provider + ServiceProviderId *int `json:"serviceProviderId,omitempty" xmlrpc:"serviceProviderId,omitempty"` + + // A count of + UplinkHardwareComponentCount *uint `json:"uplinkHardwareComponentCount,omitempty" xmlrpc:"uplinkHardwareComponentCount,omitempty"` + + // no documentation yet + UplinkHardwareComponents []Hardware_Component `json:"uplinkHardwareComponents,omitempty" xmlrpc:"uplinkHardwareComponents,omitempty"` +} + +// The SoftLayer_Hardware_Component_Attribute data type contains general information relating to a single hardware setting or attribute for a component model. For Example: A RAID controller may be setup for many different RAID configurations. A RAID controller with a configuration of RAID-1 will have a single attribute for this RAID setting. +type Hardware_Component_Attribute struct { + Entity + + // A hardware component attribute's associated [[SoftLayer_Hardware_Component|Hardware Component]]. + HardwareComponent *Hardware_Component `json:"hardwareComponent,omitempty" xmlrpc:"hardwareComponent,omitempty"` + + // A hardware component attribute's associated [[SoftLayer_Hardware_Component_Attribute_Type|type]]. + HardwareComponentAttributeType *Hardware_Component_Attribute_Type `json:"hardwareComponentAttributeType,omitempty" xmlrpc:"hardwareComponentAttributeType,omitempty"` + + // A hardware component attribute's associated [[SoftLayer_Hardware_Component_Attribute_Type|type]] Id. + HardwareComponentAttributeTypeId *int `json:"hardwareComponentAttributeTypeId,omitempty" xmlrpc:"hardwareComponentAttributeTypeId,omitempty"` + + // A hardware component attribute's associated [[SoftLayer_Hardware_Component|hardware component]] Id. + HardwareComponentId *int `json:"hardwareComponentId,omitempty" xmlrpc:"hardwareComponentId,omitempty"` + + // A hardware component attribute's value. A value can have many different values depending on the attributes [[SoftLayer_Hardware_Component_Attribute_Type|type]]. + Value *string `json:"value,omitempty" xmlrpc:"value,omitempty"` +} + +// The SoftLayer_Hardware_Component_Attribute_Type data type contains general information for the type of an attribute for a hardware component. +type Hardware_Component_Attribute_Type struct { + Entity + + // The description for the date that a hardware component attribute type's [[SoftLayer_Hardware_Component_Attribute|Attribute]] contains. + Description *string `json:"description,omitempty" xmlrpc:"description,omitempty"` + + // A hardware component attribute type's Id. + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // A hardware component attribute type's unique name. + KeyName *string `json:"keyName,omitempty" xmlrpc:"keyName,omitempty"` + + // A hardware component attribute type's name. + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` +} + +// The SoftLayer_Hardware_Component_DriveController data type abstracts information related to a drive controller. +type Hardware_Component_DriveController struct { + Hardware_Component +} + +// The SoftLayer_Hardware_Component_HardDrive data type abstracts information related to a hard drive. +type Hardware_Component_HardDrive struct { + Hardware_Component + + // A count of the attached component partitions. + PartitionCount *uint `json:"partitionCount,omitempty" xmlrpc:"partitionCount,omitempty"` + + // The attached component partitions. + Partitions []Hardware_Component_Partition `json:"partitions,omitempty" xmlrpc:"partitions,omitempty"` +} + +// The SoftLayer_Hardware_Component_Model data type contains general information relating to a single SoftLayer component model. A component model represents a vendor specific representation of a hardware component. Every piece of hardware on a server will have a specific hardware component model. +type Hardware_Component_Model struct { + Entity + + // no documentation yet + ArchitectureType *Hardware_Component_Model_Architecture_Type `json:"architectureType,omitempty" xmlrpc:"architectureType,omitempty"` + + // no documentation yet + ArchitectureTypeId *string `json:"architectureTypeId,omitempty" xmlrpc:"architectureTypeId,omitempty"` + + // A count of + AttributeCount *uint `json:"attributeCount,omitempty" xmlrpc:"attributeCount,omitempty"` + + // no documentation yet + Attributes []Hardware_Component_Model_Attribute `json:"attributes,omitempty" xmlrpc:"attributes,omitempty"` + + // A component model's capacity. The capacity of a component model depends on the model itself. For Example: Hard drives have a capacity that reflects the amount of data that hard drive can store. + Capacity *Float64 `json:"capacity,omitempty" xmlrpc:"capacity,omitempty"` + + // A count of + CompatibleArrayTypeCount *uint `json:"compatibleArrayTypeCount,omitempty" xmlrpc:"compatibleArrayTypeCount,omitempty"` + + // no documentation yet + CompatibleArrayTypes []Configuration_Storage_Group_Array_Type `json:"compatibleArrayTypes,omitempty" xmlrpc:"compatibleArrayTypes,omitempty"` + + // A count of all the component models that are compatible with a hardware component model. + CompatibleChildComponentModelCount *uint `json:"compatibleChildComponentModelCount,omitempty" xmlrpc:"compatibleChildComponentModelCount,omitempty"` + + // All the component models that are compatible with a hardware component model. + CompatibleChildComponentModels []Hardware_Component_Model `json:"compatibleChildComponentModels,omitempty" xmlrpc:"compatibleChildComponentModels,omitempty"` + + // A count of all the component models that a hardware component model is compatible with. + CompatibleParentComponentModelCount *uint `json:"compatibleParentComponentModelCount,omitempty" xmlrpc:"compatibleParentComponentModelCount,omitempty"` + + // All the component models that a hardware component model is compatible with. + CompatibleParentComponentModels []Hardware_Component_Model `json:"compatibleParentComponentModels,omitempty" xmlrpc:"compatibleParentComponentModels,omitempty"` + + // A colon delimited list of hardware component model attributes. + Description *string `json:"description,omitempty" xmlrpc:"description,omitempty"` + + // A hardware component model's physical components in inventory. + HardwareComponents []Hardware_Component `json:"hardwareComponents,omitempty" xmlrpc:"hardwareComponents,omitempty"` + + // The non-vendor specific generic component model for a hardware component model. + HardwareGenericComponentModel *Hardware_Component_Model_Generic `json:"hardwareGenericComponentModel,omitempty" xmlrpc:"hardwareGenericComponentModel,omitempty"` + + // The internal identifier of the generic component model for a component model. + HardwareGenericComponentModelId *int `json:"hardwareGenericComponentModelId,omitempty" xmlrpc:"hardwareGenericComponentModelId,omitempty"` + + // A hardware component model's internal identifier number. + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // no documentation yet + InfinibandCompatibleAttribute *Hardware_Component_Model_Attribute `json:"infinibandCompatibleAttribute,omitempty" xmlrpc:"infinibandCompatibleAttribute,omitempty"` + + // no documentation yet + IsFlexSkuCompatible *bool `json:"isFlexSkuCompatible,omitempty" xmlrpc:"isFlexSkuCompatible,omitempty"` + + // no documentation yet + IsInfinibandCompatible *bool `json:"isInfinibandCompatible,omitempty" xmlrpc:"isInfinibandCompatible,omitempty"` + + // no documentation yet + LongDescription *string `json:"longDescription,omitempty" xmlrpc:"longDescription,omitempty"` + + // A hardware component model's manufacturer. + Manufacturer *string `json:"manufacturer,omitempty" xmlrpc:"manufacturer,omitempty"` + + // The model name of a hardware component model. + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` + + // A motherboard's average reboot time. + RebootTime *Hardware_Component_Motherboard_Reboot_Time `json:"rebootTime,omitempty" xmlrpc:"rebootTime,omitempty"` + + // A hardware component model's type. + Type *string `json:"type,omitempty" xmlrpc:"type,omitempty"` + + // A count of the types of attributes that are allowed for a given hardware component model. + ValidAttributeTypeCount *uint `json:"validAttributeTypeCount,omitempty" xmlrpc:"validAttributeTypeCount,omitempty"` + + // The types of attributes that are allowed for a given hardware component model. + ValidAttributeTypes []Hardware_Component_Model_Attribute_Type `json:"validAttributeTypes,omitempty" xmlrpc:"validAttributeTypes,omitempty"` + + // The model number or model description of a hardware component model. + Version *string `json:"version,omitempty" xmlrpc:"version,omitempty"` +} + +// no documentation yet +type Hardware_Component_Model_Architecture_Type struct { + Entity + + // no documentation yet + Children []Hardware_Component_Model_Architecture_Type `json:"children,omitempty" xmlrpc:"children,omitempty"` + + // A count of + ChildrenCount *uint `json:"childrenCount,omitempty" xmlrpc:"childrenCount,omitempty"` + + // no documentation yet + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // no documentation yet + KeyName *string `json:"keyName,omitempty" xmlrpc:"keyName,omitempty"` + + // no documentation yet + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` + + // no documentation yet + Parent *Hardware_Component_Model_Architecture_Type `json:"parent,omitempty" xmlrpc:"parent,omitempty"` + + // no documentation yet + ParentId *string `json:"parentId,omitempty" xmlrpc:"parentId,omitempty"` +} + +// The SoftLayer_Hardware_Component__Model_Attribute data type contains general information relating to a single hardware setting or attribute for a component model. +type Hardware_Component_Model_Attribute struct { + Entity + + // A hardware component model attribute's associated [[SoftLayer_Hardware_Component_Model_Attribute_Type|type]] Id. + AttributeTypeId *int `json:"attributeTypeId,omitempty" xmlrpc:"attributeTypeId,omitempty"` + + // no documentation yet + HardwareComponent *Hardware_Component_Model `json:"hardwareComponent,omitempty" xmlrpc:"hardwareComponent,omitempty"` + + // no documentation yet + HardwareComponentAttributeType *Hardware_Component_Model_Attribute_Type `json:"hardwareComponentAttributeType,omitempty" xmlrpc:"hardwareComponentAttributeType,omitempty"` + + // A hardware component model attribute's associated [[SoftLayer_Hardware_Component_Model|hardware component model]] Id. + HardwareComponentModelId *int `json:"hardwareComponentModelId,omitempty" xmlrpc:"hardwareComponentModelId,omitempty"` + + // A hardware component model attribute's value. A value can have many different values depending on the attributes [[SoftLayer_Hardware_Component_Model_Attribute_Type|type]]. + Value *string `json:"value,omitempty" xmlrpc:"value,omitempty"` +} + +// The SoftLayer_Hardware_Component_Model_Attribute_Type data type contains general information for the type of an attribute for a hardware component model. +type Hardware_Component_Model_Attribute_Type struct { + Entity + + // The description for the data that a hardware component model type's [[SoftLayer_Hardware_Component_Model_Attribute|Attribute]] contains. + Description *string `json:"description,omitempty" xmlrpc:"description,omitempty"` + + // A hardware component model attribute type's Id. + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // A hardware component model attribute type's unique name. + KeyName *string `json:"keyName,omitempty" xmlrpc:"keyName,omitempty"` + + // A hardware component model attribute type's name. + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` + + // A count of + ValidComponentTypeCount *uint `json:"validComponentTypeCount,omitempty" xmlrpc:"validComponentTypeCount,omitempty"` + + // no documentation yet + ValidComponentTypes []Hardware_Component_Type `json:"validComponentTypes,omitempty" xmlrpc:"validComponentTypes,omitempty"` +} + +// The SoftLayer_Hardware_Component_Model_Generic data type contains general information relating to a single SoftLayer generic component model. A generic component model represents a non-vendor specific representation of a hardware component. Frequently SoftLayer utilizes components from various vendors in the servers they provision. For Example: Several different vendors produce 6GB DDR2 memory. The generic component model for the 6GB stick of RAM encompasses every instance of this component regardless of make and model. +type Hardware_Component_Model_Generic struct { + Entity + + // A generic component model's capacity. The capacity of a generic component model depends on the model itself. For Example: Hard drives have a capacity that reflects the amount of data that hard drive can store. + Capacity *Float64 `json:"capacity,omitempty" xmlrpc:"capacity,omitempty"` + + // A brief description for a generic component model that typically defines it's function. + Description *string `json:"description,omitempty" xmlrpc:"description,omitempty"` + + // A count of a generic component model's hardware component model. + HardwareComponentModelCount *uint `json:"hardwareComponentModelCount,omitempty" xmlrpc:"hardwareComponentModelCount,omitempty"` + + // A generic component model's hardware component model. + HardwareComponentModels []Hardware_Component_Model `json:"hardwareComponentModels,omitempty" xmlrpc:"hardwareComponentModels,omitempty"` + + // A generic component model's type. + HardwareComponentType *Hardware_Component_Type `json:"hardwareComponentType,omitempty" xmlrpc:"hardwareComponentType,omitempty"` + + // The internal identifier of the component type for a generic component model. + HardwareComponentTypeId *int `json:"hardwareComponentTypeId,omitempty" xmlrpc:"hardwareComponentTypeId,omitempty"` + + // A generic component model's internal identification number. + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // A list of features that a generic component model can provide. + MarketingFeatures *Hardware_Component_Model_Generic_MarketingFeature `json:"marketingFeatures,omitempty" xmlrpc:"marketingFeatures,omitempty"` + + // The unit of measurement for the capacity of a generic component model. + Units *string `json:"units,omitempty" xmlrpc:"units,omitempty"` + + // A generic component model's upgrade priority. The upgrade priority indicates the order a generic component model should be considered over other generic component models. A higher number indicates that a generic component model receives a higher upgrade preference in comparison to a generic component model with a lower priority number. + UpgradePriority *int `json:"upgradePriority,omitempty" xmlrpc:"upgradePriority,omitempty"` +} + +// The SoftLayer_Hardware_Component_Model_Generic_Attribute data type contains information relating to a single SoftLayer generic component model. Generic component model attributes can hold any information to describe functionality of the model. For Example: The number of cores that a processor has. +type Hardware_Component_Model_Generic_Attribute struct { + Entity + + // An attributes generic component model. + HardwareGenericComponentModel *Hardware_Component_Model_Generic `json:"hardwareGenericComponentModel,omitempty" xmlrpc:"hardwareGenericComponentModel,omitempty"` + + // A generic component model attribute's value. + Value *string `json:"value,omitempty" xmlrpc:"value,omitempty"` +} + +// The SoftLayer_Hardware_Component_Model_Generic_MarketingFeature data type contains general information relating to all the advertising features of a single SoftLayer hardware generic component model. +type Hardware_Component_Model_Generic_MarketingFeature struct { + Entity + + // An html formatted list of all features. + Features *string `json:"features,omitempty" xmlrpc:"features,omitempty"` + + // The generic component model for a list of advertising or marketing features + HardwareGenericComponentModel *Hardware_Component_Model_Generic `json:"hardwareGenericComponentModel,omitempty" xmlrpc:"hardwareGenericComponentModel,omitempty"` + + // A hardware component's upgrade price. + Price *string `json:"price,omitempty" xmlrpc:"price,omitempty"` +} + +// The SoftLayer_Hardware_Component_DriveController data type abstracts information related to a motherboard. +type Hardware_Component_Motherboard struct { + Hardware_Component +} + +// The SoftLayer_Hardware_Component_Motherboard_Reboot_Time contains the average reboot times for motherboards. There are two types of average times. One is for motherboards without raid, and the other is for motherboards with raid. These times are based on averages and have been gathered through numerous test cases. +type Hardware_Component_Motherboard_Reboot_Time struct { + Entity + + // Motherboard's specifications (manufacturer, version, etc....) + HardwareComponentModel *Hardware_Component_Model `json:"hardwareComponentModel,omitempty" xmlrpc:"hardwareComponentModel,omitempty"` + + // Average reboot time in seconds for the motherboard when raid is installed. + WithRaid *int `json:"withRaid,omitempty" xmlrpc:"withRaid,omitempty"` + + // Average reboot time in seconds for the motherboard when NO raid is installed. + WithoutRaid *int `json:"withoutRaid,omitempty" xmlrpc:"withoutRaid,omitempty"` +} + +// The SoftLayer_Hardware_Component_NetworkCard data type abstracts information related to a network card. +type Hardware_Component_NetworkCard struct { + Hardware_Component +} + +// The SoftLayer_Hardware_Component_Partition data type contains general information relating to a single hard drive partition. +type Hardware_Component_Partition struct { + Entity + + // A hardware component partition's order in the [[SoftLayer_Hardware_Hardware|hardware]]. + DiskNumber *int `json:"diskNumber,omitempty" xmlrpc:"diskNumber,omitempty"` + + // A flag indicating if a partition is the grow partition. The grow partition will grow to fill all remaining space on a disk. There can only be one. + Grow *int `json:"grow,omitempty" xmlrpc:"grow,omitempty"` + + // A hardware component partitions's associated [[SoftLayer_Hardware_Component|Hardware Component]]. Likely to be a [[SoftLayer_Hardware_Component_HardDrive|Hard Drive]] + HardwareComponent *Hardware_Component `json:"hardwareComponent,omitempty" xmlrpc:"hardwareComponent,omitempty"` + + // A hardware component partition's associated [[SoftLayer_Hardware_Component|hardware component]] Id. + HardwareComponentId *int `json:"hardwareComponentId,omitempty" xmlrpc:"hardwareComponentId,omitempty"` + + // A hardware component partition's minimum size(GB). + MinimumSize *Float64 `json:"minimumSize,omitempty" xmlrpc:"minimumSize,omitempty"` + + // A hardware component partition's name. On a server with windows this may be 'C' and on Linux this may be '/var' + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` +} + +// The SoftLayer_Hardware_Component_Partition_OperatingSystem data type contains general information relating to a single SoftLayer Operating System Partition Template. +type Hardware_Component_Partition_OperatingSystem struct { + Entity + + // A partition template operating system's description. Typically the title of the Operating System. + Description *string `json:"description,omitempty" xmlrpc:"description,omitempty"` + + // A partition template operating system's id. + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // Information about the kinds of partition templates assigned to this operating system. + Notes *string `json:"notes,omitempty" xmlrpc:"notes,omitempty"` + + // A count of information regarding an operating system's [[SoftLayer_Hardware_Component_Partition_Template|Partition Templates]]. + PartitionTemplateCount *uint `json:"partitionTemplateCount,omitempty" xmlrpc:"partitionTemplateCount,omitempty"` + + // Information regarding an operating system's [[SoftLayer_Hardware_Component_Partition_Template|Partition Templates]]. + PartitionTemplates []Hardware_Component_Partition_Template `json:"partitionTemplates,omitempty" xmlrpc:"partitionTemplates,omitempty"` +} + +// The SoftLayer_Hardware_Component_Partition_Template data type contains general information relating to a single SoftLayer partition template. Partition templates group 1 or more partition configurations that can be used to predefine how a hard drive's partitions will be configured. +type Hardware_Component_Partition_Template struct { + Entity + + // A partition template's associated [[SoftLayer_Account|Account]]. + Account *Account `json:"account,omitempty" xmlrpc:"account,omitempty"` + + // A partition template's owner. The [[SoftLayer_Account|Account]] that a template was created by. + AccountId *int `json:"accountId,omitempty" xmlrpc:"accountId,omitempty"` + + // An individual partition for a partition template. This is identical to 'partitionTemplatePartition' except this will sort unix partitions. + Data []Hardware_Component_Partition_Template_Partition `json:"data,omitempty" xmlrpc:"data,omitempty"` + + // A count of an individual partition for a partition template. This is identical to 'partitionTemplatePartition' except this will sort unix partitions. + DataCount *uint `json:"dataCount,omitempty" xmlrpc:"dataCount,omitempty"` + + // A partition template's description. + Description *string `json:"description,omitempty" xmlrpc:"description,omitempty"` + + // no documentation yet + ExpireDate *string `json:"expireDate,omitempty" xmlrpc:"expireDate,omitempty"` + + // A partition template's id. + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // A partition template's associated [[SoftLayer_Hardware_Component_Partition_OperatingSystem|Operating System]]. + PartitionOperatingSystem *Hardware_Component_Partition_OperatingSystem `json:"partitionOperatingSystem,omitempty" xmlrpc:"partitionOperatingSystem,omitempty"` + + // A partition template's associated [[SoftLayer_Hardware_Component_Partition_OperatingSystem|Operating System]] Id. + PartitionOperatingSystemId *int `json:"partitionOperatingSystemId,omitempty" xmlrpc:"partitionOperatingSystemId,omitempty"` + + // An individual partition for a partition template. + PartitionTemplatePartition []Hardware_Component_Partition_Template_Partition `json:"partitionTemplatePartition,omitempty" xmlrpc:"partitionTemplatePartition,omitempty"` + + // A count of an individual partition for a partition template. + PartitionTemplatePartitionCount *uint `json:"partitionTemplatePartitionCount,omitempty" xmlrpc:"partitionTemplatePartitionCount,omitempty"` + + // A partition template's status code. ACTIVE ,INACTIVE. + StatusCode *string `json:"statusCode,omitempty" xmlrpc:"statusCode,omitempty"` + + // A partition template's Type. SYSTEM - template generated by softlayer. CUSTOM - templates generated by SoftLayer customers. + TemplateType *string `json:"templateType,omitempty" xmlrpc:"templateType,omitempty"` +} + +// The SoftLayer_Hardware_Component_Partition_Template_Partition data type contains general information relating to a single SoftLayer Template Partition. +type Hardware_Component_Partition_Template_Partition struct { + Entity + + // The filesystem type of a partition + FilesystemType *Configuration_Storage_Filesystem_Type `json:"filesystemType,omitempty" xmlrpc:"filesystemType,omitempty"` + + // A partition's id. + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // A flag indication if a partition will be the grow partition. The grow partition will have its size adjusted to fill all available space on a hard drive. + IsGrow *bool `json:"isGrow,omitempty" xmlrpc:"isGrow,omitempty"` + + // A partition's default name. + PartitionName *string `json:"partitionName,omitempty" xmlrpc:"partitionName,omitempty"` + + // A partition's default size. + PartitionSize *Float64 `json:"partitionSize,omitempty" xmlrpc:"partitionSize,omitempty"` + + // A partition's [[SoftLayer_Hardware_Component_Partition_Template|Partition Template]]. + PartitionTemplate *Hardware_Component_Partition_Template `json:"partitionTemplate,omitempty" xmlrpc:"partitionTemplate,omitempty"` + + // A partition's associated [[SoftLayer_Hardware_Component_Partition_Template|Partition Template]] Id. + PartitionTemplateId *int `json:"partitionTemplateId,omitempty" xmlrpc:"partitionTemplateId,omitempty"` + + // The volume the partition will be put on + VolumeNumber *int `json:"volumeNumber,omitempty" xmlrpc:"volumeNumber,omitempty"` +} + +// The SoftLayer_Hardware_Component_Processor data type abstracts information related to a processor. +type Hardware_Component_Processor struct { + Hardware_Component +} + +// The SoftLayer_Hardware_Component_Ram data type abstracts information related to RAM. +type Hardware_Component_Ram struct { + Hardware_Component +} + +// This class adds functionality to the base SoftLayer_Hardware class for web servers (all server hardware) +type Hardware_Component_RemoteManagement struct { + Hardware_Component + + // A network component data type. + NetworkComponent *Network_Component `json:"networkComponent,omitempty" xmlrpc:"networkComponent,omitempty"` +} + +// The SoftLayer_Network_Storage_Evault_Version6 contains the names of the remote management commands. Currently, only the reboot and power commands for the remote management card exist. +type Hardware_Component_RemoteManagement_Command struct { + Entity + + // The name of the remote management command. + KeyName *string `json:"keyName,omitempty" xmlrpc:"keyName,omitempty"` + + // A count of all requests issued for the remote management command. + RequestCount *uint `json:"requestCount,omitempty" xmlrpc:"requestCount,omitempty"` + + // All requests issued for the remote management command. + Requests []Hardware_Component_RemoteManagement_Command_Request `json:"requests,omitempty" xmlrpc:"requests,omitempty"` +} + +// The SoftLayer_Hardware_Component_RemoteManagement_Command_Request contains details for remote management commands issued to a server's remote management card. Details for remote management commands such as powerOn, powerOff, powerCycle, rebootDefault, rebootSoft, rebootHard can be retrieved. Details such as the user who issued the command, the id of the remote management card the command was issued, when the command was issued may be retrieved. +type Hardware_Component_RemoteManagement_Command_Request struct { + Entity + + // The timestamp the remote management command was issued. + CreateDate *Time `json:"createDate,omitempty" xmlrpc:"createDate,omitempty"` + + // The id of the hardware to perform the remote management or powerstrip command on. + Hardware *Hardware `json:"hardware,omitempty" xmlrpc:"hardware,omitempty"` + + // The hardware id the command was issued for. + HardwareId *int `json:"hardwareId,omitempty" xmlrpc:"hardwareId,omitempty"` + + // The timestamp recorded when the remote management command returned a status of the command issued. + ModifyDate *Time `json:"modifyDate,omitempty" xmlrpc:"modifyDate,omitempty"` + + // A hardware's network components. Network components are hardware components such as IPMI cards or Ethernet cards. + NetworkComponent *Network_Component `json:"networkComponent,omitempty" xmlrpc:"networkComponent,omitempty"` + + // Execution status of the remote management command. True is successful. False is failure. + Processed *bool `json:"processed,omitempty" xmlrpc:"processed,omitempty"` + + // The remote management command issued. + RemoteManagementCommand *Hardware_Component_RemoteManagement_Command `json:"remoteManagementCommand,omitempty" xmlrpc:"remoteManagementCommand,omitempty"` + + // Information regarding the user who issued the remote management command. + User *User_Customer `json:"user,omitempty" xmlrpc:"user,omitempty"` +} + +// The credentials used for remote management such as username, password, etc... +type Hardware_Component_RemoteManagement_User struct { + Entity + + // no documentation yet + Hardware *Hardware `json:"hardware,omitempty" xmlrpc:"hardware,omitempty"` + + // no documentation yet + NetworkComponent *Network_Component `json:"networkComponent,omitempty" xmlrpc:"networkComponent,omitempty"` + + // The password used for this remote management command. + Password *string `json:"password,omitempty" xmlrpc:"password,omitempty"` + + // The username used for this remote management command. + Username *string `json:"username,omitempty" xmlrpc:"username,omitempty"` +} + +// The SoftLayer_Hardware_Component_SecurityDevice is used to determine the security devices attached to the hardware component. +type Hardware_Component_SecurityDevice struct { + Hardware_Component +} + +// The SoftLayer_Hardware_Component_SecurityDevice_Infineon is used to determine the Infineon security device attached to the hardware component. +type Hardware_Component_SecurityDevice_Infineon struct { + Hardware_Component_SecurityDevice +} + +// The SoftLayer_Hardware_Component_Type data type provides details on the type of component requested +type Hardware_Component_Type struct { + Entity + + // A count of the generic component model description for this component type object. + HardwareGenericComponentModelCount *uint `json:"hardwareGenericComponentModelCount,omitempty" xmlrpc:"hardwareGenericComponentModelCount,omitempty"` + + // The generic component model description for this component type object. + HardwareGenericComponentModels []Hardware_Component_Model_Generic `json:"hardwareGenericComponentModels,omitempty" xmlrpc:"hardwareGenericComponentModels,omitempty"` + + // The ID associated with this component type. + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // The hardware component type key name or code. + KeyName *string `json:"keyName,omitempty" xmlrpc:"keyName,omitempty"` + + // The type associated with this component type. + Type *string `json:"type,omitempty" xmlrpc:"type,omitempty"` + + // The parent generic component model object for this generic component model object. + TypeParent *Hardware_Component_Type `json:"typeParent,omitempty" xmlrpc:"typeParent,omitempty"` + + // The parent id associated with this component type. + TypeParentId *int `json:"typeParentId,omitempty" xmlrpc:"typeParentId,omitempty"` +} + +// The SoftLayer_Hardware_Firewall data type contains general information relating to a single SoftLayer firewall. +type Hardware_Firewall struct { + Hardware_Switch + + // A count of a list of users that have access to this hardware firewall. + UserCount *uint `json:"userCount,omitempty" xmlrpc:"userCount,omitempty"` + + // A list of users that have access to this hardware firewall. + Users []User_Customer `json:"users,omitempty" xmlrpc:"users,omitempty"` +} + +// The SoftLayer_Hardware_Function data type contains a generic object type for a piece of hardware, like switch, firewall, server, etc.. +type Hardware_Function struct { + Entity + + // The code associated with this hardware function. + Code *string `json:"code,omitempty" xmlrpc:"code,omitempty"` + + // The description for a hardware function. + Description *string `json:"description,omitempty" xmlrpc:"description,omitempty"` + + // The id associated with a hardware function. + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` +} + +// no documentation yet +type Hardware_Group struct { + Entity + + // no documentation yet + Domain *string `json:"domain,omitempty" xmlrpc:"domain,omitempty"` + + // A count of all servers attached to a network hardware. + DownlinkServerCount *uint `json:"downlinkServerCount,omitempty" xmlrpc:"downlinkServerCount,omitempty"` + + // All servers attached to a network hardware. + DownlinkServers []Hardware `json:"downlinkServers,omitempty" xmlrpc:"downlinkServers,omitempty"` + + // A count of all virtual guests attached to a network hardware. + DownlinkVirtualGuestCount *uint `json:"downlinkVirtualGuestCount,omitempty" xmlrpc:"downlinkVirtualGuestCount,omitempty"` + + // All virtual guests attached to a network hardware. + DownlinkVirtualGuests []Virtual_Guest `json:"downlinkVirtualGuests,omitempty" xmlrpc:"downlinkVirtualGuests,omitempty"` + + // All network hardware downstream from this hardware. + DownstreamNetworkHardware []Hardware `json:"downstreamNetworkHardware,omitempty" xmlrpc:"downstreamNetworkHardware,omitempty"` + + // A count of all network hardware downstream from this hardware. + DownstreamNetworkHardwareCount *uint `json:"downstreamNetworkHardwareCount,omitempty" xmlrpc:"downstreamNetworkHardwareCount,omitempty"` + + // A count of all network hardware with monitoring warnings or errors downstream from this hardware. + DownstreamNetworkHardwareWithIncidentCount *uint `json:"downstreamNetworkHardwareWithIncidentCount,omitempty" xmlrpc:"downstreamNetworkHardwareWithIncidentCount,omitempty"` + + // All network hardware with monitoring warnings or errors downstream from this hardware. + DownstreamNetworkHardwareWithIncidents []Hardware `json:"downstreamNetworkHardwareWithIncidents,omitempty" xmlrpc:"downstreamNetworkHardwareWithIncidents,omitempty"` + + // The chassis that a piece of hardware is housed in. + HardwareChassis *Hardware_Chassis `json:"hardwareChassis,omitempty" xmlrpc:"hardwareChassis,omitempty"` + + // no documentation yet + Hostname *string `json:"hostname,omitempty" xmlrpc:"hostname,omitempty"` + + // no documentation yet + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // All servers attached downstream to a hardware that have failed monitoring + NetworkMonitorAttachedDownHardware []Hardware `json:"networkMonitorAttachedDownHardware,omitempty" xmlrpc:"networkMonitorAttachedDownHardware,omitempty"` + + // A count of all servers attached downstream to a hardware that have failed monitoring + NetworkMonitorAttachedDownHardwareCount *uint `json:"networkMonitorAttachedDownHardwareCount,omitempty" xmlrpc:"networkMonitorAttachedDownHardwareCount,omitempty"` + + // A count of virtual guests that are attached downstream to a hardware that have failed monitoring + NetworkMonitorAttachedDownVirtualGuestCount *uint `json:"networkMonitorAttachedDownVirtualGuestCount,omitempty" xmlrpc:"networkMonitorAttachedDownVirtualGuestCount,omitempty"` + + // Virtual guests that are attached downstream to a hardware that have failed monitoring + NetworkMonitorAttachedDownVirtualGuests []Virtual_Guest `json:"networkMonitorAttachedDownVirtualGuests,omitempty" xmlrpc:"networkMonitorAttachedDownVirtualGuests,omitempty"` + + // The value of a hardware's network status attribute. + NetworkStatus *string `json:"networkStatus,omitempty" xmlrpc:"networkStatus,omitempty"` +} + +// no documentation yet +type Hardware_LoadBalancer struct { + Hardware + + // no documentation yet + ModelFamily *string `json:"modelFamily,omitempty" xmlrpc:"modelFamily,omitempty"` + + // A count of a list of users that have access to this hardware load balancer. + UserCount *uint `json:"userCount,omitempty" xmlrpc:"userCount,omitempty"` + + // A list of users that have access to this hardware load balancer. + Users []User_Customer `json:"users,omitempty" xmlrpc:"users,omitempty"` +} + +// no documentation yet +type Hardware_Note struct { + Entity + + // no documentation yet + CreateDate *Time `json:"createDate,omitempty" xmlrpc:"createDate,omitempty"` + + // no documentation yet + Employee *User_Employee `json:"employee,omitempty" xmlrpc:"employee,omitempty"` + + // no documentation yet + Hardware *Hardware `json:"hardware,omitempty" xmlrpc:"hardware,omitempty"` + + // no documentation yet + HardwareId *int `json:"hardwareId,omitempty" xmlrpc:"hardwareId,omitempty"` + + // no documentation yet + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // no documentation yet + ModifyDate *Time `json:"modifyDate,omitempty" xmlrpc:"modifyDate,omitempty"` + + // no documentation yet + Note *string `json:"note,omitempty" xmlrpc:"note,omitempty"` + + // no documentation yet + Type *Hardware_Note_Type `json:"type,omitempty" xmlrpc:"type,omitempty"` + + // no documentation yet + TypeId *int `json:"typeId,omitempty" xmlrpc:"typeId,omitempty"` + + // no documentation yet + User *User_Customer `json:"user,omitempty" xmlrpc:"user,omitempty"` + + // no documentation yet + UserRecordId *int `json:"userRecordId,omitempty" xmlrpc:"userRecordId,omitempty"` +} + +// no documentation yet +type Hardware_Note_Type struct { + Entity + + // no documentation yet + KeyName *string `json:"keyName,omitempty" xmlrpc:"keyName,omitempty"` +} + +// no documentation yet +type Hardware_Power_Component struct { + Entity + + // no documentation yet + Hardware *Hardware `json:"hardware,omitempty" xmlrpc:"hardware,omitempty"` + + // no documentation yet + HardwareId *int `json:"hardwareId,omitempty" xmlrpc:"hardwareId,omitempty"` + + // no documentation yet + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` +} + +// no documentation yet +type Hardware_Resource_Configuration struct { + Entity + + // no documentation yet + ConfigurationTypeId *int `json:"configurationTypeId,omitempty" xmlrpc:"configurationTypeId,omitempty"` + + // no documentation yet + Hardware *Hardware `json:"hardware,omitempty" xmlrpc:"hardware,omitempty"` + + // no documentation yet + HardwareId *int `json:"hardwareId,omitempty" xmlrpc:"hardwareId,omitempty"` + + // no documentation yet + Properties []Hardware_Resource_Configuration_Property `json:"properties,omitempty" xmlrpc:"properties,omitempty"` + + // A count of + PropertyCount *uint `json:"propertyCount,omitempty" xmlrpc:"propertyCount,omitempty"` + + // no documentation yet + Type *Hardware_Resource_Configuration_Type `json:"type,omitempty" xmlrpc:"type,omitempty"` +} + +// no documentation yet +type Hardware_Resource_Configuration_Property struct { + Entity + + // no documentation yet + Configuration *Hardware_Resource_Configuration `json:"configuration,omitempty" xmlrpc:"configuration,omitempty"` + + // no documentation yet + ConfigurationId *int `json:"configurationId,omitempty" xmlrpc:"configurationId,omitempty"` + + // no documentation yet + ConfigurationPropertyTypeId *int `json:"configurationPropertyTypeId,omitempty" xmlrpc:"configurationPropertyTypeId,omitempty"` + + // no documentation yet + Type *Hardware_Resource_Configuration_Property_Type `json:"type,omitempty" xmlrpc:"type,omitempty"` + + // no documentation yet + Value *string `json:"value,omitempty" xmlrpc:"value,omitempty"` +} + +// no documentation yet +type Hardware_Resource_Configuration_Property_Type struct { + Entity + + // no documentation yet + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` + + // no documentation yet + Properties []Hardware_Resource_Configuration_Property `json:"properties,omitempty" xmlrpc:"properties,omitempty"` + + // A count of + PropertyCount *uint `json:"propertyCount,omitempty" xmlrpc:"propertyCount,omitempty"` + + // no documentation yet + Unit *string `json:"unit,omitempty" xmlrpc:"unit,omitempty"` +} + +// no documentation yet +type Hardware_Resource_Configuration_Type struct { + Entity + + // no documentation yet + KeyName *string `json:"keyName,omitempty" xmlrpc:"keyName,omitempty"` + + // no documentation yet + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` +} + +// The SoftLayer_Hardware_Router data type contains general information relating to a single SoftLayer router. +type Hardware_Router struct { + Hardware_Switch + + // A count of associated subnets for a router object. + BoundSubnetCount *uint `json:"boundSubnetCount,omitempty" xmlrpc:"boundSubnetCount,omitempty"` + + // Associated subnets for a router object. + BoundSubnets []Network_Subnet `json:"boundSubnets,omitempty" xmlrpc:"boundSubnets,omitempty"` + + // A flag indicating that a VLAN on the router can be assigned to a host that has local disk functionality. + LocalDiskStorageCapabilityFlag *bool `json:"localDiskStorageCapabilityFlag,omitempty" xmlrpc:"localDiskStorageCapabilityFlag,omitempty"` + + // A flag indicating that a VLAN on the router can be assigned to a host that has SAN disk functionality. + SanStorageCapabilityFlag *bool `json:"sanStorageCapabilityFlag,omitempty" xmlrpc:"sanStorageCapabilityFlag,omitempty"` +} + +// The SoftLayer_Hardware_Router_Backend data type contains general information relating to a single SoftLayer router item for hardware. +type Hardware_Router_Backend struct { + Hardware_Router +} + +// The SoftLayer_Hardware_Router_Frontend data type contains general information relating to a single SoftLayer router item for hardware. +type Hardware_Router_Frontend struct { + Hardware_Router +} + +// no documentation yet +type Hardware_SecurityModule struct { + Hardware_Server +} + +// The SoftLayer_Hardware_Server data type contains general information relating to a single SoftLayer server. +type Hardware_Server struct { + Hardware + + // The billing item for a server's attached network firewall. + ActiveNetworkFirewallBillingItem *Billing_Item `json:"activeNetworkFirewallBillingItem,omitempty" xmlrpc:"activeNetworkFirewallBillingItem,omitempty"` + + // A count of + ActiveTicketCount *uint `json:"activeTicketCount,omitempty" xmlrpc:"activeTicketCount,omitempty"` + + // no documentation yet + ActiveTickets []Ticket `json:"activeTickets,omitempty" xmlrpc:"activeTickets,omitempty"` + + // Transaction currently running for server. + ActiveTransaction *Provisioning_Version1_Transaction `json:"activeTransaction,omitempty" xmlrpc:"activeTransaction,omitempty"` + + // A count of any active transaction(s) that are currently running for the server (example: os reload). + ActiveTransactionCount *uint `json:"activeTransactionCount,omitempty" xmlrpc:"activeTransactionCount,omitempty"` + + // Any active transaction(s) that are currently running for the server (example: os reload). + ActiveTransactions []Provisioning_Version1_Transaction `json:"activeTransactions,omitempty" xmlrpc:"activeTransactions,omitempty"` + + // An object that stores the maximum level for the monitoring query types and response types. + AvailableMonitoring []Network_Monitor_Version1_Query_Host_Stratum `json:"availableMonitoring,omitempty" xmlrpc:"availableMonitoring,omitempty"` + + // A count of an object that stores the maximum level for the monitoring query types and response types. + AvailableMonitoringCount *uint `json:"availableMonitoringCount,omitempty" xmlrpc:"availableMonitoringCount,omitempty"` + + // The average daily total bandwidth usage for the current billing cycle. + AverageDailyBandwidthUsage *Float64 `json:"averageDailyBandwidthUsage,omitempty" xmlrpc:"averageDailyBandwidthUsage,omitempty"` + + // The average daily private bandwidth usage for the current billing cycle. + AverageDailyPrivateBandwidthUsage *Float64 `json:"averageDailyPrivateBandwidthUsage,omitempty" xmlrpc:"averageDailyPrivateBandwidthUsage,omitempty"` + + // The raw bandwidth usage data for the current billing cycle. One object will be returned for each network this server is attached to. + BillingCycleBandwidthUsage []Network_Bandwidth_Usage `json:"billingCycleBandwidthUsage,omitempty" xmlrpc:"billingCycleBandwidthUsage,omitempty"` + + // A count of the raw bandwidth usage data for the current billing cycle. One object will be returned for each network this server is attached to. + BillingCycleBandwidthUsageCount *uint `json:"billingCycleBandwidthUsageCount,omitempty" xmlrpc:"billingCycleBandwidthUsageCount,omitempty"` + + // The raw private bandwidth usage data for the current billing cycle. + BillingCyclePrivateBandwidthUsage *Network_Bandwidth_Usage `json:"billingCyclePrivateBandwidthUsage,omitempty" xmlrpc:"billingCyclePrivateBandwidthUsage,omitempty"` + + // The raw public bandwidth usage data for the current billing cycle. + BillingCyclePublicBandwidthUsage *Network_Bandwidth_Usage `json:"billingCyclePublicBandwidthUsage,omitempty" xmlrpc:"billingCyclePublicBandwidthUsage,omitempty"` + + // no documentation yet + ContainsSolidStateDrivesFlag *bool `json:"containsSolidStateDrivesFlag,omitempty" xmlrpc:"containsSolidStateDrivesFlag,omitempty"` + + // A server's control panel. + ControlPanel *Software_Component_ControlPanel `json:"controlPanel,omitempty" xmlrpc:"controlPanel,omitempty"` + + // The total cost of a server, measured in US Dollars ($USD). + Cost *Float64 `json:"cost,omitempty" xmlrpc:"cost,omitempty"` + + // An object that provides commonly used bandwidth summary components for the current billing cycle. + CurrentBandwidthSummary *Metric_Tracking_Object_Bandwidth_Summary `json:"currentBandwidthSummary,omitempty" xmlrpc:"currentBandwidthSummary,omitempty"` + + // Indicates if a server has a Customer Installed OS + CustomerInstalledOperatingSystemFlag *bool `json:"customerInstalledOperatingSystemFlag,omitempty" xmlrpc:"customerInstalledOperatingSystemFlag,omitempty"` + + // Indicates if a server is a customer owned device. + CustomerOwnedFlag *bool `json:"customerOwnedFlag,omitempty" xmlrpc:"customerOwnedFlag,omitempty"` + + // The total private inbound bandwidth for this hardware for the current billing cycle. + InboundPrivateBandwidthUsage *Float64 `json:"inboundPrivateBandwidthUsage,omitempty" xmlrpc:"inboundPrivateBandwidthUsage,omitempty"` + + // The last transaction that a server's operating system was loaded. + LastOperatingSystemReload *Provisioning_Version1_Transaction `json:"lastOperatingSystemReload,omitempty" xmlrpc:"lastOperatingSystemReload,omitempty"` + + // The metric tracking object id for this server. + MetricTrackingObjectId *int `json:"metricTrackingObjectId,omitempty" xmlrpc:"metricTrackingObjectId,omitempty"` + + // The monitoring notification objects for this hardware. Each object links this hardware instance to a user account that will be notified if monitoring on this hardware object fails + MonitoringUserNotification []User_Customer_Notification_Hardware `json:"monitoringUserNotification,omitempty" xmlrpc:"monitoringUserNotification,omitempty"` + + // A count of the monitoring notification objects for this hardware. Each object links this hardware instance to a user account that will be notified if monitoring on this hardware object fails + MonitoringUserNotificationCount *uint `json:"monitoringUserNotificationCount,omitempty" xmlrpc:"monitoringUserNotificationCount,omitempty"` + + // An open ticket requesting cancellation of this server, if one exists. + OpenCancellationTicket *Ticket `json:"openCancellationTicket,omitempty" xmlrpc:"openCancellationTicket,omitempty"` + + // The total private outbound bandwidth for this hardware for the current billing cycle. + OutboundPrivateBandwidthUsage *Float64 `json:"outboundPrivateBandwidthUsage,omitempty" xmlrpc:"outboundPrivateBandwidthUsage,omitempty"` + + // Whether the bandwidth usage for this hardware for the current billing cycle exceeds the allocation. + OverBandwidthAllocationFlag *int `json:"overBandwidthAllocationFlag,omitempty" xmlrpc:"overBandwidthAllocationFlag,omitempty"` + + // A server's primary private IP address. + PrivateIpAddress *string `json:"privateIpAddress,omitempty" xmlrpc:"privateIpAddress,omitempty"` + + // Whether the bandwidth usage for this hardware for the current billing cycle is projected to exceed the allocation. + ProjectedOverBandwidthAllocationFlag *int `json:"projectedOverBandwidthAllocationFlag,omitempty" xmlrpc:"projectedOverBandwidthAllocationFlag,omitempty"` + + // The projected public outbound bandwidth for this hardware for the current billing cycle. + ProjectedPublicBandwidthUsage *Float64 `json:"projectedPublicBandwidthUsage,omitempty" xmlrpc:"projectedPublicBandwidthUsage,omitempty"` + + // A count of the last five commands issued to the server's remote management card. + RecentRemoteManagementCommandCount *uint `json:"recentRemoteManagementCommandCount,omitempty" xmlrpc:"recentRemoteManagementCommandCount,omitempty"` + + // The last five commands issued to the server's remote management card. + RecentRemoteManagementCommands []Hardware_Component_RemoteManagement_Command_Request `json:"recentRemoteManagementCommands,omitempty" xmlrpc:"recentRemoteManagementCommands,omitempty"` + + // no documentation yet + RegionalInternetRegistry *Network_Regional_Internet_Registry `json:"regionalInternetRegistry,omitempty" xmlrpc:"regionalInternetRegistry,omitempty"` + + // A server's remote management card. + RemoteManagement *Hardware_Component_RemoteManagement `json:"remoteManagement,omitempty" xmlrpc:"remoteManagement,omitempty"` + + // A count of user(s) who have access to issue commands and/or interact with the server's remote management card. + RemoteManagementUserCount *uint `json:"remoteManagementUserCount,omitempty" xmlrpc:"remoteManagementUserCount,omitempty"` + + // User(s) who have access to issue commands and/or interact with the server's remote management card. + RemoteManagementUsers []Hardware_Component_RemoteManagement_User `json:"remoteManagementUsers,omitempty" xmlrpc:"remoteManagementUsers,omitempty"` + + // A server's remote management card used for statistics. + StatisticsRemoteManagement *Hardware_Component_RemoteManagement `json:"statisticsRemoteManagement,omitempty" xmlrpc:"statisticsRemoteManagement,omitempty"` + + // A count of a list of users that have access to this computing instance. + UserCount *uint `json:"userCount,omitempty" xmlrpc:"userCount,omitempty"` + + // A list of users that have access to this computing instance. + Users []User_Customer `json:"users,omitempty" xmlrpc:"users,omitempty"` + + // A count of a hardware server's virtual servers. + VirtualGuestCount *uint `json:"virtualGuestCount,omitempty" xmlrpc:"virtualGuestCount,omitempty"` + + // A hardware server's virtual servers. + VirtualGuests []Virtual_Guest `json:"virtualGuests,omitempty" xmlrpc:"virtualGuests,omitempty"` +} + +// SoftLayer_Hardware_Status models the inventory state of any piece of hardware in SoftLayer's inventory. Most of these statuses are used by SoftLayer while a server is not provisioned or undergoing provisioning. SoftLayer uses the following status codes: +// +// +// *'''ACTIVE''': This server is active and in use. +// *'''DEPLOY''': Used during server provisioning. +// *'''DEPLOY2''': Used during server provisioning. +// *'''MACWAIT''': Used during server provisioning. +// *'''RECLAIM''': This server has been reclaimed by SoftLayer and is awaiting de-provisioning. +// +// +// Servers in production and in use should stay in the ACTIVE state. If a server's status ever reads anything else then please contact SoftLayer support. +type Hardware_Status struct { + Entity + + // A hardware status' internal identifier. + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // A hardware's status code. See the SoftLayer_Hardware_Status Overview for ''status''' possible values. + Status *string `json:"status,omitempty" xmlrpc:"status,omitempty"` +} + +// The SoftLayer_Hardware_Switch object extends the base functionality of the SoftLayer_Hardware service. +type Hardware_Switch struct { + Hardware +} diff --git a/vendor/github.com/softlayer/softlayer-go/datatypes/layout.go b/vendor/github.com/softlayer/softlayer-go/datatypes/layout.go new file mode 100644 index 000000000..880585bfc --- /dev/null +++ b/vendor/github.com/softlayer/softlayer-go/datatypes/layout.go @@ -0,0 +1,245 @@ +/** + * Copyright 2016 IBM Corp. + * + * 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. + */ + +/** + * AUTOMATICALLY GENERATED CODE - DO NOT MODIFY + */ + +package datatypes + +// The SoftLayer_Layout_Container contains definitions for default page layouts +type Layout_Container struct { + Entity + + // The internal identifier of a layout container + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // The unique key name of the layout container, used primarily for programmatic purposes + Keyname *string `json:"keyname,omitempty" xmlrpc:"keyname,omitempty"` + + // The type of the layout container object + LayoutContainerType *Layout_Container_Type `json:"layoutContainerType,omitempty" xmlrpc:"layoutContainerType,omitempty"` + + // The internal identifier of the related [[SoftLayer_Layout_Container_Type]] + LayoutContainerTypeId *int `json:"layoutContainerTypeId,omitempty" xmlrpc:"layoutContainerTypeId,omitempty"` + + // A count of the layout items assigned to this layout container + LayoutItemCount *uint `json:"layoutItemCount,omitempty" xmlrpc:"layoutItemCount,omitempty"` + + // The layout items assigned to this layout container + LayoutItems []Layout_Item `json:"layoutItems,omitempty" xmlrpc:"layoutItems,omitempty"` + + // The friendly name of the layout container + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` +} + +// The SoftLayer_Layout_Container_Type contains definitions for container types +type Layout_Container_Type struct { + Entity + + // The internal identifier of the container type + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // The unique key name of the container type, used primarily for programmatic purposes + Keyname *string `json:"keyname,omitempty" xmlrpc:"keyname,omitempty"` + + // The friendly name of the container type + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` +} + +// The SoftLayer_Layout_Item contains definitions for default layout items +type Layout_Item struct { + Entity + + // The internal identifier of a layout item + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // The unique key name of the layout item, used primarily for programmatic purposes + Keyname *string `json:"keyname,omitempty" xmlrpc:"keyname,omitempty"` + + // A count of the layout preferences assigned to this layout item + LayoutItemPreferenceCount *uint `json:"layoutItemPreferenceCount,omitempty" xmlrpc:"layoutItemPreferenceCount,omitempty"` + + // The layout preferences assigned to this layout item + LayoutItemPreferences []Layout_Preference `json:"layoutItemPreferences,omitempty" xmlrpc:"layoutItemPreferences,omitempty"` + + // The type of the layout item object + LayoutItemType *Layout_Item_Type `json:"layoutItemType,omitempty" xmlrpc:"layoutItemType,omitempty"` + + // The internal identifier of the related [[SoftLayer_Layout_Item_Type]] + LayoutItemTypeId *int `json:"layoutItemTypeId,omitempty" xmlrpc:"layoutItemTypeId,omitempty"` + + // The friendly name of the layout item + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` +} + +// The SoftLayer_Layout_Item_Type contains definitions for item types +type Layout_Item_Type struct { + Entity + + // The internal identifier of the item type + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // The unique key name of the item type, used primarily for programmatic purposes + Keyname *string `json:"keyname,omitempty" xmlrpc:"keyname,omitempty"` + + // The friendly name of the item type + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` +} + +// The SoftLayer_Layout_Preference contains definitions for default layout item preferences +type Layout_Preference struct { + Entity + + // The internal identifier of a layout preference + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // The type of the preference object + LayoutPreferenceType *Layout_Preference_Type `json:"layoutPreferenceType,omitempty" xmlrpc:"layoutPreferenceType,omitempty"` + + // The internal identifier of the related [[SoftLayer_Layout_Preference_Type]] + LayoutPreferenceTypeId *int `json:"layoutPreferenceTypeId,omitempty" xmlrpc:"layoutPreferenceTypeId,omitempty"` + + // The default value of the preference + Value *string `json:"value,omitempty" xmlrpc:"value,omitempty"` +} + +// The SoftLayer_Layout_Preference_Type contains definitions for preference types +type Layout_Preference_Type struct { + Entity + + // The internal identifier of the item type + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // The unique key name of the item type, used primarily for programmatic purposes + Keyname *string `json:"keyname,omitempty" xmlrpc:"keyname,omitempty"` + + // The friendly name of the item type + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` + + // A regular expression used to validate the related [[SoftLayer_Layout_Preference]] + ValueExpression *string `json:"valueExpression,omitempty" xmlrpc:"valueExpression,omitempty"` +} + +// The SoftLayer_Layout_Profile contains the definition of the layout profile +type Layout_Profile struct { + Entity + + // Active status of the layout profile + ActiveFlag *int `json:"activeFlag,omitempty" xmlrpc:"activeFlag,omitempty"` + + // Timestamp of when the layout profile was created + CreateDate *Time `json:"createDate,omitempty" xmlrpc:"createDate,omitempty"` + + // The internal identifier of a layout profile + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // A count of + LayoutContainerCount *uint `json:"layoutContainerCount,omitempty" xmlrpc:"layoutContainerCount,omitempty"` + + // no documentation yet + LayoutContainers []Layout_Container `json:"layoutContainers,omitempty" xmlrpc:"layoutContainers,omitempty"` + + // A count of + LayoutPreferenceCount *uint `json:"layoutPreferenceCount,omitempty" xmlrpc:"layoutPreferenceCount,omitempty"` + + // no documentation yet + LayoutPreferences []Layout_Profile_Preference `json:"layoutPreferences,omitempty" xmlrpc:"layoutPreferences,omitempty"` + + // Timestamp of when the layout profile was last updated + ModifyDate *Time `json:"modifyDate,omitempty" xmlrpc:"modifyDate,omitempty"` + + // The friendly name of the layout profile + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` + + // The [[SoftLayer_User_Customer]] owning this layout profile + UserRecordId *int `json:"userRecordId,omitempty" xmlrpc:"userRecordId,omitempty"` +} + +// no documentation yet +type Layout_Profile_Containers struct { + Entity + + // Timestamp of when the reference was created + CreateDate *Time `json:"createDate,omitempty" xmlrpc:"createDate,omitempty"` + + // The internal identifier of the container reference + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // The id of the referenced [[SoftLayer_Layout_Container]] + LayoutContainerId *int `json:"layoutContainerId,omitempty" xmlrpc:"layoutContainerId,omitempty"` + + // The container to be contained + LayoutContainerType *Layout_Container `json:"layoutContainerType,omitempty" xmlrpc:"layoutContainerType,omitempty"` + + // The profile containing this container + LayoutProfile *Layout_Profile `json:"layoutProfile,omitempty" xmlrpc:"layoutProfile,omitempty"` + + // The id of the referenced [[SoftLayer_Layout_Profile]] + LayoutProfileId *int `json:"layoutProfileId,omitempty" xmlrpc:"layoutProfileId,omitempty"` + + // Timestamp of when the reference was last updated + ModifyDate *Time `json:"modifyDate,omitempty" xmlrpc:"modifyDate,omitempty"` +} + +// no documentation yet +type Layout_Profile_Customer struct { + Layout_Profile + + // no documentation yet + UserRecord *User_Customer `json:"userRecord,omitempty" xmlrpc:"userRecord,omitempty"` +} + +// The SoftLayer_Layout_Profile_Preference contains definitions for layout preferences +type Layout_Profile_Preference struct { + Entity + + // Timestamp of when the preference was created + CreateDate *Time `json:"createDate,omitempty" xmlrpc:"createDate,omitempty"` + + // Indicates whether this is a default value or not + DefaultValueFlag *int `json:"defaultValueFlag,omitempty" xmlrpc:"defaultValueFlag,omitempty"` + + // no documentation yet + LayoutContainer *Layout_Container `json:"layoutContainer,omitempty" xmlrpc:"layoutContainer,omitempty"` + + // The id of the related [[SoftLayer_Layout_Container]] + LayoutContainerId *int `json:"layoutContainerId,omitempty" xmlrpc:"layoutContainerId,omitempty"` + + // no documentation yet + LayoutItem *Layout_Item `json:"layoutItem,omitempty" xmlrpc:"layoutItem,omitempty"` + + // The id of the related [[SoftLayer_Layout_Item]] + LayoutItemId *int `json:"layoutItemId,omitempty" xmlrpc:"layoutItemId,omitempty"` + + // no documentation yet + LayoutPreference *Layout_Preference `json:"layoutPreference,omitempty" xmlrpc:"layoutPreference,omitempty"` + + // The internal identifier of the overridden [[SoftLayer_Layout_Preference]] + LayoutPreferenceId *int `json:"layoutPreferenceId,omitempty" xmlrpc:"layoutPreferenceId,omitempty"` + + // no documentation yet + LayoutProfile *Layout_Profile `json:"layoutProfile,omitempty" xmlrpc:"layoutProfile,omitempty"` + + // The internal identifier of the related [[SoftLayer_Layout_Profile]] + LayoutProfileId *int `json:"layoutProfileId,omitempty" xmlrpc:"layoutProfileId,omitempty"` + + // Timestamp of when the preference was last updated + ModifyDate *Time `json:"modifyDate,omitempty" xmlrpc:"modifyDate,omitempty"` + + // The value overriding the default value + Value *string `json:"value,omitempty" xmlrpc:"value,omitempty"` +} diff --git a/vendor/github.com/softlayer/softlayer-go/datatypes/legal.go b/vendor/github.com/softlayer/softlayer-go/datatypes/legal.go new file mode 100644 index 000000000..f3bb064ba --- /dev/null +++ b/vendor/github.com/softlayer/softlayer-go/datatypes/legal.go @@ -0,0 +1,58 @@ +/** + * Copyright 2016 IBM Corp. + * + * 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. + */ + +/** + * AUTOMATICALLY GENERATED CODE - DO NOT MODIFY + */ + +package datatypes + +// no documentation yet +type Legal_RegulatedWorkload struct { + Entity + + // no documentation yet + Account *Account `json:"account,omitempty" xmlrpc:"account,omitempty"` + + // no documentation yet + AccountId *int `json:"accountId,omitempty" xmlrpc:"accountId,omitempty"` + + // no documentation yet + EnabledFlag *bool `json:"enabledFlag,omitempty" xmlrpc:"enabledFlag,omitempty"` + + // no documentation yet + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // no documentation yet + Type *Legal_RegulatedWorkload_Type `json:"type,omitempty" xmlrpc:"type,omitempty"` + + // no documentation yet + WorkloadTypeId *int `json:"workloadTypeId,omitempty" xmlrpc:"workloadTypeId,omitempty"` +} + +// no documentation yet +type Legal_RegulatedWorkload_Type struct { + Entity + + // no documentation yet + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // no documentation yet + KeyName *string `json:"keyName,omitempty" xmlrpc:"keyName,omitempty"` + + // no documentation yet + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` +} diff --git a/vendor/github.com/softlayer/softlayer-go/datatypes/locale.go b/vendor/github.com/softlayer/softlayer-go/datatypes/locale.go new file mode 100644 index 000000000..a7920bea0 --- /dev/null +++ b/vendor/github.com/softlayer/softlayer-go/datatypes/locale.go @@ -0,0 +1,95 @@ +/** + * Copyright 2016 IBM Corp. + * + * 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. + */ + +/** + * AUTOMATICALLY GENERATED CODE - DO NOT MODIFY + */ + +package datatypes + +// no documentation yet +type Locale struct { + Entity + + // no documentation yet + FriendlyName *string `json:"friendlyName,omitempty" xmlrpc:"friendlyName,omitempty"` + + // Internal identification number of a locale + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // no documentation yet + LanguageTag *string `json:"languageTag,omitempty" xmlrpc:"languageTag,omitempty"` + + // Locale name + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` +} + +// no documentation yet +type Locale_Country struct { + Entity + + // Binary flag denoting if this country is part of the European Union + IsEuropeanUnionFlag *int `json:"isEuropeanUnionFlag,omitempty" xmlrpc:"isEuropeanUnionFlag,omitempty"` + + // no documentation yet + LongName *string `json:"longName,omitempty" xmlrpc:"longName,omitempty"` + + // no documentation yet + PostalCodeFormat *string `json:"postalCodeFormat,omitempty" xmlrpc:"postalCodeFormat,omitempty"` + + // no documentation yet + PostalCodeRequiredFlag *int `json:"postalCodeRequiredFlag,omitempty" xmlrpc:"postalCodeRequiredFlag,omitempty"` + + // no documentation yet + ShortName *string `json:"shortName,omitempty" xmlrpc:"shortName,omitempty"` + + // A count of states that belong to this country. + StateCount *uint `json:"stateCount,omitempty" xmlrpc:"stateCount,omitempty"` + + // States that belong to this country. + States []Locale_StateProvince `json:"states,omitempty" xmlrpc:"states,omitempty"` +} + +// This object represents a state or province for a country. +type Locale_StateProvince struct { + Entity + + // no documentation yet + LongName *string `json:"longName,omitempty" xmlrpc:"longName,omitempty"` + + // no documentation yet + ShortName *string `json:"shortName,omitempty" xmlrpc:"shortName,omitempty"` +} + +// Each User is assigned a timezone allowing for a precise local timestamp. +type Locale_Timezone struct { + Entity + + // A timezone's identifying number. + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // A timezone's long name. For example, "(GMT-06:00) America/Dallas - CST". + LongName *string `json:"longName,omitempty" xmlrpc:"longName,omitempty"` + + // A timezone's name. For example, "America/Dallas". + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` + + // A timezone's offset based on the GMT standard. For example, Central Standard Time's offset is "-0600" from GMT=0000. + Offset *string `json:"offset,omitempty" xmlrpc:"offset,omitempty"` + + // A timezone's common abbreviation. For example, Central Standard Time's abbreviation is "CST". + ShortName *string `json:"shortName,omitempty" xmlrpc:"shortName,omitempty"` +} diff --git a/vendor/github.com/softlayer/softlayer-go/datatypes/location.go b/vendor/github.com/softlayer/softlayer-go/datatypes/location.go new file mode 100644 index 000000000..f0d1d865c --- /dev/null +++ b/vendor/github.com/softlayer/softlayer-go/datatypes/location.go @@ -0,0 +1,431 @@ +/** + * Copyright 2016 IBM Corp. + * + * 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. + */ + +/** + * AUTOMATICALLY GENERATED CODE - DO NOT MODIFY + */ + +package datatypes + +// Every piece of hardware and network connection owned by SoftLayer is tracked physically by location and stored in the SoftLayer_Location data type. SoftLayer locations exist in parent/child relationships, a convenient way to track equipment from it's city, datacenter, server room, rack, then slot. Network backbones are tied to datacenters only, not to a room, rack, or slot. +type Location struct { + Entity + + // A count of + BackboneDependentCount *uint `json:"backboneDependentCount,omitempty" xmlrpc:"backboneDependentCount,omitempty"` + + // no documentation yet + BackboneDependents []Network_Backbone_Location_Dependent `json:"backboneDependents,omitempty" xmlrpc:"backboneDependents,omitempty"` + + // A count of a location can be a member of 1 or more groups. This will show which groups to which a location belongs. + GroupCount *uint `json:"groupCount,omitempty" xmlrpc:"groupCount,omitempty"` + + // A location can be a member of 1 or more groups. This will show which groups to which a location belongs. + Groups []Location_Group `json:"groups,omitempty" xmlrpc:"groups,omitempty"` + + // A count of + HardwareFirewallCount *uint `json:"hardwareFirewallCount,omitempty" xmlrpc:"hardwareFirewallCount,omitempty"` + + // no documentation yet + HardwareFirewalls []Hardware `json:"hardwareFirewalls,omitempty" xmlrpc:"hardwareFirewalls,omitempty"` + + // The unique identifier of a specific location. + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // A location's physical address. + LocationAddress *Account_Address `json:"locationAddress,omitempty" xmlrpc:"locationAddress,omitempty"` + + // A location's Dedicated Rack member + LocationReservationMember *Location_Reservation_Rack_Member `json:"locationReservationMember,omitempty" xmlrpc:"locationReservationMember,omitempty"` + + // The current locations status. + LocationStatus *Location_Status `json:"locationStatus,omitempty" xmlrpc:"locationStatus,omitempty"` + + // A longer location description. + LongName *string `json:"longName,omitempty" xmlrpc:"longName,omitempty"` + + // A short location description. + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` + + // no documentation yet + NetworkConfigurationAttribute *Hardware_Attribute `json:"networkConfigurationAttribute,omitempty" xmlrpc:"networkConfigurationAttribute,omitempty"` + + // The total number of users online using SoftLayer's PPTP VPN service for a location. + OnlinePptpVpnUserCount *int `json:"onlinePptpVpnUserCount,omitempty" xmlrpc:"onlinePptpVpnUserCount,omitempty"` + + // The total number of users online using SoftLayer's SSL VPN service for a location. + OnlineSslVpnUserCount *int `json:"onlineSslVpnUserCount,omitempty" xmlrpc:"onlineSslVpnUserCount,omitempty"` + + // no documentation yet + PathString *string `json:"pathString,omitempty" xmlrpc:"pathString,omitempty"` + + // A count of a location can be a member of 1 or more Price Groups. This will show which groups to which a location belongs. + PriceGroupCount *uint `json:"priceGroupCount,omitempty" xmlrpc:"priceGroupCount,omitempty"` + + // A location can be a member of 1 or more Price Groups. This will show which groups to which a location belongs. + PriceGroups []Location_Group `json:"priceGroups,omitempty" xmlrpc:"priceGroups,omitempty"` + + // A count of a location can be a member of 1 or more regions. This will show which regions to which a location belongs. + RegionCount *uint `json:"regionCount,omitempty" xmlrpc:"regionCount,omitempty"` + + // A location can be a member of 1 or more regions. This will show which regions to which a location belongs. + Regions []Location_Region `json:"regions,omitempty" xmlrpc:"regions,omitempty"` + + // no documentation yet + StatusId *int `json:"statusId,omitempty" xmlrpc:"statusId,omitempty"` + + // no documentation yet + Timezone *Locale_Timezone `json:"timezone,omitempty" xmlrpc:"timezone,omitempty"` + + // A location can be a member of 1 Bandwidth Pooling Group. This will show which group to which a location belongs. + VdrGroup *Location_Group_Location_CrossReference `json:"vdrGroup,omitempty" xmlrpc:"vdrGroup,omitempty"` +} + +// SoftLayer_Location_Datacenter extends the [[SoftLayer_Location]] data type to include datacenter-specific properties. +type Location_Datacenter struct { + Location + + // A count of + ActiveItemPresaleEventCount *uint `json:"activeItemPresaleEventCount,omitempty" xmlrpc:"activeItemPresaleEventCount,omitempty"` + + // no documentation yet + ActiveItemPresaleEvents []Sales_Presale_Event `json:"activeItemPresaleEvents,omitempty" xmlrpc:"activeItemPresaleEvents,omitempty"` + + // A count of + ActivePresaleEventCount *uint `json:"activePresaleEventCount,omitempty" xmlrpc:"activePresaleEventCount,omitempty"` + + // no documentation yet + ActivePresaleEvents []Sales_Presale_Event `json:"activePresaleEvents,omitempty" xmlrpc:"activePresaleEvents,omitempty"` + + // A count of + BackendHardwareRouterCount *uint `json:"backendHardwareRouterCount,omitempty" xmlrpc:"backendHardwareRouterCount,omitempty"` + + // no documentation yet + BackendHardwareRouters []Hardware `json:"backendHardwareRouters,omitempty" xmlrpc:"backendHardwareRouters,omitempty"` + + // A count of subnets which are directly bound to one or more routers in a given datacenter, and currently allow routing. + BoundSubnetCount *uint `json:"boundSubnetCount,omitempty" xmlrpc:"boundSubnetCount,omitempty"` + + // Subnets which are directly bound to one or more routers in a given datacenter, and currently allow routing. + BoundSubnets []Network_Subnet `json:"boundSubnets,omitempty" xmlrpc:"boundSubnets,omitempty"` + + // A count of this references relationship between brands, locations and countries associated with a user's account that are ineligible when ordering products. For example, the India datacenter may not be available on this brand for customers that live in Great Britain. + BrandCountryRestrictionCount *uint `json:"brandCountryRestrictionCount,omitempty" xmlrpc:"brandCountryRestrictionCount,omitempty"` + + // This references relationship between brands, locations and countries associated with a user's account that are ineligible when ordering products. For example, the India datacenter may not be available on this brand for customers that live in Great Britain. + BrandCountryRestrictions []Brand_Restriction_Location_CustomerCountry `json:"brandCountryRestrictions,omitempty" xmlrpc:"brandCountryRestrictions,omitempty"` + + // A count of + FrontendHardwareRouterCount *uint `json:"frontendHardwareRouterCount,omitempty" xmlrpc:"frontendHardwareRouterCount,omitempty"` + + // no documentation yet + FrontendHardwareRouters []Hardware `json:"frontendHardwareRouters,omitempty" xmlrpc:"frontendHardwareRouters,omitempty"` + + // A count of + HardwareRouterCount *uint `json:"hardwareRouterCount,omitempty" xmlrpc:"hardwareRouterCount,omitempty"` + + // no documentation yet + HardwareRouters []Hardware `json:"hardwareRouters,omitempty" xmlrpc:"hardwareRouters,omitempty"` + + // A count of + PresaleEventCount *uint `json:"presaleEventCount,omitempty" xmlrpc:"presaleEventCount,omitempty"` + + // no documentation yet + PresaleEvents []Sales_Presale_Event `json:"presaleEvents,omitempty" xmlrpc:"presaleEvents,omitempty"` + + // The regional group this datacenter belongs to. + RegionalGroup *Location_Group_Regional `json:"regionalGroup,omitempty" xmlrpc:"regionalGroup,omitempty"` + + // no documentation yet + RegionalInternetRegistry *Network_Regional_Internet_Registry `json:"regionalInternetRegistry,omitempty" xmlrpc:"regionalInternetRegistry,omitempty"` + + // A count of retrieve all subnets that are eligible to be routed; those which the account has permission to associate with a vlan. + RoutableBoundSubnetCount *uint `json:"routableBoundSubnetCount,omitempty" xmlrpc:"routableBoundSubnetCount,omitempty"` + + // Retrieve all subnets that are eligible to be routed; those which the account has permission to associate with a vlan. + RoutableBoundSubnets []Network_Subnet `json:"routableBoundSubnets,omitempty" xmlrpc:"routableBoundSubnets,omitempty"` +} + +// no documentation yet +type Location_Group struct { + Entity + + // no documentation yet + Description *string `json:"description,omitempty" xmlrpc:"description,omitempty"` + + // no documentation yet + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // A count of the locations in a group. + LocationCount *uint `json:"locationCount,omitempty" xmlrpc:"locationCount,omitempty"` + + // The type for this location group. + LocationGroupType *Location_Group_Type `json:"locationGroupType,omitempty" xmlrpc:"locationGroupType,omitempty"` + + // no documentation yet + LocationGroupTypeId *int `json:"locationGroupTypeId,omitempty" xmlrpc:"locationGroupTypeId,omitempty"` + + // The locations in a group. + Locations []Location `json:"locations,omitempty" xmlrpc:"locations,omitempty"` + + // no documentation yet + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` + + // no documentation yet + SecurityLevelId *int `json:"securityLevelId,omitempty" xmlrpc:"securityLevelId,omitempty"` +} + +// no documentation yet +type Location_Group_Location_CrossReference struct { + Entity + + // no documentation yet + Location *Location `json:"location,omitempty" xmlrpc:"location,omitempty"` + + // no documentation yet + LocationGroup *Location_Group `json:"locationGroup,omitempty" xmlrpc:"locationGroup,omitempty"` + + // no documentation yet + LocationGroupId *int `json:"locationGroupId,omitempty" xmlrpc:"locationGroupId,omitempty"` + + // no documentation yet + LocationId *int `json:"locationId,omitempty" xmlrpc:"locationId,omitempty"` + + // If set, this is the priority of this cross reference record in the group. + Priority *int `json:"priority,omitempty" xmlrpc:"priority,omitempty"` +} + +// no documentation yet +type Location_Group_Pricing struct { + Location_Group + + // A count of the prices that this pricing location group limits. All of these prices will only be available in the locations defined by this pricing location group. + PriceCount *uint `json:"priceCount,omitempty" xmlrpc:"priceCount,omitempty"` + + // The prices that this pricing location group limits. All of these prices will only be available in the locations defined by this pricing location group. + Prices []Product_Item_Price `json:"prices,omitempty" xmlrpc:"prices,omitempty"` +} + +// no documentation yet +type Location_Group_Regional struct { + Location_Group + + // A count of the datacenters in a group. + DatacenterCount *uint `json:"datacenterCount,omitempty" xmlrpc:"datacenterCount,omitempty"` + + // The datacenters in a group. + Datacenters []Location `json:"datacenters,omitempty" xmlrpc:"datacenters,omitempty"` + + // The preferred datacenters of a group. + PreferredDatacenter *Location_Datacenter `json:"preferredDatacenter,omitempty" xmlrpc:"preferredDatacenter,omitempty"` +} + +// no documentation yet +type Location_Group_Type struct { + Entity + + // no documentation yet + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` +} + +// SoftLayer_Location_Inventory_Room extends the [[SoftLayer_Location]] data type to include inventory room-specific properties. +type Location_Inventory_Room struct { + Location +} + +// SoftLayer_Location_Network_Operations_Center extends the [[SoftLayer_Location]] data type to include network operation center-specific properties. +type Location_Network_Operations_Center struct { + Location +} + +// SoftLayer_Location_Office extends the [[SoftLayer_Location]] data type to include office-specific properties. +type Location_Office struct { + Location +} + +// SoftLayer_Location_Rack extends the [[SoftLayer_Location]] data type to include rack-specific properties. +type Location_Rack struct { + Location +} + +// A region is made up of a keyname and a description of that region. A region keyname can be used as part of an order. Check the SoftLayer_Product_Order service for more details. +type Location_Region struct { + Entity + + // A short description of a region's name. This description is seen on the order forms. + Description *string `json:"description,omitempty" xmlrpc:"description,omitempty"` + + // A unique key name for a region. Provided for easy debugging. This is to be sent in with an order. + Keyname *string `json:"keyname,omitempty" xmlrpc:"keyname,omitempty"` + + // Each region can have many datacenter locations tied to it. However, this is the location we currently provision to for a region. This location is the current valid location for a region. + Location *Location_Region_Location `json:"location,omitempty" xmlrpc:"location,omitempty"` + + // An integer representing the order in which this element is displayed. + SortOrder *int `json:"sortOrder,omitempty" xmlrpc:"sortOrder,omitempty"` +} + +// The SoftLayer_Location_Region_Location is very specific to the location where services will actually be provisioned. When accessed through a package, this location is the top priority location for a region. All new servers and services are provisioned at this location. When a server is ordered and a region is selected, this is the location within that region where the server will actually exist and have software/services installed. +type Location_Region_Location struct { + Entity + + // The SoftLayer_Location tied to a region's location. This provides more information about the location, including specific datacenter information. + Location *Location `json:"location,omitempty" xmlrpc:"location,omitempty"` + + // A count of a region's location also has delivery information as well as other information to be determined. For now, availability is provided and could weigh into the decision as to where to decide to have a server provisioned.' + LocationPackageDetailCount *uint `json:"locationPackageDetailCount,omitempty" xmlrpc:"locationPackageDetailCount,omitempty"` + + // A region's location also has delivery information as well as other information to be determined. For now, availability is provided and could weigh into the decision as to where to decide to have a server provisioned.' + LocationPackageDetails []Product_Package_Locations `json:"locationPackageDetails,omitempty" xmlrpc:"locationPackageDetails,omitempty"` + + // The region to which this location belongs. + Region *Location_Region `json:"region,omitempty" xmlrpc:"region,omitempty"` +} + +// no documentation yet +type Location_Reservation struct { + Entity + + // The account that a billing item belongs to. + Account *Account `json:"account,omitempty" xmlrpc:"account,omitempty"` + + // The bandwidth allotment that the reservation belongs to. + Allotment *Network_Bandwidth_Version1_Allotment `json:"allotment,omitempty" xmlrpc:"allotment,omitempty"` + + // no documentation yet + AllotmentId *int `json:"allotmentId,omitempty" xmlrpc:"allotmentId,omitempty"` + + // The bandwidth allotment that the reservation belongs to. + BillingItem *Billing_Item `json:"billingItem,omitempty" xmlrpc:"billingItem,omitempty"` + + // no documentation yet + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // The datacenter location that the reservation belongs to. + Location *Location `json:"location,omitempty" xmlrpc:"location,omitempty"` + + // no documentation yet + LocationId *int `json:"locationId,omitempty" xmlrpc:"locationId,omitempty"` + + // Rack information for the reservation + LocationReservationRack *Location_Reservation_Rack `json:"locationReservationRack,omitempty" xmlrpc:"locationReservationRack,omitempty"` + + // no documentation yet + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` + + // no documentation yet + Notes *string `json:"notes,omitempty" xmlrpc:"notes,omitempty"` +} + +// no documentation yet +type Location_Reservation_Rack struct { + Entity + + // The bandwidth allotment that the reservation belongs to. + Allotment *Network_Bandwidth_Version1_Allotment `json:"allotment,omitempty" xmlrpc:"allotment,omitempty"` + + // Members of the rack. + Children []Location_Reservation_Rack_Member `json:"children,omitempty" xmlrpc:"children,omitempty"` + + // A count of members of the rack. + ChildrenCount *uint `json:"childrenCount,omitempty" xmlrpc:"childrenCount,omitempty"` + + // no documentation yet + Location *Location `json:"location,omitempty" xmlrpc:"location,omitempty"` + + // no documentation yet + LocationId *int `json:"locationId,omitempty" xmlrpc:"locationId,omitempty"` + + // no documentation yet + LocationReservation *Location_Reservation `json:"locationReservation,omitempty" xmlrpc:"locationReservation,omitempty"` + + // no documentation yet + LocationReservationId *int `json:"locationReservationId,omitempty" xmlrpc:"locationReservationId,omitempty"` + + // no documentation yet + NetworkConnectionCapacity *int `json:"networkConnectionCapacity,omitempty" xmlrpc:"networkConnectionCapacity,omitempty"` + + // no documentation yet + NetworkConnectionReservation *int `json:"networkConnectionReservation,omitempty" xmlrpc:"networkConnectionReservation,omitempty"` + + // no documentation yet + PowerConnectionCapacity *int `json:"powerConnectionCapacity,omitempty" xmlrpc:"powerConnectionCapacity,omitempty"` + + // no documentation yet + PowerConnectionReservation *int `json:"powerConnectionReservation,omitempty" xmlrpc:"powerConnectionReservation,omitempty"` + + // no documentation yet + SlotCapacity *int `json:"slotCapacity,omitempty" xmlrpc:"slotCapacity,omitempty"` + + // no documentation yet + SlotReservation *int `json:"slotReservation,omitempty" xmlrpc:"slotReservation,omitempty"` +} + +// no documentation yet +type Location_Reservation_Rack_Member struct { + Entity + + // no documentation yet + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // Location relation for the rack member + Location *Location `json:"location,omitempty" xmlrpc:"location,omitempty"` + + // no documentation yet + LocationId *int `json:"locationId,omitempty" xmlrpc:"locationId,omitempty"` + + // no documentation yet + LocationReservationRack *Location_Reservation `json:"locationReservationRack,omitempty" xmlrpc:"locationReservationRack,omitempty"` +} + +// SoftLayer_Location_Root extends the [[SoftLayer_Location]] data type to include root-specific properties. +type Location_Root struct { + Location +} + +// SoftLayer_Location_Server_Room extends the [[SoftLayer_Location]] data type to include server room-specific properties. +type Location_Server_Room struct { + Location +} + +// SoftLayer_Location_Slot extends the [[SoftLayer_Location]] data type to include slot-specific properties. +type Location_Slot struct { + Location +} + +// SoftLayer_Location_Status models the state of any location. SoftLayer uses the following status codes: +// +// +// *'''ACTIVE''': The location is currently active and available for public usage. +// *'''PLANNED''': Used when a location is planned but not yet active. +// *'''RETIRED''': Used when a location has been retired and no longer active. +// +// +// Locations in use should stay in the ACTIVE state. If a locations status ever reads anything else and contains active hardware then please contact SoftLayer support. +type Location_Status struct { + Entity + + // A locations status's internal identifier. + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // A Location's status code. See the SoftLayer_Locaiton_Status Overview for ''status''' possible values. + Status *string `json:"status,omitempty" xmlrpc:"status,omitempty"` +} + +// SoftLayer_Location_Storage_Room extends the [[SoftLayer_Location]] data type to include storage room-specific properties. +type Location_Storage_Room struct { + Location +} diff --git a/vendor/github.com/softlayer/softlayer-go/datatypes/marketplace.go b/vendor/github.com/softlayer/softlayer-go/datatypes/marketplace.go new file mode 100644 index 000000000..9e5b5a1c3 --- /dev/null +++ b/vendor/github.com/softlayer/softlayer-go/datatypes/marketplace.go @@ -0,0 +1,195 @@ +/** + * Copyright 2016 IBM Corp. + * + * 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. + */ + +/** + * AUTOMATICALLY GENERATED CODE - DO NOT MODIFY + */ + +package datatypes + +// no documentation yet +type Marketplace_EmailDistribution struct { + Entity + + // no documentation yet + Email *string `json:"email,omitempty" xmlrpc:"email,omitempty"` + + // no documentation yet + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` +} + +// no documentation yet +type Marketplace_Partner struct { + Entity + + // no documentation yet + AccountId *int `json:"accountId,omitempty" xmlrpc:"accountId,omitempty"` + + // no documentation yet + AttachedFiles []Marketplace_Partner_Attachment `json:"attachedFiles,omitempty" xmlrpc:"attachedFiles,omitempty"` + + // A count of + AttachmentCount *uint `json:"attachmentCount,omitempty" xmlrpc:"attachmentCount,omitempty"` + + // no documentation yet + Attachments []Marketplace_Partner_Attachment `json:"attachments,omitempty" xmlrpc:"attachments,omitempty"` + + // no documentation yet + CompanyDescription *string `json:"companyDescription,omitempty" xmlrpc:"companyDescription,omitempty"` + + // no documentation yet + CompanyName *string `json:"companyName,omitempty" xmlrpc:"companyName,omitempty"` + + // no documentation yet + HeadlineDescription *string `json:"headlineDescription,omitempty" xmlrpc:"headlineDescription,omitempty"` + + // no documentation yet + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // no documentation yet + LinkFreeTrial *string `json:"linkFreeTrial,omitempty" xmlrpc:"linkFreeTrial,omitempty"` + + // no documentation yet + LinkOrderPage *string `json:"linkOrderPage,omitempty" xmlrpc:"linkOrderPage,omitempty"` + + // no documentation yet + LinkWebsite *string `json:"linkWebsite,omitempty" xmlrpc:"linkWebsite,omitempty"` + + // no documentation yet + LogoMedium *Marketplace_Partner_Attachment `json:"logoMedium,omitempty" xmlrpc:"logoMedium,omitempty"` + + // no documentation yet + LogoMediumTemp *Marketplace_Partner_Attachment `json:"logoMediumTemp,omitempty" xmlrpc:"logoMediumTemp,omitempty"` + + // no documentation yet + LogoSmall *Marketplace_Partner_Attachment `json:"logoSmall,omitempty" xmlrpc:"logoSmall,omitempty"` + + // no documentation yet + LogoSmallTemp *Marketplace_Partner_Attachment `json:"logoSmallTemp,omitempty" xmlrpc:"logoSmallTemp,omitempty"` + + // no documentation yet + MetaDescription *string `json:"metaDescription,omitempty" xmlrpc:"metaDescription,omitempty"` + + // no documentation yet + MetaKeywords *string `json:"metaKeywords,omitempty" xmlrpc:"metaKeywords,omitempty"` + + // no documentation yet + ProductBenefits *string `json:"productBenefits,omitempty" xmlrpc:"productBenefits,omitempty"` + + // no documentation yet + ProductCategoryId *int `json:"productCategoryId,omitempty" xmlrpc:"productCategoryId,omitempty"` + + // no documentation yet + ProductDescriptionLong *string `json:"productDescriptionLong,omitempty" xmlrpc:"productDescriptionLong,omitempty"` + + // no documentation yet + ProductDescriptionShort *string `json:"productDescriptionShort,omitempty" xmlrpc:"productDescriptionShort,omitempty"` + + // no documentation yet + ProductFeatures *string `json:"productFeatures,omitempty" xmlrpc:"productFeatures,omitempty"` + + // no documentation yet + ProductName *string `json:"productName,omitempty" xmlrpc:"productName,omitempty"` + + // no documentation yet + ProductTitle *string `json:"productTitle,omitempty" xmlrpc:"productTitle,omitempty"` + + // no documentation yet + UrlIdentifier *string `json:"urlIdentifier,omitempty" xmlrpc:"urlIdentifier,omitempty"` +} + +// no documentation yet +type Marketplace_Partner_Attachment struct { + Entity + + // no documentation yet + AttachmentType *Marketplace_Partner_Attachment_Type `json:"attachmentType,omitempty" xmlrpc:"attachmentType,omitempty"` + + // no documentation yet + AttachmentTypeId *int `json:"attachmentTypeId,omitempty" xmlrpc:"attachmentTypeId,omitempty"` + + // no documentation yet + BaseName *string `json:"baseName,omitempty" xmlrpc:"baseName,omitempty"` + + // no documentation yet + DisplayName *string `json:"displayName,omitempty" xmlrpc:"displayName,omitempty"` + + // no documentation yet + FileName *string `json:"fileName,omitempty" xmlrpc:"fileName,omitempty"` + + // no documentation yet + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // no documentation yet + MarketplacePartnerId *int `json:"marketplacePartnerId,omitempty" xmlrpc:"marketplacePartnerId,omitempty"` + + // no documentation yet + SaveAsName *string `json:"saveAsName,omitempty" xmlrpc:"saveAsName,omitempty"` +} + +// no documentation yet +type Marketplace_Partner_Attachment_Type struct { + Entity + + // no documentation yet + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // no documentation yet + KeyName *string `json:"keyName,omitempty" xmlrpc:"keyName,omitempty"` + + // no documentation yet + Type *string `json:"type,omitempty" xmlrpc:"type,omitempty"` +} + +// no documentation yet +type Marketplace_Partner_File struct { + Entity + + // no documentation yet + Attributes *Marketplace_Partner_File_Attributes `json:"attributes,omitempty" xmlrpc:"attributes,omitempty"` + + // no documentation yet + Contents *[]byte `json:"contents,omitempty" xmlrpc:"contents,omitempty"` +} + +// no documentation yet +type Marketplace_Partner_File_Attributes struct { + Entity + + // no documentation yet + Bits *int `json:"bits,omitempty" xmlrpc:"bits,omitempty"` + + // no documentation yet + Channels *int `json:"channels,omitempty" xmlrpc:"channels,omitempty"` + + // no documentation yet + Height *int `json:"height,omitempty" xmlrpc:"height,omitempty"` + + // no documentation yet + HtmlAttributes *string `json:"htmlAttributes,omitempty" xmlrpc:"htmlAttributes,omitempty"` + + // no documentation yet + ImageType *int `json:"imageType,omitempty" xmlrpc:"imageType,omitempty"` + + // no documentation yet + IsImage *bool `json:"isImage,omitempty" xmlrpc:"isImage,omitempty"` + + // no documentation yet + MimeType *string `json:"mimeType,omitempty" xmlrpc:"mimeType,omitempty"` + + // no documentation yet + Width *int `json:"width,omitempty" xmlrpc:"width,omitempty"` +} diff --git a/vendor/github.com/softlayer/softlayer-go/datatypes/mcafee.go b/vendor/github.com/softlayer/softlayer-go/datatypes/mcafee.go new file mode 100644 index 000000000..dbb99d5c2 --- /dev/null +++ b/vendor/github.com/softlayer/softlayer-go/datatypes/mcafee.go @@ -0,0 +1,319 @@ +/** + * Copyright 2016 IBM Corp. + * + * 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. + */ + +/** + * AUTOMATICALLY GENERATED CODE - DO NOT MODIFY + */ + +package datatypes + +// The McAfee_Epolicy_Orchestrator_Version36_Agent_Details data type represents a virus scan agent and contains details about its version. +type McAfee_Epolicy_Orchestrator_Version36_Agent_Details struct { + Entity + + // Version number of the anti-virus scan agent. + AgentVersion *string `json:"agentVersion,omitempty" xmlrpc:"agentVersion,omitempty"` + + // The current anti-virus policy of an agent. + CurrentPolicy *McAfee_Epolicy_Orchestrator_Version36_Agent_Parent_Details `json:"currentPolicy,omitempty" xmlrpc:"currentPolicy,omitempty"` + + // The date of the last time the anti-virus agent checked in. + LastUpdate *string `json:"lastUpdate,omitempty" xmlrpc:"lastUpdate,omitempty"` +} + +// The McAfee_Epolicy_Orchestrator_Version36_Agent_Parent_Details data type contains the name of an anti-virus policy. +type McAfee_Epolicy_Orchestrator_Version36_Agent_Parent_Details struct { + Entity + + // The current anti-virus policy of an agent. + CurrentPolicy *McAfee_Epolicy_Orchestrator_Version36_Agent_Parent_Details `json:"currentPolicy,omitempty" xmlrpc:"currentPolicy,omitempty"` + + // The name of a policy. + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` +} + +// The McAfee_Epolicy_Orchestrator_Version36_Antivirus_Event data type represents a single anti-virus event. It contains details about the event such as the date the event occurred, the virus that is detected and the action that is taken. +type McAfee_Epolicy_Orchestrator_Version36_Antivirus_Event struct { + Entity + + // The date when an anti-virus event occurs. + EventLocalDateTime *Time `json:"eventLocalDateTime,omitempty" xmlrpc:"eventLocalDateTime,omitempty"` + + // Name of the file found to be infected. + Filename *string `json:"filename,omitempty" xmlrpc:"filename,omitempty"` + + // The action taken when a virus is detected. + VirusActionTaken *McAfee_Epolicy_Orchestrator_Version36_Antivirus_Event_Filter_Description `json:"virusActionTaken,omitempty" xmlrpc:"virusActionTaken,omitempty"` + + // The name of a virus that is found. + VirusName *string `json:"virusName,omitempty" xmlrpc:"virusName,omitempty"` + + // The type of virus that is found. + VirusType *string `json:"virusType,omitempty" xmlrpc:"virusType,omitempty"` +} + +// The McAfee_Epolicy_Orchestrator_Version36_Antivirus_Event_AccessProtection data type represents an access protection event. It contains details about the event such as when it occurs, the process that caused it, and the rule that triggered the event. +type McAfee_Epolicy_Orchestrator_Version36_Antivirus_Event_AccessProtection struct { + Entity + + // The date that an access protection event occurs. + EventLocalDateTime *Time `json:"eventLocalDateTime,omitempty" xmlrpc:"eventLocalDateTime,omitempty"` + + // The name of the file that was protected from access. + Filename *string `json:"filename,omitempty" xmlrpc:"filename,omitempty"` + + // The name of the process that was protected from access. + ProcessName *string `json:"processName,omitempty" xmlrpc:"processName,omitempty"` + + // The name of the rule that triggered an access protection event. + RuleName *string `json:"ruleName,omitempty" xmlrpc:"ruleName,omitempty"` + + // The IP address that caused an access protection event. + Source *string `json:"source,omitempty" xmlrpc:"source,omitempty"` +} + +// The McAfee_Epolicy_Orchestrator_Version36_Antivirus_Event_Filter_Description data type contains the name of the rule that was triggered by an anti-virus event. +type McAfee_Epolicy_Orchestrator_Version36_Antivirus_Event_Filter_Description struct { + Entity + + // The name of the rule that triggered an anti-virus event. + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` +} + +// The McAfee_Epolicy_Orchestrator_Version36_Hips_Version6_BlockedApplicationEvent data type contains a single blocked application event. The details of the event are the time the event occurred, the process that generated the event and a brief description of the application that was blocked. +type McAfee_Epolicy_Orchestrator_Version36_Hips_Version6_BlockedApplicationEvent struct { + Entity + + // A brief description of the application that is blocked. + ApplicationDescription *string `json:"applicationDescription,omitempty" xmlrpc:"applicationDescription,omitempty"` + + // The time that an application is blocked. + IncidentTime *Time `json:"incidentTime,omitempty" xmlrpc:"incidentTime,omitempty"` + + // The name of a process that is blocked. + ProcessName *string `json:"processName,omitempty" xmlrpc:"processName,omitempty"` +} + +// The McAfee_Epolicy_Orchestrator_Version36_Hips_Version6_Event_Signature data type contains the signature name of a rule that generated an IPS event. +type McAfee_Epolicy_Orchestrator_Version36_Hips_Version6_Event_Signature struct { + Entity + + // The name of a rule that triggered an IPS event. + SignatureName *string `json:"signatureName,omitempty" xmlrpc:"signatureName,omitempty"` +} + +// The McAfee_Epolicy_Orchestrator_Version36_Hips_Version6_IPSEvent data type represents a single IPS event. It contains details about the event such as the date the event occurred, the process that generated it, the severity of the event, and the action taken. +type McAfee_Epolicy_Orchestrator_Version36_Hips_Version6_IPSEvent struct { + Entity + + // The time when an IPS event occurred. + IncidentTime *Time `json:"incidentTime,omitempty" xmlrpc:"incidentTime,omitempty"` + + // Name of the process that generated an IPS event. + ProcessName *string `json:"processName,omitempty" xmlrpc:"processName,omitempty"` + + // The action taken because of an IPS event. + ReactionText *string `json:"reactionText,omitempty" xmlrpc:"reactionText,omitempty"` + + // The IP address that generated an IPS event. + RemoteIpAddress *string `json:"remoteIpAddress,omitempty" xmlrpc:"remoteIpAddress,omitempty"` + + // The severity level for an IPS event. + SeverityText *string `json:"severityText,omitempty" xmlrpc:"severityText,omitempty"` + + // The signature that generated an IPS event. + Signature *McAfee_Epolicy_Orchestrator_Version36_Hips_Version6_Event_Signature `json:"signature,omitempty" xmlrpc:"signature,omitempty"` +} + +// The McAfee_Epolicy_Orchestrator_Version36_Hips_Version7_BlockedApplicationEvent data type contains a single blocked application event. The details of the event are the time the event occurred, the process that generated the event and a brief description of the application that was blocked. +type McAfee_Epolicy_Orchestrator_Version36_Hips_Version7_BlockedApplicationEvent struct { + Entity + + // A brief description of the application that is blocked. + ApplicationDescription *string `json:"applicationDescription,omitempty" xmlrpc:"applicationDescription,omitempty"` + + // The time that an application is blocked. + IncidentTime *Time `json:"incidentTime,omitempty" xmlrpc:"incidentTime,omitempty"` + + // The name of a process that is blocked. + ProcessName *string `json:"processName,omitempty" xmlrpc:"processName,omitempty"` +} + +// The McAfee_Epolicy_Orchestrator_Version36_Hips_Version7_Event_Signature data type contains the signature name of a rule that generated an IPS event. +type McAfee_Epolicy_Orchestrator_Version36_Hips_Version7_Event_Signature struct { + Entity + + // The name of a rule that triggered an IPS event. + SignatureName *string `json:"signatureName,omitempty" xmlrpc:"signatureName,omitempty"` +} + +// The McAfee_Epolicy_Orchestrator_Version36_Hips_Version7_IPSEvent data type represents a single IPS event. It contains details about the event such as the date the event occurred, the process that generated it, the severity of the event, and the action taken. +type McAfee_Epolicy_Orchestrator_Version36_Hips_Version7_IPSEvent struct { + Entity + + // The time when an IPS event occurred. + IncidentTime *Time `json:"incidentTime,omitempty" xmlrpc:"incidentTime,omitempty"` + + // Name of the process that generated an IPS event. + ProcessName *string `json:"processName,omitempty" xmlrpc:"processName,omitempty"` + + // The action taken because of an IPS event. + ReactionText *string `json:"reactionText,omitempty" xmlrpc:"reactionText,omitempty"` + + // The IP address that generated an IPS event. + RemoteIpAddress *string `json:"remoteIpAddress,omitempty" xmlrpc:"remoteIpAddress,omitempty"` + + // The severity level for an IPS event. + SeverityText *string `json:"severityText,omitempty" xmlrpc:"severityText,omitempty"` + + // The signature that generated an IPS event. + Signature *McAfee_Epolicy_Orchestrator_Version36_Hips_Version7_Event_Signature `json:"signature,omitempty" xmlrpc:"signature,omitempty"` +} + +// The McAfee_Epolicy_Orchestrator_Version36_Policy_Object data type contains the name of a policy that may be assigned to a server. +type McAfee_Epolicy_Orchestrator_Version36_Policy_Object struct { + Entity + + // The name of a policy. + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` +} + +// The McAfee_Epolicy_Orchestrator_Version36_Product_Properties data type contains the virus definition file version. +type McAfee_Epolicy_Orchestrator_Version36_Product_Properties struct { + Entity + + // The virus definition file version. + DatVersion *string `json:"datVersion,omitempty" xmlrpc:"datVersion,omitempty"` +} + +// The McAfee_Epolicy_Orchestrator_Version45_Agent_Details data type represents a virus scan agent and contains details about its version. +type McAfee_Epolicy_Orchestrator_Version45_Agent_Details struct { + Entity + + // Version number of the anti-virus scan agent. + AgentVersion *string `json:"agentVersion,omitempty" xmlrpc:"agentVersion,omitempty"` + + // The date of the last time the anti-virus agent checked in. + LastUpdate *Time `json:"lastUpdate,omitempty" xmlrpc:"lastUpdate,omitempty"` +} + +// The McAfee_Epolicy_Orchestrator_Version45_Agent_Parent_Details data type contains the name of an anti-virus policy. +type McAfee_Epolicy_Orchestrator_Version45_Agent_Parent_Details struct { + Entity + + // Additional information about an agent. + AgentDetails *McAfee_Epolicy_Orchestrator_Version45_Agent_Details `json:"agentDetails,omitempty" xmlrpc:"agentDetails,omitempty"` + + // The name of a policy. + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` + + // The current anti-virus policy of an agent. + Policies []McAfee_Epolicy_Orchestrator_Version45_Agent_Parent_Details `json:"policies,omitempty" xmlrpc:"policies,omitempty"` + + // A count of the current anti-virus policy of an agent. + PolicyCount *uint `json:"policyCount,omitempty" xmlrpc:"policyCount,omitempty"` +} + +// The McAfee_Epolicy_Orchestrator_Version45_Event data type represents a single event. It contains details about the event such as the date the event occurred, the virus or intrusion that is detected and the action that is taken. +type McAfee_Epolicy_Orchestrator_Version45_Event struct { + Entity + + // Additional information about an agent. + AgentDetails *McAfee_Epolicy_Orchestrator_Version45_Agent_Details `json:"agentDetails,omitempty" xmlrpc:"agentDetails,omitempty"` + + // The time that an event was detected. + DetectedUtc *Time `json:"detectedUtc,omitempty" xmlrpc:"detectedUtc,omitempty"` + + // The IP address of the source that generated an event. + SourceIpv4 *string `json:"sourceIpv4,omitempty" xmlrpc:"sourceIpv4,omitempty"` + + // The name of the process that generated an event. + SourceProcessName *string `json:"sourceProcessName,omitempty" xmlrpc:"sourceProcessName,omitempty"` + + // The name of the file that was the target of the event. + TargetFilename *string `json:"targetFilename,omitempty" xmlrpc:"targetFilename,omitempty"` + + // The action taken regarding a threat. + ThreatActionTaken *string `json:"threatActionTaken,omitempty" xmlrpc:"threatActionTaken,omitempty"` + + // The name of the threat. + ThreatName *string `json:"threatName,omitempty" xmlrpc:"threatName,omitempty"` + + // The textual representation of the severity level. + ThreatSeverityLabel *string `json:"threatSeverityLabel,omitempty" xmlrpc:"threatSeverityLabel,omitempty"` + + // The type of threat. + ThreatType *string `json:"threatType,omitempty" xmlrpc:"threatType,omitempty"` + + // The action taken when a virus is detected. + VirusActionTaken *McAfee_Epolicy_Orchestrator_Version45_Event_Filter_Description `json:"virusActionTaken,omitempty" xmlrpc:"virusActionTaken,omitempty"` +} + +// The McAfee_Epolicy_Orchestrator_Version45_Event_Filter_Description data type contains the name of the rule that was triggered by an event. +type McAfee_Epolicy_Orchestrator_Version45_Event_Filter_Description struct { + Entity + + // The name of the rule that triggered an event. + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` +} + +// The McAfee_Epolicy_Orchestrator_Version45_Event_Version7 data type represents a single event. It contains details about the event such as the date the event occurred, the virus or intrusion that is detected and the action that is taken. +type McAfee_Epolicy_Orchestrator_Version45_Event_Version7 struct { + McAfee_Epolicy_Orchestrator_Version45_Event + + // The signature information for an event. + Signature *McAfee_Epolicy_Orchestrator_Version45_Hips_Event_Signature_Version7 `json:"signature,omitempty" xmlrpc:"signature,omitempty"` +} + +// The McAfee_Epolicy_Orchestrator_Version45_Event_Version8 data type represents a single event. It contains details about the event such as the date the event occurred, the virus or intrusion that is detected and the action that is taken. +type McAfee_Epolicy_Orchestrator_Version45_Event_Version8 struct { + McAfee_Epolicy_Orchestrator_Version45_Event + + // The signature information for an event. + Signature *McAfee_Epolicy_Orchestrator_Version45_Hips_Event_Signature_Version8 `json:"signature,omitempty" xmlrpc:"signature,omitempty"` +} + +// The McAfee_Epolicy_Orchestrator_Version45_Hips_Event_Signature_Version7 data type contains the signature name of a rule that generated an IPS event. +type McAfee_Epolicy_Orchestrator_Version45_Hips_Event_Signature_Version7 struct { + Entity + + // The name of a rule that triggered an IPS event. + SignatureName *string `json:"signatureName,omitempty" xmlrpc:"signatureName,omitempty"` +} + +// The McAfee_Epolicy_Orchestrator_Version45_Hips_Event_Signature_Version8 data type contains the signature name of a rule that generated an IPS event. +type McAfee_Epolicy_Orchestrator_Version45_Hips_Event_Signature_Version8 struct { + Entity + + // The name of a rule that triggered an IPS event. + SignatureName *string `json:"signatureName,omitempty" xmlrpc:"signatureName,omitempty"` +} + +// The McAfee_Epolicy_Orchestrator_Version45_Policy_Object data type contains the name of a policy that may be assigned to a server. +type McAfee_Epolicy_Orchestrator_Version45_Policy_Object struct { + Entity + + // The name of a policy. + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` +} + +// The McAfee_Epolicy_Orchestrator_Version45_Product_Properties data type contains the virus definition file version. +type McAfee_Epolicy_Orchestrator_Version45_Product_Properties struct { + Entity + + // The virus definition file version. + DatVersion *string `json:"datVersion,omitempty" xmlrpc:"datVersion,omitempty"` +} diff --git a/vendor/github.com/softlayer/softlayer-go/datatypes/metric.go b/vendor/github.com/softlayer/softlayer-go/datatypes/metric.go new file mode 100644 index 000000000..46cfef55a --- /dev/null +++ b/vendor/github.com/softlayer/softlayer-go/datatypes/metric.go @@ -0,0 +1,207 @@ +/** + * Copyright 2016 IBM Corp. + * + * 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. + */ + +/** + * AUTOMATICALLY GENERATED CODE - DO NOT MODIFY + */ + +package datatypes + +// Metric tracking objects provides a common interface to all metrics provided by SoftLayer. These metrics range from network component traffic for a server to aggregated Bandwidth Pooling traffic and more. Every object within SoftLayer's range of objects that has data that can be tracked over time has an associated tracking object. Use the [[SoftLayer_Metric_Tracking_Object]] service to retrieve raw and graph data from a tracking object. +type Metric_Tracking_Object struct { + Entity + + // The data recorded by a tracking object. + Data []Metric_Tracking_Object_Data `json:"data,omitempty" xmlrpc:"data,omitempty"` + + // A tracking object's internal identifier. + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // Tracking object label + Label *string `json:"label,omitempty" xmlrpc:"label,omitempty"` + + // The identifier of the existing resource this object is attempting to track. + ResourceTableId *int `json:"resourceTableId,omitempty" xmlrpc:"resourceTableId,omitempty"` + + // The date this tracker began tracking this particular resource. + StartDate *Time `json:"startDate,omitempty" xmlrpc:"startDate,omitempty"` + + // The type of data that a tracking object polls. + Type *Metric_Tracking_Object_Type `json:"type,omitempty" xmlrpc:"type,omitempty"` +} + +// SoftLayer_Metric_Tracking_Object_Abstract models a generic tracking object type. Typically a tracking object with a specific purpose has it's own data type defined within the SoftLayer API. +type Metric_Tracking_Object_Abstract struct { + Metric_Tracking_Object +} + +// This data type provides commonly used bandwidth summary components for the current billing cycle. +type Metric_Tracking_Object_Bandwidth_Summary struct { + Entity + + // This is the amount of bandwidth (measured in gigabytes) allocated for this tracking object. + AllocationAmount *Float64 `json:"allocationAmount,omitempty" xmlrpc:"allocationAmount,omitempty"` + + // no documentation yet + AllocationId *int `json:"allocationId,omitempty" xmlrpc:"allocationId,omitempty"` + + // The amount of outbound bandwidth (measured in gigabytes) currently used this billing period. Same as $outboundBandwidthAmount. Aliased for backward compatability. + AmountOut *Float64 `json:"amountOut,omitempty" xmlrpc:"amountOut,omitempty"` + + // The daily average amount of outbound bandwidth usage. + AverageDailyUsage *Float64 `json:"averageDailyUsage,omitempty" xmlrpc:"averageDailyUsage,omitempty"` + + // A flag that tells whether or not this tracking object's bandwidth usage is already over the allocation. 1 means yes, 0 means no. + CurrentlyOverAllocationFlag *int `json:"currentlyOverAllocationFlag,omitempty" xmlrpc:"currentlyOverAllocationFlag,omitempty"` + + // The metric tracking id for this resource. + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // The amount of outbound bandwidth (measured in gigabytes) currently used this billing period + OutboundBandwidthAmount *Float64 `json:"outboundBandwidthAmount,omitempty" xmlrpc:"outboundBandwidthAmount,omitempty"` + + // The amount of bandwidth (measured in gigabytes) of projected usage, using a basic average calculation of daily usage. + ProjectedBandwidthUsage *Float64 `json:"projectedBandwidthUsage,omitempty" xmlrpc:"projectedBandwidthUsage,omitempty"` + + // A flag that tells whether or not this tracking object's bandwidth usage is projected to go over the allocation, based on daily average usage. 1 means yes, 0 means no. + ProjectedOverAllocationFlag *int `json:"projectedOverAllocationFlag,omitempty" xmlrpc:"projectedOverAllocationFlag,omitempty"` +} + +// SoftLayer_Metric_Tracking_Object_Data models an individual unit of data tracked by a SoftLayer tracking object, including the type of data polled, the date it was polled at, and the counter value that was measured at polling time. +type Metric_Tracking_Object_Data struct { + Entity + + // The value stored for a data record. + Counter *Float64 `json:"counter,omitempty" xmlrpc:"counter,omitempty"` + + // The time a data record was stored. + DateTime *Time `json:"dateTime,omitempty" xmlrpc:"dateTime,omitempty"` + + // The type of data held in a record. + Type *string `json:"type,omitempty" xmlrpc:"type,omitempty"` +} + +// SoftLayer_Metric_Tracking_Object_Data_Network_ContentDelivery_Account models usage data polled from the CDN system. +type Metric_Tracking_Object_Data_Network_ContentDelivery_Account struct { + Metric_Tracking_Object_Data + + // The name of a file. This value is only populated in file-based bandwidth reports. + FileName *string `json:"fileName,omitempty" xmlrpc:"fileName,omitempty"` + + // The internal identifier of a CDN POP (Points of Presence). + PopId *int `json:"popId,omitempty" xmlrpc:"popId,omitempty"` +} + +// SoftLayer_Metric_Tracking_Object_HardwareServer models tracking objects specific to physical hardware and the data that are recorded by those servers. +type Metric_Tracking_Object_HardwareServer struct { + Metric_Tracking_Object_Abstract + + // The raw bandwidth usage data for the current billing cycle. One object is returned for each network this server is attached to. + BillingCycleBandwidthUsage []Network_Bandwidth_Usage `json:"billingCycleBandwidthUsage,omitempty" xmlrpc:"billingCycleBandwidthUsage,omitempty"` + + // A count of the raw bandwidth usage data for the current billing cycle. One object is returned for each network this server is attached to. + BillingCycleBandwidthUsageCount *uint `json:"billingCycleBandwidthUsageCount,omitempty" xmlrpc:"billingCycleBandwidthUsageCount,omitempty"` + + // The raw bandwidth usage data for the current billing cycle. One object is returned for each network this server is attached to. + BillingCyclePrivateBandwidthUsage []Network_Bandwidth_Usage `json:"billingCyclePrivateBandwidthUsage,omitempty" xmlrpc:"billingCyclePrivateBandwidthUsage,omitempty"` + + // A count of the raw bandwidth usage data for the current billing cycle. One object is returned for each network this server is attached to. + BillingCyclePrivateBandwidthUsageCount *uint `json:"billingCyclePrivateBandwidthUsageCount,omitempty" xmlrpc:"billingCyclePrivateBandwidthUsageCount,omitempty"` + + // The total private inbound bandwidth for this item's resource for the current billing cycle. + BillingCyclePrivateUsageIn *Float64 `json:"billingCyclePrivateUsageIn,omitempty" xmlrpc:"billingCyclePrivateUsageIn,omitempty"` + + // The total private outbound bandwidth for this item's resource for the current billing cycle. + BillingCyclePrivateUsageOut *Float64 `json:"billingCyclePrivateUsageOut,omitempty" xmlrpc:"billingCyclePrivateUsageOut,omitempty"` + + // The total private bandwidth for this item's resource for the current billing cycle. + BillingCyclePrivateUsageTotal *uint `json:"billingCyclePrivateUsageTotal,omitempty" xmlrpc:"billingCyclePrivateUsageTotal,omitempty"` + + // The raw bandwidth usage data for the current billing cycle. One object is returned for each network this server is attached to. + BillingCyclePublicBandwidthUsage *Network_Bandwidth_Usage `json:"billingCyclePublicBandwidthUsage,omitempty" xmlrpc:"billingCyclePublicBandwidthUsage,omitempty"` + + // The total public inbound bandwidth for this item's resource for the current billing cycle. + BillingCyclePublicUsageIn *Float64 `json:"billingCyclePublicUsageIn,omitempty" xmlrpc:"billingCyclePublicUsageIn,omitempty"` + + // The total public outbound bandwidth for this item's resource for the current billing cycle. + BillingCyclePublicUsageOut *Float64 `json:"billingCyclePublicUsageOut,omitempty" xmlrpc:"billingCyclePublicUsageOut,omitempty"` + + // The total public bandwidth for this item's resource for the current billing cycle. + BillingCyclePublicUsageTotal *uint `json:"billingCyclePublicUsageTotal,omitempty" xmlrpc:"billingCyclePublicUsageTotal,omitempty"` + + // The server that this tracking object tracks. + Resource *Hardware_Server `json:"resource,omitempty" xmlrpc:"resource,omitempty"` +} + +// SoftLayer [[SoftLayer_Metric_Tracking_Object|tracking objects]] can model various kinds of measured data, from server and virtual server bandwidth usage to CPU use to remote storage usage. SoftLayer_Metric_Tracking_Object_Type models one of these types and is referred to in tracking objects to reflect what type of data they track. +type Metric_Tracking_Object_Type struct { + Entity + + // Description A tracking object type's key name. This is a shorter description of what kind of data a tracking object group is polling. + Keyname *string `json:"keyname,omitempty" xmlrpc:"keyname,omitempty"` + + // Description A tracking object type's name. This describes what kind of data a tracking object group is polling. + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` +} + +// SoftLayer_Metric_Tracking_Object_VirtualDedicatedRack models tracking objects specific to virtual dedicated racks. Bandwidth Pooling aggregate the bandwidth used by multiple servers within the rack. +type Metric_Tracking_Object_VirtualDedicatedRack struct { + Metric_Tracking_Object_Abstract + + // The raw bandwidth usage data for the current billing cycle. One object is returned for each network this server is attached to. + BillingCycleBandwidthUsage []Network_Bandwidth_Usage `json:"billingCycleBandwidthUsage,omitempty" xmlrpc:"billingCycleBandwidthUsage,omitempty"` + + // A count of the raw bandwidth usage data for the current billing cycle. One object is returned for each network this server is attached to. + BillingCycleBandwidthUsageCount *uint `json:"billingCycleBandwidthUsageCount,omitempty" xmlrpc:"billingCycleBandwidthUsageCount,omitempty"` + + // The raw bandwidth usage data for the current billing cycle. One object is returned for each network this server is attached to. + BillingCyclePrivateBandwidthUsage []Network_Bandwidth_Usage `json:"billingCyclePrivateBandwidthUsage,omitempty" xmlrpc:"billingCyclePrivateBandwidthUsage,omitempty"` + + // A count of the raw bandwidth usage data for the current billing cycle. One object is returned for each network this server is attached to. + BillingCyclePrivateBandwidthUsageCount *uint `json:"billingCyclePrivateBandwidthUsageCount,omitempty" xmlrpc:"billingCyclePrivateBandwidthUsageCount,omitempty"` + + // The total private inbound bandwidth for this item's resource for the current billing cycle. + BillingCyclePrivateUsageIn *Float64 `json:"billingCyclePrivateUsageIn,omitempty" xmlrpc:"billingCyclePrivateUsageIn,omitempty"` + + // The total private outbound bandwidth for this item's resource for the current billing cycle. + BillingCyclePrivateUsageOut *Float64 `json:"billingCyclePrivateUsageOut,omitempty" xmlrpc:"billingCyclePrivateUsageOut,omitempty"` + + // The total private bandwidth for this item's resource for the current billing cycle. + BillingCyclePrivateUsageTotal *uint `json:"billingCyclePrivateUsageTotal,omitempty" xmlrpc:"billingCyclePrivateUsageTotal,omitempty"` + + // The raw bandwidth usage data for the current billing cycle. One object is returned for each network this server is attached to. + BillingCyclePublicBandwidthUsage *Network_Bandwidth_Usage `json:"billingCyclePublicBandwidthUsage,omitempty" xmlrpc:"billingCyclePublicBandwidthUsage,omitempty"` + + // The total public inbound bandwidth for this item's resource for the current billing cycle. + BillingCyclePublicUsageIn *Float64 `json:"billingCyclePublicUsageIn,omitempty" xmlrpc:"billingCyclePublicUsageIn,omitempty"` + + // The total public outbound bandwidth for this item's resource for the current billing cycle. + BillingCyclePublicUsageOut *Float64 `json:"billingCyclePublicUsageOut,omitempty" xmlrpc:"billingCyclePublicUsageOut,omitempty"` + + // The total public bandwidth for this item's resource for the current billing cycle. + BillingCyclePublicUsageTotal *uint `json:"billingCyclePublicUsageTotal,omitempty" xmlrpc:"billingCyclePublicUsageTotal,omitempty"` + + // The virtual rack that this tracking object tracks. + Resource *Network_Bandwidth_Version1_Allotment `json:"resource,omitempty" xmlrpc:"resource,omitempty"` +} + +// no documentation yet +type Metric_Tracking_Object_Virtual_Storage_Repository struct { + Metric_Tracking_Object_Abstract + + // The virtual storage repository that this tracking object tracks. + Resource *Virtual_Storage_Repository `json:"resource,omitempty" xmlrpc:"resource,omitempty"` +} diff --git a/vendor/github.com/softlayer/softlayer-go/datatypes/monitoring.go b/vendor/github.com/softlayer/softlayer-go/datatypes/monitoring.go new file mode 100644 index 000000000..174f63b05 --- /dev/null +++ b/vendor/github.com/softlayer/softlayer-go/datatypes/monitoring.go @@ -0,0 +1,248 @@ +/** + * Copyright 2016 IBM Corp. + * + * 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. + */ + +/** + * AUTOMATICALLY GENERATED CODE - DO NOT MODIFY + */ + +package datatypes + +// A monitoring agent object contains information describing the agent. +type Monitoring_Agent struct { + Entity + + // The current status of the corresponding agent + AgentStatus *Monitoring_Agent_Status `json:"agentStatus,omitempty" xmlrpc:"agentStatus,omitempty"` + + // A count of all custom configuration profiles associated with the corresponding agent + ConfigurationProfileCount *uint `json:"configurationProfileCount,omitempty" xmlrpc:"configurationProfileCount,omitempty"` + + // All custom configuration profiles associated with the corresponding agent + ConfigurationProfiles []Configuration_Template_Section_Profile `json:"configurationProfiles,omitempty" xmlrpc:"configurationProfiles,omitempty"` + + // A template of an agent's current configuration which contains information about the structure of the configuration values. + ConfigurationTemplate *Configuration_Template `json:"configurationTemplate,omitempty" xmlrpc:"configurationTemplate,omitempty"` + + // Internal identifier of a configuration template that is used to configure this agent + ConfigurationTemplateId *int `json:"configurationTemplateId,omitempty" xmlrpc:"configurationTemplateId,omitempty"` + + // A count of the values associated with the corresponding Agent configuration. + ConfigurationValueCount *uint `json:"configurationValueCount,omitempty" xmlrpc:"configurationValueCount,omitempty"` + + // The values associated with the corresponding Agent configuration. + ConfigurationValues []Monitoring_Agent_Configuration_Value `json:"configurationValues,omitempty" xmlrpc:"configurationValues,omitempty"` + + // Created date + CreateDate *Time `json:"createDate,omitempty" xmlrpc:"createDate,omitempty"` + + // SoftLayer hardware related to the agent. + Hardware *Hardware `json:"hardware,omitempty" xmlrpc:"hardware,omitempty"` + + // Internal identifier of a monitoring agent + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // Last modified date + ModifyDate *Time `json:"modifyDate,omitempty" xmlrpc:"modifyDate,omitempty"` + + // Monitoring agent name + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` + + // Contains general information relating to a single SoftLayer product. + ProductItem *Product_Item `json:"productItem,omitempty" xmlrpc:"productItem,omitempty"` + + // Indicates if this monitoring agent resides on your local box or on a SoftLayer monitoring cluster. + RemoteMonitoringAgentFlag *bool `json:"remoteMonitoringAgentFlag,omitempty" xmlrpc:"remoteMonitoringAgentFlag,omitempty"` + + // Internal identifier of a monitoring robot that this agent belongs to + RobotId *int `json:"robotId,omitempty" xmlrpc:"robotId,omitempty"` + + // A description for a specific installation of a Software Component + SoftwareDescription *Software_Description `json:"softwareDescription,omitempty" xmlrpc:"softwareDescription,omitempty"` + + // Internal identifier of a monitoring agent status + StatusId *int `json:"statusId,omitempty" xmlrpc:"statusId,omitempty"` + + // Monitoring agent status name. + StatusName *string `json:"statusName,omitempty" xmlrpc:"statusName,omitempty"` + + // Softlayer_Virtual_Guest object related to the monitoring agent, which this virtual guest object and hardware is on the server of the running agent. + VirtualGuest *Virtual_Guest `json:"virtualGuest,omitempty" xmlrpc:"virtualGuest,omitempty"` +} + +// The SoftLayer_Monitoring_Agent_Configuration_Template_Group class is consisted of configuration templates for agents in a monitoring package. +type Monitoring_Agent_Configuration_Template_Group struct { + Entity + + // no documentation yet + Account *Account `json:"account,omitempty" xmlrpc:"account,omitempty"` + + // Internal identifier of a SoftLayer account that this configuration template belongs to + AccountId *int `json:"accountId,omitempty" xmlrpc:"accountId,omitempty"` + + // A count of + ConfigurationTemplateCount *uint `json:"configurationTemplateCount,omitempty" xmlrpc:"configurationTemplateCount,omitempty"` + + // A count of + ConfigurationTemplateReferenceCount *uint `json:"configurationTemplateReferenceCount,omitempty" xmlrpc:"configurationTemplateReferenceCount,omitempty"` + + // no documentation yet + ConfigurationTemplateReferences []Monitoring_Agent_Configuration_Template_Group_Reference `json:"configurationTemplateReferences,omitempty" xmlrpc:"configurationTemplateReferences,omitempty"` + + // no documentation yet + ConfigurationTemplates []Configuration_Template `json:"configurationTemplates,omitempty" xmlrpc:"configurationTemplates,omitempty"` + + // Created date + CreateDate *Time `json:"createDate,omitempty" xmlrpc:"createDate,omitempty"` + + // Description of a monitoring agent configuration group + Description *string `json:"description,omitempty" xmlrpc:"description,omitempty"` + + // Internal identifier of a monitoring agent configuration group + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // no documentation yet + Item *Product_Item `json:"item,omitempty" xmlrpc:"item,omitempty"` + + // Internal identifier of a configuration template type + ItemId *int `json:"itemId,omitempty" xmlrpc:"itemId,omitempty"` + + // Last modified date + ModifyDate *Time `json:"modifyDate,omitempty" xmlrpc:"modifyDate,omitempty"` + + // Name of a monitoring agent configuration group + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` +} + +// SoftLayer_Monitoring_Agent_Configuration_Template_Group_Reference class holds the reference information, essentially a SQL join, between a monitoring configuration group and agent configuration templates. +type Monitoring_Agent_Configuration_Template_Group_Reference struct { + Entity + + // no documentation yet + ConfigurationTemplate *Configuration_Template `json:"configurationTemplate,omitempty" xmlrpc:"configurationTemplate,omitempty"` + + // Internal identifier of a configuration template + ConfigurationTemplateId *int `json:"configurationTemplateId,omitempty" xmlrpc:"configurationTemplateId,omitempty"` + + // Internal identifier of a configuration group reference record + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // no documentation yet + TemplateGroup *Monitoring_Agent_Configuration_Template_Group `json:"templateGroup,omitempty" xmlrpc:"templateGroup,omitempty"` + + // Internal identifier of a monitoring agent configuration group + TemplateGroupId *int `json:"templateGroupId,omitempty" xmlrpc:"templateGroupId,omitempty"` +} + +// Monitoring agent configuration value +type Monitoring_Agent_Configuration_Value struct { + Entity + + // Internal identifier of a monitoring Agent that this configuration value + AgentId *int `json:"agentId,omitempty" xmlrpc:"agentId,omitempty"` + + // Internal identifier of a monitoring configuration definition by which + ConfigurationDefinitionId *int `json:"configurationDefinitionId,omitempty" xmlrpc:"configurationDefinitionId,omitempty"` + + // no documentation yet + Definition *Configuration_Template_Section_Definition `json:"definition,omitempty" xmlrpc:"definition,omitempty"` + + // User-friendly description of a configuration value. + Description *string `json:"description,omitempty" xmlrpc:"description,omitempty"` + + // Internal identifier of a monitoring configuration value. + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // The metric data type used to retrieve metric data currently being tracked. + MetricDataType *Container_Metric_Data_Type `json:"metricDataType,omitempty" xmlrpc:"metricDataType,omitempty"` + + // no documentation yet + MonitoringAgent *Monitoring_Agent `json:"monitoringAgent,omitempty" xmlrpc:"monitoringAgent,omitempty"` + + // no documentation yet + Profile *Configuration_Template_Section_Profile `json:"profile,omitempty" xmlrpc:"profile,omitempty"` + + // Internal identifier of a configuration profile. Configuration profile is associated with a configuration section type of "Template section". + // + // A "Template section" defines skeleton configuration definitions. For instance, if you want to monitor additional hard disks with "CPU/Memory/Disk Monitoring Agent", you will have to add a new configuration profiles. + ProfileId *int `json:"profileId,omitempty" xmlrpc:"profileId,omitempty"` + + // Configuration value + Value *string `json:"value,omitempty" xmlrpc:"value,omitempty"` +} + +// Monitoring agent status +type Monitoring_Agent_Status struct { + Entity + + // Description of a monitoring agent status + Description *string `json:"description,omitempty" xmlrpc:"description,omitempty"` + + // Internal identifier of a monitoring agent status + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // Monitoring agent status name + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` +} + +// The SoftLayer_Monitoring_Robot data type contains general information relating to a monitoring robot. +type Monitoring_Robot struct { + Entity + + // The account associated with the corresponding robot. + Account *Account `json:"account,omitempty" xmlrpc:"account,omitempty"` + + // Internal identifier of a SoftLayer account that this robot belongs to + AccountId *int `json:"accountId,omitempty" xmlrpc:"accountId,omitempty"` + + // Internal identifier of a monitoring robot + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // A count of the program (monitoring agent) that gets details of a system or application and reporting of the metric data and triggers alarms for predefined events. + MonitoringAgentCount *uint `json:"monitoringAgentCount,omitempty" xmlrpc:"monitoringAgentCount,omitempty"` + + // The program (monitoring agent) that gets details of a system or application and reporting of the metric data and triggers alarms for predefined events. + MonitoringAgents []Monitoring_Agent `json:"monitoringAgents,omitempty" xmlrpc:"monitoringAgents,omitempty"` + + // Robot name + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` + + // The current status of the robot. + RobotStatus *Monitoring_Robot_Status `json:"robotStatus,omitempty" xmlrpc:"robotStatus,omitempty"` + + // The SoftLayer_Software_Component that corresponds to the robot installation on the server. + SoftwareComponent *Software_Component `json:"softwareComponent,omitempty" xmlrpc:"softwareComponent,omitempty"` + + // Internal identifier of a monitoring robot status + StatusId *int `json:"statusId,omitempty" xmlrpc:"statusId,omitempty"` +} + +// Your monitoring robot will be in "Active" status under normal circumstances. If you perform an OS reload, your robot will be in "Reclaim" status until it's reloaded on your server or virtual server. +// +// Advanced monitoring system requires "Nimsoft Monitoring (Advanced)" service running and TCP ports 48000 - 48020 to be open on your server or virtual server. Monitoring agents cannot be managed nor can the usage data be updated if these ports are closed. Your monitoring robot will be in "Limited Connectivity" status if our monitoring management system cannot communicate with your system. +// +// See [[SoftLayer_Monitoring_Robot::resetStatus|resetStatus]] service for more details. +type Monitoring_Robot_Status struct { + Entity + + // Monitoring robot status description + Description *string `json:"description,omitempty" xmlrpc:"description,omitempty"` + + // Internal identifier of a monitoring robot status + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // Monitoring robot status name + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` +} diff --git a/vendor/github.com/softlayer/softlayer-go/datatypes/network.go b/vendor/github.com/softlayer/softlayer-go/datatypes/network.go new file mode 100644 index 000000000..101542412 --- /dev/null +++ b/vendor/github.com/softlayer/softlayer-go/datatypes/network.go @@ -0,0 +1,5556 @@ +/** + * Copyright 2016 IBM Corp. + * + * 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. + */ + +/** + * AUTOMATICALLY GENERATED CODE - DO NOT MODIFY + */ + +package datatypes + +// no documentation yet +type Network struct { + Entity + + // The owning account identifier. + AccountId *int `json:"accountId,omitempty" xmlrpc:"accountId,omitempty"` + + // The size of the Network specified in CIDR notation. Specified in conjunction with the ``networkIdentifier`` to describe the bounding subnet size for the Network. Required for creation. See [[SoftLayer_Network/createObject]] documentation for creation details. + Cidr *int `json:"cidr,omitempty" xmlrpc:"cidr,omitempty"` + + // Unique identifier for the network. + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // A name for the Network. This is required during creation of a Network and is entirely user defined. + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` + + // The starting IP address of the Network. Specified in conjunction with the ``cidr`` property to specify the bounding IP address space for the Network. Required for creation. See [[SoftLayer_Network/createObject]] documentation for creation details. + NetworkIdentifier *string `json:"networkIdentifier,omitempty" xmlrpc:"networkIdentifier,omitempty"` + + // Notes, or a description of the Network. This is entirely user defined. + Notes *string `json:"notes,omitempty" xmlrpc:"notes,omitempty"` + + // A count of the Subnets within the Network. These represent the realized segments of the Network and reside within a [[SoftLayer_Network_Pod|Pod]]. A Subnet must be specified when provisioning a compute resource within a Network. + SubnetCount *uint `json:"subnetCount,omitempty" xmlrpc:"subnetCount,omitempty"` + + // The Subnets within the Network. These represent the realized segments of the Network and reside within a [[SoftLayer_Network_Pod|Pod]]. A Subnet must be specified when provisioning a compute resource within a Network. + Subnets []Network_Subnet `json:"subnets,omitempty" xmlrpc:"subnets,omitempty"` +} + +// The SoftLayer_Network_Application_Delivery_Controller data type models a single instance of an application delivery controller. Local properties are read only, except for a ''notes'' property, which can be used to describe your application delivery controller service. The type's relational properties provide more information to the service's function and login information to the controller's backend management if advanced view is enabled. +type Network_Application_Delivery_Controller struct { + Entity + + // The SoftLayer customer account that owns an application delivery controller record. + Account *Account `json:"account,omitempty" xmlrpc:"account,omitempty"` + + // The unique identifier of the SoftLayer customer account that owns an application delivery controller record + AccountId *int `json:"accountId,omitempty" xmlrpc:"accountId,omitempty"` + + // The average daily public bandwidth usage for the current billing cycle. + AverageDailyPublicBandwidthUsage *Float64 `json:"averageDailyPublicBandwidthUsage,omitempty" xmlrpc:"averageDailyPublicBandwidthUsage,omitempty"` + + // The billing item for a Application Delivery Controller. + BillingItem *Billing_Item_Network_Application_Delivery_Controller `json:"billingItem,omitempty" xmlrpc:"billingItem,omitempty"` + + // Previous configurations for an Application Delivery Controller. + ConfigurationHistory []Network_Application_Delivery_Controller_Configuration_History `json:"configurationHistory,omitempty" xmlrpc:"configurationHistory,omitempty"` + + // A count of previous configurations for an Application Delivery Controller. + ConfigurationHistoryCount *uint `json:"configurationHistoryCount,omitempty" xmlrpc:"configurationHistoryCount,omitempty"` + + // The date that an application delivery controller record was created + CreateDate *Time `json:"createDate,omitempty" xmlrpc:"createDate,omitempty"` + + // The datacenter that the application delivery controller resides in. + Datacenter *Location `json:"datacenter,omitempty" xmlrpc:"datacenter,omitempty"` + + // A brief description of an application delivery controller record. + Description *string `json:"description,omitempty" xmlrpc:"description,omitempty"` + + // An application delivery controller's unique identifier + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // The date in which the license for this application delivery controller will expire. + LicenseExpirationDate *Time `json:"licenseExpirationDate,omitempty" xmlrpc:"licenseExpirationDate,omitempty"` + + // A count of the virtual IP address records that belong to an application delivery controller based load balancer. + LoadBalancerCount *uint `json:"loadBalancerCount,omitempty" xmlrpc:"loadBalancerCount,omitempty"` + + // The virtual IP address records that belong to an application delivery controller based load balancer. + LoadBalancers []Network_LoadBalancer_VirtualIpAddress `json:"loadBalancers,omitempty" xmlrpc:"loadBalancers,omitempty"` + + // A flag indicating that this Application Delivery Controller is a managed resource. + ManagedResourceFlag *bool `json:"managedResourceFlag,omitempty" xmlrpc:"managedResourceFlag,omitempty"` + + // An application delivery controller's management ip address. + ManagementIpAddress *string `json:"managementIpAddress,omitempty" xmlrpc:"managementIpAddress,omitempty"` + + // The date that an application delivery controller record was last modified + ModifyDate *Time `json:"modifyDate,omitempty" xmlrpc:"modifyDate,omitempty"` + + // An application delivery controller's name + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` + + // The network VLAN that an application delivery controller resides on. + NetworkVlan *Network_Vlan `json:"networkVlan,omitempty" xmlrpc:"networkVlan,omitempty"` + + // A count of the network VLANs that an application delivery controller resides on. + NetworkVlanCount *uint `json:"networkVlanCount,omitempty" xmlrpc:"networkVlanCount,omitempty"` + + // The network VLANs that an application delivery controller resides on. + NetworkVlans []Network_Vlan `json:"networkVlans,omitempty" xmlrpc:"networkVlans,omitempty"` + + // Editable notes used to describe an application delivery controller's function + Notes *string `json:"notes,omitempty" xmlrpc:"notes,omitempty"` + + // The total public outbound bandwidth for the current billing cycle. + OutboundPublicBandwidthUsage *Float64 `json:"outboundPublicBandwidthUsage,omitempty" xmlrpc:"outboundPublicBandwidthUsage,omitempty"` + + // The password used to connect to an application delivery controller's management interface when it is operating in advanced view mode. + Password *Software_Component_Password `json:"password,omitempty" xmlrpc:"password,omitempty"` + + // An application delivery controller's primary public IP address. + PrimaryIpAddress *string `json:"primaryIpAddress,omitempty" xmlrpc:"primaryIpAddress,omitempty"` + + // The projected public outbound bandwidth for the current billing cycle. + ProjectedPublicBandwidthUsage *Float64 `json:"projectedPublicBandwidthUsage,omitempty" xmlrpc:"projectedPublicBandwidthUsage,omitempty"` + + // A count of a network application controller's subnets. A subnet is a group of IP addresses + SubnetCount *uint `json:"subnetCount,omitempty" xmlrpc:"subnetCount,omitempty"` + + // A network application controller's subnets. A subnet is a group of IP addresses + Subnets []Network_Subnet `json:"subnets,omitempty" xmlrpc:"subnets,omitempty"` + + // A count of + TagReferenceCount *uint `json:"tagReferenceCount,omitempty" xmlrpc:"tagReferenceCount,omitempty"` + + // no documentation yet + TagReferences []Tag_Reference `json:"tagReferences,omitempty" xmlrpc:"tagReferences,omitempty"` + + // no documentation yet + Type *Network_Application_Delivery_Controller_Type `json:"type,omitempty" xmlrpc:"type,omitempty"` + + // no documentation yet + TypeId *int `json:"typeId,omitempty" xmlrpc:"typeId,omitempty"` + + // A count of + VirtualIpAddressCount *uint `json:"virtualIpAddressCount,omitempty" xmlrpc:"virtualIpAddressCount,omitempty"` + + // no documentation yet + VirtualIpAddresses []Network_Application_Delivery_Controller_LoadBalancer_VirtualIpAddress `json:"virtualIpAddresses,omitempty" xmlrpc:"virtualIpAddresses,omitempty"` +} + +// The SoftLayer_Network_Application_Delivery_Controller_Configuration_History data type models a single instance of a configuration history entry for an application delivery controller. The configuration history entries are used to support creating backups of an application delivery controller's configuration state in order to restore them later if needed. +type Network_Application_Delivery_Controller_Configuration_History struct { + Entity + + // The application delivery controller that a configuration history record belongs to. + Controller *Network_Application_Delivery_Controller `json:"controller,omitempty" xmlrpc:"controller,omitempty"` + + // The date a configuration history record was created. + CreateDate *Time `json:"createDate,omitempty" xmlrpc:"createDate,omitempty"` + + // An configuration history record's unique identifier + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // Editable notes used to describe a configuration history record + Notes *string `json:"notes,omitempty" xmlrpc:"notes,omitempty"` +} + +// no documentation yet +type Network_Application_Delivery_Controller_LoadBalancer_Health_Attribute struct { + Entity + + // no documentation yet + HealthAttributeTypeId *int `json:"healthAttributeTypeId,omitempty" xmlrpc:"healthAttributeTypeId,omitempty"` + + // no documentation yet + HealthCheck *Network_Application_Delivery_Controller_LoadBalancer_Health_Check `json:"healthCheck,omitempty" xmlrpc:"healthCheck,omitempty"` + + // no documentation yet + HealthCheckId *int `json:"healthCheckId,omitempty" xmlrpc:"healthCheckId,omitempty"` + + // no documentation yet + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // no documentation yet + Type *Network_Application_Delivery_Controller_LoadBalancer_Health_Attribute_Type `json:"type,omitempty" xmlrpc:"type,omitempty"` + + // no documentation yet + Value *string `json:"value,omitempty" xmlrpc:"value,omitempty"` +} + +// no documentation yet +type Network_Application_Delivery_Controller_LoadBalancer_Health_Attribute_Type struct { + Entity + + // no documentation yet + Description *string `json:"description,omitempty" xmlrpc:"description,omitempty"` + + // no documentation yet + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // no documentation yet + Keyname *string `json:"keyname,omitempty" xmlrpc:"keyname,omitempty"` + + // no documentation yet + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` + + // no documentation yet + ValueExpression *string `json:"valueExpression,omitempty" xmlrpc:"valueExpression,omitempty"` +} + +// no documentation yet +type Network_Application_Delivery_Controller_LoadBalancer_Health_Check struct { + Entity + + // A count of + AttributeCount *uint `json:"attributeCount,omitempty" xmlrpc:"attributeCount,omitempty"` + + // no documentation yet + Attributes []Network_Application_Delivery_Controller_LoadBalancer_Health_Attribute `json:"attributes,omitempty" xmlrpc:"attributes,omitempty"` + + // no documentation yet + HealthCheckTypeId *int `json:"healthCheckTypeId,omitempty" xmlrpc:"healthCheckTypeId,omitempty"` + + // no documentation yet + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // no documentation yet + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` + + // no documentation yet + Notes *string `json:"notes,omitempty" xmlrpc:"notes,omitempty"` + + // A count of collection of scale load balancers that use this health check. + ScaleLoadBalancerCount *uint `json:"scaleLoadBalancerCount,omitempty" xmlrpc:"scaleLoadBalancerCount,omitempty"` + + // Collection of scale load balancers that use this health check. + ScaleLoadBalancers []Scale_LoadBalancer `json:"scaleLoadBalancers,omitempty" xmlrpc:"scaleLoadBalancers,omitempty"` + + // A count of + ServiceCount *uint `json:"serviceCount,omitempty" xmlrpc:"serviceCount,omitempty"` + + // no documentation yet + Services []Network_Application_Delivery_Controller_LoadBalancer_Service `json:"services,omitempty" xmlrpc:"services,omitempty"` + + // no documentation yet + Type *Network_Application_Delivery_Controller_LoadBalancer_Health_Check_Type `json:"type,omitempty" xmlrpc:"type,omitempty"` +} + +// no documentation yet +type Network_Application_Delivery_Controller_LoadBalancer_Health_Check_Type struct { + Entity + + // no documentation yet + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // no documentation yet + Keyname *string `json:"keyname,omitempty" xmlrpc:"keyname,omitempty"` + + // no documentation yet + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` +} + +// no documentation yet +type Network_Application_Delivery_Controller_LoadBalancer_Routing_Method struct { + Entity + + // no documentation yet + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // no documentation yet + Keyname *string `json:"keyname,omitempty" xmlrpc:"keyname,omitempty"` + + // no documentation yet + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` +} + +// no documentation yet +type Network_Application_Delivery_Controller_LoadBalancer_Routing_Type struct { + Entity + + // no documentation yet + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // no documentation yet + Keyname *string `json:"keyname,omitempty" xmlrpc:"keyname,omitempty"` + + // no documentation yet + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` +} + +// no documentation yet +type Network_Application_Delivery_Controller_LoadBalancer_Service struct { + Entity + + // no documentation yet + Enabled *int `json:"enabled,omitempty" xmlrpc:"enabled,omitempty"` + + // A count of + GroupCount *uint `json:"groupCount,omitempty" xmlrpc:"groupCount,omitempty"` + + // A count of + GroupReferenceCount *uint `json:"groupReferenceCount,omitempty" xmlrpc:"groupReferenceCount,omitempty"` + + // no documentation yet + GroupReferences []Network_Application_Delivery_Controller_LoadBalancer_Service_Group_CrossReference `json:"groupReferences,omitempty" xmlrpc:"groupReferences,omitempty"` + + // no documentation yet + Groups []Network_Application_Delivery_Controller_LoadBalancer_Service_Group `json:"groups,omitempty" xmlrpc:"groups,omitempty"` + + // no documentation yet + HealthCheck *Network_Application_Delivery_Controller_LoadBalancer_Health_Check `json:"healthCheck,omitempty" xmlrpc:"healthCheck,omitempty"` + + // A count of + HealthCheckCount *uint `json:"healthCheckCount,omitempty" xmlrpc:"healthCheckCount,omitempty"` + + // no documentation yet + HealthChecks []Network_Application_Delivery_Controller_LoadBalancer_Health_Check `json:"healthChecks,omitempty" xmlrpc:"healthChecks,omitempty"` + + // no documentation yet + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // no documentation yet + IpAddress *Network_Subnet_IpAddress `json:"ipAddress,omitempty" xmlrpc:"ipAddress,omitempty"` + + // no documentation yet + IpAddressId *int `json:"ipAddressId,omitempty" xmlrpc:"ipAddressId,omitempty"` + + // no documentation yet + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` + + // no documentation yet + Notes *string `json:"notes,omitempty" xmlrpc:"notes,omitempty"` + + // no documentation yet + Port *int `json:"port,omitempty" xmlrpc:"port,omitempty"` + + // no documentation yet + ServiceGroup *Network_Application_Delivery_Controller_LoadBalancer_Service_Group `json:"serviceGroup,omitempty" xmlrpc:"serviceGroup,omitempty"` + + // no documentation yet + Status *string `json:"status,omitempty" xmlrpc:"status,omitempty"` +} + +// no documentation yet +type Network_Application_Delivery_Controller_LoadBalancer_Service_Group struct { + Entity + + // no documentation yet + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // no documentation yet + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` + + // no documentation yet + Notes *string `json:"notes,omitempty" xmlrpc:"notes,omitempty"` + + // no documentation yet + RoutingMethod *Network_Application_Delivery_Controller_LoadBalancer_Routing_Method `json:"routingMethod,omitempty" xmlrpc:"routingMethod,omitempty"` + + // no documentation yet + RoutingMethodId *int `json:"routingMethodId,omitempty" xmlrpc:"routingMethodId,omitempty"` + + // no documentation yet + RoutingType *Network_Application_Delivery_Controller_LoadBalancer_Routing_Type `json:"routingType,omitempty" xmlrpc:"routingType,omitempty"` + + // no documentation yet + RoutingTypeId *int `json:"routingTypeId,omitempty" xmlrpc:"routingTypeId,omitempty"` + + // A count of + ServiceCount *uint `json:"serviceCount,omitempty" xmlrpc:"serviceCount,omitempty"` + + // A count of + ServiceReferenceCount *uint `json:"serviceReferenceCount,omitempty" xmlrpc:"serviceReferenceCount,omitempty"` + + // no documentation yet + ServiceReferences []Network_Application_Delivery_Controller_LoadBalancer_Service_Group_CrossReference `json:"serviceReferences,omitempty" xmlrpc:"serviceReferences,omitempty"` + + // no documentation yet + Services []Network_Application_Delivery_Controller_LoadBalancer_Service `json:"services,omitempty" xmlrpc:"services,omitempty"` + + // The timeout value for connections from remote clients to the load balancer. Timeout values are only valid for HTTP service groups. + Timeout *int `json:"timeout,omitempty" xmlrpc:"timeout,omitempty"` + + // no documentation yet + VirtualServer *Network_Application_Delivery_Controller_LoadBalancer_VirtualServer `json:"virtualServer,omitempty" xmlrpc:"virtualServer,omitempty"` + + // A count of + VirtualServerCount *uint `json:"virtualServerCount,omitempty" xmlrpc:"virtualServerCount,omitempty"` + + // no documentation yet + VirtualServers []Network_Application_Delivery_Controller_LoadBalancer_VirtualServer `json:"virtualServers,omitempty" xmlrpc:"virtualServers,omitempty"` +} + +// no documentation yet +type Network_Application_Delivery_Controller_LoadBalancer_Service_Group_CrossReference struct { + Entity + + // no documentation yet + Service *Network_Application_Delivery_Controller_LoadBalancer_Service `json:"service,omitempty" xmlrpc:"service,omitempty"` + + // no documentation yet + ServiceGroup *Network_Application_Delivery_Controller_LoadBalancer_Service_Group `json:"serviceGroup,omitempty" xmlrpc:"serviceGroup,omitempty"` + + // no documentation yet + ServiceGroupId *int `json:"serviceGroupId,omitempty" xmlrpc:"serviceGroupId,omitempty"` + + // no documentation yet + ServiceId *int `json:"serviceId,omitempty" xmlrpc:"serviceId,omitempty"` + + // no documentation yet + Weight *int `json:"weight,omitempty" xmlrpc:"weight,omitempty"` +} + +// no documentation yet +type Network_Application_Delivery_Controller_LoadBalancer_VirtualIpAddress struct { + Entity + + // no documentation yet + Account *Account `json:"account,omitempty" xmlrpc:"account,omitempty"` + + // The unique identifier of the SoftLayer customer account that owns the virtual IP address + AccountId *int `json:"accountId,omitempty" xmlrpc:"accountId,omitempty"` + + // A virtual IP address's associated application delivery controller. + ApplicationDeliveryController *Network_Application_Delivery_Controller `json:"applicationDeliveryController,omitempty" xmlrpc:"applicationDeliveryController,omitempty"` + + // A count of a virtual IP address's associated application delivery controllers. + ApplicationDeliveryControllerCount *uint `json:"applicationDeliveryControllerCount,omitempty" xmlrpc:"applicationDeliveryControllerCount,omitempty"` + + // A virtual IP address's associated application delivery controllers. + ApplicationDeliveryControllers []Network_Application_Delivery_Controller `json:"applicationDeliveryControllers,omitempty" xmlrpc:"applicationDeliveryControllers,omitempty"` + + // The current billing item for the load balancer virtual IP. This is only valid when dedicatedFlag is false. This is an independent virtual IP, and if canceled, will only affect the associated virtual IP. + BillingItem *Billing_Item `json:"billingItem,omitempty" xmlrpc:"billingItem,omitempty"` + + // The connection limit for this virtual IP address + ConnectionLimit *int `json:"connectionLimit,omitempty" xmlrpc:"connectionLimit,omitempty"` + + // The units for the connection limit + ConnectionLimitUnits *string `json:"connectionLimitUnits,omitempty" xmlrpc:"connectionLimitUnits,omitempty"` + + // The current billing item for the load balancing device housing the virtual IP. This billing item represents a device which could contain other virtual IPs. Caution should be taken when canceling. This is only valid when dedicatedFlag is true. + DedicatedBillingItem *Billing_Item_Network_LoadBalancer `json:"dedicatedBillingItem,omitempty" xmlrpc:"dedicatedBillingItem,omitempty"` + + // A flag that determines if a VIP is dedicated or not. This is used to override the connection limit and use an unlimited value. + DedicatedFlag *bool `json:"dedicatedFlag,omitempty" xmlrpc:"dedicatedFlag,omitempty"` + + // Denotes whether the virtual IP is configured within a high availability cluster. + HighAvailabilityFlag *bool `json:"highAvailabilityFlag,omitempty" xmlrpc:"highAvailabilityFlag,omitempty"` + + // The unique identifier of the virtual IP address record + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // no documentation yet + IpAddress *Network_Subnet_IpAddress `json:"ipAddress,omitempty" xmlrpc:"ipAddress,omitempty"` + + // ID of the IP address this virtual IP utilizes + IpAddressId *int `json:"ipAddressId,omitempty" xmlrpc:"ipAddressId,omitempty"` + + // no documentation yet + LoadBalancerHardware []Hardware `json:"loadBalancerHardware,omitempty" xmlrpc:"loadBalancerHardware,omitempty"` + + // A count of + LoadBalancerHardwareCount *uint `json:"loadBalancerHardwareCount,omitempty" xmlrpc:"loadBalancerHardwareCount,omitempty"` + + // A flag indicating that the load balancer is a managed resource. + ManagedResourceFlag *bool `json:"managedResourceFlag,omitempty" xmlrpc:"managedResourceFlag,omitempty"` + + // User-created notes for this load balancer virtual IP address + Notes *string `json:"notes,omitempty" xmlrpc:"notes,omitempty"` + + // A count of the list of security ciphers enabled for this virtual IP address + SecureTransportCipherCount *uint `json:"secureTransportCipherCount,omitempty" xmlrpc:"secureTransportCipherCount,omitempty"` + + // The list of security ciphers enabled for this virtual IP address + SecureTransportCiphers []Network_Application_Delivery_Controller_LoadBalancer_VirtualIpAddress_SecureTransportCipher `json:"secureTransportCiphers,omitempty" xmlrpc:"secureTransportCiphers,omitempty"` + + // A count of the list of secure transport protocols enabled for this virtual IP address + SecureTransportProtocolCount *uint `json:"secureTransportProtocolCount,omitempty" xmlrpc:"secureTransportProtocolCount,omitempty"` + + // The list of secure transport protocols enabled for this virtual IP address + SecureTransportProtocols []Network_Application_Delivery_Controller_LoadBalancer_VirtualIpAddress_SecureTransportProtocol `json:"secureTransportProtocols,omitempty" xmlrpc:"secureTransportProtocols,omitempty"` + + // The SSL certificate currently associated with the VIP. + SecurityCertificate *Security_Certificate `json:"securityCertificate,omitempty" xmlrpc:"securityCertificate,omitempty"` + + // The SSL certificate currently associated with the VIP. Provides chosen certificate visibility to unprivileged users. + SecurityCertificateEntry *Security_Certificate_Entry `json:"securityCertificateEntry,omitempty" xmlrpc:"securityCertificateEntry,omitempty"` + + // The unique identifier of the Security Certificate to be utilized when SSL support is enabled. + SecurityCertificateId *int `json:"securityCertificateId,omitempty" xmlrpc:"securityCertificateId,omitempty"` + + // Determines if the VIP currently has SSL acceleration enabled + SslActiveFlag *bool `json:"sslActiveFlag,omitempty" xmlrpc:"sslActiveFlag,omitempty"` + + // Determines if the VIP is _allowed_ to utilize SSL acceleration + SslEnabledFlag *bool `json:"sslEnabledFlag,omitempty" xmlrpc:"sslEnabledFlag,omitempty"` + + // A count of + VirtualServerCount *uint `json:"virtualServerCount,omitempty" xmlrpc:"virtualServerCount,omitempty"` + + // no documentation yet + VirtualServers []Network_Application_Delivery_Controller_LoadBalancer_VirtualServer `json:"virtualServers,omitempty" xmlrpc:"virtualServers,omitempty"` +} + +// A single cipher configured for a load balancer virtual IP address instance. Instances of this class are immutable and should reflect a cipher that is configurable on a load balancer device. +type Network_Application_Delivery_Controller_LoadBalancer_VirtualIpAddress_SecureTransportCipher struct { + Entity + + // Unique identifier for the cipher instance + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // Identifier for the associated encryption algorithm + KeyName *string `json:"keyName,omitempty" xmlrpc:"keyName,omitempty"` + + // no documentation yet + VirtualIpAddress *Network_Application_Delivery_Controller_LoadBalancer_VirtualIpAddress `json:"virtualIpAddress,omitempty" xmlrpc:"virtualIpAddress,omitempty"` + + // Identifier for the associated [[SoftLayer_Network_Application_Delivery_Controller_LoadBalancer_VirtualIpAddress (type)|virtual IP address]] instance + VirtualIpAddressId *int `json:"virtualIpAddressId,omitempty" xmlrpc:"virtualIpAddressId,omitempty"` +} + +// Links a SSL transport protocol with a virtual IP address instance. Instances of this class are immutable and should reflect a protocol that is configurable on a load balancer device. +type Network_Application_Delivery_Controller_LoadBalancer_VirtualIpAddress_SecureTransportProtocol struct { + Entity + + // Unique identifier for the protocol instance + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // Identifier for the associated communication protocol + KeyName *string `json:"keyName,omitempty" xmlrpc:"keyName,omitempty"` + + // no documentation yet + VirtualIpAddress *Network_Application_Delivery_Controller_LoadBalancer_VirtualIpAddress `json:"virtualIpAddress,omitempty" xmlrpc:"virtualIpAddress,omitempty"` + + // Identifier for the associated [[SoftLayer_Network_Application_Delivery_Controller_LoadBalancer_VirtualIpAddress (type)|virtual IP address]] instance + VirtualIpAddressId *int `json:"virtualIpAddressId,omitempty" xmlrpc:"virtualIpAddressId,omitempty"` +} + +// no documentation yet +type Network_Application_Delivery_Controller_LoadBalancer_VirtualServer struct { + Entity + + // no documentation yet + Allocation *int `json:"allocation,omitempty" xmlrpc:"allocation,omitempty"` + + // no documentation yet + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // no documentation yet + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` + + // no documentation yet + Notes *string `json:"notes,omitempty" xmlrpc:"notes,omitempty"` + + // no documentation yet + Port *int `json:"port,omitempty" xmlrpc:"port,omitempty"` + + // no documentation yet + RoutingMethod *Network_Application_Delivery_Controller_LoadBalancer_Routing_Method `json:"routingMethod,omitempty" xmlrpc:"routingMethod,omitempty"` + + // no documentation yet + RoutingMethodId *int `json:"routingMethodId,omitempty" xmlrpc:"routingMethodId,omitempty"` + + // A count of collection of scale load balancers this virtual server applies to. + ScaleLoadBalancerCount *uint `json:"scaleLoadBalancerCount,omitempty" xmlrpc:"scaleLoadBalancerCount,omitempty"` + + // Collection of scale load balancers this virtual server applies to. + ScaleLoadBalancers []Scale_LoadBalancer `json:"scaleLoadBalancers,omitempty" xmlrpc:"scaleLoadBalancers,omitempty"` + + // A count of + ServiceGroupCount *uint `json:"serviceGroupCount,omitempty" xmlrpc:"serviceGroupCount,omitempty"` + + // no documentation yet + ServiceGroups []Network_Application_Delivery_Controller_LoadBalancer_Service_Group `json:"serviceGroups,omitempty" xmlrpc:"serviceGroups,omitempty"` + + // no documentation yet + VirtualIpAddress *Network_Application_Delivery_Controller_LoadBalancer_VirtualIpAddress `json:"virtualIpAddress,omitempty" xmlrpc:"virtualIpAddress,omitempty"` + + // no documentation yet + VirtualIpAddressId *int `json:"virtualIpAddressId,omitempty" xmlrpc:"virtualIpAddressId,omitempty"` +} + +// no documentation yet +type Network_Application_Delivery_Controller_Type struct { + Entity + + // no documentation yet + KeyName *string `json:"keyName,omitempty" xmlrpc:"keyName,omitempty"` + + // no documentation yet + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` +} + +// A SoftLayer_Network_Backbone represents a single backbone connection from SoftLayer to the public Internet, from the Internet to the SoftLayer private network, or a link that connects the private networks between SoftLayer's datacenters. The SoftLayer_Network_Backbone data type is a collection of data associated with one of those connections. +type Network_Backbone struct { + Entity + + // The numeric portion of the bandwidth capacity of a SoftLayer backbone. For instance, if a backbone is rated at "1 GigE" capacity then the capacity property of the backbone is 1. + Capacity *int `json:"capacity,omitempty" xmlrpc:"capacity,omitempty"` + + // The unit portion of the bandwidth capacity of a SoftLayer backbone. For instance, if a backbone is rated at "10 G" capacity then the capacityUnits property of the backbone is "G". + CapacityUnits *string `json:"capacityUnits,omitempty" xmlrpc:"capacityUnits,omitempty"` + + // A backbone's status. + Health *string `json:"health,omitempty" xmlrpc:"health,omitempty"` + + // A backbone's internal identifier. + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // Which of the SoftLayer datacenters a backbone is connected to. + Location *Location `json:"location,omitempty" xmlrpc:"location,omitempty"` + + // A backbone's name. This is usually the name of the backbone's network provider followed by a number in case SoftLayer uses more than one backbone from a provider. Backbone provider numbers start with the number one and increment from there. + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` + + // A backbone's primary network component. + NetworkComponent *Network_Component `json:"networkComponent,omitempty" xmlrpc:"networkComponent,omitempty"` + + // The internal identifier of the network component that backbone is connected to. + NetworkComponentId *int `json:"networkComponentId,omitempty" xmlrpc:"networkComponentId,omitempty"` + + // Whether a SoftLayer backbone connects to the public Internet, to the private network, or connecting the private networks of SoftLayer's datacenters. Type is either the string "public", "private", or "private-interconnect". + Type *string `json:"type,omitempty" xmlrpc:"type,omitempty"` +} + +// no documentation yet +type Network_Backbone_Location_Dependent struct { + Entity + + // no documentation yet + DependentLocation *Location `json:"dependentLocation,omitempty" xmlrpc:"dependentLocation,omitempty"` + + // no documentation yet + DependentLocationId *int `json:"dependentLocationId,omitempty" xmlrpc:"dependentLocationId,omitempty"` + + // no documentation yet + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // no documentation yet + SourceLocation *Location `json:"sourceLocation,omitempty" xmlrpc:"sourceLocation,omitempty"` + + // no documentation yet + SourceLocationId *int `json:"sourceLocationId,omitempty" xmlrpc:"sourceLocationId,omitempty"` +} + +// The SoftLayer_Network_Bandwidth_Usage data type contains specific information relating to bandwidth utilization at a specific point in time on a given network interface. +type Network_Bandwidth_Usage struct { + Entity + + // Incoming bandwidth utilization. + AmountIn *Float64 `json:"amountIn,omitempty" xmlrpc:"amountIn,omitempty"` + + // Outgoing bandwidth utilization. + AmountOut *Float64 `json:"amountOut,omitempty" xmlrpc:"amountOut,omitempty"` + + // ID of the bandwidth usage detail type for this record. + BandwidthUsageDetailTypeId *Float64 `json:"bandwidthUsageDetailTypeId,omitempty" xmlrpc:"bandwidthUsageDetailTypeId,omitempty"` + + // The tracking object this bandwidth usage record describes. + TrackingObject *Metric_Tracking_Object `json:"trackingObject,omitempty" xmlrpc:"trackingObject,omitempty"` + + // In and out bandwidth utilization for a specified time stamp. + Type *Network_Bandwidth_Version1_Usage_Detail_Type `json:"type,omitempty" xmlrpc:"type,omitempty"` +} + +// The SoftLayer_Network_Bandwidth_Usage_Detail data type contains specific information relating to bandwidth utilization at a specific point in time on a given network interface. +type Network_Bandwidth_Usage_Detail struct { + Entity + + // The account tied to this tracking object + Account *Account `json:"account,omitempty" xmlrpc:"account,omitempty"` + + // Incoming bandwidth utilization. + AmountIn *Float64 `json:"amountIn,omitempty" xmlrpc:"amountIn,omitempty"` + + // Outgoing bandwidth utilization. + AmountOut *Float64 `json:"amountOut,omitempty" xmlrpc:"amountOut,omitempty"` + + // ID of the bandwidth usage detail type for this record. + BandwidthUsageDetailTypeId *Float64 `json:"bandwidthUsageDetailTypeId,omitempty" xmlrpc:"bandwidthUsageDetailTypeId,omitempty"` + + // The tracking object this bandwidth usage record describes. + TrackingObject *Metric_Tracking_Object `json:"trackingObject,omitempty" xmlrpc:"trackingObject,omitempty"` + + // In and out bandwidth utilization for a specified time stamp. + Type *Network_Bandwidth_Version1_Usage_Detail_Type `json:"type,omitempty" xmlrpc:"type,omitempty"` +} + +// The SoftLayer_Network_Bandwidth_Version1_Allocation data type contains general information relating to a single bandwidth allocation record. +type Network_Bandwidth_Version1_Allocation struct { + Entity + + // A bandwidth allotment detail. + AllotmentDetail *Network_Bandwidth_Version1_Allotment_Detail `json:"allotmentDetail,omitempty" xmlrpc:"allotmentDetail,omitempty"` + + // The amount of bandwidth allocated. + Amount *Float64 `json:"amount,omitempty" xmlrpc:"amount,omitempty"` + + // Billing item associated with this hardware allocation. + BillingItem *Billing_Item_Hardware `json:"billingItem,omitempty" xmlrpc:"billingItem,omitempty"` + + // Internal ID associated with this allocation. + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` +} + +// The SoftLayer_Network_Bandwidth_Version1_Allotment class provides methods and data structures necessary to work with an array of hardware objects associated with a single Bandwidth Pooling. +type Network_Bandwidth_Version1_Allotment struct { + Entity + + // The account associated with this virtual rack. + Account *Account `json:"account,omitempty" xmlrpc:"account,omitempty"` + + // The user account identifier associated with this allotment. + AccountId *int `json:"accountId,omitempty" xmlrpc:"accountId,omitempty"` + + // A count of the bandwidth allotment detail records associated with this virtual rack. + ActiveDetailCount *uint `json:"activeDetailCount,omitempty" xmlrpc:"activeDetailCount,omitempty"` + + // The bandwidth allotment detail records associated with this virtual rack. + ActiveDetails []Network_Bandwidth_Version1_Allotment_Detail `json:"activeDetails,omitempty" xmlrpc:"activeDetails,omitempty"` + + // A count of the Application Delivery Controller contained within a virtual rack. + ApplicationDeliveryControllerCount *uint `json:"applicationDeliveryControllerCount,omitempty" xmlrpc:"applicationDeliveryControllerCount,omitempty"` + + // The Application Delivery Controller contained within a virtual rack. + ApplicationDeliveryControllers []Network_Application_Delivery_Controller `json:"applicationDeliveryControllers,omitempty" xmlrpc:"applicationDeliveryControllers,omitempty"` + + // The average daily public bandwidth usage for the current billing cycle. + AverageDailyPublicBandwidthUsage *Float64 `json:"averageDailyPublicBandwidthUsage,omitempty" xmlrpc:"averageDailyPublicBandwidthUsage,omitempty"` + + // The bandwidth allotment type of this virtual rack. + BandwidthAllotmentType *Network_Bandwidth_Version1_Allotment_Type `json:"bandwidthAllotmentType,omitempty" xmlrpc:"bandwidthAllotmentType,omitempty"` + + // An identifier marking this allotment as a virtual private rack (1) or a bandwidth pooling(2). + BandwidthAllotmentTypeId *int `json:"bandwidthAllotmentTypeId,omitempty" xmlrpc:"bandwidthAllotmentTypeId,omitempty"` + + // A count of the bare metal server instances contained within a virtual rack. + BareMetalInstanceCount *uint `json:"bareMetalInstanceCount,omitempty" xmlrpc:"bareMetalInstanceCount,omitempty"` + + // The bare metal server instances contained within a virtual rack. + BareMetalInstances []Hardware `json:"bareMetalInstances,omitempty" xmlrpc:"bareMetalInstances,omitempty"` + + // A virtual rack's raw bandwidth usage data for an account's current billing cycle. One object is returned for each network this server is attached to. + BillingCycleBandwidthUsage []Network_Bandwidth_Usage `json:"billingCycleBandwidthUsage,omitempty" xmlrpc:"billingCycleBandwidthUsage,omitempty"` + + // A count of a virtual rack's raw bandwidth usage data for an account's current billing cycle. One object is returned for each network this server is attached to. + BillingCycleBandwidthUsageCount *uint `json:"billingCycleBandwidthUsageCount,omitempty" xmlrpc:"billingCycleBandwidthUsageCount,omitempty"` + + // A virtual rack's raw private network bandwidth usage data for an account's current billing cycle. + BillingCyclePrivateBandwidthUsage *Network_Bandwidth_Usage `json:"billingCyclePrivateBandwidthUsage,omitempty" xmlrpc:"billingCyclePrivateBandwidthUsage,omitempty"` + + // A virtual rack's raw public network bandwidth usage data for an account's current billing cycle. + BillingCyclePublicBandwidthUsage *Network_Bandwidth_Usage `json:"billingCyclePublicBandwidthUsage,omitempty" xmlrpc:"billingCyclePublicBandwidthUsage,omitempty"` + + // The total public bandwidth used in this virtual rack for an account's current billing cycle. + BillingCyclePublicUsageTotal *uint `json:"billingCyclePublicUsageTotal,omitempty" xmlrpc:"billingCyclePublicUsageTotal,omitempty"` + + // A virtual rack's billing item. + BillingItem *Billing_Item `json:"billingItem,omitempty" xmlrpc:"billingItem,omitempty"` + + // Creation date for an allotment. + CreateDate *Time `json:"createDate,omitempty" xmlrpc:"createDate,omitempty"` + + // An object that provides commonly used bandwidth summary components for the current billing cycle. + CurrentBandwidthSummary *Metric_Tracking_Object_Bandwidth_Summary `json:"currentBandwidthSummary,omitempty" xmlrpc:"currentBandwidthSummary,omitempty"` + + // A count of the bandwidth allotment detail records associated with this virtual rack. + DetailCount *uint `json:"detailCount,omitempty" xmlrpc:"detailCount,omitempty"` + + // The bandwidth allotment detail records associated with this virtual rack. + Details []Network_Bandwidth_Version1_Allotment_Detail `json:"details,omitempty" xmlrpc:"details,omitempty"` + + // End date for an allotment. + EndDate *Time `json:"endDate,omitempty" xmlrpc:"endDate,omitempty"` + + // The hardware contained within a virtual rack. + Hardware []Hardware `json:"hardware,omitempty" xmlrpc:"hardware,omitempty"` + + // A count of the hardware contained within a virtual rack. + HardwareCount *uint `json:"hardwareCount,omitempty" xmlrpc:"hardwareCount,omitempty"` + + // A virtual rack's internal identifier. + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // The total public inbound bandwidth used in this virtual rack for an account's current billing cycle. + InboundPublicBandwidthUsage *Float64 `json:"inboundPublicBandwidthUsage,omitempty" xmlrpc:"inboundPublicBandwidthUsage,omitempty"` + + // The location group associated with this virtual rack. + LocationGroup *Location_Group `json:"locationGroup,omitempty" xmlrpc:"locationGroup,omitempty"` + + // Location Group Id for an allotment + LocationGroupId *int `json:"locationGroupId,omitempty" xmlrpc:"locationGroupId,omitempty"` + + // A count of the managed bare metal server instances contained within a virtual rack. + ManagedBareMetalInstanceCount *uint `json:"managedBareMetalInstanceCount,omitempty" xmlrpc:"managedBareMetalInstanceCount,omitempty"` + + // The managed bare metal server instances contained within a virtual rack. + ManagedBareMetalInstances []Hardware `json:"managedBareMetalInstances,omitempty" xmlrpc:"managedBareMetalInstances,omitempty"` + + // The managed hardware contained within a virtual rack. + ManagedHardware []Hardware `json:"managedHardware,omitempty" xmlrpc:"managedHardware,omitempty"` + + // A count of the managed hardware contained within a virtual rack. + ManagedHardwareCount *uint `json:"managedHardwareCount,omitempty" xmlrpc:"managedHardwareCount,omitempty"` + + // A count of the managed Virtual Server contained within a virtual rack. + ManagedVirtualGuestCount *uint `json:"managedVirtualGuestCount,omitempty" xmlrpc:"managedVirtualGuestCount,omitempty"` + + // The managed Virtual Server contained within a virtual rack. + ManagedVirtualGuests []Virtual_Guest `json:"managedVirtualGuests,omitempty" xmlrpc:"managedVirtualGuests,omitempty"` + + // A virtual rack's metric tracking object. This object records all periodic polled data available to this rack. + MetricTrackingObject *Metric_Tracking_Object_VirtualDedicatedRack `json:"metricTrackingObject,omitempty" xmlrpc:"metricTrackingObject,omitempty"` + + // The metric tracking object id for this allotment. + MetricTrackingObjectId *int `json:"metricTrackingObjectId,omitempty" xmlrpc:"metricTrackingObjectId,omitempty"` + + // Text A virtual rack's name. + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` + + // The total public outbound bandwidth used in this virtual rack for an account's current billing cycle. + OutboundPublicBandwidthUsage *Float64 `json:"outboundPublicBandwidthUsage,omitempty" xmlrpc:"outboundPublicBandwidthUsage,omitempty"` + + // Whether the bandwidth usage for this bandwidth pool for the current billing cycle exceeds the allocation. + OverBandwidthAllocationFlag *int `json:"overBandwidthAllocationFlag,omitempty" xmlrpc:"overBandwidthAllocationFlag,omitempty"` + + // The private network only hardware contained within a virtual rack. + PrivateNetworkOnlyHardware []Hardware `json:"privateNetworkOnlyHardware,omitempty" xmlrpc:"privateNetworkOnlyHardware,omitempty"` + + // A count of the private network only hardware contained within a virtual rack. + PrivateNetworkOnlyHardwareCount *uint `json:"privateNetworkOnlyHardwareCount,omitempty" xmlrpc:"privateNetworkOnlyHardwareCount,omitempty"` + + // Whether the bandwidth usage for this bandwidth pool for the current billing cycle is projected to exceed the allocation. + ProjectedOverBandwidthAllocationFlag *int `json:"projectedOverBandwidthAllocationFlag,omitempty" xmlrpc:"projectedOverBandwidthAllocationFlag,omitempty"` + + // The projected public outbound bandwidth for this virtual server for the current billing cycle. + ProjectedPublicBandwidthUsage *Float64 `json:"projectedPublicBandwidthUsage,omitempty" xmlrpc:"projectedPublicBandwidthUsage,omitempty"` + + // no documentation yet + ServiceProvider *Service_Provider `json:"serviceProvider,omitempty" xmlrpc:"serviceProvider,omitempty"` + + // Service Provider Id for an allotment + ServiceProviderId *int `json:"serviceProviderId,omitempty" xmlrpc:"serviceProviderId,omitempty"` + + // The combined allocated bandwidth for all servers in a virtual rack. + TotalBandwidthAllocated *uint `json:"totalBandwidthAllocated,omitempty" xmlrpc:"totalBandwidthAllocated,omitempty"` + + // A count of the Virtual Server contained within a virtual rack. + VirtualGuestCount *uint `json:"virtualGuestCount,omitempty" xmlrpc:"virtualGuestCount,omitempty"` + + // The Virtual Server contained within a virtual rack. + VirtualGuests []Virtual_Guest `json:"virtualGuests,omitempty" xmlrpc:"virtualGuests,omitempty"` +} + +// The SoftLayer_Network_Bandwidth_Version1_Allotment_Detail data type contains specific information relating to a single bandwidth allotment record. +type Network_Bandwidth_Version1_Allotment_Detail struct { + Entity + + // Allocated bandwidth. + Allocation *Network_Bandwidth_Version1_Allocation `json:"allocation,omitempty" xmlrpc:"allocation,omitempty"` + + // Allocated bandwidth. + AllocationId *int `json:"allocationId,omitempty" xmlrpc:"allocationId,omitempty"` + + // The parent Bandwidth Pool. + BandwidthAllotment *Network_Bandwidth_Version1_Allotment `json:"bandwidthAllotment,omitempty" xmlrpc:"bandwidthAllotment,omitempty"` + + // Bandwidth Pool associated with this detail. + BandwidthAllotmentId *int `json:"bandwidthAllotmentId,omitempty" xmlrpc:"bandwidthAllotmentId,omitempty"` + + // Bandwidth used. + BandwidthUsage []Network_Bandwidth_Version1_Usage `json:"bandwidthUsage,omitempty" xmlrpc:"bandwidthUsage,omitempty"` + + // A count of bandwidth used. + BandwidthUsageCount *uint `json:"bandwidthUsageCount,omitempty" xmlrpc:"bandwidthUsageCount,omitempty"` + + // Beginning this date the bandwidth allotment is active. + EffectiveDate *Time `json:"effectiveDate,omitempty" xmlrpc:"effectiveDate,omitempty"` + + // From this date the bandwidth allotment is no longer active. + EndEffectiveDate *Time `json:"endEffectiveDate,omitempty" xmlrpc:"endEffectiveDate,omitempty"` + + // Internal ID associated with this allotment detail. + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // Service Provider Id for an allotment + ServiceProviderId *int `json:"serviceProviderId,omitempty" xmlrpc:"serviceProviderId,omitempty"` +} + +// The SoftLayer_Network_Bandwidth_Version1_Allotment_Type contains a description of the associated SoftLayer_Network_Bandwidth_Version1_Allotment object. +type Network_Bandwidth_Version1_Allotment_Type struct { + Entity + + // no documentation yet + Description *string `json:"description,omitempty" xmlrpc:"description,omitempty"` + + // no documentation yet + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // no documentation yet + KeyName *string `json:"keyName,omitempty" xmlrpc:"keyName,omitempty"` + + // no documentation yet + ShortDescription *string `json:"shortDescription,omitempty" xmlrpc:"shortDescription,omitempty"` +} + +// The SoftLayer_Network_Bandwidth_Version1_Host type contains general information used to the route a server to its pod. +type Network_Bandwidth_Version1_Host struct { + Entity + + // Pod ID for this host device. + PodId *int `json:"podId,omitempty" xmlrpc:"podId,omitempty"` +} + +// All bandwidth tracking is maintained through the switch that the bandwidth is used through. All bandwidth is stored in a "pod" repository. An interface links the hardware switch with the pod repository identification number. This is only relevant to bandwidth data. It is not common to use this. +type Network_Bandwidth_Version1_Interface struct { + Entity + + // The host for an interface. This is not to be confused with a SoftLayer hardware + Host *Network_Bandwidth_Version1_Host `json:"host,omitempty" xmlrpc:"host,omitempty"` + + // A interface's host. The host stores the pod number for the bandwidth data. + HostId *int `json:"hostId,omitempty" xmlrpc:"hostId,omitempty"` + + // The switch for an interface. + NetworkComponent *Network_Component `json:"networkComponent,omitempty" xmlrpc:"networkComponent,omitempty"` + + // The network component for this interface. + NetworkComponentId *int `json:"networkComponentId,omitempty" xmlrpc:"networkComponentId,omitempty"` +} + +// The SoftLayer_Network_Bandwidth_Version1_Usage data type contains general information relating to a single bandwidth usage record. +type Network_Bandwidth_Version1_Usage struct { + Entity + + // Bandwidth allotment detail for this hardware. + BandwidthAllotmentDetail *Network_Bandwidth_Version1_Allotment_Detail `json:"bandwidthAllotmentDetail,omitempty" xmlrpc:"bandwidthAllotmentDetail,omitempty"` + + // Bandwidth usage details for this hardware. + BandwidthUsageDetail []Network_Bandwidth_Version1_Usage_Detail `json:"bandwidthUsageDetail,omitempty" xmlrpc:"bandwidthUsageDetail,omitempty"` + + // A count of bandwidth usage details for this hardware. + BandwidthUsageDetailCount *uint `json:"bandwidthUsageDetailCount,omitempty" xmlrpc:"bandwidthUsageDetailCount,omitempty"` +} + +// The SoftLayer_Network_Bandwidth_Version1_Usage_Detail data type contains specific information relating to bandwidth utilization at a specific point in time on a given network interface. +type Network_Bandwidth_Version1_Usage_Detail struct { + Entity + + // Incoming bandwidth utilization . + AmountIn *Float64 `json:"amountIn,omitempty" xmlrpc:"amountIn,omitempty"` + + // Outgoing bandwidth utilization . + AmountOut *Float64 `json:"amountOut,omitempty" xmlrpc:"amountOut,omitempty"` + + // In and out bandwidth utilization for a specified time stamp. + BandwidthUsage *Network_Bandwidth_Version1_Usage `json:"bandwidthUsage,omitempty" xmlrpc:"bandwidthUsage,omitempty"` + + // Describes this bandwidth utilization record as on the public or private network interface. + BandwidthUsageDetailType *Network_Bandwidth_Version1_Usage_Detail_Type `json:"bandwidthUsageDetailType,omitempty" xmlrpc:"bandwidthUsageDetailType,omitempty"` + + // Day and time this bandwidth utilization event was recorded. + Day *Time `json:"day,omitempty" xmlrpc:"day,omitempty"` +} + +// The SoftLayer_Network_Bandwidth_Usage_Detail data type contains specific information relating to bandwidth utilization at a specific point in time on a given network interface. +type Network_Bandwidth_Version1_Usage_Detail_Total struct { + Entity + + // The account tied to this tracking object + Account *Account `json:"account,omitempty" xmlrpc:"account,omitempty"` + + // Incoming bandwidth utilization. + AmountIn *Float64 `json:"amountIn,omitempty" xmlrpc:"amountIn,omitempty"` + + // Outgoing bandwidth utilization. + AmountOut *Float64 `json:"amountOut,omitempty" xmlrpc:"amountOut,omitempty"` + + // ID of the bandwidth usage detail type for this record. + BandwidthUsageDetailTypeId *Float64 `json:"bandwidthUsageDetailTypeId,omitempty" xmlrpc:"bandwidthUsageDetailTypeId,omitempty"` + + // The tracking object this bandwidth usage record describes. + TrackingObject *Metric_Tracking_Object `json:"trackingObject,omitempty" xmlrpc:"trackingObject,omitempty"` + + // In and out bandwidth utilization for a specified time stamp. + Type *Network_Bandwidth_Version1_Usage_Detail_Type `json:"type,omitempty" xmlrpc:"type,omitempty"` +} + +// The SoftLayer_Network_Bandwidth_Version1_Usage_Detail_Type data type contains generic information relating to the types of bandwidth records available, currently just public and private. +type Network_Bandwidth_Version1_Usage_Detail_Type struct { + Entity + + // Database key associated with this bandwidth detail type. + Alias *string `json:"alias,omitempty" xmlrpc:"alias,omitempty"` +} + +// Every piece of hardware running in SoftLayer's datacenters connected to the public, private, or management networks (where applicable) have a corresponding network component. These network components are modeled by the SoftLayer_Network_Component data type. These data types reflect the servers' local ethernet and remote management interfaces. +type Network_Component struct { + Entity + + // Reboot/power (rebootDefault, rebootSoft, rebootHard, powerOn, powerOff and powerCycle) command currently executing by the server's remote management card. + ActiveCommand *Hardware_Component_RemoteManagement_Command_Request `json:"activeCommand,omitempty" xmlrpc:"activeCommand,omitempty"` + + // The network component linking this object to a child device + DownlinkComponent *Network_Component `json:"downlinkComponent,omitempty" xmlrpc:"downlinkComponent,omitempty"` + + // The duplex mode of a network component. + DuplexMode *Network_Component_Duplex_Mode `json:"duplexMode,omitempty" xmlrpc:"duplexMode,omitempty"` + + // A network component's Duplex mode. + DuplexModeId *string `json:"duplexModeId,omitempty" xmlrpc:"duplexModeId,omitempty"` + + // The hardware that a network component resides in. + Hardware *Hardware `json:"hardware,omitempty" xmlrpc:"hardware,omitempty"` + + // The internal identifier of the hardware that a network component belongs to. + HardwareId *int `json:"hardwareId,omitempty" xmlrpc:"hardwareId,omitempty"` + + // no documentation yet + HighAvailabilityFirewallFlag *bool `json:"highAvailabilityFirewallFlag,omitempty" xmlrpc:"highAvailabilityFirewallFlag,omitempty"` + + // A network component's internal identifier. + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // A hardware switch's interface to the bandwidth pod. + Interface *Network_Bandwidth_Version1_Interface `json:"interface,omitempty" xmlrpc:"interface,omitempty"` + + // A count of the records of all IP addresses bound to a network component. + IpAddressBindingCount *uint `json:"ipAddressBindingCount,omitempty" xmlrpc:"ipAddressBindingCount,omitempty"` + + // The records of all IP addresses bound to a network component. + IpAddressBindings []Network_Component_IpAddress `json:"ipAddressBindings,omitempty" xmlrpc:"ipAddressBindings,omitempty"` + + // A count of + IpAddressCount *uint `json:"ipAddressCount,omitempty" xmlrpc:"ipAddressCount,omitempty"` + + // no documentation yet + IpAddresses []Network_Subnet_IpAddress `json:"ipAddresses,omitempty" xmlrpc:"ipAddresses,omitempty"` + + // The IP address of an IPMI-based management network component. + IpmiIpAddress *string `json:"ipmiIpAddress,omitempty" xmlrpc:"ipmiIpAddress,omitempty"` + + // The MAC address of an IPMI-based management network component. + IpmiMacAddress *string `json:"ipmiMacAddress,omitempty" xmlrpc:"ipmiMacAddress,omitempty"` + + // Last reboot/power (rebootDefault, rebootSoft, rebootHard, powerOn, powerOff and powerCycle) command issued to the server's remote management card. + LastCommand *Hardware_Component_RemoteManagement_Command_Request `json:"lastCommand,omitempty" xmlrpc:"lastCommand,omitempty"` + + // A network component's unique MAC address. IPMI-based management network interfaces may not have a MAC address. + MacAddress *string `json:"macAddress,omitempty" xmlrpc:"macAddress,omitempty"` + + // A network component's maximum allowed speed, measured in Mbit per second. ''maxSpeed'' is determined by the capabilities of the network interface and the port speed purchased on your SoftLayer server. + MaxSpeed *int `json:"maxSpeed,omitempty" xmlrpc:"maxSpeed,omitempty"` + + // The metric tracking object for this network component. + MetricTrackingObject *Metric_Tracking_Object `json:"metricTrackingObject,omitempty" xmlrpc:"metricTrackingObject,omitempty"` + + // The date a network component was last modified. + ModifyDate *Time `json:"modifyDate,omitempty" xmlrpc:"modifyDate,omitempty"` + + // A network component's short name. For most servers this is the string "eth" for ethernet ports or "mgmt" for remote management ports. Use this in conjunction with the ''port'' property to identify a network component. For instance, the "eth0" interface on a server has the network component name "eth" and port 0. + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` + + // The upstream network component firewall. + NetworkComponentFirewall *Network_Component_Firewall `json:"networkComponentFirewall,omitempty" xmlrpc:"networkComponentFirewall,omitempty"` + + // A network component's associated group. + NetworkComponentGroup *Network_Component_Group `json:"networkComponentGroup,omitempty" xmlrpc:"networkComponentGroup,omitempty"` + + // All network devices in SoftLayer's network hierarchy that this device is connected to. + NetworkHardware []Hardware `json:"networkHardware,omitempty" xmlrpc:"networkHardware,omitempty"` + + // A count of all network devices in SoftLayer's network hierarchy that this device is connected to. + NetworkHardwareCount *uint `json:"networkHardwareCount,omitempty" xmlrpc:"networkHardwareCount,omitempty"` + + // The VLAN that a network component's subnet is associated with. + NetworkVlan *Network_Vlan `json:"networkVlan,omitempty" xmlrpc:"networkVlan,omitempty"` + + // The unique internal id of the network VLAN that the port belongs to. + NetworkVlanId *int `json:"networkVlanId,omitempty" xmlrpc:"networkVlanId,omitempty"` + + // A count of the VLANs that are trunked to this network component. + NetworkVlanTrunkCount *uint `json:"networkVlanTrunkCount,omitempty" xmlrpc:"networkVlanTrunkCount,omitempty"` + + // The VLANs that are trunked to this network component. + NetworkVlanTrunks []Network_Component_Network_Vlan_Trunk `json:"networkVlanTrunks,omitempty" xmlrpc:"networkVlanTrunks,omitempty"` + + // A network component's port number. Most hardware has more than one network interface. The port property separates these interfaces. Use this in conjunction with the ''name'' property to identify a network component. For instance, the "eth0" interface on a server has the network component name "eth" and port 0. + Port *int `json:"port,omitempty" xmlrpc:"port,omitempty"` + + // A network component's primary IP address. IPMI-based management network interfaces may not have an IP address. + PrimaryIpAddress *string `json:"primaryIpAddress,omitempty" xmlrpc:"primaryIpAddress,omitempty"` + + // The primary IPv4 Address record for a network component. + PrimaryIpAddressRecord *Network_Subnet_IpAddress `json:"primaryIpAddressRecord,omitempty" xmlrpc:"primaryIpAddressRecord,omitempty"` + + // The subnet of the primary IP address assigned to this network component. + PrimarySubnet *Network_Subnet `json:"primarySubnet,omitempty" xmlrpc:"primarySubnet,omitempty"` + + // The primary IPv6 Address record for a network component. + PrimaryVersion6IpAddressRecord *Network_Subnet_IpAddress `json:"primaryVersion6IpAddressRecord,omitempty" xmlrpc:"primaryVersion6IpAddressRecord,omitempty"` + + // A count of the last five reboot/power (rebootDefault, rebootSoft, rebootHard, powerOn, powerOff and powerCycle) commands issued to the server's remote management card. + RecentCommandCount *uint `json:"recentCommandCount,omitempty" xmlrpc:"recentCommandCount,omitempty"` + + // The last five reboot/power (rebootDefault, rebootSoft, rebootHard, powerOn, powerOff and powerCycle) commands issued to the server's remote management card. + RecentCommands []Hardware_Component_RemoteManagement_Command_Request `json:"recentCommands,omitempty" xmlrpc:"recentCommands,omitempty"` + + // Indicates whether the network component is participating in a group of two or more components capable of being operationally redundant, if enabled. + RedundancyCapableFlag *bool `json:"redundancyCapableFlag,omitempty" xmlrpc:"redundancyCapableFlag,omitempty"` + + // Indicates whether the network component is participating in a group of two or more components which is actively providing link redundancy. + RedundancyEnabledFlag *bool `json:"redundancyEnabledFlag,omitempty" xmlrpc:"redundancyEnabledFlag,omitempty"` + + // A count of user(s) credentials to issue commands and/or interact with the server's remote management card. + RemoteManagementUserCount *uint `json:"remoteManagementUserCount,omitempty" xmlrpc:"remoteManagementUserCount,omitempty"` + + // User(s) credentials to issue commands and/or interact with the server's remote management card. + RemoteManagementUsers []Hardware_Component_RemoteManagement_User `json:"remoteManagementUsers,omitempty" xmlrpc:"remoteManagementUsers,omitempty"` + + // A network component's routers. + Router *Hardware `json:"router,omitempty" xmlrpc:"router,omitempty"` + + // A network component's speed, measured in Mbit per second. + Speed *int `json:"speed,omitempty" xmlrpc:"speed,omitempty"` + + // A network component's status. This can take one of four possible values: "ACTIVE", "DISABLE", "USER_OFF", or "MACWAIT". "ACTIVE" network components are enabled and in use on a servers. "DISABLE" status components have been administratively disabled by SoftLayer accounting or abuse. "USER_OFF" components have been administratively disabled by you, the user. "MACWAIT" components only exist on network components that have not been provisioned. You should never see a network interface in MACWAIT state. If you happen to see one please contact SoftLayer support. + Status *string `json:"status,omitempty" xmlrpc:"status,omitempty"` + + // Whether a network component's primary ip address is from a storage network subnet or not. + StorageNetworkFlag *bool `json:"storageNetworkFlag,omitempty" xmlrpc:"storageNetworkFlag,omitempty"` + + // A count of a network component's subnets. A subnet is a group of IP addresses + SubnetCount *uint `json:"subnetCount,omitempty" xmlrpc:"subnetCount,omitempty"` + + // A network component's subnets. A subnet is a group of IP addresses + Subnets []Network_Subnet `json:"subnets,omitempty" xmlrpc:"subnets,omitempty"` + + // The network component linking this object to parent + UplinkComponent *Network_Component `json:"uplinkComponent,omitempty" xmlrpc:"uplinkComponent,omitempty"` + + // The duplex mode of the uplink network component linking to this object + UplinkDuplexMode *Network_Component_Duplex_Mode `json:"uplinkDuplexMode,omitempty" xmlrpc:"uplinkDuplexMode,omitempty"` +} + +// Duplex Mode allows finer grained control over networking options and settings. +type Network_Component_Duplex_Mode struct { + Entity + + // no documentation yet + Description *string `json:"description,omitempty" xmlrpc:"description,omitempty"` + + // no documentation yet + Keyname *string `json:"keyname,omitempty" xmlrpc:"keyname,omitempty"` + + // no documentation yet + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` +} + +// The SoftLayer_Network_Component_Firewall data type contains general information relating to a single SoftLayer network component firewall. This is the object which ties the running rules to a specific downstream server. Use the [[SoftLayer Network Firewall Template]] service to pull SoftLayer recommended rule set templates. Use the [[SoftLayer Network Firewall Update Request]] service to submit a firewall update request. +type Network_Component_Firewall struct { + Entity + + // A count of the additional subnets linked to this network component firewall, that inherit rules from the host that the context slot is attached to. + ApplyServerRuleSubnetCount *uint `json:"applyServerRuleSubnetCount,omitempty" xmlrpc:"applyServerRuleSubnetCount,omitempty"` + + // The additional subnets linked to this network component firewall, that inherit rules from the host that the context slot is attached to. + ApplyServerRuleSubnets []Network_Subnet `json:"applyServerRuleSubnets,omitempty" xmlrpc:"applyServerRuleSubnets,omitempty"` + + // The billing item for a Hardware Firewall (Dedicated). + BillingItem *Billing_Item `json:"billingItem,omitempty" xmlrpc:"billingItem,omitempty"` + + // The network component of the guest virtual server that this network component firewall belongs to. + GuestNetworkComponent *Virtual_Guest_Network_Component `json:"guestNetworkComponent,omitempty" xmlrpc:"guestNetworkComponent,omitempty"` + + // Unique ID for the network component of the switch interface that this network component firewall is attached to. + GuestNetworkComponentId *int `json:"guestNetworkComponentId,omitempty" xmlrpc:"guestNetworkComponentId,omitempty"` + + // Unique ID for the network component firewall. + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // The network component of the switch interface that this network component firewall belongs to. + NetworkComponent *Network_Component `json:"networkComponent,omitempty" xmlrpc:"networkComponent,omitempty"` + + // Unique ID for the network component of the switch interface that this network component firewall is attached to. + NetworkComponentId *int `json:"networkComponentId,omitempty" xmlrpc:"networkComponentId,omitempty"` + + // The update requests made for this firewall. + NetworkFirewallUpdateRequest []Network_Firewall_Update_Request `json:"networkFirewallUpdateRequest,omitempty" xmlrpc:"networkFirewallUpdateRequest,omitempty"` + + // A count of the update requests made for this firewall. + NetworkFirewallUpdateRequestCount *uint `json:"networkFirewallUpdateRequestCount,omitempty" xmlrpc:"networkFirewallUpdateRequestCount,omitempty"` + + // A count of the currently running rule set of this network component firewall. + RuleCount *uint `json:"ruleCount,omitempty" xmlrpc:"ruleCount,omitempty"` + + // The currently running rule set of this network component firewall. + Rules []Network_Component_Firewall_Rule `json:"rules,omitempty" xmlrpc:"rules,omitempty"` + + // Current status of the network component firewall. + Status *string `json:"status,omitempty" xmlrpc:"status,omitempty"` + + // A count of the additional subnets linked to this network component firewall. + SubnetCount *uint `json:"subnetCount,omitempty" xmlrpc:"subnetCount,omitempty"` + + // The additional subnets linked to this network component firewall. + Subnets []Network_Subnet `json:"subnets,omitempty" xmlrpc:"subnets,omitempty"` +} + +// A SoftLayer_Network_Component_Firewall_Rule object type represents a currently running firewall rule and contains relative information. Use the [[SoftLayer Network Firewall Update Request]] service to submit a firewall update request. Use the [[SoftLayer Network Firewall Template]] service to pull SoftLayer recommended rule set templates. +type Network_Component_Firewall_Rule struct { + Entity + + // The action that the rule is to take [permit or deny]. + Action *string `json:"action,omitempty" xmlrpc:"action,omitempty"` + + // The destination IP address considered for determining rule application. + DestinationIpAddress *string `json:"destinationIpAddress,omitempty" xmlrpc:"destinationIpAddress,omitempty"` + + // The CIDR is used for determining rule application. This value will + DestinationIpCidr *int `json:"destinationIpCidr,omitempty" xmlrpc:"destinationIpCidr,omitempty"` + + // The destination IP subnet mask considered for determining rule application. + DestinationIpSubnetMask *string `json:"destinationIpSubnetMask,omitempty" xmlrpc:"destinationIpSubnetMask,omitempty"` + + // The ending (upper end of range) destination port considered for determining rule application. + DestinationPortRangeEnd *int `json:"destinationPortRangeEnd,omitempty" xmlrpc:"destinationPortRangeEnd,omitempty"` + + // The starting (lower end of range) destination port considered for determining rule application. + DestinationPortRangeStart *int `json:"destinationPortRangeStart,omitempty" xmlrpc:"destinationPortRangeStart,omitempty"` + + // The rule's internal identifier. + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // The network component firewall that this rule belongs to. + NetworkComponentFirewall *Network_Component_Firewall `json:"networkComponentFirewall,omitempty" xmlrpc:"networkComponentFirewall,omitempty"` + + // The notes field for the rule. + Notes *string `json:"notes,omitempty" xmlrpc:"notes,omitempty"` + + // The numeric value describing the order in which the rule should be applied. + OrderValue *int `json:"orderValue,omitempty" xmlrpc:"orderValue,omitempty"` + + // The protocol considered for determining rule application. + Protocol *string `json:"protocol,omitempty" xmlrpc:"protocol,omitempty"` + + // The source IP address considered for determining rule application. + SourceIpAddress *string `json:"sourceIpAddress,omitempty" xmlrpc:"sourceIpAddress,omitempty"` + + // The CIDR is used for determining rule application. This value will + SourceIpCidr *int `json:"sourceIpCidr,omitempty" xmlrpc:"sourceIpCidr,omitempty"` + + // The source IP subnet mask considered for determining rule application. + SourceIpSubnetMask *string `json:"sourceIpSubnetMask,omitempty" xmlrpc:"sourceIpSubnetMask,omitempty"` + + // Current status of the network component firewall. + Status *string `json:"status,omitempty" xmlrpc:"status,omitempty"` + + // Whether this rule is an IPv4 rule or an IPv6 rule. If + Version *int `json:"version,omitempty" xmlrpc:"version,omitempty"` +} + +// A SoftLayer_Network_Component_Firewall_Subnets object type represents the current linked subnets and contains relative information. Use the [[SoftLayer Network Firewall Update Request]] service to submit a firewall update request. Use the [[SoftLayer Network Firewall Template]] service to pull SoftLayer recommended rule set templates. +type Network_Component_Firewall_Subnets struct { + Entity + + // A boolean flag that indicates whether the subnet should receive all the rules intended for the host on this context slot. + ApplyServerRulesFlag *bool `json:"applyServerRulesFlag,omitempty" xmlrpc:"applyServerRulesFlag,omitempty"` + + // The network component firewall that write rules for this subnet. + NetworkComponentFirewall *Network_Component_Firewall `json:"networkComponentFirewall,omitempty" xmlrpc:"networkComponentFirewall,omitempty"` + + // The subnet that this link binds to the network component firewall. + Subnet *Network_Subnet `json:"subnet,omitempty" xmlrpc:"subnet,omitempty"` + + // The unique identifier of the subnet being linked to the network component firewall. + SubnetId *int `json:"subnetId,omitempty" xmlrpc:"subnetId,omitempty"` +} + +// no documentation yet +type Network_Component_Group struct { + Entity + + // no documentation yet + GroupTypeId *int `json:"groupTypeId,omitempty" xmlrpc:"groupTypeId,omitempty"` + + // A count of a network component group's associated network components. + NetworkComponentCount *uint `json:"networkComponentCount,omitempty" xmlrpc:"networkComponentCount,omitempty"` + + // A network component group's associated network components. + NetworkComponents []Network_Component `json:"networkComponents,omitempty" xmlrpc:"networkComponents,omitempty"` +} + +// The SoftLayer_Network_Component_IpAddress data type contains general information relating to the binding of a single network component to a single SoftLayer IP address. +type Network_Component_IpAddress struct { + Entity + + // The IP address associated with this object's network component. + IpAddress *Network_Subnet_IpAddress `json:"ipAddress,omitempty" xmlrpc:"ipAddress,omitempty"` + + // The network component associated with this object's IP address. + NetworkComponent *Network_Component `json:"networkComponent,omitempty" xmlrpc:"networkComponent,omitempty"` +} + +// Represents the association between a Network_Component and Network_Vlan in the manner of a 'trunk'. Trunking a VLAN to a port allows that ports to receive and send packets tagged with the corresponding VLAN number. +type Network_Component_Network_Vlan_Trunk struct { + Entity + + // The network component that the VLAN is being trunked to. + NetworkComponent *Network_Component `json:"networkComponent,omitempty" xmlrpc:"networkComponent,omitempty"` + + // The network component's identifier. + NetworkComponentId *int `json:"networkComponentId,omitempty" xmlrpc:"networkComponentId,omitempty"` + + // The VLAN that is being trunked to the network component. + NetworkVlan *Network_Vlan `json:"networkVlan,omitempty" xmlrpc:"networkVlan,omitempty"` + + // The identifier of the network VLAN that is a trunk on the network component. + NetworkVlanId *int `json:"networkVlanId,omitempty" xmlrpc:"networkVlanId,omitempty"` +} + +// The SoftLayer_Network_Component_RemoteManagement data type contains general information relating to a single SoftLayer remote management network component. +type Network_Component_RemoteManagement struct { + Network_Component +} + +// The SoftLayer_Network_Component_Uplink_Hardware data type abstracts information related to network connections between SoftLayer hardware and SoftLayer network components. +// +// It is populated via triggers on the network_connection table (SoftLayer_Network_Connection), so you shouldn't have to delete or insert records into this table, ever. +// +// +type Network_Component_Uplink_Hardware struct { + Entity + + // A network component uplink's connected [[SoftLayer_Hardware|Hardware]]. + Hardware *Hardware `json:"hardware,omitempty" xmlrpc:"hardware,omitempty"` + + // The [[SoftLayer_Network_Component|Network Component]] that a uplink connection belongs to.. + NetworkComponent *Network_Component `json:"networkComponent,omitempty" xmlrpc:"networkComponent,omitempty"` +} + +// The SoftLayer_Network_ContentDelivery_Account data type models an individual CDN account. CDN accounts contain references to the SoftLayer customer account they belong to, login credentials for upload services, and a CDN account's status. Please contact SoftLayer sales to purchase or cancel a CDN account +type Network_ContentDelivery_Account struct { + Entity + + // The customer account that a CDN account belongs to. + Account *Account `json:"account,omitempty" xmlrpc:"account,omitempty"` + + // The internal identifier of the customer account that a CDN account belongs to. + AccountId *int `json:"accountId,omitempty" xmlrpc:"accountId,omitempty"` + + // The CDN account id that this CDN account is associated with. + AssociatedCdnAccountId *string `json:"associatedCdnAccountId,omitempty" xmlrpc:"associatedCdnAccountId,omitempty"` + + // A count of the IP addresses that are used for the content authentication service. + AuthenticationIpAddressCount *uint `json:"authenticationIpAddressCount,omitempty" xmlrpc:"authenticationIpAddressCount,omitempty"` + + // The IP addresses that are used for the content authentication service. + AuthenticationIpAddresses []Network_ContentDelivery_Authentication_Address `json:"authenticationIpAddresses,omitempty" xmlrpc:"authenticationIpAddresses,omitempty"` + + // The current billing item for a CDN account. + BillingItem *Billing_Item `json:"billingItem,omitempty" xmlrpc:"billingItem,omitempty"` + + // The name of a CDN account. + CdnAccountName *string `json:"cdnAccountName,omitempty" xmlrpc:"cdnAccountName,omitempty"` + + // A brief note on a CDN account. + CdnAccountNote *string `json:"cdnAccountNote,omitempty" xmlrpc:"cdnAccountNote,omitempty"` + + // The solution type of a CDN account. + CdnSolutionName *string `json:"cdnSolutionName,omitempty" xmlrpc:"cdnSolutionName,omitempty"` + + // The date that a CDN account was created. + CreateDate *Time `json:"createDate,omitempty" xmlrpc:"createDate,omitempty"` + + // Indicates if CDN account is dependent on other service. If set, this CDN account is limited to these services: createOriginPullMapping, deleteOriginPullRule, getOriginPullMappingInformation, getCdnUrls, purgeCache, loadContent, manageHttpCompression + DependantServiceFlag *bool `json:"dependantServiceFlag,omitempty" xmlrpc:"dependantServiceFlag,omitempty"` + + // A CDN account's internal identifier. + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // Indicates if it is a legacy CDN or not + LegacyCdnFlag *bool `json:"legacyCdnFlag,omitempty" xmlrpc:"legacyCdnFlag,omitempty"` + + // Indicates if CDN logging is enabled. + LogEnabledFlag *string `json:"logEnabledFlag,omitempty" xmlrpc:"logEnabledFlag,omitempty"` + + // Indicates if customer is allowed to access the CDN provider's management portal. + ProviderPortalAccessFlag *bool `json:"providerPortalAccessFlag,omitempty" xmlrpc:"providerPortalAccessFlag,omitempty"` + + // A CDN account's status presented in a more detailed data type. + Status *Network_ContentDelivery_Account_Status `json:"status,omitempty" xmlrpc:"status,omitempty"` + + // The internal identifier of a CDN status + StatusId *int `json:"statusId,omitempty" xmlrpc:"statusId,omitempty"` + + // Indicates if the token authentication service is enabled or not. + TokenAuthenticationEnabledFlag *bool `json:"tokenAuthenticationEnabledFlag,omitempty" xmlrpc:"tokenAuthenticationEnabledFlag,omitempty"` +} + +// The SoftLayer_Network_ContentDelivery_Account_Status contains information on a CDN account. +type Network_ContentDelivery_Account_Status struct { + Entity + + // A longer description of a CDN account's status. + Description *string `json:"description,omitempty" xmlrpc:"description,omitempty"` + + // A CDN account status' internal identifier. + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // A CDN account status' name. + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` +} + +// The SoftLayer_Network_ContentDelivery_Authentication_Address data type models an individual IP address that CDN allow or deny access from. +type Network_ContentDelivery_Authentication_Address struct { + Entity + + // The type of access on an IP address. It can be "ALLOW" or "DENY" + AccessType *string `json:"accessType,omitempty" xmlrpc:"accessType,omitempty"` + + // The internal identifier of the CDN account + CdnAccountId *int `json:"cdnAccountId,omitempty" xmlrpc:"cdnAccountId,omitempty"` + + // The created date + CreateDate *Time `json:"createDate,omitempty" xmlrpc:"createDate,omitempty"` + + // The internal identifier of an authentication IP address + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // The IP address that you want to block or allow access to + IpAddress *string `json:"ipAddress,omitempty" xmlrpc:"ipAddress,omitempty"` + + // The last modified date + ModifyDate *Time `json:"modifyDate,omitempty" xmlrpc:"modifyDate,omitempty"` + + // The name of an authentication IP. This helps you to keep track of IP addresses. + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` + + // The priority of an authentication IP address. The smaller number, the higher in priority. Higher priority IP will be matched first. + Priority *int `json:"priority,omitempty" xmlrpc:"priority,omitempty"` + + // The internal identifier of the user who created an authentication IP record + UserId *int `json:"userId,omitempty" xmlrpc:"userId,omitempty"` +} + +// The SoftLayer_Network_ContentDelivery_Authentication_Address data type models an individual IP address that CDN allow or deny access from. +type Network_ContentDelivery_Authentication_Token struct { + Entity + + // The internal identifier of a CDN account + CdnAccountId *int `json:"cdnAccountId,omitempty" xmlrpc:"cdnAccountId,omitempty"` + + // The client IP address. This is optional. + ClientIp *string `json:"clientIp,omitempty" xmlrpc:"clientIp,omitempty"` + + // The created date + CreateDate *Time `json:"createDate,omitempty" xmlrpc:"createDate,omitempty"` + + // The customer id. You can use this optional value to tie a user id to an authentication token. + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` + + // The referrer information. This is optional. + Referrer *string `json:"referrer,omitempty" xmlrpc:"referrer,omitempty"` + + // The managed token string + Token *string `json:"token,omitempty" xmlrpc:"token,omitempty"` +} + +// The SoftLayer_Network_Customer_Subnet data type contains general information relating to a single customer subnet (remote). +type Network_Customer_Subnet struct { + Entity + + // The account id a customer subnet belongs to. + AccountId *int `json:"accountId,omitempty" xmlrpc:"accountId,omitempty"` + + // A subnet's Classless Inter-Domain Routing prefix. This is a number between 0 and 32 signifying the number of bits in a subnet's netmask. These bits separate a subnet's network address from it's host addresses. It performs the same function as the ''netmask'' property, but is represented as an integer. + Cidr *int `json:"cidr,omitempty" xmlrpc:"cidr,omitempty"` + + // A customer subnet's unique identifier. + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // A count of all ip addresses associated with a subnet. + IpAddressCount *uint `json:"ipAddressCount,omitempty" xmlrpc:"ipAddressCount,omitempty"` + + // All ip addresses associated with a subnet. + IpAddresses []Network_Customer_Subnet_IpAddress `json:"ipAddresses,omitempty" xmlrpc:"ipAddresses,omitempty"` + + // A bitmask in dotted-quad format that is used to separate a subnet's network address from it's host addresses. This performs the same function as the ''cidr'' property, but is expressed in a string format. + Netmask *string `json:"netmask,omitempty" xmlrpc:"netmask,omitempty"` + + // A subnet's network identifier. This is the first IP address of a subnet. + NetworkIdentifier *string `json:"networkIdentifier,omitempty" xmlrpc:"networkIdentifier,omitempty"` + + // The total number of ip addresses in a subnet. + TotalIpAddresses *int `json:"totalIpAddresses,omitempty" xmlrpc:"totalIpAddresses,omitempty"` +} + +// The SoftLayer_Network_Customer_Subnet_IpAddress data type contains general information relating to a single Customer Subnet (Remote) IPv4 address. +type Network_Customer_Subnet_IpAddress struct { + Entity + + // Unique identifier for an ip address. + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // An IP address expressed in dotted quad format. + IpAddress *string `json:"ipAddress,omitempty" xmlrpc:"ipAddress,omitempty"` + + // An IP address' user defined note. + Notes *string `json:"notes,omitempty" xmlrpc:"notes,omitempty"` + + // The customer subnet (remote) that the ip address belongs to. + Subnet *Network_Customer_Subnet `json:"subnet,omitempty" xmlrpc:"subnet,omitempty"` + + // The unique identifier for the customer subnet (remote) the ip address belongs to. + SubnetId *int `json:"subnetId,omitempty" xmlrpc:"subnetId,omitempty"` + + // A count of all the address translations that are tied to an IP address. + TranslationCount *uint `json:"translationCount,omitempty" xmlrpc:"translationCount,omitempty"` + + // All the address translations that are tied to an IP address. + Translations []Network_Tunnel_Module_Context_Address_Translation `json:"translations,omitempty" xmlrpc:"translations,omitempty"` +} + +// The SoftLayer_Network_Firewall_AccessControlList data type contains general information relating to a single SoftLayer firewall access to controll list. This is the object which ties the running rules to a specific context. Use the [[SoftLayer Network Firewall Template]] service to pull SoftLayer recommended rule set templates. Use the [[SoftLayer Network Firewall Update Request]] service to submit a firewall update request. +type Network_Firewall_AccessControlList struct { + Entity + + // no documentation yet + Direction *string `json:"direction,omitempty" xmlrpc:"direction,omitempty"` + + // no documentation yet + FirewallContextInterfaceId *int `json:"firewallContextInterfaceId,omitempty" xmlrpc:"firewallContextInterfaceId,omitempty"` + + // no documentation yet + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // A count of the update requests made for this firewall. + NetworkFirewallUpdateRequestCount *uint `json:"networkFirewallUpdateRequestCount,omitempty" xmlrpc:"networkFirewallUpdateRequestCount,omitempty"` + + // The update requests made for this firewall. + NetworkFirewallUpdateRequests []Network_Firewall_Update_Request `json:"networkFirewallUpdateRequests,omitempty" xmlrpc:"networkFirewallUpdateRequests,omitempty"` + + // no documentation yet + NetworkVlan *Network_Vlan `json:"networkVlan,omitempty" xmlrpc:"networkVlan,omitempty"` + + // A count of the currently running rule set of this context access control list firewall. + RuleCount *uint `json:"ruleCount,omitempty" xmlrpc:"ruleCount,omitempty"` + + // The currently running rule set of this context access control list firewall. + Rules []Network_Vlan_Firewall_Rule `json:"rules,omitempty" xmlrpc:"rules,omitempty"` +} + +// The SoftLayer_Network_Firewall_Interface data type contains general information relating to a single SoftLayer firewall interface. This is the object which ties the firewall context access control list to a firewall. Use the [[SoftLayer Network Firewall Template]] service to pull SoftLayer recommended rule set templates. Use the [[SoftLayer Network Firewall Update Request]] service to submit a firewall update request. +type Network_Firewall_Interface struct { + Network_Firewall_Module_Context_Interface +} + +// no documentation yet +type Network_Firewall_Module_Context_Interface struct { + Entity + + // A count of + FirewallContextAccessControlListCount *uint `json:"firewallContextAccessControlListCount,omitempty" xmlrpc:"firewallContextAccessControlListCount,omitempty"` + + // no documentation yet + FirewallContextAccessControlLists []Network_Firewall_AccessControlList `json:"firewallContextAccessControlLists,omitempty" xmlrpc:"firewallContextAccessControlLists,omitempty"` + + // no documentation yet + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // no documentation yet + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` + + // no documentation yet + NetworkVlan *Network_Vlan `json:"networkVlan,omitempty" xmlrpc:"networkVlan,omitempty"` +} + +// The SoftLayer_Network_Firewall_Template type contains general information for a SoftLayer network firewall template. +// +// Firewall templates are recommend rule sets for use with SoftLayer Hardware Firewall (Dedicated). These optimized templates are designed to balance security restriction with application availability. The templates given may be altered to provide custom network security, or may be used as-is for basic security. At least one rule set MUST be applied for the firewall to block traffic. Use the [[SoftLayer Network Component Firewall]] service to view current rules. Use the [[SoftLayer Network Firewall Update Request]] service to submit a firewall update request. +type Network_Firewall_Template struct { + Entity + + // A Firewall template's internal identifier. + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // The name of the firewall rules template. + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` + + // A count of the rule set that belongs to this firewall rules template. + RuleCount *uint `json:"ruleCount,omitempty" xmlrpc:"ruleCount,omitempty"` + + // The rule set that belongs to this firewall rules template. + Rules []Network_Firewall_Template_Rule `json:"rules,omitempty" xmlrpc:"rules,omitempty"` +} + +// The SoftLayer_Network_Component_Firewall_Rule type contains general information relating to a single SoftLayer firewall template rule. Use the [[SoftLayer Network Component Firewall]] service to view current rules. Use the [[SoftLayer Network Firewall Update Request]] service to submit a firewall update request. +type Network_Firewall_Template_Rule struct { + Entity + + // The action that this template rule is to take [permit or deny]. + Action *string `json:"action,omitempty" xmlrpc:"action,omitempty"` + + // The destination IP address considered for determining rule application. + DestinationIpAddress *string `json:"destinationIpAddress,omitempty" xmlrpc:"destinationIpAddress,omitempty"` + + // The destination IP subnet mask considered for determining rule application. + DestinationIpSubnetMask *string `json:"destinationIpSubnetMask,omitempty" xmlrpc:"destinationIpSubnetMask,omitempty"` + + // The ending (upper end of range) destination port considered for determining rule application. + DestinationPortRangeEnd *int `json:"destinationPortRangeEnd,omitempty" xmlrpc:"destinationPortRangeEnd,omitempty"` + + // The starting (lower end of range) destination port considered for determining rule application. + DestinationPortRangeStart *int `json:"destinationPortRangeStart,omitempty" xmlrpc:"destinationPortRangeStart,omitempty"` + + // The firewall template that this rule is attached to. + FirewallTemplate *Network_Firewall_Template `json:"firewallTemplate,omitempty" xmlrpc:"firewallTemplate,omitempty"` + + // The unique identifier of the firewall template that a firewall template rule is associated with. + FirewallTemplateId *int `json:"firewallTemplateId,omitempty" xmlrpc:"firewallTemplateId,omitempty"` + + // A Firewall template rule's internal identifier. + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // The notes field for the firewall template rule. + Notes *string `json:"notes,omitempty" xmlrpc:"notes,omitempty"` + + // The numeric value describing the order in which the rule set should be applied. + OrderValue *int `json:"orderValue,omitempty" xmlrpc:"orderValue,omitempty"` + + // The protocol considered for determining rule application. + Protocol *string `json:"protocol,omitempty" xmlrpc:"protocol,omitempty"` + + // The source IP address considered for determining rule application. + SourceIpAddress *string `json:"sourceIpAddress,omitempty" xmlrpc:"sourceIpAddress,omitempty"` + + // The source IP subnet mask considered for determining rule application. + SourceIpSubnetMask *string `json:"sourceIpSubnetMask,omitempty" xmlrpc:"sourceIpSubnetMask,omitempty"` +} + +// The SoftLayer_Network_Firewall_Update_Request data type contains information relating to a SoftLayer network firewall update request. Use the [[SoftLayer Network Component Firewall]] service to view current rules. Use the [[SoftLayer Network Firewall Template]] service to pull SoftLayer recommended rule set templates. +type Network_Firewall_Update_Request struct { + Entity + + // Timestamp of when the rules from the update request were applied to the firewall. + ApplyDate *Time `json:"applyDate,omitempty" xmlrpc:"applyDate,omitempty"` + + // The user that authorized this firewall update request. + AuthorizingUser *User_Interface `json:"authorizingUser,omitempty" xmlrpc:"authorizingUser,omitempty"` + + // The unique identifier of the user that authorized the update request. + AuthorizingUserId *int `json:"authorizingUserId,omitempty" xmlrpc:"authorizingUserId,omitempty"` + + // The type of user that authorized the update request [EMP or USR]. + AuthorizingUserType *string `json:"authorizingUserType,omitempty" xmlrpc:"authorizingUserType,omitempty"` + + // Flag indicating whether the request is for a rule bypass configuration [0 or 1]. + BypassFlag *bool `json:"bypassFlag,omitempty" xmlrpc:"bypassFlag,omitempty"` + + // Timestamp of the creation of the record. + CreateDate *Time `json:"createDate,omitempty" xmlrpc:"createDate,omitempty"` + + // The unique identifier of the firewall access control list that the rule set is destined for. + FirewallContextAccessControlListId *int `json:"firewallContextAccessControlListId,omitempty" xmlrpc:"firewallContextAccessControlListId,omitempty"` + + // The downstream virtual server that the rule set will be applied to. + Guest *Virtual_Guest `json:"guest,omitempty" xmlrpc:"guest,omitempty"` + + // The downstream server that the rule set will be applied to. + Hardware *Hardware `json:"hardware,omitempty" xmlrpc:"hardware,omitempty"` + + // The unique identifier of the server that the rule set is destined to protect. + HardwareId *int `json:"hardwareId,omitempty" xmlrpc:"hardwareId,omitempty"` + + // The unique identifier of the firewall update request. + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // The network component firewall that the rule set will be applied to. + NetworkComponentFirewall *Network_Component_Firewall `json:"networkComponentFirewall,omitempty" xmlrpc:"networkComponentFirewall,omitempty"` + + // The unique identifier of the network component firewall that the rule set is destined for. + NetworkComponentFirewallId *int `json:"networkComponentFirewallId,omitempty" xmlrpc:"networkComponentFirewallId,omitempty"` + + // A count of the group of rules contained within the update request. + RuleCount *uint `json:"ruleCount,omitempty" xmlrpc:"ruleCount,omitempty"` + + // The group of rules contained within the update request. + Rules []Network_Firewall_Update_Request_Rule `json:"rules,omitempty" xmlrpc:"rules,omitempty"` +} + +// A SoftLayer_Ticket_Update_Customer is a single update made by a customer to a ticket. +type Network_Firewall_Update_Request_Customer struct { + Network_Firewall_Update_Request +} + +// The SoftLayer_Network_Firewall_Update_Request_Employee data type returns a user object for the SoftLayer employee that created the request. +type Network_Firewall_Update_Request_Employee struct { + Network_Firewall_Update_Request +} + +// The SoftLayer_Network_Firewall_Update_Request_Rule type contains information relating to a SoftLayer network firewall update request rule. This rule is a member of a [[SoftLayer Network Firewall Update Request]]. Use the [[SoftLayer Network Component Firewall]] service to view current rules. Use the [[SoftLayer Network Firewall Template]] service to pull SoftLayer recommended rule set templates. +type Network_Firewall_Update_Request_Rule struct { + Entity + + // The action that this update request rule is to take [permit or deny]. + Action *string `json:"action,omitempty" xmlrpc:"action,omitempty"` + + // The destination IP address considered for determining rule application. + DestinationIpAddress *string `json:"destinationIpAddress,omitempty" xmlrpc:"destinationIpAddress,omitempty"` + + // The CIDR is used for determining rule application. This value will + DestinationIpCidr *int `json:"destinationIpCidr,omitempty" xmlrpc:"destinationIpCidr,omitempty"` + + // The destination IP subnet mask considered for determining rule application. + DestinationIpSubnetMask *string `json:"destinationIpSubnetMask,omitempty" xmlrpc:"destinationIpSubnetMask,omitempty"` + + // The ending (upper end of range) destination port considered for determining rule application. + DestinationPortRangeEnd *int `json:"destinationPortRangeEnd,omitempty" xmlrpc:"destinationPortRangeEnd,omitempty"` + + // The starting (lower end of range) destination port considered for determining rule application. + DestinationPortRangeStart *int `json:"destinationPortRangeStart,omitempty" xmlrpc:"destinationPortRangeStart,omitempty"` + + // The update request that this rule belongs to. + FirewallUpdateRequest *Network_Firewall_Update_Request `json:"firewallUpdateRequest,omitempty" xmlrpc:"firewallUpdateRequest,omitempty"` + + // The unique identifier of the firewall update request that a firewall update request rule is associated with. + FirewallUpdateRequestId *int `json:"firewallUpdateRequestId,omitempty" xmlrpc:"firewallUpdateRequestId,omitempty"` + + // A Firewall update request rule's internal identifier. + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // The notes field for the firewall update request rule. + Notes *string `json:"notes,omitempty" xmlrpc:"notes,omitempty"` + + // The numeric value describing the order in which the rule should be applied. + OrderValue *int `json:"orderValue,omitempty" xmlrpc:"orderValue,omitempty"` + + // The protocol considered for determining rule application. + Protocol *string `json:"protocol,omitempty" xmlrpc:"protocol,omitempty"` + + // The source IP address considered for determining rule application. + SourceIpAddress *string `json:"sourceIpAddress,omitempty" xmlrpc:"sourceIpAddress,omitempty"` + + // The CIDR is used for determining rule application. This value will + SourceIpCidr *int `json:"sourceIpCidr,omitempty" xmlrpc:"sourceIpCidr,omitempty"` + + // The source IP subnet mask considered for determining rule application. + SourceIpSubnetMask *string `json:"sourceIpSubnetMask,omitempty" xmlrpc:"sourceIpSubnetMask,omitempty"` + + // Whether this rule is an IPv4 rule or an IPv6 rule. If + Version *int `json:"version,omitempty" xmlrpc:"version,omitempty"` +} + +// The SoftLayer_Network_Firewall_Update_Request_Rule_Version6 type contains information relating to a SoftLayer network firewall update request rule for IPv6. This rule is a member of a [[SoftLayer Network Firewall Update Request]]. Use the [[SoftLayer Network Component Firewall]] service to view current rules. Use the [[SoftLayer Network Firewall Template]] service to pull SoftLayer recommended rule set templates. +type Network_Firewall_Update_Request_Rule_Version6 struct { + Network_Firewall_Update_Request_Rule +} + +// no documentation yet +type Network_Gateway struct { + Entity + + // The account for this gateway. + Account *Account `json:"account,omitempty" xmlrpc:"account,omitempty"` + + // The internal identifier of the account assigned to this gateway. + AccountId *int `json:"accountId,omitempty" xmlrpc:"accountId,omitempty"` + + // The VRRP group number for this gateway. This is set internally and cannot be provided on create. + GroupNumber *int `json:"groupNumber,omitempty" xmlrpc:"groupNumber,omitempty"` + + // A gateway's internal identifier. + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // A count of all VLANs trunked to this gateway. + InsideVlanCount *uint `json:"insideVlanCount,omitempty" xmlrpc:"insideVlanCount,omitempty"` + + // All VLANs trunked to this gateway. + InsideVlans []Network_Gateway_Vlan `json:"insideVlans,omitempty" xmlrpc:"insideVlans,omitempty"` + + // A count of the members for this gateway. + MemberCount *uint `json:"memberCount,omitempty" xmlrpc:"memberCount,omitempty"` + + // The members for this gateway. + Members []Network_Gateway_Member `json:"members,omitempty" xmlrpc:"members,omitempty"` + + // A gateway's name. This is required on create and can be no more than 255 characters. + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` + + // A gateway's network space. Currently, only 'private' or 'both' is allowed. When this value is 'private', it is a backend gateway only. Otherwise, it is a gateway for both frontend and backend traffic. + NetworkSpace *string `json:"networkSpace,omitempty" xmlrpc:"networkSpace,omitempty"` + + // The private gateway IP address. + PrivateIpAddress *Network_Subnet_IpAddress `json:"privateIpAddress,omitempty" xmlrpc:"privateIpAddress,omitempty"` + + // The internal identifier of the private IP address for this gateway. + PrivateIpAddressId *int `json:"privateIpAddressId,omitempty" xmlrpc:"privateIpAddressId,omitempty"` + + // The private VLAN for accessing this gateway. + PrivateVlan *Network_Vlan `json:"privateVlan,omitempty" xmlrpc:"privateVlan,omitempty"` + + // The internal identifier of the private VLAN for this gateway. + PrivateVlanId *int `json:"privateVlanId,omitempty" xmlrpc:"privateVlanId,omitempty"` + + // The public gateway IP address. + PublicIpAddress *Network_Subnet_IpAddress `json:"publicIpAddress,omitempty" xmlrpc:"publicIpAddress,omitempty"` + + // The internal identifier of the public IP address for this gateway. + PublicIpAddressId *int `json:"publicIpAddressId,omitempty" xmlrpc:"publicIpAddressId,omitempty"` + + // The public gateway IPv6 address. + PublicIpv6Address *Network_Subnet_IpAddress `json:"publicIpv6Address,omitempty" xmlrpc:"publicIpv6Address,omitempty"` + + // The internal identifier of the public IPv6 address for this gateway. + PublicIpv6AddressId *int `json:"publicIpv6AddressId,omitempty" xmlrpc:"publicIpv6AddressId,omitempty"` + + // The public VLAN for accessing this gateway. + PublicVlan *Network_Vlan `json:"publicVlan,omitempty" xmlrpc:"publicVlan,omitempty"` + + // The internal identifier of the public VLAN for this gateway. This is set internally and cannot be provided on create. + PublicVlanId *int `json:"publicVlanId,omitempty" xmlrpc:"publicVlanId,omitempty"` + + // The current status of the gateway. + Status *Network_Gateway_Status `json:"status,omitempty" xmlrpc:"status,omitempty"` + + // The current status of this gateway. This is always active unless there is a process running to change the gateway. This can not be set on creation. + StatusId *int `json:"statusId,omitempty" xmlrpc:"statusId,omitempty"` +} + +// no documentation yet +type Network_Gateway_Member struct { + Entity + + // The device for this member. + Hardware *Hardware `json:"hardware,omitempty" xmlrpc:"hardware,omitempty"` + + // The internal identifier of the hardware for this member. + HardwareId *int `json:"hardwareId,omitempty" xmlrpc:"hardwareId,omitempty"` + + // A gateway member's internal identifier. + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // The gateway this member belongs to. + NetworkGateway *Network_Gateway `json:"networkGateway,omitempty" xmlrpc:"networkGateway,omitempty"` + + // The internal identifier of the gateway this member belongs to. + NetworkGatewayId *int `json:"networkGatewayId,omitempty" xmlrpc:"networkGatewayId,omitempty"` + + // The priority for this gateway member. This is set internally and cannot be provided on create. + Priority *int `json:"priority,omitempty" xmlrpc:"priority,omitempty"` +} + +// no documentation yet +type Network_Gateway_Status struct { + Entity + + // A gateway status's description. + Description *string `json:"description,omitempty" xmlrpc:"description,omitempty"` + + // A gateway status's internal identifier. + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // A gateway status's programmatic name. + KeyName *string `json:"keyName,omitempty" xmlrpc:"keyName,omitempty"` + + // A gateway status's human-friendly name. + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` +} + +// no documentation yet +type Network_Gateway_Vlan struct { + Entity + + // If true, this VLAN is bypassed. If false, it is routed through the gateway. + BypassFlag *bool `json:"bypassFlag,omitempty" xmlrpc:"bypassFlag,omitempty"` + + // A gateway VLAN's internal identifier. + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // The gateway this VLAN is attached to. + NetworkGateway *Network_Gateway `json:"networkGateway,omitempty" xmlrpc:"networkGateway,omitempty"` + + // The internal identifier of the gateway this VLAN is attached to. + NetworkGatewayId *int `json:"networkGatewayId,omitempty" xmlrpc:"networkGatewayId,omitempty"` + + // The network VLAN record. + NetworkVlan *Network_Vlan `json:"networkVlan,omitempty" xmlrpc:"networkVlan,omitempty"` + + // The internal identifier of the network VLAN. + NetworkVlanId *int `json:"networkVlanId,omitempty" xmlrpc:"networkVlanId,omitempty"` +} + +// The SoftLayer_Network_LBaaS_Listener type presents a data structure for a load balancers listener, also called frontend. +type Network_LBaaS_Listener struct { + Entity + + // Limit of connections a listener can accept + ConnectionLimit *int `json:"connectionLimit,omitempty" xmlrpc:"connectionLimit,omitempty"` + + // Specifies when the listener was created. + CreateDate *Time `json:"createDate,omitempty" xmlrpc:"createDate,omitempty"` + + // no documentation yet + DefaultPool *Network_LBaaS_Pool `json:"defaultPool,omitempty" xmlrpc:"defaultPool,omitempty"` + + // no documentation yet + LoadBalancer *Network_LBaaS_LoadBalancer `json:"loadBalancer,omitempty" xmlrpc:"loadBalancer,omitempty"` + + // Specifies when the listener was updated previously. + ModifyDate *Time `json:"modifyDate,omitempty" xmlrpc:"modifyDate,omitempty"` + + // Listeners protocol, one of "TCP", "HTTP", "HTTPS". + Protocol *string `json:"protocol,omitempty" xmlrpc:"protocol,omitempty"` + + // Listeners protocol port number. + ProtocolPort *int `json:"protocolPort,omitempty" xmlrpc:"protocolPort,omitempty"` + + // The provisioning status of listener. + ProvisioningStatus *string `json:"provisioningStatus,omitempty" xmlrpc:"provisioningStatus,omitempty"` + + // This references to SSL/TLS certificate (optional) for a listener + TlsCertificateId *int `json:"tlsCertificateId,omitempty" xmlrpc:"tlsCertificateId,omitempty"` + + // The UUID of a listener. + Uuid *string `json:"uuid,omitempty" xmlrpc:"uuid,omitempty"` +} + +// The SoftLayer_Network_LBaaS_LoadBalancer type presents a structure containing attributes of a load balancer, and its related objects including listeners, pools and members. +type Network_LBaaS_LoadBalancer struct { + Entity + + // The account this load balancer belongs to. + AccountId *int `json:"accountId,omitempty" xmlrpc:"accountId,omitempty"` + + // Specifies when a load balancer was created. + CreateDate *Time `json:"createDate,omitempty" xmlrpc:"createDate,omitempty"` + + // Datacenter, where load balancer is located. + Datacenter *Location `json:"datacenter,omitempty" xmlrpc:"datacenter,omitempty"` + + // Description of a load balancer. + Description *string `json:"description,omitempty" xmlrpc:"description,omitempty"` + + // no documentation yet + IpAddress *Network_Subnet_IpAddress `json:"ipAddress,omitempty" xmlrpc:"ipAddress,omitempty"` + + // Specifies if a load balancer is public=1 or private=0. + IsPublic *int `json:"isPublic,omitempty" xmlrpc:"isPublic,omitempty"` + + // A count of listeners assigned to load balancer. + ListenerCount *uint `json:"listenerCount,omitempty" xmlrpc:"listenerCount,omitempty"` + + // Listeners assigned to load balancer. + Listeners []Network_LBaaS_Listener `json:"listeners,omitempty" xmlrpc:"listeners,omitempty"` + + // This references to location with type datacenter + LocationId *int `json:"locationId,omitempty" xmlrpc:"locationId,omitempty"` + + // A count of members assigned to load balancer. + MemberCount *uint `json:"memberCount,omitempty" xmlrpc:"memberCount,omitempty"` + + // Members assigned to load balancer. + Members []Network_LBaaS_Member `json:"members,omitempty" xmlrpc:"members,omitempty"` + + // Specifies when a load balancer was updated last. + ModifyDate *Time `json:"modifyDate,omitempty" xmlrpc:"modifyDate,omitempty"` + + // The load balancer's name. + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` + + // The operation status "ONLINE" or "OFFLINE" of a load balancer. + OperatingStatus *string `json:"operatingStatus,omitempty" xmlrpc:"operatingStatus,omitempty"` + + // Error message of previous API call in case of failure + PreviousErrorText *string `json:"previousErrorText,omitempty" xmlrpc:"previousErrorText,omitempty"` + + // The provisioning status of a load balancer. + ProvisioningStatus *string `json:"provisioningStatus,omitempty" xmlrpc:"provisioningStatus,omitempty"` + + // The UUID of a load balancer. + Uuid *string `json:"uuid,omitempty" xmlrpc:"uuid,omitempty"` +} + +// SoftLayer_Network_LBaaS_LoadBalancerProtocolConfiguration specifies the protocol, port, maximum number of allowed connections and session stickiness for load balancer's front- and backend. +type Network_LBaaS_LoadBalancerProtocolConfiguration struct { + Entity + + // Backends port + BackendPort *int `json:"backendPort,omitempty" xmlrpc:"backendPort,omitempty"` + + // <
  • Total number of current sessions
  • Total number of error requests
  • Total number of received packets
  • Total number of transmitted packets
  • Total number of accepted/alive connections
  • Request rate
  • Number of members down
  • NUmber of members up
  • Throughput
  • Connection rate
  • +type Network_LBaaS_LoadBalancerStatistics struct { + Entity + + // Number of members in DOWN health state + NumberOfMembersDown *int `json:"numberOfMembersDown,omitempty" xmlrpc:"numberOfMembersDown,omitempty"` + + // Number of members in UP health state + NumberOfMembersUp *int `json:"numberOfMembersUp,omitempty" xmlrpc:"numberOfMembersUp,omitempty"` + + // Number of total established connections + TotalConnections *int `json:"totalConnections,omitempty" xmlrpc:"totalConnections,omitempty"` + + // Number of total current sessions + TotalCurrentSessions *int `json:"totalCurrentSessions,omitempty" xmlrpc:"totalCurrentSessions,omitempty"` +} + +// The SoftLayer_Network_LBaaS_Member represents the backend member for a load balancer. It can be either a virtual server or a bare metal machine. +type Network_LBaaS_Member struct { + Entity + + // The IP address of a load balancer member. + Address *string `json:"address,omitempty" xmlrpc:"address,omitempty"` + + // Specifies when a load balancers + CreateDate *Time `json:"createDate,omitempty" xmlrpc:"createDate,omitempty"` + + // no documentation yet + LoadBalancer *Network_LBaaS_LoadBalancer `json:"loadBalancer,omitempty" xmlrpc:"loadBalancer,omitempty"` + + // Specifies when a load balancers + ModifyDate *Time `json:"modifyDate,omitempty" xmlrpc:"modifyDate,omitempty"` + + // The provisioning status of a load balancer member. + ProvisioningStatus *string `json:"provisioningStatus,omitempty" xmlrpc:"provisioningStatus,omitempty"` + + // The UUID of a load balancer member. + Uuid *string `json:"uuid,omitempty" xmlrpc:"uuid,omitempty"` + + // The weight of a load balancer member. + Weight *int `json:"weight,omitempty" xmlrpc:"weight,omitempty"` +} + +// SoftLayer_Network_LBaaS_MemberHealth is a collection member metrics retrieved from a LBaaS VSI instance. The available metrics are:
    • Name of the member
    • Status of the member up or down
    • Uuid of the member
    +type Network_LBaaS_MemberHealth struct { + Entity + + // Members status (UP/DOWN). + Status *string `json:"status,omitempty" xmlrpc:"status,omitempty"` + + // Members UUID. + Uuid *string `json:"uuid,omitempty" xmlrpc:"uuid,omitempty"` +} + +// The SoftLayer_Network_LBaaS_Pool type presents a structure containing attributes of a load balancer pool such as the protocol, protocol port and the load balancing algorithm used. +type Network_LBaaS_Pool struct { + Entity + + // Create date of the pool instance + CreateDate *Time `json:"createDate,omitempty" xmlrpc:"createDate,omitempty"` + + // no documentation yet + LoadBalancer *Network_LBaaS_LoadBalancer `json:"loadBalancer,omitempty" xmlrpc:"loadBalancer,omitempty"` + + // Load balancing algorithm: "ROUNDROBIN", "WEIGHTED_RR", "LEASTCONNECTION" + LoadBalancingAlgorithm *string `json:"loadBalancingAlgorithm,omitempty" xmlrpc:"loadBalancingAlgorithm,omitempty"` + + // A count of + MemberCount *uint `json:"memberCount,omitempty" xmlrpc:"memberCount,omitempty"` + + // no documentation yet + Members []Network_LBaaS_Member `json:"members,omitempty" xmlrpc:"members,omitempty"` + + // Last updated date of the pool + ModifyDate *Time `json:"modifyDate,omitempty" xmlrpc:"modifyDate,omitempty"` + + // Backends protocol, supported protocols are "TCP", "HTTP" + Protocol *string `json:"protocol,omitempty" xmlrpc:"protocol,omitempty"` + + // Backends protocol port + ProtocolPort *int `json:"protocolPort,omitempty" xmlrpc:"protocolPort,omitempty"` + + // Provisioning status of a load balancer pool. + ProvisioningStatus *string `json:"provisioningStatus,omitempty" xmlrpc:"provisioningStatus,omitempty"` + + // no documentation yet + SessionAffinity *Network_LBaaS_SessionAffinity `json:"sessionAffinity,omitempty" xmlrpc:"sessionAffinity,omitempty"` + + // Instance uuid of the pool + Uuid *string `json:"uuid,omitempty" xmlrpc:"uuid,omitempty"` +} + +// SoftLayer_Network_LBaaS_PoolMembersHealth provides statistics of members belonging to a particular pool. +type Network_LBaaS_PoolMembersHealth struct { + Entity + + // Members statistics of the pool + MembersHealth []Network_LBaaS_MemberHealth `json:"membersHealth,omitempty" xmlrpc:"membersHealth,omitempty"` + + // Instance uuid of the pool + PoolUuid *string `json:"poolUuid,omitempty" xmlrpc:"poolUuid,omitempty"` +} + +// SoftLayer_Network_LBaaS_SessionAffinity represents the session affinity, aka session persistence, configuration for a load balancer backend pool. +type Network_LBaaS_SessionAffinity struct { + Entity + + // no documentation yet + Pool *Network_LBaaS_Pool `json:"pool,omitempty" xmlrpc:"pool,omitempty"` + + // Type of the session persistence + Type *string `json:"type,omitempty" xmlrpc:"type,omitempty"` +} + +// The SoftLayer_Network_LoadBalancer_Global_Account data type contains the properties for a single global load balancer account. The properties you are able to edit are fallbackIp, loadBalanceTypeId, and notes. The hosts relational property can be used for creating and editing hosts that belong to the global load balancer account. The [[SoftLayer_Network_LoadBalancer_Global_Account::editObject|editObject]] method contains details on creating and edited hosts through the hosts relational property. +type Network_LoadBalancer_Global_Account struct { + Entity + + // Your SoftLayer customer account. + Account *Account `json:"account,omitempty" xmlrpc:"account,omitempty"` + + // The maximum number of hosts that a global load balancer account is allowed to have. + AllowedNumberOfHosts *int `json:"allowedNumberOfHosts,omitempty" xmlrpc:"allowedNumberOfHosts,omitempty"` + + // The average amount of connections per second used within the current billing cycle. This number is updated daily. + AverageConnectionsPerSecond *Float64 `json:"averageConnectionsPerSecond,omitempty" xmlrpc:"averageConnectionsPerSecond,omitempty"` + + // The current billing item for a Global Load Balancer account. + BillingItem *Billing_Item `json:"billingItem,omitempty" xmlrpc:"billingItem,omitempty"` + + // The amount of connections per second a global load balancer account may use within a billing cycle without being billed for an overage. + ConnectionsPerSecond *int `json:"connectionsPerSecond,omitempty" xmlrpc:"connectionsPerSecond,omitempty"` + + // The IP address that will be return to a DNS request when none of the hosts for a global load balancer account could be returned. + FallbackIp *string `json:"fallbackIp,omitempty" xmlrpc:"fallbackIp,omitempty"` + + // A count of the hosts in the load balancing pool for a global load balancer account. + HostCount *uint `json:"hostCount,omitempty" xmlrpc:"hostCount,omitempty"` + + // The hostname of a global load balancer account that is being load balanced. + Hostname *string `json:"hostname,omitempty" xmlrpc:"hostname,omitempty"` + + // The hosts in the load balancing pool for a global load balancer account. + Hosts []Network_LoadBalancer_Global_Host `json:"hosts,omitempty" xmlrpc:"hosts,omitempty"` + + // The unique identifier of a global load balancer account. + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // The load balance method of a global load balancer account + LoadBalanceType *Network_LoadBalancer_Global_Type `json:"loadBalanceType,omitempty" xmlrpc:"loadBalanceType,omitempty"` + + // The identifier of the load balance method for a global load balancer account. + LoadBalanceTypeId *int `json:"loadBalanceTypeId,omitempty" xmlrpc:"loadBalanceTypeId,omitempty"` + + // A flag indicating that the global load balancer is a managed resource. + ManagedResourceFlag *bool `json:"managedResourceFlag,omitempty" xmlrpc:"managedResourceFlag,omitempty"` + + // Additional customer defined information for a global load balancer account. + Notes *string `json:"notes,omitempty" xmlrpc:"notes,omitempty"` +} + +// The SoftLayer_Network_LoadBalancer_Global_Host data type represents a single host that belongs to a global load balancer account's load balancing pool. +// +// The destination IP address of a host must be one that belongs to your SoftLayer customer account, or to a datacenter load balancer virtual ip that belongs to your SoftLayer customer account. The destination IP address and port of a global load balancer host is a required field and must exist during creation and can not be removed. The acceptable values for the health check type are 'none', 'http', and 'tcp'. The status property is updated in 5 minute intervals and the hits property is updated in 10 minute intervals. +// +// The order of the host is only important if you are using the 'failover' load balance method, and the weight is only important if you are using the 'weighted round robin' load balance method. +type Network_LoadBalancer_Global_Host struct { + Entity + + // The IP address of the host that will be returned by the global load balancers in response to a dns request. + DestinationIp *string `json:"destinationIp,omitempty" xmlrpc:"destinationIp,omitempty"` + + // The port of the host that will be used for health checks. + DestinationPort *int `json:"destinationPort,omitempty" xmlrpc:"destinationPort,omitempty"` + + // Whether the host is enabled or not. The value can be '0' for disabled, or '1' for enabled. + Enabled *int `json:"enabled,omitempty" xmlrpc:"enabled,omitempty"` + + // The health check type of a host. Valid values include 'none', 'http', and 'tcp'. + HealthCheck *string `json:"healthCheck,omitempty" xmlrpc:"healthCheck,omitempty"` + + // The number of times the host was selected by the load balance method. + Hits *Float64 `json:"hits,omitempty" xmlrpc:"hits,omitempty"` + + // The unique identifier of a global load balancer host. + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // The order of this host within the load balance pool. This is only significant if the load balance method is set to failover. + LoadBalanceOrder *int `json:"loadBalanceOrder,omitempty" xmlrpc:"loadBalanceOrder,omitempty"` + + // The global load balancer account a host belongs to. + LoadBalancerAccount *Network_LoadBalancer_Global_Account `json:"loadBalancerAccount,omitempty" xmlrpc:"loadBalancerAccount,omitempty"` + + // The location of a host in a datacenter.serverRoom format. + Location *string `json:"location,omitempty" xmlrpc:"location,omitempty"` + + // The health status of a host. The status can be either 'UP', 'DOWN', or null which could mean that the health check type is set to 'none' or an update to the ip, port, or health check type was recently done and the host is waiting for the new status. + Status *string `json:"status,omitempty" xmlrpc:"status,omitempty"` + + // The load balance weight of a host. The total weight of all hosts in the load balancing pool must not exceed 100. + Weight *int `json:"weight,omitempty" xmlrpc:"weight,omitempty"` +} + +// The SoftLayer_Network_LoadBalancer_Global_Type data type represents a single load balance method that can be assigned to a global load balancer account. The load balance method determines how hosts in a load balancing pool are chosen by the global load balancers. +type Network_LoadBalancer_Global_Type struct { + Entity + + // The unique identifier of a load balance method. + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // The name of a load balance method. + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` +} + +// The SoftLayer_Network_LoadBalancer_Service data type contains all the information relating to a specific service (destination) on a particular load balancer. +// +// Information retained on the object itself is the the source and destination of the service, routing type, weight, and whether or not the service is currently enabled. +type Network_LoadBalancer_Service struct { + Entity + + // Connection limit on this service. + ConnectionLimit *int `json:"connectionLimit,omitempty" xmlrpc:"connectionLimit,omitempty"` + + // Creation Date of this service + CreateDate *Time `json:"createDate,omitempty" xmlrpc:"createDate,omitempty"` + + // The IP Address of the real server you wish to direct traffic to. Your account must own this IP + DestinationIpAddress *string `json:"destinationIpAddress,omitempty" xmlrpc:"destinationIpAddress,omitempty"` + + // The port on the real server to direct the traffic. This can be different than the source port. If you wish to obfuscate your HTTP traffic, you can accept requests on port 80 on the load balancer, then redirect them to port 932 on your real server. + DestinationPort *int `json:"destinationPort,omitempty" xmlrpc:"destinationPort,omitempty"` + + // A flag (either true or false) that determines if this particular service should be enabled on the load balancer. Set to false to bring the server out of rotation without losing your configuration + Enabled *bool `json:"enabled,omitempty" xmlrpc:"enabled,omitempty"` + + // The health check type for this service. If one is supplied, the load balancer will occasionally ping your server to determine if it is still up. Servers that are down are removed from the queue and will not be used to handle requests until their status returns to "up". The value of the health check is determined directly by what option you have selected for the routing type. + // + // {| + // |- + // ! Type + // ! Valid Health Checks + // |- + // | HTTP + // | HTTP, TCP, ICMP + // |- + // | TCP + // | HTTP, TCP, ICMP + // |- + // | FTP + // | TCP, ICMP + // |- + // | DNS + // | DNS, ICMP + // |- + // | UDP + // | None + // |} + // + // + HealthCheck *string `json:"healthCheck,omitempty" xmlrpc:"healthCheck,omitempty"` + + // The URL provided here (starting with /) is what the load balancer will request in order to perform a custom HTTP health check. You must specify either "GET /location/of/file.html" or "HEAD /location/of/file.php" + HealthCheckURL *string `json:"healthCheckURL,omitempty" xmlrpc:"healthCheckURL,omitempty"` + + // The expected response from the custom HTTP health check. If the requested page contains this response, the check succeeds. + HealthResponse *string `json:"healthResponse,omitempty" xmlrpc:"healthResponse,omitempty"` + + // Unique ID for this object, used for the getObject method, and must be set if you are editing this object. + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // Last modification date of this service + ModifyDate *Time `json:"modifyDate,omitempty" xmlrpc:"modifyDate,omitempty"` + + // Name of the load balancer service + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` + + // Holds whether this server is up or down. Does not affect load balancer configuration at all, just for the customer's informational purposes + Notes *string `json:"notes,omitempty" xmlrpc:"notes,omitempty"` + + // Peak historical connections since the creation of this service. Is reset any time you make a configuration change + PeakConnections *int `json:"peakConnections,omitempty" xmlrpc:"peakConnections,omitempty"` + + // The port on the load balancer that this service maps to. This is the port for incoming traffic, it needs to be shared with other services to form a group. + SourcePort *int `json:"sourcePort,omitempty" xmlrpc:"sourcePort,omitempty"` + + // The connection type of this service. Valid values are HTTP, FTP, TCP, UDP, and DNS. The value of this variable affects available values of healthCheck, listed in that variable's description + Type *string `json:"type,omitempty" xmlrpc:"type,omitempty"` + + // The load balancer that this service belongs to. + Vip *Network_LoadBalancer_VirtualIpAddress `json:"vip,omitempty" xmlrpc:"vip,omitempty"` + + // Unique ID for this object's parent. Probably not useful in the API, as this object will always be a child of a VirtualIpAddress anyway. + VipId *int `json:"vipId,omitempty" xmlrpc:"vipId,omitempty"` + + // Weight affects the choices the load balancer makes between your services. The weight of each service is expressed as a percentage of the TOTAL CONNECTION LIMIT on the virtual IP Address. All services draw from the same pool of connections, so if you expect to have 4 times as much HTTP traffic as HTTPS, your weights for the above example routes would be 40%, 40%, 10%, 10% respectively. The weights should add up to 100% If you go over 100%, an exception will be thrown. Weights must be whole numbers, no fractions or decimals are accepted. + Weight *int `json:"weight,omitempty" xmlrpc:"weight,omitempty"` +} + +// The SoftLayer_Network_LoadBalancer_VirtualIpAddress data type contains all the information relating to a specific load balancer assigned to a customer account. +// +// Information retained on the object itself is the virtual IP address, load balancing method, and any notes that are related to the load balancer. There is also an array of SoftLayer_Network_LoadBalancer_Service objects, which represent the load balancer services, explained more fully in the SoftLayer_Network_LoadBalancer_Service documentation. +type Network_LoadBalancer_VirtualIpAddress struct { + Entity + + // The account that owns this load balancer. + Account *Account `json:"account,omitempty" xmlrpc:"account,omitempty"` + + // The current billing item for the Load Balancer. + BillingItem *Billing_Item `json:"billingItem,omitempty" xmlrpc:"billingItem,omitempty"` + + // Connection limit on this VIP. Can be upgraded through the upgradeConnectionLimit() function + ConnectionLimit *int `json:"connectionLimit,omitempty" xmlrpc:"connectionLimit,omitempty"` + + // If false, this VIP and associated services may be edited via the portal or the API. If true, you must configure this VIP manually on the device. + CustomerManagedFlag *int `json:"customerManagedFlag,omitempty" xmlrpc:"customerManagedFlag,omitempty"` + + // Unique ID for this object, used for the getObject method, and must be set if you are editing this object. + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // The load balancing method that determines which server is used "next" by the load balancer. The method is stored in an abbreviated form, represented in parentheses after the full name. Methods include: Round Robin (Value "rr"): Each server is used sequentially in a circular queue Shortest Response (Value "sr"): The server with the lowest ping at the last health check gets the next request Least Connections (Value "lc"): The server with the least current connections is given the next request Persistent IP - Round Robin (Value "pi"): The same server will be returned to a request during a users session. Servers are chosen through round robin. Persistent IP - Shortest Response (Value "pi-sr"): The same server will be returned to a request during a users session. Servers are chosen through shortest response. Persistent IP - Least Connections (Value "pi-lc"): The same server will be returned to a request during a users session. Servers are chosen through least connections. Insert Cookie - Round Robin (Value "ic"): Inserts a cookie into the HTTP stream that will tie that client to a particular balanced server. Servers are chosen through round robin. Insert Cookie - Shortest Response (Value "ic-sr"): Inserts a cookie into the HTTP stream that will tie that client to a particular balanced server. Servers are chosen through shortest response. Insert Cookie - Least Connections (Value "ic-lc"): Inserts a cookie into the HTTP stream that will tie that client to a particular balanced server. Servers are chosen through least connections. + LoadBalancingMethod *string `json:"loadBalancingMethod,omitempty" xmlrpc:"loadBalancingMethod,omitempty"` + + // A human readable version of loadBalancingMethod, intended mainly for API users. + LoadBalancingMethodFullName *string `json:"loadBalancingMethodFullName,omitempty" xmlrpc:"loadBalancingMethodFullName,omitempty"` + + // A flag indicating that the load balancer is a managed resource. + ManagedResourceFlag *bool `json:"managedResourceFlag,omitempty" xmlrpc:"managedResourceFlag,omitempty"` + + // Date this load balancer was last modified + ModifyDate *Time `json:"modifyDate,omitempty" xmlrpc:"modifyDate,omitempty"` + + // The name of the load balancer instance + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` + + // User-created notes on this load balancer. + Notes *string `json:"notes,omitempty" xmlrpc:"notes,omitempty"` + + // The unique identifier of the Security Certificate to be utilized when SSL support is enabled. + SecurityCertificateId *int `json:"securityCertificateId,omitempty" xmlrpc:"securityCertificateId,omitempty"` + + // A count of the services on this load balancer. + ServiceCount *uint `json:"serviceCount,omitempty" xmlrpc:"serviceCount,omitempty"` + + // the services on this load balancer. + Services []Network_LoadBalancer_Service `json:"services,omitempty" xmlrpc:"services,omitempty"` + + // This is the port for incoming traffic. + SourcePort *int `json:"sourcePort,omitempty" xmlrpc:"sourcePort,omitempty"` + + // The connection type of this VIP. Valid values are HTTP, FTP, TCP, UDP, and DNS. + Type *string `json:"type,omitempty" xmlrpc:"type,omitempty"` + + // The virtual, public-facing IP address for your load balancer. This is the address of all incoming traffic + VirtualIpAddress *string `json:"virtualIpAddress,omitempty" xmlrpc:"virtualIpAddress,omitempty"` +} + +// The Syslog class holds a single line from the Networking Firewall "Syslog" record, for firewall detected and blocked attempts on a server. +type Network_Logging_Syslog struct { + Entity + + // Timestamp for when the connection was blocked by the firewall + CreateDate *Time `json:"createDate,omitempty" xmlrpc:"createDate,omitempty"` + + // The Destination IP Address of the blocked connection (your end) + DestinationIpAddress *string `json:"destinationIpAddress,omitempty" xmlrpc:"destinationIpAddress,omitempty"` + + // The Destination Port of the blocked connection (your end) + DestinationPort *int `json:"destinationPort,omitempty" xmlrpc:"destinationPort,omitempty"` + + // This tells you what kind of firewall event this log line is for: accept or deny. + EventType *string `json:"eventType,omitempty" xmlrpc:"eventType,omitempty"` + + // Raw syslog message for the event + Message *string `json:"message,omitempty" xmlrpc:"message,omitempty"` + + // Connection protocol used to make the call that was blocked (tcp, udp, etc) + Protocol *string `json:"protocol,omitempty" xmlrpc:"protocol,omitempty"` + + // The Source IP Address of the call that was blocked (attacker's end) + SourceIpAddress *string `json:"sourceIpAddress,omitempty" xmlrpc:"sourceIpAddress,omitempty"` + + // The Source Port where the blocked connection was established (attacker's end) + SourcePort *int `json:"sourcePort,omitempty" xmlrpc:"sourcePort,omitempty"` + + // If this is an aggregation of syslog events, this property shows the total events. + TotalEvents *int `json:"totalEvents,omitempty" xmlrpc:"totalEvents,omitempty"` +} + +// The SoftLayer_Network_Media_Transcode_Account contains information regarding a transcode account. +type Network_Media_Transcode_Account struct { + Entity + + // The SoftLayer account information + Account *Account `json:"account,omitempty" xmlrpc:"account,omitempty"` + + // The internal identifier of a SoftLayer account + AccountId *int `json:"accountId,omitempty" xmlrpc:"accountId,omitempty"` + + // The created date + CreateDate *Time `json:"createDate,omitempty" xmlrpc:"createDate,omitempty"` + + // The internal identifier of a transcode account + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // The last modified date + ModifyDate *Time `json:"modifyDate,omitempty" xmlrpc:"modifyDate,omitempty"` + + // A count of transcode jobs + TranscodeJobCount *uint `json:"transcodeJobCount,omitempty" xmlrpc:"transcodeJobCount,omitempty"` + + // Transcode jobs + TranscodeJobs []Network_Media_Transcode_Job `json:"transcodeJobs,omitempty" xmlrpc:"transcodeJobs,omitempty"` +} + +// The SoftLayer_Network_Media_Transcode_Job contains information regarding a transcode job such as input file, output format, user id and so on. +type Network_Media_Transcode_Job struct { + Entity + + // The auto-deletion duration in seconds. This value determines how long the input file will be kept on the storage. + AutoDeleteDuration *int `json:"autoDeleteDuration,omitempty" xmlrpc:"autoDeleteDuration,omitempty"` + + // The size of an input file in byte + ByteIn *int `json:"byteIn,omitempty" xmlrpc:"byteIn,omitempty"` + + // The created date + CreateDate *Time `json:"createDate,omitempty" xmlrpc:"createDate,omitempty"` + + // no documentation yet + History []Network_Media_Transcode_Job_History `json:"history,omitempty" xmlrpc:"history,omitempty"` + + // A count of + HistoryCount *uint `json:"historyCount,omitempty" xmlrpc:"historyCount,omitempty"` + + // The internal identifier of a transcode job + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // The input file name + InputFile *string `json:"inputFile,omitempty" xmlrpc:"inputFile,omitempty"` + + // The last modified date + ModifyDate *Time `json:"modifyDate,omitempty" xmlrpc:"modifyDate,omitempty"` + + // The name of a transcode job + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` + + // The output file name + OutputFile *string `json:"outputFile,omitempty" xmlrpc:"outputFile,omitempty"` + + // The transcode service account + TranscodeAccount *Network_Media_Transcode_Account `json:"transcodeAccount,omitempty" xmlrpc:"transcodeAccount,omitempty"` + + // The internal identifier of SoftLayer account + TranscodeAccountId *int `json:"transcodeAccountId,omitempty" xmlrpc:"transcodeAccountId,omitempty"` + + // The unique id of a transcode job + TranscodeJobGuid *string `json:"transcodeJobGuid,omitempty" xmlrpc:"transcodeJobGuid,omitempty"` + + // The unique id of a pre-defined output format + TranscodePresetGuid *string `json:"transcodePresetGuid,omitempty" xmlrpc:"transcodePresetGuid,omitempty"` + + // The name of a transcode output preset + TranscodePresetName *string `json:"transcodePresetName,omitempty" xmlrpc:"transcodePresetName,omitempty"` + + // The status information of a transcode job + TranscodeStatus *Network_Media_Transcode_Job_Status `json:"transcodeStatus,omitempty" xmlrpc:"transcodeStatus,omitempty"` + + // The internal identifier of a transcode status + TranscodeStatusId *int `json:"transcodeStatusId,omitempty" xmlrpc:"transcodeStatusId,omitempty"` + + // The status of a transcode job + TranscodeStatusName *string `json:"transcodeStatusName,omitempty" xmlrpc:"transcodeStatusName,omitempty"` + + // The SoftLayer user that created the transcode job + User *User_Customer `json:"user,omitempty" xmlrpc:"user,omitempty"` + + // The internal identifier of the user who created a transcode job + UserId *int `json:"userId,omitempty" xmlrpc:"userId,omitempty"` + + // Watermark to apply to job + Watermark *Container_Network_Media_Transcode_Job_Watermark `json:"watermark,omitempty" xmlrpc:"watermark,omitempty"` +} + +// no documentation yet +type Network_Media_Transcode_Job_History struct { + Entity + + // The creation date + CreateDate *Time `json:"createDate,omitempty" xmlrpc:"createDate,omitempty"` + + // The note created by system + PublicNotes *string `json:"publicNotes,omitempty" xmlrpc:"publicNotes,omitempty"` + + // The internal identifier of a transcode job + TranscodeJobId *int `json:"transcodeJobId,omitempty" xmlrpc:"transcodeJobId,omitempty"` + + // The status of a transcode job + TranscodeStatusName *string `json:"transcodeStatusName,omitempty" xmlrpc:"transcodeStatusName,omitempty"` +} + +// The SoftLayer_Network_Media_Transcode_Job_Status contains information on a transcode job status. +type Network_Media_Transcode_Job_Status struct { + Entity + + // The description of a transcode job status + Description *string `json:"description,omitempty" xmlrpc:"description,omitempty"` + + // The internal identifier of a transcode job status + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // The status name + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` +} + +// no documentation yet +type Network_Message_Delivery struct { + Entity + + // The SoftLayer customer account that a network message delivery account belongs to. + Account *Account `json:"account,omitempty" xmlrpc:"account,omitempty"` + + // no documentation yet + AccountId *int `json:"accountId,omitempty" xmlrpc:"accountId,omitempty"` + + // The billing item for a network message delivery account. + BillingItem *Billing_Item `json:"billingItem,omitempty" xmlrpc:"billingItem,omitempty"` + + // no documentation yet + CreateDate *Time `json:"createDate,omitempty" xmlrpc:"createDate,omitempty"` + + // no documentation yet + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // no documentation yet + ModifyDate *Time `json:"modifyDate,omitempty" xmlrpc:"modifyDate,omitempty"` + + // no documentation yet + Password *string `json:"password,omitempty" xmlrpc:"password,omitempty"` + + // The message delivery type of a network message delivery account. + Type *Network_Message_Delivery_Type `json:"type,omitempty" xmlrpc:"type,omitempty"` + + // no documentation yet + TypeId *int `json:"typeId,omitempty" xmlrpc:"typeId,omitempty"` + + // no documentation yet + Username *string `json:"username,omitempty" xmlrpc:"username,omitempty"` + + // The vendor for a network message delivery account. + Vendor *Network_Message_Delivery_Vendor `json:"vendor,omitempty" xmlrpc:"vendor,omitempty"` + + // no documentation yet + VendorId *int `json:"vendorId,omitempty" xmlrpc:"vendorId,omitempty"` +} + +// no documentation yet +type Network_Message_Delivery_Attribute struct { + Entity + + // no documentation yet + NetworkMessageDelivery *Network_Message_Delivery `json:"networkMessageDelivery,omitempty" xmlrpc:"networkMessageDelivery,omitempty"` + + // no documentation yet + Value *string `json:"value,omitempty" xmlrpc:"value,omitempty"` +} + +// no documentation yet +type Network_Message_Delivery_Email_Sendgrid struct { + Network_Message_Delivery + + // The contact e-mail address used by SendGrid. + EmailAddress *string `json:"emailAddress,omitempty" xmlrpc:"emailAddress,omitempty"` + + // A flag that determines if a SendGrid e-mail delivery account has access to send mail through the SendGrid SMTP server. + SmtpAccess *string `json:"smtpAccess,omitempty" xmlrpc:"smtpAccess,omitempty"` +} + +// no documentation yet +type Network_Message_Delivery_Type struct { + Entity + + // no documentation yet + Description *string `json:"description,omitempty" xmlrpc:"description,omitempty"` + + // no documentation yet + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // no documentation yet + KeyName *string `json:"keyName,omitempty" xmlrpc:"keyName,omitempty"` + + // no documentation yet + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` +} + +// no documentation yet +type Network_Message_Delivery_Vendor struct { + Entity + + // no documentation yet + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // no documentation yet + KeyName *string `json:"keyName,omitempty" xmlrpc:"keyName,omitempty"` + + // no documentation yet + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` +} + +// The SoftLayer_Network_Message_Queue data type contains general information relating to Message Queue account +type Network_Message_Queue struct { + Entity + + // The account that a message queue belongs to. + Account *Account `json:"account,omitempty" xmlrpc:"account,omitempty"` + + // A message queue's associated [[SoftLayer_Account|account]] id. + AccountId *int `json:"accountId,omitempty" xmlrpc:"accountId,omitempty"` + + // The current billing item for this message queue account. + BillingItem *Billing_Item `json:"billingItem,omitempty" xmlrpc:"billingItem,omitempty"` + + // The date that a message queue account was created. + CreateDate *Time `json:"createDate,omitempty" xmlrpc:"createDate,omitempty"` + + // A message queue's internal identification number + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // A message queue status' internal identifier. + MessageQueueStatusId *int `json:"messageQueueStatusId,omitempty" xmlrpc:"messageQueueStatusId,omitempty"` + + // A unique message queue account name + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` + + // A count of all available message queue nodes + NodeCount *uint `json:"nodeCount,omitempty" xmlrpc:"nodeCount,omitempty"` + + // All available message queue nodes + Nodes []Network_Message_Queue_Node `json:"nodes,omitempty" xmlrpc:"nodes,omitempty"` + + // Brief notes on this message queue account + Notes *string `json:"notes,omitempty" xmlrpc:"notes,omitempty"` + + // A message queue account status. + Status *Network_Message_Queue_Status `json:"status,omitempty" xmlrpc:"status,omitempty"` +} + +// The SoftLayer_Network_Message_Queue_Node data type contains general information relating to Message Queue node +type Network_Message_Queue_Node struct { + Entity + + // A unique account name in this message queue node + AccountName *string `json:"accountName,omitempty" xmlrpc:"accountName,omitempty"` + + // A message queue node's internal identification number + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // The message queue account this node belongs to. + MessageQueue *Network_Message_Queue `json:"messageQueue,omitempty" xmlrpc:"messageQueue,omitempty"` + + // A message queue node's associated message queue id. + MessageQueueId *int `json:"messageQueueId,omitempty" xmlrpc:"messageQueueId,omitempty"` + + // A message queue node's metric tracking object. This object records all request and notification count data for this message queue node. + MetricTrackingObject *Metric_Tracking_Object `json:"metricTrackingObject,omitempty" xmlrpc:"metricTrackingObject,omitempty"` + + // A user-friendly name of this message queue node + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` + + // Brief notes on this message queue node + Notes *string `json:"notes,omitempty" xmlrpc:"notes,omitempty"` + + // no documentation yet + ServiceResource *Network_Service_Resource `json:"serviceResource,omitempty" xmlrpc:"serviceResource,omitempty"` +} + +// The SoftLayer_Network_Message_Queue_Status data type contains general information relating to Message Queue account status. +type Network_Message_Queue_Status struct { + Entity + + // A brief description on a message queue account status + Description *string `json:"description,omitempty" xmlrpc:"description,omitempty"` + + // A message queue status's internal identification number + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // A user-friendly name of a message queue account status + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` +} + +// no documentation yet +type Network_Monitor struct { + Entity +} + +// The SoftLayer_Network_Monitor_Version1_Incident data type models a single virtual server or physical hardware network monitoring event. SoftLayer_Network_Monitor_Version1_Incidents are created when the SoftLayer monitoring system detects a service down on your hardware of virtual server. As the incident is resolved it's status changes from "SERVICE FAILURE" to "COMPLETED". +type Network_Monitor_Version1_Incident struct { + Entity + + // A network monitoring incident's status, either the string "SERVICE FAILURE" denoting an ongoing incident or "COMPLETE" meaning the incident has been resolved. + Status *string `json:"status,omitempty" xmlrpc:"status,omitempty"` +} + +// The Monitoring_Query_Host type represents a monitoring instance. It consists of a hardware ID to monitor, an IP address attached to that hardware ID, a method of monitoring, and what to do in the instance that the monitor ever fails. +type Network_Monitor_Version1_Query_Host struct { + Entity + + // The argument to be used for this monitor, if necessary. The lowest monitoring levels (like ping) ignore this setting, but higher levels like HTTP custom use it. + Arg1Value *string `json:"arg1Value,omitempty" xmlrpc:"arg1Value,omitempty"` + + // Virtual Guest Identification Number for the guest being monitored. + GuestId *int `json:"guestId,omitempty" xmlrpc:"guestId,omitempty"` + + // The hardware that is being monitored by this monitoring instance + Hardware *Hardware `json:"hardware,omitempty" xmlrpc:"hardware,omitempty"` + + // The ID of the hardware being monitored + HardwareId *int `json:"hardwareId,omitempty" xmlrpc:"hardwareId,omitempty"` + + // Identification Number for the host being monitored. + HostId *int `json:"hostId,omitempty" xmlrpc:"hostId,omitempty"` + + // The unique identifier for this object + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // The IP address to be monitored. Must be attached to the hardware on this object + IpAddress *string `json:"ipAddress,omitempty" xmlrpc:"ipAddress,omitempty"` + + // The most recent result for this particular monitoring instance. + LastResult *Network_Monitor_Version1_Query_Result `json:"lastResult,omitempty" xmlrpc:"lastResult,omitempty"` + + // The type of monitoring query that is executed when this hardware is monitored. + QueryType *Network_Monitor_Version1_Query_Type `json:"queryType,omitempty" xmlrpc:"queryType,omitempty"` + + // The ID of the query type to use. + QueryTypeId *int `json:"queryTypeId,omitempty" xmlrpc:"queryTypeId,omitempty"` + + // The action taken when a monitor fails. + ResponseAction *Network_Monitor_Version1_Query_ResponseType `json:"responseAction,omitempty" xmlrpc:"responseAction,omitempty"` + + // The ID of the response action to take when the monitor fails + ResponseActionId *int `json:"responseActionId,omitempty" xmlrpc:"responseActionId,omitempty"` + + // The status of this monitoring instance. Anything other than "ON" means that the monitor has been disabled + Status *string `json:"status,omitempty" xmlrpc:"status,omitempty"` + + // The number of 5-minute cycles to wait before the "responseAction" is taken. If set to 0, the response action will be taken immediately + WaitCycles *int `json:"waitCycles,omitempty" xmlrpc:"waitCycles,omitempty"` +} + +// The monitoring stratum type stores the maximum level of the various components of the monitoring system that a particular hardware object has access to. This object cannot be accessed by ID, and cannot be modified. The user can access this object through Hardware_Server->availableMonitoring. +// +// There are two values on this object that are important: +// # monitorLevel determines the highest level of SoftLayer_Network_Monitor_Version1_Query_Type object that can be placed in a monitoring instance on this server +// # responseLevel determines the highest level of SoftLayer_Network_Monitor_Version1_Query_ResponseType object that can be placed in a monitoring instance on this server +// +// +// Also note that the query type and response types are available through getAllQueryTypes and getAllResponseTypes, respectively. +type Network_Monitor_Version1_Query_Host_Stratum struct { + Entity + + // The hardware object that these monitoring permissions applies to. + Hardware *Hardware `json:"hardware,omitempty" xmlrpc:"hardware,omitempty"` + + // The highest level of a monitoring query type allowed on this server + MonitorLevel *int `json:"monitorLevel,omitempty" xmlrpc:"monitorLevel,omitempty"` + + // The highest level of a monitoring response type allowed on this server + ResponseLevel *int `json:"responseLevel,omitempty" xmlrpc:"responseLevel,omitempty"` +} + +// The ResponseType type stores only an ID and a description of the response type. The only use for this object is in reference. The user chooses a response action that would be appropriate for a monitoring instance, and sets the ResponseTypeId to the SoftLayer_Network_Monitor_Version1_Query_Host->responseActionId value. +// +// The user can retrieve all available ResponseTypes with the getAllObjects method on this service. +type Network_Monitor_Version1_Query_ResponseType struct { + Entity + + // The description of the action the monitoring system will take on failure + ActionDescription *string `json:"actionDescription,omitempty" xmlrpc:"actionDescription,omitempty"` + + // The unique identifier for this object + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // The level of this response. The level the customer has access to is determined by values in SoftLayer_Network_Monitor_Version1_Query_Host_Stratum + Level *int `json:"level,omitempty" xmlrpc:"level,omitempty"` +} + +// The monitoring result object is used to show the status of the actions taken by the monitoring system. +// +// In general, only the responseStatus variable is needed, as it holds the information on the status of the service. +type Network_Monitor_Version1_Query_Result struct { + Entity + + // The timestamp of when this monitor was co + FinishTime *Time `json:"finishTime,omitempty" xmlrpc:"finishTime,omitempty"` + + // References the queryHost that this response relates to. + QueryHost *Network_Monitor_Version1_Query_Host `json:"queryHost,omitempty" xmlrpc:"queryHost,omitempty"` + + // The response status for this server. The response status meanings are: 0: Down/Critical: Server is down and/or has passed the critical response threshold (extremely long ping response, abnormal behavior, etc.) 1: Warning - Server may be recovering from a previous down state, or may have taken too long to respond 2: Up 3: Not used 4: Unknown - An unknown error has occurred. If the problem persists, contact support. 5: Unknown - An unknown error has occurred. If the problem persists, contact support. + ResponseStatus *int `json:"responseStatus,omitempty" xmlrpc:"responseStatus,omitempty"` + + // The length of time it took the server to respond + ResponseTime *Float64 `json:"responseTime,omitempty" xmlrpc:"responseTime,omitempty"` +} + +// The MonitorType type stores a name, long description, and default arguments for the monitor types. The only use for this object is in reference. The user chooses a monitoring type that would be appropriate for their server, and sets the id of the Query_Type to SoftLayer_Network_Monitor_Version1_Query_Host->queryTypeId +// +// The user can retrieve all available Query Types with the getAllObjects method on this service. +type Network_Monitor_Version1_Query_Type struct { + Entity + + // The type of parameter sent to the monitoring command. + ArgumentDescription *string `json:"argumentDescription,omitempty" xmlrpc:"argumentDescription,omitempty"` + + // Long description of the monitoring type. + Description *string `json:"description,omitempty" xmlrpc:"description,omitempty"` + + // The unique identifier for this object + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // The level of this monitoring type. The level the customer has access to is determined by values in SoftLayer_Network_Monitor_Version1_Query_Host_Stratum + MonitorLevel *int `json:"monitorLevel,omitempty" xmlrpc:"monitorLevel,omitempty"` + + // Short name of the monitoring type + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` +} + +// SoftLayer_Network_Pod refers to a portion of a data center that share a Backend Customer Router (BCR) and usually a front-end counterpart known as a Frontend Customer Router (FCR). A Pod primarily denotes a logical location within the network and the physical aspects that support networks. This is in contrast to representing a specific physical location. +// +// A ``Pod`` is identified by a ``name``, which is unique. A Pod name follows the format 'dddnn.podii', where 'ddd' is a data center code, 'nn' is the data center number, 'pod' is a literal string and 'ii' is a two digit, left-zero- padded number which corresponds to a Backend Customer Router (BCR) of the desired data center. Examples: +// * dal09.pod01 = Dallas 9, Pod 1 (ie. bcr01) +// * sjc01.pod04 = San Jose 1, Pod 4 (ie. bcr04) +// * ams01.pod01 = Amsterdam 1, Pod 1 (ie. bcr01) +type Network_Pod struct { + Entity + + // Identifier for this Pod's Backend Customer Router (BCR) + BackendRouterId *int `json:"backendRouterId,omitempty" xmlrpc:"backendRouterId,omitempty"` + + // Host name of Pod's Backend Customer Router (BCR), e.g. bcr01a.dal09 + BackendRouterName *string `json:"backendRouterName,omitempty" xmlrpc:"backendRouterName,omitempty"` + + // The list of capabilities this Pod has. + Capabilities []string `json:"capabilities,omitempty" xmlrpc:"capabilities,omitempty"` + + // Long form name of the data center in which this Pod resides, e.g. Dallas 9 + DatacenterLongName *string `json:"datacenterLongName,omitempty" xmlrpc:"datacenterLongName,omitempty"` + + // Name of data center in which this Pod resides, e.g. dal09 + DatacenterName *string `json:"datacenterName,omitempty" xmlrpc:"datacenterName,omitempty"` + + // (optional) Identifier for this Pod's Frontend Customer Router (FCR) + FrontendRouterId *int `json:"frontendRouterId,omitempty" xmlrpc:"frontendRouterId,omitempty"` + + // Host name of Pod's Frontend Customer Router (FCR), e.g. fcr01a.dal09 + FrontendRouterName *string `json:"frontendRouterName,omitempty" xmlrpc:"frontendRouterName,omitempty"` + + // The unique name of the Pod. See [[SoftLayer_Network_Pod (type)]] for details of the name's construction. + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` +} + +// no documentation yet +type Network_Protection_Address struct { + Entity + + // no documentation yet + Account *Account `json:"account,omitempty" xmlrpc:"account,omitempty"` + + // no documentation yet + DepartmentId *int `json:"departmentId,omitempty" xmlrpc:"departmentId,omitempty"` + + // no documentation yet + IpAddress *string `json:"ipAddress,omitempty" xmlrpc:"ipAddress,omitempty"` + + // no documentation yet + Location *Location `json:"location,omitempty" xmlrpc:"location,omitempty"` + + // no documentation yet + ManagementMethodType *string `json:"managementMethodType,omitempty" xmlrpc:"managementMethodType,omitempty"` + + // no documentation yet + ModifiedUser *User_Employee `json:"modifiedUser,omitempty" xmlrpc:"modifiedUser,omitempty"` + + // no documentation yet + PrimaryRouter *Hardware_Router `json:"primaryRouter,omitempty" xmlrpc:"primaryRouter,omitempty"` + + // no documentation yet + ServiceProvider *Service_Provider `json:"serviceProvider,omitempty" xmlrpc:"serviceProvider,omitempty"` + + // no documentation yet + Subnet *Network_Subnet `json:"subnet,omitempty" xmlrpc:"subnet,omitempty"` + + // no documentation yet + SubnetIpAddress *Network_Subnet_IpAddress `json:"subnetIpAddress,omitempty" xmlrpc:"subnetIpAddress,omitempty"` + + // no documentation yet + TerminatedUser *User_Employee `json:"terminatedUser,omitempty" xmlrpc:"terminatedUser,omitempty"` + + // no documentation yet + Ticket *Ticket `json:"ticket,omitempty" xmlrpc:"ticket,omitempty"` + + // A count of + TransactionCount *uint `json:"transactionCount,omitempty" xmlrpc:"transactionCount,omitempty"` + + // no documentation yet + Transactions []Provisioning_Version1_Transaction `json:"transactions,omitempty" xmlrpc:"transactions,omitempty"` + + // no documentation yet + UserDepartment *User_Employee_Department `json:"userDepartment,omitempty" xmlrpc:"userDepartment,omitempty"` + + // no documentation yet + UserRecord *User_Employee `json:"userRecord,omitempty" xmlrpc:"userRecord,omitempty"` +} + +// Regional Internet Registries are the organizations who delegate IP address blocks to other groups or organizations around the Internet. The information contained in this data type is used throughout the networking-related services in our systems. +type Network_Regional_Internet_Registry struct { + Entity + + // Unique ID of the object + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // The system-level name of the registry + KeyName *string `json:"keyName,omitempty" xmlrpc:"keyName,omitempty"` + + // The friendly name of the registry + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` +} + +// +// This is a Beta release of the Security Group feature. The use of this feature is restricted to select +// users. When the Beta period is over, security groups will be available for all users. Contact sgbeta@us.ibm.com +// using 'Security Groups' in the subject line with any questions. +// +// +// The SoftLayer_Network_SecurityGroup data type contains general information for a single security group. +// Security groups contain a set of [[SoftLayer_Network_SecurityGroup_Rule (type)|rules]] that handle traffic +// to virtual guest instances and a set of +// [[SoftLayer_Virtual_Network_SecurityGroup_NetworkComponentBinding (type)|bindings]] to associate virtual guest +// network components with the security group. +type Network_SecurityGroup struct { + Entity + + // The account for this security group + Account *Account `json:"account,omitempty" xmlrpc:"account,omitempty"` + + // The date a security group was created + CreateDate *Time `json:"createDate,omitempty" xmlrpc:"createDate,omitempty"` + + // The description for a security group + Description *string `json:"description,omitempty" xmlrpc:"description,omitempty"` + + // The unique ID for a security group + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // The date a security group was last modified + ModifyDate *Time `json:"modifyDate,omitempty" xmlrpc:"modifyDate,omitempty"` + + // The name for a security group + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` + + // A count of the network component bindings for this security group + NetworkComponentBindingCount *uint `json:"networkComponentBindingCount,omitempty" xmlrpc:"networkComponentBindingCount,omitempty"` + + // The network component bindings for this security group + NetworkComponentBindings []Virtual_Network_SecurityGroup_NetworkComponentBinding `json:"networkComponentBindings,omitempty" xmlrpc:"networkComponentBindings,omitempty"` + + // A count of the rules for this security group + RuleCount *uint `json:"ruleCount,omitempty" xmlrpc:"ruleCount,omitempty"` + + // The rules for this security group + Rules []Network_SecurityGroup_Rule `json:"rules,omitempty" xmlrpc:"rules,omitempty"` +} + +// The SoftLayer_Network_SecurityGroup_Rule data type contains general information for a single rule that belongs to a [[SoftLayer_Network_SecurityGroup|security group]]. Rule information in this type define how to handle incoming (ingress) or outgoing (egress) traffic to the public and private interfaces of a virtual guest. +type Network_SecurityGroup_Rule struct { + Entity + + // The direction of traffic (ingress or egress) + Direction *string `json:"direction,omitempty" xmlrpc:"direction,omitempty"` + + // IPv4 or IPv6. If the remoteIp or ethertype properties are not specified, the default is IPv4. + Ethertype *string `json:"ethertype,omitempty" xmlrpc:"ethertype,omitempty"` + + // The unique ID for a rule + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // The end of the port range for allowed traffic + PortRangeMax *int `json:"portRangeMax,omitempty" xmlrpc:"portRangeMax,omitempty"` + + // The start of the port range for allowed traffic + PortRangeMin *int `json:"portRangeMin,omitempty" xmlrpc:"portRangeMin,omitempty"` + + // The protocol of packets (icmp, tcp, or udp) + Protocol *string `json:"protocol,omitempty" xmlrpc:"protocol,omitempty"` + + // The remote security group allowed as part of this rule + RemoteGroup *Network_SecurityGroup `json:"remoteGroup,omitempty" xmlrpc:"remoteGroup,omitempty"` + + // The ID of the remote security group allowed as part of the rule. This property is mutually exclusive with the remoteIp property + RemoteGroupId *int `json:"remoteGroupId,omitempty" xmlrpc:"remoteGroupId,omitempty"` + + // CIDR or IP address for allowed connections. This property is mutually exclusive with the remoteGroupId property + RemoteIp *string `json:"remoteIp,omitempty" xmlrpc:"remoteIp,omitempty"` + + // The security group of this rule + SecurityGroup *Network_SecurityGroup `json:"securityGroup,omitempty" xmlrpc:"securityGroup,omitempty"` + + // The ID of the security group that owns the rule. + SecurityGroupId *int `json:"securityGroupId,omitempty" xmlrpc:"securityGroupId,omitempty"` +} + +// The SoftLayer_Network_Security_Scanner_Request data type represents a single vulnerability scan request. It provides information on when the scan was created, last updated, and the current status. The status messages are as follows: +// *Scan Pending +// *Scan Processing +// *Scan Complete +// *Scan Cancelled +// *Generating Report. +type Network_Security_Scanner_Request struct { + Entity + + // The account associated with a security scan request. + Account *Account `json:"account,omitempty" xmlrpc:"account,omitempty"` + + // A request's associated customer account identifier. + AccountId *int `json:"accountId,omitempty" xmlrpc:"accountId,omitempty"` + + // The date and time that the request is created. + CreateDate *Time `json:"createDate,omitempty" xmlrpc:"createDate,omitempty"` + + // The virtual guest a security scan is run against. + Guest *Virtual_Guest `json:"guest,omitempty" xmlrpc:"guest,omitempty"` + + // Virtual Guest Identification Number for the guest this security scanner request belongs to. + GuestId *int `json:"guestId,omitempty" xmlrpc:"guestId,omitempty"` + + // The hardware a security scan is run against. + Hardware *Hardware `json:"hardware,omitempty" xmlrpc:"hardware,omitempty"` + + // The identifier of the hardware item a scan is run on. + HardwareId *int `json:"hardwareId,omitempty" xmlrpc:"hardwareId,omitempty"` + + // Identification Number for the host this security scanner request belongs to. + HostId *int `json:"hostId,omitempty" xmlrpc:"hostId,omitempty"` + + // A security scan request's internal identifier. + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // The IP address that a scan will be performed on. + IpAddress *string `json:"ipAddress,omitempty" xmlrpc:"ipAddress,omitempty"` + + // The date and time that the request was last modified. + ModifyDate *Time `json:"modifyDate,omitempty" xmlrpc:"modifyDate,omitempty"` + + // Flag whether the requestor owns the hardware the scan was run on. This flag will return for hardware servers only, virtual servers will result in a null return even if you have a request out for them. + RequestorOwnedFlag *bool `json:"requestorOwnedFlag,omitempty" xmlrpc:"requestorOwnedFlag,omitempty"` + + // A security scan request's status. + Status *Network_Security_Scanner_Request_Status `json:"status,omitempty" xmlrpc:"status,omitempty"` + + // A request status identifier. + StatusId *int `json:"statusId,omitempty" xmlrpc:"statusId,omitempty"` +} + +// The SoftLayer_Network_Security_Scanner_Request_Status data type represents the current status of a vulnerability scan. The status messages are as follows: +// *Scan Pending +// *Scan Processing +// *Scan Complete +// *Scan Cancelled +// *Generating Report. +// +// +// The status of a vulnerability scan will change over the course of a scan's execution. +type Network_Security_Scanner_Request_Status struct { + Entity + + // The identifier of a vulnerability scan's status. + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // The status message of a vulnerability scan. + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` +} + +// Many general services that SoftLayer provides are tracked on the customer portal with a quick status message. These status message provide users with a quick reference to the health of a service, whether it's up or down. These services include SoftLayer's Internet backbone connections, VPN entry points, and router networks. The SoftLayer_Network_Service_Health data type provides the relationship between these services and their health status. +type Network_Service_Health struct { + Entity + + // The date that a service's status was created. + CreateDate *Time `json:"createDate,omitempty" xmlrpc:"createDate,omitempty"` + + // A service's location. + Location *Location `json:"location,omitempty" xmlrpc:"location,omitempty"` + + // A service's location identifier. + LocationId *int `json:"locationId,omitempty" xmlrpc:"locationId,omitempty"` + + // The date that a service's status was last changed. + ModifyDate *Time `json:"modifyDate,omitempty" xmlrpc:"modifyDate,omitempty"` + + // The status portion of a service/status relationship. + Status *Network_Service_Health_Status `json:"status,omitempty" xmlrpc:"status,omitempty"` + + // A service's status identifier. + StatusId *int `json:"statusId,omitempty" xmlrpc:"statusId,omitempty"` +} + +// Many general services that SoftLayer provides are marked by a status message. These health messages give portal users a quick way of determining the state of a SoftLayer service. Services range from backbones to VPN endpoints and routers. Generally a health status is either "Up" or "Down". +type Network_Service_Health_Status struct { + Entity + + // The status of a SoftLayer service. This is typically "Up" or "Down". + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` +} + +// The SoftLayer_Network_Service_Resource is used to store information related to a service. It is used for determining the correct resource to connect to for a given service, like NAS, Evault, etc. +type Network_Service_Resource struct { + Entity + + // no documentation yet + ApiHost *string `json:"apiHost,omitempty" xmlrpc:"apiHost,omitempty"` + + // no documentation yet + ApiPassword *string `json:"apiPassword,omitempty" xmlrpc:"apiPassword,omitempty"` + + // no documentation yet + ApiPath *string `json:"apiPath,omitempty" xmlrpc:"apiPath,omitempty"` + + // no documentation yet + ApiPort *string `json:"apiPort,omitempty" xmlrpc:"apiPort,omitempty"` + + // no documentation yet + ApiProtocol *string `json:"apiProtocol,omitempty" xmlrpc:"apiProtocol,omitempty"` + + // no documentation yet + ApiUsername *string `json:"apiUsername,omitempty" xmlrpc:"apiUsername,omitempty"` + + // no documentation yet + ApiVersion *string `json:"apiVersion,omitempty" xmlrpc:"apiVersion,omitempty"` + + // A count of + AttributeCount *uint `json:"attributeCount,omitempty" xmlrpc:"attributeCount,omitempty"` + + // no documentation yet + Attributes []Network_Service_Resource_Attribute `json:"attributes,omitempty" xmlrpc:"attributes,omitempty"` + + // The backend IP address for this resource + BackendIpAddress *string `json:"backendIpAddress,omitempty" xmlrpc:"backendIpAddress,omitempty"` + + // no documentation yet + Datacenter *Location `json:"datacenter,omitempty" xmlrpc:"datacenter,omitempty"` + + // The frontend IP address for this resource + FrontendIpAddress *string `json:"frontendIpAddress,omitempty" xmlrpc:"frontendIpAddress,omitempty"` + + // no documentation yet + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // The name associated with this resource + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` + + // The hardware information associated with this resource. + NetworkDevice *Hardware `json:"networkDevice,omitempty" xmlrpc:"networkDevice,omitempty"` + + // no documentation yet + SshUsername *string `json:"sshUsername,omitempty" xmlrpc:"sshUsername,omitempty"` + + // The network information associated with this resource. + Type *Network_Service_Resource_Type `json:"type,omitempty" xmlrpc:"type,omitempty"` +} + +// no documentation yet +type Network_Service_Resource_Attribute struct { + Entity + + // no documentation yet + AttributeType *Network_Service_Resource_Attribute_Type `json:"attributeType,omitempty" xmlrpc:"attributeType,omitempty"` + + // no documentation yet + ServiceResource *Network_Service_Resource `json:"serviceResource,omitempty" xmlrpc:"serviceResource,omitempty"` + + // no documentation yet + Value *string `json:"value,omitempty" xmlrpc:"value,omitempty"` +} + +// no documentation yet +type Network_Service_Resource_Attribute_Type struct { + Entity + + // no documentation yet + Keyname *string `json:"keyname,omitempty" xmlrpc:"keyname,omitempty"` +} + +// no documentation yet +type Network_Service_Resource_Hub struct { + Network_Service_Resource +} + +// no documentation yet +type Network_Service_Resource_Hub_Swift struct { + Network_Service_Resource_Hub +} + +// no documentation yet +type Network_Service_Resource_MonitoringHub struct { + Network_Service_Resource + + // no documentation yet + AdnServicesIp *string `json:"adnServicesIp,omitempty" xmlrpc:"adnServicesIp,omitempty"` + + // no documentation yet + HubAddress *string `json:"hubAddress,omitempty" xmlrpc:"hubAddress,omitempty"` + + // no documentation yet + HubConnectionTimeout *string `json:"hubConnectionTimeout,omitempty" xmlrpc:"hubConnectionTimeout,omitempty"` + + // no documentation yet + RobotsCount *string `json:"robotsCount,omitempty" xmlrpc:"robotsCount,omitempty"` + + // no documentation yet + RobotsMax *string `json:"robotsMax,omitempty" xmlrpc:"robotsMax,omitempty"` +} + +// no documentation yet +type Network_Service_Resource_NimsoftLandingHub struct { + Network_Service_Resource_MonitoringHub +} + +// no documentation yet +type Network_Service_Resource_Type struct { + Entity + + // A count of + ServiceResourceCount *uint `json:"serviceResourceCount,omitempty" xmlrpc:"serviceResourceCount,omitempty"` + + // no documentation yet + ServiceResources []Network_Service_Resource `json:"serviceResources,omitempty" xmlrpc:"serviceResources,omitempty"` + + // no documentation yet + Type *string `json:"type,omitempty" xmlrpc:"type,omitempty"` +} + +// The SoftLayer_Network_Service_Vpn_Overrides data type contains information relating user ids to subnet ids when VPN access is manually configured. It is essentially an entry in a 'white list' of subnets a SoftLayer portal VPN user may access. +type Network_Service_Vpn_Overrides struct { + Entity + + // The internal identifier of the record. + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // Subnet components accessible by a SoftLayer VPN portal user. + Subnet *Network_Subnet `json:"subnet,omitempty" xmlrpc:"subnet,omitempty"` + + // The identifier of a subnet accessible by the SoftLayer portal VPN user. + SubnetId *int `json:"subnetId,omitempty" xmlrpc:"subnetId,omitempty"` + + // SoftLayer VPN portal user. + User *User_Customer `json:"user,omitempty" xmlrpc:"user,omitempty"` + + // The identifier of the SoftLayer portal VPN user. + UserId *int `json:"userId,omitempty" xmlrpc:"userId,omitempty"` +} + +// The SoftLayer_Network_Storage data type contains general information regarding a Storage product such as account id, access username and password, the Storage product type, and the server the Storage service is associated with. Currently, only EVault backup storage has an associated server. +type Network_Storage struct { + Entity + + // The account that a Storage services belongs to. + Account *Account `json:"account,omitempty" xmlrpc:"account,omitempty"` + + // The internal identifier of the SoftLayer customer account that a Storage account belongs to. + AccountId *int `json:"accountId,omitempty" xmlrpc:"accountId,omitempty"` + + // Other usernames and passwords associated with a Storage volume. + AccountPassword *Account_Password `json:"accountPassword,omitempty" xmlrpc:"accountPassword,omitempty"` + + // A count of the currently active transactions on a network storage volume. + ActiveTransactionCount *uint `json:"activeTransactionCount,omitempty" xmlrpc:"activeTransactionCount,omitempty"` + + // The currently active transactions on a network storage volume. + ActiveTransactions []Provisioning_Version1_Transaction `json:"activeTransactions,omitempty" xmlrpc:"activeTransactions,omitempty"` + + // The SoftLayer_Hardware objects which are allowed access to this storage volume. + AllowedHardware []Hardware `json:"allowedHardware,omitempty" xmlrpc:"allowedHardware,omitempty"` + + // A count of the SoftLayer_Hardware objects which are allowed access to this storage volume. + AllowedHardwareCount *uint `json:"allowedHardwareCount,omitempty" xmlrpc:"allowedHardwareCount,omitempty"` + + // A count of the SoftLayer_Network_Subnet_IpAddress objects which are allowed access to this storage volume. + AllowedIpAddressCount *uint `json:"allowedIpAddressCount,omitempty" xmlrpc:"allowedIpAddressCount,omitempty"` + + // The SoftLayer_Network_Subnet_IpAddress objects which are allowed access to this storage volume. + AllowedIpAddresses []Network_Subnet_IpAddress `json:"allowedIpAddresses,omitempty" xmlrpc:"allowedIpAddresses,omitempty"` + + // The SoftLayer_Hardware objects which are allowed access to this storage volume's Replicant. + AllowedReplicationHardware []Hardware `json:"allowedReplicationHardware,omitempty" xmlrpc:"allowedReplicationHardware,omitempty"` + + // A count of the SoftLayer_Hardware objects which are allowed access to this storage volume's Replicant. + AllowedReplicationHardwareCount *uint `json:"allowedReplicationHardwareCount,omitempty" xmlrpc:"allowedReplicationHardwareCount,omitempty"` + + // A count of the SoftLayer_Network_Subnet_IpAddress objects which are allowed access to this storage volume's Replicant. + AllowedReplicationIpAddressCount *uint `json:"allowedReplicationIpAddressCount,omitempty" xmlrpc:"allowedReplicationIpAddressCount,omitempty"` + + // The SoftLayer_Network_Subnet_IpAddress objects which are allowed access to this storage volume's Replicant. + AllowedReplicationIpAddresses []Network_Subnet_IpAddress `json:"allowedReplicationIpAddresses,omitempty" xmlrpc:"allowedReplicationIpAddresses,omitempty"` + + // A count of the SoftLayer_Network_Subnet objects which are allowed access to this storage volume's Replicant. + AllowedReplicationSubnetCount *uint `json:"allowedReplicationSubnetCount,omitempty" xmlrpc:"allowedReplicationSubnetCount,omitempty"` + + // The SoftLayer_Network_Subnet objects which are allowed access to this storage volume's Replicant. + AllowedReplicationSubnets []Network_Subnet `json:"allowedReplicationSubnets,omitempty" xmlrpc:"allowedReplicationSubnets,omitempty"` + + // A count of the SoftLayer_Hardware objects which are allowed access to this storage volume's Replicant. + AllowedReplicationVirtualGuestCount *uint `json:"allowedReplicationVirtualGuestCount,omitempty" xmlrpc:"allowedReplicationVirtualGuestCount,omitempty"` + + // The SoftLayer_Hardware objects which are allowed access to this storage volume's Replicant. + AllowedReplicationVirtualGuests []Virtual_Guest `json:"allowedReplicationVirtualGuests,omitempty" xmlrpc:"allowedReplicationVirtualGuests,omitempty"` + + // A count of the SoftLayer_Network_Subnet objects which are allowed access to this storage volume. + AllowedSubnetCount *uint `json:"allowedSubnetCount,omitempty" xmlrpc:"allowedSubnetCount,omitempty"` + + // The SoftLayer_Network_Subnet objects which are allowed access to this storage volume. + AllowedSubnets []Network_Subnet `json:"allowedSubnets,omitempty" xmlrpc:"allowedSubnets,omitempty"` + + // A count of the SoftLayer_Virtual_Guest objects which are allowed access to this storage volume. + AllowedVirtualGuestCount *uint `json:"allowedVirtualGuestCount,omitempty" xmlrpc:"allowedVirtualGuestCount,omitempty"` + + // The SoftLayer_Virtual_Guest objects which are allowed access to this storage volume. + AllowedVirtualGuests []Virtual_Guest `json:"allowedVirtualGuests,omitempty" xmlrpc:"allowedVirtualGuests,omitempty"` + + // The current billing item for a Storage volume. + BillingItem *Billing_Item `json:"billingItem,omitempty" xmlrpc:"billingItem,omitempty"` + + // no documentation yet + BillingItemCategory *Product_Item_Category `json:"billingItemCategory,omitempty" xmlrpc:"billingItemCategory,omitempty"` + + // The amount of space used by the volume, in bytes. + BytesUsed *string `json:"bytesUsed,omitempty" xmlrpc:"bytesUsed,omitempty"` + + // A Storage account's capacity, measured in gigabytes. + CapacityGb *int `json:"capacityGb,omitempty" xmlrpc:"capacityGb,omitempty"` + + // The date a network storage volume was created. + CreateDate *Time `json:"createDate,omitempty" xmlrpc:"createDate,omitempty"` + + // The schedule id which was executed to create a snapshot. + CreationScheduleId *string `json:"creationScheduleId,omitempty" xmlrpc:"creationScheduleId,omitempty"` + + // A count of + CredentialCount *uint `json:"credentialCount,omitempty" xmlrpc:"credentialCount,omitempty"` + + // no documentation yet + Credentials []Network_Storage_Credential `json:"credentials,omitempty" xmlrpc:"credentials,omitempty"` + + // The Daily Schedule which is associated with this network storage volume. + DailySchedule *Network_Storage_Schedule `json:"dailySchedule,omitempty" xmlrpc:"dailySchedule,omitempty"` + + // A count of the events which have taken place on a network storage volume. + EventCount *uint `json:"eventCount,omitempty" xmlrpc:"eventCount,omitempty"` + + // The events which have taken place on a network storage volume. + Events []Network_Storage_Event `json:"events,omitempty" xmlrpc:"events,omitempty"` + + // Retrieves the NFS Network Mount Address Name for a given File Storage Volume. + FileNetworkMountAddress *string `json:"fileNetworkMountAddress,omitempty" xmlrpc:"fileNetworkMountAddress,omitempty"` + + // The unique identification number of the guest associated with a Storage volume. + GuestId *int `json:"guestId,omitempty" xmlrpc:"guestId,omitempty"` + + // When applicable, the hardware associated with a Storage service. + Hardware *Hardware `json:"hardware,omitempty" xmlrpc:"hardware,omitempty"` + + // The server that is associated with a Storage service. + HardwareId *int `json:"hardwareId,omitempty" xmlrpc:"hardwareId,omitempty"` + + // no documentation yet + HasEncryptionAtRest *bool `json:"hasEncryptionAtRest,omitempty" xmlrpc:"hasEncryptionAtRest,omitempty"` + + // The unique identification number of the host associated with a Storage volume. + HostId *int `json:"hostId,omitempty" xmlrpc:"hostId,omitempty"` + + // The Hourly Schedule which is associated with this network storage volume. + HourlySchedule *Network_Storage_Schedule `json:"hourlySchedule,omitempty" xmlrpc:"hourlySchedule,omitempty"` + + // A Storage account's unique identifier. + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // The maximum number of IOPs selected for this volume. + Iops *string `json:"iops,omitempty" xmlrpc:"iops,omitempty"` + + // Determines whether a volume is ready to order snapshot space, or, if snapshot space is already available, to assign a snapshot schedule, or to take a manual snapshot. + IsReadyForSnapshot *bool `json:"isReadyForSnapshot,omitempty" xmlrpc:"isReadyForSnapshot,omitempty"` + + // Determines whether a volume is ready to have Hosts authorized to access it. This does not indicate whether another operation may be blocking, please refer to this volume's volumeStatus property for details. + IsReadyToMount *bool `json:"isReadyToMount,omitempty" xmlrpc:"isReadyToMount,omitempty"` + + // A count of relationship between a container volume and iSCSI LUNs. + IscsiLunCount *uint `json:"iscsiLunCount,omitempty" xmlrpc:"iscsiLunCount,omitempty"` + + // Relationship between a container volume and iSCSI LUNs. + IscsiLuns []Network_Storage `json:"iscsiLuns,omitempty" xmlrpc:"iscsiLuns,omitempty"` + + // The ID of the LUN volume. + LunId *string `json:"lunId,omitempty" xmlrpc:"lunId,omitempty"` + + // A count of the manually-created snapshots associated with this SoftLayer_Network_Storage volume. Does not support pagination by result limit and offset. + ManualSnapshotCount *uint `json:"manualSnapshotCount,omitempty" xmlrpc:"manualSnapshotCount,omitempty"` + + // The manually-created snapshots associated with this SoftLayer_Network_Storage volume. Does not support pagination by result limit and offset. + ManualSnapshots []Network_Storage `json:"manualSnapshots,omitempty" xmlrpc:"manualSnapshots,omitempty"` + + // A network storage volume's metric tracking object. This object records all periodic polled data available to this volume. + MetricTrackingObject *Metric_Tracking_Object `json:"metricTrackingObject,omitempty" xmlrpc:"metricTrackingObject,omitempty"` + + // Whether or not a network storage volume may be mounted. + MountableFlag *string `json:"mountableFlag,omitempty" xmlrpc:"mountableFlag,omitempty"` + + // The current status of split or move operation as a part of volume duplication. + MoveAndSplitStatus *string `json:"moveAndSplitStatus,omitempty" xmlrpc:"moveAndSplitStatus,omitempty"` + + // A Storage account's type. Valid examples are "NAS", "LOCKBOX", "ISCSI", "EVAULT", and "HUB". + NasType *string `json:"nasType,omitempty" xmlrpc:"nasType,omitempty"` + + // Public notes related to a Storage volume. + Notes *string `json:"notes,omitempty" xmlrpc:"notes,omitempty"` + + // A count of the subscribers that will be notified for usage amount warnings and overages. + NotificationSubscriberCount *uint `json:"notificationSubscriberCount,omitempty" xmlrpc:"notificationSubscriberCount,omitempty"` + + // The subscribers that will be notified for usage amount warnings and overages. + NotificationSubscribers []Notification_User_Subscriber `json:"notificationSubscribers,omitempty" xmlrpc:"notificationSubscribers,omitempty"` + + // The name of the snapshot that this volume was duplicated from. + OriginalSnapshotName *string `json:"originalSnapshotName,omitempty" xmlrpc:"originalSnapshotName,omitempty"` + + // The name of the volume that this volume was duplicated from. + OriginalVolumeName *string `json:"originalVolumeName,omitempty" xmlrpc:"originalVolumeName,omitempty"` + + // The size (in GB) of the volume that this volume was duplicated from, or in the case of iSCSI LUNs, the size of the base originally-provisioned LUN. + OriginalVolumeSize *string `json:"originalVolumeSize,omitempty" xmlrpc:"originalVolumeSize,omitempty"` + + // A volume's configured SoftLayer_Network_Storage_Iscsi_OS_Type. + OsType *Network_Storage_Iscsi_OS_Type `json:"osType,omitempty" xmlrpc:"osType,omitempty"` + + // A volume's configured SoftLayer_Network_Storage_Iscsi_OS_Type ID. + OsTypeId *string `json:"osTypeId,omitempty" xmlrpc:"osTypeId,omitempty"` + + // A count of the volumes or snapshots partnered with a network storage volume in a parental role. + ParentPartnershipCount *uint `json:"parentPartnershipCount,omitempty" xmlrpc:"parentPartnershipCount,omitempty"` + + // The volumes or snapshots partnered with a network storage volume in a parental role. + ParentPartnerships []Network_Storage_Partnership `json:"parentPartnerships,omitempty" xmlrpc:"parentPartnerships,omitempty"` + + // The parent volume of a volume in a complex storage relationship. + ParentVolume *Network_Storage `json:"parentVolume,omitempty" xmlrpc:"parentVolume,omitempty"` + + // A count of the volumes or snapshots partnered with a network storage volume. + PartnershipCount *uint `json:"partnershipCount,omitempty" xmlrpc:"partnershipCount,omitempty"` + + // The volumes or snapshots partnered with a network storage volume. + Partnerships []Network_Storage_Partnership `json:"partnerships,omitempty" xmlrpc:"partnerships,omitempty"` + + // The password used to access a non-EVault Storage volume. This password is used to register the EVault server agent with the vault backup system. + Password *string `json:"password,omitempty" xmlrpc:"password,omitempty"` + + // A count of all permissions group(s) this volume is in. + PermissionsGroupCount *uint `json:"permissionsGroupCount,omitempty" xmlrpc:"permissionsGroupCount,omitempty"` + + // All permissions group(s) this volume is in. + PermissionsGroups []Network_Storage_Group `json:"permissionsGroups,omitempty" xmlrpc:"permissionsGroups,omitempty"` + + // The properties used to provide additional details about a network storage volume. + Properties []Network_Storage_Property `json:"properties,omitempty" xmlrpc:"properties,omitempty"` + + // A count of the properties used to provide additional details about a network storage volume. + PropertyCount *uint `json:"propertyCount,omitempty" xmlrpc:"propertyCount,omitempty"` + + // The number of IOPs provisioned for this volume. + ProvisionedIops *string `json:"provisionedIops,omitempty" xmlrpc:"provisionedIops,omitempty"` + + // A count of the iSCSI LUN volumes being replicated by this network storage volume. + ReplicatingLunCount *uint `json:"replicatingLunCount,omitempty" xmlrpc:"replicatingLunCount,omitempty"` + + // The iSCSI LUN volumes being replicated by this network storage volume. + ReplicatingLuns []Network_Storage `json:"replicatingLuns,omitempty" xmlrpc:"replicatingLuns,omitempty"` + + // The network storage volume being replicated by a volume. + ReplicatingVolume *Network_Storage `json:"replicatingVolume,omitempty" xmlrpc:"replicatingVolume,omitempty"` + + // A count of the volume replication events. + ReplicationEventCount *uint `json:"replicationEventCount,omitempty" xmlrpc:"replicationEventCount,omitempty"` + + // The volume replication events. + ReplicationEvents []Network_Storage_Event `json:"replicationEvents,omitempty" xmlrpc:"replicationEvents,omitempty"` + + // A count of the network storage volumes configured to be replicants of a volume. + ReplicationPartnerCount *uint `json:"replicationPartnerCount,omitempty" xmlrpc:"replicationPartnerCount,omitempty"` + + // The network storage volumes configured to be replicants of a volume. + ReplicationPartners []Network_Storage `json:"replicationPartners,omitempty" xmlrpc:"replicationPartners,omitempty"` + + // The Replication Schedule associated with a network storage volume. + ReplicationSchedule *Network_Storage_Schedule `json:"replicationSchedule,omitempty" xmlrpc:"replicationSchedule,omitempty"` + + // The current replication status of a network storage volume. Indicates Failover or Failback status. + ReplicationStatus *string `json:"replicationStatus,omitempty" xmlrpc:"replicationStatus,omitempty"` + + // A count of the schedules which are associated with a network storage volume. + ScheduleCount *uint `json:"scheduleCount,omitempty" xmlrpc:"scheduleCount,omitempty"` + + // The schedules which are associated with a network storage volume. + Schedules []Network_Storage_Schedule `json:"schedules,omitempty" xmlrpc:"schedules,omitempty"` + + // Service Provider ID + ServiceProviderId *int `json:"serviceProviderId,omitempty" xmlrpc:"serviceProviderId,omitempty"` + + // The network resource a Storage service is connected to. + ServiceResource *Network_Service_Resource `json:"serviceResource,omitempty" xmlrpc:"serviceResource,omitempty"` + + // The IP address of a Storage resource. + ServiceResourceBackendIpAddress *string `json:"serviceResourceBackendIpAddress,omitempty" xmlrpc:"serviceResourceBackendIpAddress,omitempty"` + + // The name of a Storage's network resource. + ServiceResourceName *string `json:"serviceResourceName,omitempty" xmlrpc:"serviceResourceName,omitempty"` + + // A volume's configured snapshot space size. + SnapshotCapacityGb *string `json:"snapshotCapacityGb,omitempty" xmlrpc:"snapshotCapacityGb,omitempty"` + + // A count of the snapshots associated with this SoftLayer_Network_Storage volume. + SnapshotCount *uint `json:"snapshotCount,omitempty" xmlrpc:"snapshotCount,omitempty"` + + // The creation timestamp of the snapshot on the storage platform. + SnapshotCreationTimestamp *string `json:"snapshotCreationTimestamp,omitempty" xmlrpc:"snapshotCreationTimestamp,omitempty"` + + // The percentage of used snapshot space after which to delete automated snapshots. + SnapshotDeletionThresholdPercentage *string `json:"snapshotDeletionThresholdPercentage,omitempty" xmlrpc:"snapshotDeletionThresholdPercentage,omitempty"` + + // The snapshot size in bytes. + SnapshotSizeBytes *string `json:"snapshotSizeBytes,omitempty" xmlrpc:"snapshotSizeBytes,omitempty"` + + // A volume's available snapshot reservation space. + SnapshotSpaceAvailable *string `json:"snapshotSpaceAvailable,omitempty" xmlrpc:"snapshotSpaceAvailable,omitempty"` + + // The snapshots associated with this SoftLayer_Network_Storage volume. + Snapshots []Network_Storage `json:"snapshots,omitempty" xmlrpc:"snapshots,omitempty"` + + // no documentation yet + StaasVersion *string `json:"staasVersion,omitempty" xmlrpc:"staasVersion,omitempty"` + + // A count of the network storage groups this volume is attached to. + StorageGroupCount *uint `json:"storageGroupCount,omitempty" xmlrpc:"storageGroupCount,omitempty"` + + // The network storage groups this volume is attached to. + StorageGroups []Network_Storage_Group `json:"storageGroups,omitempty" xmlrpc:"storageGroups,omitempty"` + + // no documentation yet + StorageTierLevel *string `json:"storageTierLevel,omitempty" xmlrpc:"storageTierLevel,omitempty"` + + // A description of the Storage object. + StorageType *Network_Storage_Type `json:"storageType,omitempty" xmlrpc:"storageType,omitempty"` + + // A storage object's type. + StorageTypeId *string `json:"storageTypeId,omitempty" xmlrpc:"storageTypeId,omitempty"` + + // The amount of space used by the volume. + TotalBytesUsed *string `json:"totalBytesUsed,omitempty" xmlrpc:"totalBytesUsed,omitempty"` + + // The total snapshot retention count of all schedules on this network storage volume. + TotalScheduleSnapshotRetentionCount *uint `json:"totalScheduleSnapshotRetentionCount,omitempty" xmlrpc:"totalScheduleSnapshotRetentionCount,omitempty"` + + // This flag indicates whether this storage type is upgradable or not. + UpgradableFlag *bool `json:"upgradableFlag,omitempty" xmlrpc:"upgradableFlag,omitempty"` + + // The usage notification for SL Storage services. + UsageNotification *Notification `json:"usageNotification,omitempty" xmlrpc:"usageNotification,omitempty"` + + // The username used to access a non-EVault Storage volume. This username is used to register the EVault server agent with the vault backup system. + Username *string `json:"username,omitempty" xmlrpc:"username,omitempty"` + + // The type of network storage service. + VendorName *string `json:"vendorName,omitempty" xmlrpc:"vendorName,omitempty"` + + // When applicable, the virtual guest associated with a Storage service. + VirtualGuest *Virtual_Guest `json:"virtualGuest,omitempty" xmlrpc:"virtualGuest,omitempty"` + + // The username and password history for a Storage service. + VolumeHistory []Network_Storage_History `json:"volumeHistory,omitempty" xmlrpc:"volumeHistory,omitempty"` + + // A count of the username and password history for a Storage service. + VolumeHistoryCount *uint `json:"volumeHistoryCount,omitempty" xmlrpc:"volumeHistoryCount,omitempty"` + + // The current status of a network storage volume. + VolumeStatus *string `json:"volumeStatus,omitempty" xmlrpc:"volumeStatus,omitempty"` + + // The account username and password for the EVault webCC interface. + WebccAccount *Account_Password `json:"webccAccount,omitempty" xmlrpc:"webccAccount,omitempty"` + + // The Weekly Schedule which is associated with this network storage volume. + WeeklySchedule *Network_Storage_Schedule `json:"weeklySchedule,omitempty" xmlrpc:"weeklySchedule,omitempty"` +} + +// no documentation yet +type Network_Storage_Allowed_Host struct { + Entity + + // A count of the SoftLayer_Network_Storage_Group objects this SoftLayer_Network_Storage_Allowed_Host is present in. + AssignedGroupCount *uint `json:"assignedGroupCount,omitempty" xmlrpc:"assignedGroupCount,omitempty"` + + // The SoftLayer_Network_Storage_Group objects this SoftLayer_Network_Storage_Allowed_Host is present in. + AssignedGroups []Network_Storage_Group `json:"assignedGroups,omitempty" xmlrpc:"assignedGroups,omitempty"` + + // A count of the SoftLayer_Network_Storage primary volumes whose replicas are allowed access. + AssignedReplicationVolumeCount *uint `json:"assignedReplicationVolumeCount,omitempty" xmlrpc:"assignedReplicationVolumeCount,omitempty"` + + // The SoftLayer_Network_Storage primary volumes whose replicas are allowed access. + AssignedReplicationVolumes []Network_Storage `json:"assignedReplicationVolumes,omitempty" xmlrpc:"assignedReplicationVolumes,omitempty"` + + // A count of the SoftLayer_Network_Storage volumes to which this SoftLayer_Network_Storage_Allowed_Host is allowed access. + AssignedVolumeCount *uint `json:"assignedVolumeCount,omitempty" xmlrpc:"assignedVolumeCount,omitempty"` + + // The SoftLayer_Network_Storage volumes to which this SoftLayer_Network_Storage_Allowed_Host is allowed access. + AssignedVolumes []Network_Storage `json:"assignedVolumes,omitempty" xmlrpc:"assignedVolumes,omitempty"` + + // The SoftLayer_Network_Storage_Credential this allowed host uses. + Credential *Network_Storage_Credential `json:"credential,omitempty" xmlrpc:"credential,omitempty"` + + // The credential this allowed host will use + CredentialId *int `json:"credentialId,omitempty" xmlrpc:"credentialId,omitempty"` + + // The internal identifier of the igroup + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // The name of allowed host, usually an IQN or other identifier + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` + + // no documentation yet + ResourceTableId *int `json:"resourceTableId,omitempty" xmlrpc:"resourceTableId,omitempty"` + + // no documentation yet + ResourceTableName *string `json:"resourceTableName,omitempty" xmlrpc:"resourceTableName,omitempty"` +} + +// no documentation yet +type Network_Storage_Allowed_Host_Hardware struct { + Network_Storage_Allowed_Host + + // The SoftLayer_Hardware object which this SoftLayer_Network_Storage_Allowed_Host is referencing. + Resource *Hardware `json:"resource,omitempty" xmlrpc:"resource,omitempty"` +} + +// no documentation yet +type Network_Storage_Allowed_Host_IpAddress struct { + Network_Storage_Allowed_Host + + // The SoftLayer_Network_Subnet_IpAddress object which this SoftLayer_Network_Storage_Allowed_Host is referencing. + Resource *Network_Subnet_IpAddress `json:"resource,omitempty" xmlrpc:"resource,omitempty"` +} + +// no documentation yet +type Network_Storage_Allowed_Host_Subnet struct { + Network_Storage_Allowed_Host + + // The SoftLayer_Network_Subnet object which this SoftLayer_Network_Storage_Allowed_Host is referencing. + Resource *Network_Subnet `json:"resource,omitempty" xmlrpc:"resource,omitempty"` +} + +// no documentation yet +type Network_Storage_Allowed_Host_VirtualGuest struct { + Network_Storage_Allowed_Host + + // The SoftLayer_Virtual_Guest object which this SoftLayer_Network_Storage_Allowed_Host is referencing. + Resource *Virtual_Guest `json:"resource,omitempty" xmlrpc:"resource,omitempty"` +} + +// The SoftLayer_Network_Storage_Backup contains general information regarding a Storage backup service such as account id, username, maximum capacity, password, Storage's product type and the server id. +type Network_Storage_Backup struct { + Network_Storage + + // Peak number of bytes used in the vault for the current billing cycle. + CurrentCyclePeakUsage *uint `json:"currentCyclePeakUsage,omitempty" xmlrpc:"currentCyclePeakUsage,omitempty"` + + // Peak number of bytes used in the vault for the previous billing cycle. + PreviousCyclePeakUsage *uint `json:"previousCyclePeakUsage,omitempty" xmlrpc:"previousCyclePeakUsage,omitempty"` +} + +// The SoftLayer_Network_Storage_Backup_Evault contains general information regarding an EVault Storage service such as account id, username, maximum capacity, password, Storage's product type and the server id. +type Network_Storage_Backup_Evault struct { + Network_Storage_Backup +} + +// The SoftLayer_Network_Storage_Backup_Evault_Version6 contains the same properties as the SoftLayer_Network_Storage_Backup_Evault. Additional properties available for the EVault Storage type: softwareComponent, totalBytesUsed, backupJobDetails, restoreJobDetails and agentStatuses +type Network_Storage_Backup_Evault_Version6 struct { + Network_Storage_Backup_Evault + + // A count of statuses (most of the time will be one status) for the agent tied to the EVault Storage services. + AgentStatusCount *uint `json:"agentStatusCount,omitempty" xmlrpc:"agentStatusCount,omitempty"` + + // Statuses (most of the time will be one status) for the agent tied to the EVault Storage services. + AgentStatuses []Container_Network_Storage_Evault_WebCc_AgentStatus `json:"agentStatuses,omitempty" xmlrpc:"agentStatuses,omitempty"` + + // A count of all the of the backup jobs for the EVault Storage account. + BackupJobDetailCount *uint `json:"backupJobDetailCount,omitempty" xmlrpc:"backupJobDetailCount,omitempty"` + + // All the of the backup jobs for the EVault Storage account. + BackupJobDetails []Container_Network_Storage_Evault_WebCc_JobDetails `json:"backupJobDetails,omitempty" xmlrpc:"backupJobDetails,omitempty"` + + // A count of the billing items for plugins tied to the EVault Storage service. + PluginBillingItemCount *uint `json:"pluginBillingItemCount,omitempty" xmlrpc:"pluginBillingItemCount,omitempty"` + + // The billing items for plugins tied to the EVault Storage service. + PluginBillingItems []Billing_Item `json:"pluginBillingItems,omitempty" xmlrpc:"pluginBillingItems,omitempty"` + + // A count of all the of the restore jobs for the EVault Storage account. + RestoreJobDetailCount *uint `json:"restoreJobDetailCount,omitempty" xmlrpc:"restoreJobDetailCount,omitempty"` + + // All the of the restore jobs for the EVault Storage account. + RestoreJobDetails []Container_Network_Storage_Evault_WebCc_JobDetails `json:"restoreJobDetails,omitempty" xmlrpc:"restoreJobDetails,omitempty"` + + // The software component for the EVault base client. + SoftwareComponent *Software_Component `json:"softwareComponent,omitempty" xmlrpc:"softwareComponent,omitempty"` + + // A count of retrieve the task information for the EVault Storage service. + TaskCount *uint `json:"taskCount,omitempty" xmlrpc:"taskCount,omitempty"` + + // Retrieve the task information for the EVault Storage service. + Tasks []Container_Network_Storage_Evault_Vault_Task `json:"tasks,omitempty" xmlrpc:"tasks,omitempty"` +} + +// The SoftLayer_Network_Storage_Credential data type will give you an overview of the usernames that are currently attached to your storage device. +type Network_Storage_Credential struct { + Entity + + // This is the account that the storage credential is tied to. + Account *Account `json:"account,omitempty" xmlrpc:"account,omitempty"` + + // This is the account id associated with the volume. + AccountId *string `json:"accountId,omitempty" xmlrpc:"accountId,omitempty"` + + // This is the data that the record was created in the table. + CreateDate *Time `json:"createDate,omitempty" xmlrpc:"createDate,omitempty"` + + // no documentation yet + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // This is the date that the record was last updated in the table. + ModifyDate *Time `json:"modifyDate,omitempty" xmlrpc:"modifyDate,omitempty"` + + // This is the id of the type of credential that this object represents. + NasCredentialTypeId *int `json:"nasCredentialTypeId,omitempty" xmlrpc:"nasCredentialTypeId,omitempty"` + + // These are the SoftLayer_Network_Storage_Allowed_Host entries that this credential is assigned to. + NetworkStorageAllowedHosts *Network_Storage_Allowed_Host `json:"networkStorageAllowedHosts,omitempty" xmlrpc:"networkStorageAllowedHosts,omitempty"` + + // This is the password associated with the volume. + Password *string `json:"password,omitempty" xmlrpc:"password,omitempty"` + + // These are the types of storage that the credential can be assigned to. + Type *Network_Storage_Credential_Type `json:"type,omitempty" xmlrpc:"type,omitempty"` + + // This is the username associated with the volume. + Username *string `json:"username,omitempty" xmlrpc:"username,omitempty"` + + // A count of these are the SoftLayer_Network_Storage volumes that this credential is assigned to. + VolumeCount *uint `json:"volumeCount,omitempty" xmlrpc:"volumeCount,omitempty"` + + // These are the SoftLayer_Network_Storage volumes that this credential is assigned to. + Volumes []Network_Storage `json:"volumes,omitempty" xmlrpc:"volumes,omitempty"` +} + +// <<< +type Network_Storage_Credential_Type struct { + Entity + + // The date a credential type was created. + CreateDate *Time `json:"createDate,omitempty" xmlrpc:"createDate,omitempty"` + + // A short description of the credential type + Description *string `json:"description,omitempty" xmlrpc:"description,omitempty"` + + // The key name of the credential type. + KeyName *string `json:"keyName,omitempty" xmlrpc:"keyName,omitempty"` + + // The date a credential was last modified. + ModifyDate *Time `json:"modifyDate,omitempty" xmlrpc:"modifyDate,omitempty"` + + // The human readable name of the credential type. + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` +} + +// no documentation yet +type Network_Storage_Daily_Usage struct { + Entity + + // no documentation yet + BytesUsed *uint `json:"bytesUsed,omitempty" xmlrpc:"bytesUsed,omitempty"` + + // no documentation yet + CdnHttpBandwidth *uint `json:"cdnHttpBandwidth,omitempty" xmlrpc:"cdnHttpBandwidth,omitempty"` + + // no documentation yet + CreateDate *Time `json:"createDate,omitempty" xmlrpc:"createDate,omitempty"` + + // no documentation yet + NasVolume *Network_Storage `json:"nasVolume,omitempty" xmlrpc:"nasVolume,omitempty"` + + // no documentation yet + NasVolumeId *int `json:"nasVolumeId,omitempty" xmlrpc:"nasVolumeId,omitempty"` + + // no documentation yet + PublicBandwidthOut *uint `json:"publicBandwidthOut,omitempty" xmlrpc:"publicBandwidthOut,omitempty"` +} + +// Storage volumes can create various events to keep track of what has occurred to the volume. Events provide an audit trail that can be used to verify that various tasks have occurred, such as snapshots to be created by a schedule or remote replication synchronization. +type Network_Storage_Event struct { + Entity + + // The date an event was created. + CreateDate *Time `json:"createDate,omitempty" xmlrpc:"createDate,omitempty"` + + // The message text for an event. + Message *string `json:"message,omitempty" xmlrpc:"message,omitempty"` + + // A schedule that is associated with an event. Not all events will have a schedule. + Schedule *Network_Storage_Schedule `json:"schedule,omitempty" xmlrpc:"schedule,omitempty"` + + // An identifier for the schedule which is associated with an event. + ScheduleId *int `json:"scheduleId,omitempty" xmlrpc:"scheduleId,omitempty"` + + // An identifier for the type of an event. + TypeId *int `json:"typeId,omitempty" xmlrpc:"typeId,omitempty"` + + // The associated volume for an event. + Volume *Network_Storage `json:"volume,omitempty" xmlrpc:"volume,omitempty"` + + // The volume id which an event is associated with. + VolumeId *int `json:"volumeId,omitempty" xmlrpc:"volumeId,omitempty"` +} + +// no documentation yet +type Network_Storage_Group struct { + Entity + + // The SoftLayer_Account which owns this group. + Account *Account `json:"account,omitempty" xmlrpc:"account,omitempty"` + + // The account ID which owns this group + AccountId *int `json:"accountId,omitempty" xmlrpc:"accountId,omitempty"` + + // The friendly name of this group + Alias *string `json:"alias,omitempty" xmlrpc:"alias,omitempty"` + + // A count of the allowed hosts list for this group. + AllowedHostCount *uint `json:"allowedHostCount,omitempty" xmlrpc:"allowedHostCount,omitempty"` + + // The allowed hosts list for this group. + AllowedHosts []Network_Storage_Allowed_Host `json:"allowedHosts,omitempty" xmlrpc:"allowedHosts,omitempty"` + + // A count of the network storage volumes this group is attached to. + AttachedVolumeCount *uint `json:"attachedVolumeCount,omitempty" xmlrpc:"attachedVolumeCount,omitempty"` + + // The network storage volumes this group is attached to. + AttachedVolumes []Network_Storage `json:"attachedVolumes,omitempty" xmlrpc:"attachedVolumes,omitempty"` + + // The date this group was created. + CreateDate *Time `json:"createDate,omitempty" xmlrpc:"createDate,omitempty"` + + // The type which defines this group. + GroupType *Network_Storage_Group_Type `json:"groupType,omitempty" xmlrpc:"groupType,omitempty"` + + // The SoftLayer_Network_Storage_Group_Type which describes this group. + GroupTypeId *int `json:"groupTypeId,omitempty" xmlrpc:"groupTypeId,omitempty"` + + // The internal identifier of the group + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // no documentation yet + ModifyDate *Time `json:"modifyDate,omitempty" xmlrpc:"modifyDate,omitempty"` + + // The OS Type this group is configured for. + OsType *Network_Storage_Iscsi_OS_Type `json:"osType,omitempty" xmlrpc:"osType,omitempty"` + + // A SoftLayer_Network_Storage_OS_Type Operating System designation that this group was created for. + OsTypeId *int `json:"osTypeId,omitempty" xmlrpc:"osTypeId,omitempty"` + + // The network resource this group is created on. + ServiceResource *Network_Service_Resource `json:"serviceResource,omitempty" xmlrpc:"serviceResource,omitempty"` + + // A SoftLayer_Network_Service_Resource that this group was created on. + ServiceResourceId *int `json:"serviceResourceId,omitempty" xmlrpc:"serviceResourceId,omitempty"` +} + +// no documentation yet +type Network_Storage_Group_Iscsi struct { + Network_Storage_Group +} + +// no documentation yet +type Network_Storage_Group_Nfs struct { + Network_Storage_Group +} + +// no documentation yet +type Network_Storage_Group_Type struct { + Entity + + // no documentation yet + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // no documentation yet + KeyName *string `json:"keyName,omitempty" xmlrpc:"keyName,omitempty"` + + // no documentation yet + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` +} + +// The SoftLayer_Network_Storage_History contains the username/password past history for Storage services except Evault. Information such as the username, passwords, notes and the date of the password change may be retrieved. +type Network_Storage_History struct { + Entity + + // The account that the Storage services belongs to. + Account *Account `json:"account,omitempty" xmlrpc:"account,omitempty"` + + // Date the password was changed. + CreateDate *Time `json:"createDate,omitempty" xmlrpc:"createDate,omitempty"` + + // The Storage service that the password history belongs to. + NasVolume *Network_Storage `json:"nasVolume,omitempty" xmlrpc:"nasVolume,omitempty"` + + // Past notes for the Storage service. + Notes *string `json:"notes,omitempty" xmlrpc:"notes,omitempty"` + + // Password for the Storage service that was used in the past. + Password *string `json:"password,omitempty" xmlrpc:"password,omitempty"` + + // Username for the Storage service. + Username *string `json:"username,omitempty" xmlrpc:"username,omitempty"` +} + +// The SoftLayer_Network_Storage_Hub data type models Virtual Server type Storage storage offerings. +type Network_Storage_Hub struct { + Network_Storage + + // A count of the billing items tied to a Storage service's bandwidth usage. + BandwidthBillingItemCount *uint `json:"bandwidthBillingItemCount,omitempty" xmlrpc:"bandwidthBillingItemCount,omitempty"` + + // The billing items tied to a Storage service's bandwidth usage. + BandwidthBillingItems []Billing_Item `json:"bandwidthBillingItems,omitempty" xmlrpc:"bandwidthBillingItems,omitempty"` +} + +// no documentation yet +type Network_Storage_Hub_Cleversafe_Account struct { + Entity + + // SoftLayer account to which an IBM Cloud Object Storage account belongs to. + Account *Account `json:"account,omitempty" xmlrpc:"account,omitempty"` + + // The ID of the SoftLayer_Account which this IBM Cloud Object Storage account is associated with. + AccountId *int `json:"accountId,omitempty" xmlrpc:"accountId,omitempty"` + + // An associated parent billing item which is active. Includes billing items which are scheduled to be cancelled in the future. + BillingItem *Billing_Item `json:"billingItem,omitempty" xmlrpc:"billingItem,omitempty"` + + // An associated parent billing item which has been cancelled. + CancelledBillingItem *Billing_Item `json:"cancelledBillingItem,omitempty" xmlrpc:"cancelledBillingItem,omitempty"` + + // A count of credentials used for generating an AWS signature. Max of 2. + CredentialCount *uint `json:"credentialCount,omitempty" xmlrpc:"credentialCount,omitempty"` + + // Credentials used for generating an AWS signature. Max of 2. + Credentials []Network_Storage_Credential `json:"credentials,omitempty" xmlrpc:"credentials,omitempty"` + + // The IMS ID of an IBM Cloud Object Storage account. + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // Provides an interface to various metrics relating to the usage of an IBM Cloud Object Storage account. + MetricTrackingObject *Metric_Tracking_Object `json:"metricTrackingObject,omitempty" xmlrpc:"metricTrackingObject,omitempty"` + + // A user-defined field of notes. + Notes *string `json:"notes,omitempty" xmlrpc:"notes,omitempty"` + + // Human readable identifier of IBM Cloud Object Storage accounts. + Username *string `json:"username,omitempty" xmlrpc:"username,omitempty"` + + // Unique identifier for an IBM Cloud Object Storage account. + Uuid *string `json:"uuid,omitempty" xmlrpc:"uuid,omitempty"` +} + +// no documentation yet +type Network_Storage_Hub_Swift struct { + Network_Storage_Hub + + // A count of + StorageNodeCount *uint `json:"storageNodeCount,omitempty" xmlrpc:"storageNodeCount,omitempty"` + + // no documentation yet + StorageNodes []Network_Service_Resource `json:"storageNodes,omitempty" xmlrpc:"storageNodes,omitempty"` +} + +// no documentation yet +type Network_Storage_Hub_Swift_Container struct { + Network_Storage_Hub_Swift +} + +// no documentation yet +type Network_Storage_Hub_Swift_Share struct { + Entity +} + +// no documentation yet +type Network_Storage_Hub_Swift_Version1 struct { + Network_Storage_Hub_Swift +} + +// The iscsi data type provides access to additional information about an iscsi volume such as the snapshot capacity limit and replication partners. +type Network_Storage_Iscsi struct { + Network_Storage +} + +// The iscsi EqualLogic Version 3 data type provides access to additional information about an iscsi volume such as the available snapshot reserve space. +type Network_Storage_Iscsi_EqualLogic_Version3 struct { + Network_Storage_Iscsi +} + +// An iscsi replicant receives incoming data from an associated iscsi volume. While the replicant is not in failover mode it will not be mountable. Upon failover the replicant can be mounted and used as a normal volume. It is suggested to only do this as part of a disaster recovery plan. +type Network_Storage_Iscsi_EqualLogic_Version3_Replicant struct { + Network_Storage_Iscsi_EqualLogic_Version3 + + // When a replicant is in the process of synchronizing with the parent volume this flag will be true. + FailbackInProgressFlag *bool `json:"failbackInProgressFlag,omitempty" xmlrpc:"failbackInProgressFlag,omitempty"` + + // The volume name for an iscsi replicant. + VolumeName *string `json:"volumeName,omitempty" xmlrpc:"volumeName,omitempty"` +} + +// An iscsi snapshot is a point-in-time view of the data on an associated iscsi volume. Iscsi snapshots use a copy-on-write technology to minimize the amount of snapshot space used. When a snapshot is initially created it will use no snapshot space. At the time data changes on a volume which existed when a snapshot was created the original data will be saved in the associated volume's snapshot reserve space. +// +// As a snapshot is created offline it must be set mountable in order to mount it via an iscsi initiator service. +type Network_Storage_Iscsi_EqualLogic_Version3_Snapshot struct { + Network_Storage_Iscsi_EqualLogic_Version3 + + // If applicable, the schedule which was executed to create a snapshot. + CreationSchedule *Network_Storage_Schedule `json:"creationSchedule,omitempty" xmlrpc:"creationSchedule,omitempty"` + + // The volume name for an iscsi snapshot. + VolumeName *string `json:"volumeName,omitempty" xmlrpc:"volumeName,omitempty"` +} + +// no documentation yet +type Network_Storage_Iscsi_OS_Type struct { + Entity + + // The date this OS type record was created. + CreateDate *Time `json:"createDate,omitempty" xmlrpc:"createDate,omitempty"` + + // The description of this OS type + Description *string `json:"description,omitempty" xmlrpc:"description,omitempty"` + + // The internal identifier of the OS type selection + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // The key name of this OS type + KeyName *string `json:"keyName,omitempty" xmlrpc:"keyName,omitempty"` + + // The name of this OS type + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` +} + +// The SoftLayer_Network_Storage_Nas contains general information regarding a NAS Storage service such as account id, username, password, maximum capacity, Storage's product type and capacity. +type Network_Storage_Nas struct { + Network_Storage + + // no documentation yet + RecentBytesUsed *Network_Storage_Daily_Usage `json:"recentBytesUsed,omitempty" xmlrpc:"recentBytesUsed,omitempty"` +} + +// The SoftLayer_Network_Storage_OpenStack_Object data type models OpenStack specific object storage objects. These storages authenticate through Keystone to access Swift. +type Network_Storage_OpenStack_Object struct { + Network_Storage + + // A count of the billing item tied to an OpenStack Object Storage's bandwidth service. + BandwidthBillingItemCount *uint `json:"bandwidthBillingItemCount,omitempty" xmlrpc:"bandwidthBillingItemCount,omitempty"` + + // The billing item tied to an OpenStack Object Storage's bandwidth service. + BandwidthBillingItems []Billing_Item `json:"bandwidthBillingItems,omitempty" xmlrpc:"bandwidthBillingItems,omitempty"` +} + +// A network storage partnership is used to link multiple volumes to each other. These partnerships describe replication hierarchies or link volume snapshots to their associated storage volume. +type Network_Storage_Partnership struct { + Entity + + // The date a partnership was created. + CreateDate *Time `json:"createDate,omitempty" xmlrpc:"createDate,omitempty"` + + // The date a partnership was last modified. + ModifyDate *Time `json:"modifyDate,omitempty" xmlrpc:"modifyDate,omitempty"` + + // The associated child volume for a partnership. + PartnerVolume *Network_Storage `json:"partnerVolume,omitempty" xmlrpc:"partnerVolume,omitempty"` + + // The child volume id which a partnership is associated with. + PartnerVolumeId *int `json:"partnerVolumeId,omitempty" xmlrpc:"partnerVolumeId,omitempty"` + + // The type provides a standardized definition for a partnership. + Type *Network_Storage_Partnership_Type `json:"type,omitempty" xmlrpc:"type,omitempty"` + + // The associated parent volume for a partnership. + Volume *Network_Storage `json:"volume,omitempty" xmlrpc:"volume,omitempty"` + + // The volume id which a partnership is associated with. + VolumeId *int `json:"volumeId,omitempty" xmlrpc:"volumeId,omitempty"` +} + +// A network storage partnership type is used to define the link between two volumes. +type Network_Storage_Partnership_Type struct { + Entity + + // A type's description, for example 'ISCSI snapshot partnership'. + Description *string `json:"description,omitempty" xmlrpc:"description,omitempty"` + + // A type's key name, for example 'ISCSI_SNAPSHOT'. + Keyname *string `json:"keyname,omitempty" xmlrpc:"keyname,omitempty"` + + // A type's name, for example 'ISCSI Snapshot'. + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` +} + +// A property provides additional information about a volume which it is assigned to. This information can range from "Mountable" flags to utilized snapshot space. +type Network_Storage_Property struct { + Entity + + // The date a property was created. + CreateDate *Time `json:"createDate,omitempty" xmlrpc:"createDate,omitempty"` + + // The date a property was last modified; + ModifyDate *Time `json:"modifyDate,omitempty" xmlrpc:"modifyDate,omitempty"` + + // The type provides a standardized definition for a property. + Type *Network_Storage_Property_Type `json:"type,omitempty" xmlrpc:"type,omitempty"` + + // The value of a property. + Value *string `json:"value,omitempty" xmlrpc:"value,omitempty"` + + // The associated volume for a property. + Volume *Network_Storage `json:"volume,omitempty" xmlrpc:"volume,omitempty"` + + // The volume id which a property is associated with. + VolumeId *int `json:"volumeId,omitempty" xmlrpc:"volumeId,omitempty"` +} + +// The storage property types provide standard definitions for properties which can be used with any type for Storage offering. The properties provide additional information about a volume which they are assigned to. +type Network_Storage_Property_Type struct { + Entity + + // A type's description, for example 'Determines whether the volume is currently mountable'. + Description *string `json:"description,omitempty" xmlrpc:"description,omitempty"` + + // A type's keyname, for example 'MOUNTABLE'. + Keyname *string `json:"keyname,omitempty" xmlrpc:"keyname,omitempty"` + + // A type's name, for example 'Mountable'. + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` +} + +// no documentation yet +type Network_Storage_Replicant struct { + Network_Storage + + // When a replicant is in the process of synchronizing with the parent volume this flag will be true. + FailbackInProgressFlag *string `json:"failbackInProgressFlag,omitempty" xmlrpc:"failbackInProgressFlag,omitempty"` + + // The volume name for a replicant. + VolumeName *string `json:"volumeName,omitempty" xmlrpc:"volumeName,omitempty"` +} + +// Schedules can be created for select Storage services, such as iscsi. These schedules are used to perform various tasks such as scheduling snapshots or synchronizing replicants. +type Network_Storage_Schedule struct { + Entity + + // A flag which determines if a schedule is active. + Active *int `json:"active,omitempty" xmlrpc:"active,omitempty"` + + // The date a schedule was created. + CreateDate *Time `json:"createDate,omitempty" xmlrpc:"createDate,omitempty"` + + // The day of the month parameter of this schedule. + DayOfMonth *string `json:"dayOfMonth,omitempty" xmlrpc:"dayOfMonth,omitempty"` + + // The day of the week parameter of this schedule. + DayOfWeek *string `json:"dayOfWeek,omitempty" xmlrpc:"dayOfWeek,omitempty"` + + // A count of events which have been created as the result of a schedule execution. + EventCount *uint `json:"eventCount,omitempty" xmlrpc:"eventCount,omitempty"` + + // Events which have been created as the result of a schedule execution. + Events []Network_Storage_Event `json:"events,omitempty" xmlrpc:"events,omitempty"` + + // The hour parameter of this schedule. + Hour *string `json:"hour,omitempty" xmlrpc:"hour,omitempty"` + + // A schedule's internal identifier. + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // The minute parameter of this schedule. + Minute *string `json:"minute,omitempty" xmlrpc:"minute,omitempty"` + + // The date a schedule was last modified. + ModifyDate *Time `json:"modifyDate,omitempty" xmlrpc:"modifyDate,omitempty"` + + // The month of the year parameter of this schedule. + MonthOfYear *string `json:"monthOfYear,omitempty" xmlrpc:"monthOfYear,omitempty"` + + // A schedule's name, for example 'Daily'. + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` + + // The associated partnership for a schedule. + Partnership *Network_Storage_Partnership `json:"partnership,omitempty" xmlrpc:"partnership,omitempty"` + + // The partnership id which a schedule is associated with. + PartnershipId *int `json:"partnershipId,omitempty" xmlrpc:"partnershipId,omitempty"` + + // Properties used for configuration of a schedule. + Properties []Network_Storage_Schedule_Property `json:"properties,omitempty" xmlrpc:"properties,omitempty"` + + // A count of properties used for configuration of a schedule. + PropertyCount *uint `json:"propertyCount,omitempty" xmlrpc:"propertyCount,omitempty"` + + // A count of replica snapshots which have been created as the result of this schedule's execution. + ReplicaSnapshotCount *uint `json:"replicaSnapshotCount,omitempty" xmlrpc:"replicaSnapshotCount,omitempty"` + + // Replica snapshots which have been created as the result of this schedule's execution. + ReplicaSnapshots []Network_Storage `json:"replicaSnapshots,omitempty" xmlrpc:"replicaSnapshots,omitempty"` + + // The number of snapshots this schedule is configured to retain. + RetentionCount *string `json:"retentionCount,omitempty" xmlrpc:"retentionCount,omitempty"` + + // A count of snapshots which have been created as the result of this schedule's execution. + SnapshotCount *uint `json:"snapshotCount,omitempty" xmlrpc:"snapshotCount,omitempty"` + + // Snapshots which have been created as the result of this schedule's execution. + Snapshots []Network_Storage `json:"snapshots,omitempty" xmlrpc:"snapshots,omitempty"` + + // The type provides a standardized definition for a schedule. + Type *Network_Storage_Schedule_Type `json:"type,omitempty" xmlrpc:"type,omitempty"` + + // The type id which a schedule is associated with. + TypeId *int `json:"typeId,omitempty" xmlrpc:"typeId,omitempty"` + + // The associated volume for a schedule. + Volume *Network_Storage `json:"volume,omitempty" xmlrpc:"volume,omitempty"` + + // The volume id which a schedule is associated with. + VolumeId *int `json:"volumeId,omitempty" xmlrpc:"volumeId,omitempty"` +} + +// Schedule properties provide attributes such as start date, end date, interval, and other properties to a storage schedule. +type Network_Storage_Schedule_Property struct { + Entity + + // The date a schedule property was created. + CreateDate *Time `json:"createDate,omitempty" xmlrpc:"createDate,omitempty"` + + // A schedule property's internal identifier. + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // The date a schedule property was last modified. + ModifyDate *Time `json:"modifyDate,omitempty" xmlrpc:"modifyDate,omitempty"` + + // The associated schedule for a property. + Schedule *Network_Storage_Schedule `json:"schedule,omitempty" xmlrpc:"schedule,omitempty"` + + // The type provides a standardized definition for a property. + Type *Network_Storage_Schedule_Property_Type `json:"type,omitempty" xmlrpc:"type,omitempty"` + + // An identifier for the type of a property. + TypeId *int `json:"typeId,omitempty" xmlrpc:"typeId,omitempty"` + + // The value of a property. + Value *string `json:"value,omitempty" xmlrpc:"value,omitempty"` +} + +// A schedule property type is used to allow for a standardized method of defining network storage schedules. +type Network_Storage_Schedule_Property_Type struct { + Entity + + // A type's description, for example 'Date for the schedule to start.'. + Description *string `json:"description,omitempty" xmlrpc:"description,omitempty"` + + // A schedule property type's internal identifier. + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // A schedule property type's key name, for example 'START_DATE'. + Keyname *string `json:"keyname,omitempty" xmlrpc:"keyname,omitempty"` + + // A schedule property type's name, for example 'Start Date'. + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` + + // The type of Storage volume type which a property type may be associated with. + NasType *string `json:"nasType,omitempty" xmlrpc:"nasType,omitempty"` +} + +// A schedule type is used to define what a schedule was created to do. When creating a schedule to take snapshots of a volume, the 'Snapshot' schedule type would be used. +type Network_Storage_Schedule_Type struct { + Entity + + // A schedule type's internal identifier. + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // A schedule type's key name, for example 'SNAPSHOT'. + Keyname *string `json:"keyname,omitempty" xmlrpc:"keyname,omitempty"` + + // A schedule type's name, for example 'Snapshot'. + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` +} + +// no documentation yet +type Network_Storage_Snapshot struct { + Network_Storage + + // If applicable, the schedule which was executed to create a snapshot. + CreationSchedule *Network_Storage_Schedule `json:"creationSchedule,omitempty" xmlrpc:"creationSchedule,omitempty"` + + // The volume name for the snapshot. + VolumeName *string `json:"volumeName,omitempty" xmlrpc:"volumeName,omitempty"` +} + +// The SoftLayer_Network_Storage_Type contains a description of the associated SoftLayer_Network_Storage object. +type Network_Storage_Type struct { + Entity + + // Human readable description for the associated SoftLayer_Network_Storage object. + Description *string `json:"description,omitempty" xmlrpc:"description,omitempty"` + + // ID which corresponds with storageTypeId on storage objects. + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // Machine readable description code for the associated SoftLayer_Network_Storage object. + KeyName *string `json:"keyName,omitempty" xmlrpc:"keyName,omitempty"` + + // A count of the SoftLayer_Network_Storage object that uses this type. + VolumeCount *uint `json:"volumeCount,omitempty" xmlrpc:"volumeCount,omitempty"` + + // The SoftLayer_Network_Storage object that uses this type. + Volumes []Network_Storage `json:"volumes,omitempty" xmlrpc:"volumes,omitempty"` +} + +// The SoftLayer_Network_Subnet data type contains general information relating to a single SoftLayer subnet. Personal information in this type such as names, addresses, and phone numbers are assigned to the account only and not to users belonging to the account. +type Network_Subnet struct { + Entity + + // no documentation yet + Account *Account `json:"account,omitempty" xmlrpc:"account,omitempty"` + + // If present, the active registration for this subnet. + ActiveRegistration *Network_Subnet_Registration `json:"activeRegistration,omitempty" xmlrpc:"activeRegistration,omitempty"` + + // All the swip transactions associated with a subnet that are still active. + ActiveSwipTransaction *Network_Subnet_Swip_Transaction `json:"activeSwipTransaction,omitempty" xmlrpc:"activeSwipTransaction,omitempty"` + + // The billing item for a subnet. + ActiveTransaction *Provisioning_Version1_Transaction `json:"activeTransaction,omitempty" xmlrpc:"activeTransaction,omitempty"` + + // Identifier which distinguishes whether the subnet is public or private address space. + AddressSpace *string `json:"addressSpace,omitempty" xmlrpc:"addressSpace,omitempty"` + + // The SoftLayer_Network_Storage_Allowed_Host information to connect this Subnet to Network Storage supporting access control lists. + AllowedHost *Network_Storage_Allowed_Host `json:"allowedHost,omitempty" xmlrpc:"allowedHost,omitempty"` + + // The SoftLayer_Network_Storage objects that this SoftLayer_Hardware has access to. + AllowedNetworkStorage []Network_Storage `json:"allowedNetworkStorage,omitempty" xmlrpc:"allowedNetworkStorage,omitempty"` + + // A count of the SoftLayer_Network_Storage objects that this SoftLayer_Hardware has access to. + AllowedNetworkStorageCount *uint `json:"allowedNetworkStorageCount,omitempty" xmlrpc:"allowedNetworkStorageCount,omitempty"` + + // A count of the SoftLayer_Network_Storage objects whose Replica that this SoftLayer_Hardware has access to. + AllowedNetworkStorageReplicaCount *uint `json:"allowedNetworkStorageReplicaCount,omitempty" xmlrpc:"allowedNetworkStorageReplicaCount,omitempty"` + + // The SoftLayer_Network_Storage objects whose Replica that this SoftLayer_Hardware has access to. + AllowedNetworkStorageReplicas []Network_Storage `json:"allowedNetworkStorageReplicas,omitempty" xmlrpc:"allowedNetworkStorageReplicas,omitempty"` + + // The billing item for a subnet. + BillingItem *Billing_Item `json:"billingItem,omitempty" xmlrpc:"billingItem,omitempty"` + + // A count of + BoundDescendantCount *uint `json:"boundDescendantCount,omitempty" xmlrpc:"boundDescendantCount,omitempty"` + + // no documentation yet + BoundDescendants []Network_Subnet `json:"boundDescendants,omitempty" xmlrpc:"boundDescendants,omitempty"` + + // A count of + BoundRouterCount *uint `json:"boundRouterCount,omitempty" xmlrpc:"boundRouterCount,omitempty"` + + // Whether or not this subnet is associated with a router. Subnets that are not associated with a router cannot be routed. + BoundRouterFlag *bool `json:"boundRouterFlag,omitempty" xmlrpc:"boundRouterFlag,omitempty"` + + // no documentation yet + BoundRouters []Hardware `json:"boundRouters,omitempty" xmlrpc:"boundRouters,omitempty"` + + // The last IP address in a subnet is the subnet's broadcast address. This is an IP address that will broadcast network requests to the entire subnet and may not be assigned to a network interface. + BroadcastAddress *string `json:"broadcastAddress,omitempty" xmlrpc:"broadcastAddress,omitempty"` + + // no documentation yet + Children []Network_Subnet `json:"children,omitempty" xmlrpc:"children,omitempty"` + + // A count of + ChildrenCount *uint `json:"childrenCount,omitempty" xmlrpc:"childrenCount,omitempty"` + + // A subnet's Classless Inter-Domain Routing prefix. This is a number between 0 and 32 signifying the number of bits in a subnet's netmask. These bits separate a subnet's network address from it's host addresses. It performs the same function as the ''netmask'' property, but is represented as an integer. + Cidr *int `json:"cidr,omitempty" xmlrpc:"cidr,omitempty"` + + // The data center this subnet may be routed within. + Datacenter *Location_Datacenter `json:"datacenter,omitempty" xmlrpc:"datacenter,omitempty"` + + // A count of + DescendantCount *uint `json:"descendantCount,omitempty" xmlrpc:"descendantCount,omitempty"` + + // no documentation yet + Descendants []Network_Subnet `json:"descendants,omitempty" xmlrpc:"descendants,omitempty"` + + // no documentation yet + DisplayLabel *string `json:"displayLabel,omitempty" xmlrpc:"displayLabel,omitempty"` + + // A static routed ip address + EndPointIpAddress *Network_Subnet_IpAddress `json:"endPointIpAddress,omitempty" xmlrpc:"endPointIpAddress,omitempty"` + + // A subnet's gateway address. This is an IP address that belongs to the router on the subnet and may not be assigned to a network interface. + Gateway *string `json:"gateway,omitempty" xmlrpc:"gateway,omitempty"` + + // no documentation yet + GlobalIpRecord *Network_Subnet_IpAddress_Global `json:"globalIpRecord,omitempty" xmlrpc:"globalIpRecord,omitempty"` + + // The hardware using IP addresses on this subnet. + Hardware []Hardware `json:"hardware,omitempty" xmlrpc:"hardware,omitempty"` + + // A count of the hardware using IP addresses on this subnet. + HardwareCount *uint `json:"hardwareCount,omitempty" xmlrpc:"hardwareCount,omitempty"` + + // A subnet's internal identifier. + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // A count of all the ip addresses associated with a subnet. + IpAddressCount *uint `json:"ipAddressCount,omitempty" xmlrpc:"ipAddressCount,omitempty"` + + // All the ip addresses associated with a subnet. + IpAddresses []Network_Subnet_IpAddress `json:"ipAddresses,omitempty" xmlrpc:"ipAddresses,omitempty"` + + // no documentation yet + IsCustomerOwned *bool `json:"isCustomerOwned,omitempty" xmlrpc:"isCustomerOwned,omitempty"` + + // no documentation yet + IsCustomerRoutable *bool `json:"isCustomerRoutable,omitempty" xmlrpc:"isCustomerRoutable,omitempty"` + + // The last time this subnet was last modified + ModifyDate *Time `json:"modifyDate,omitempty" xmlrpc:"modifyDate,omitempty"` + + // A bitmask in dotted-quad format that is used to separate a subnet's network address from it's host addresses. This performs the same function as the ''cidr'' property, but is expressed in a string format. + Netmask *string `json:"netmask,omitempty" xmlrpc:"netmask,omitempty"` + + // A subnet's associated network component. + NetworkComponent *Network_Component `json:"networkComponent,omitempty" xmlrpc:"networkComponent,omitempty"` + + // The upstream network component firewall. + NetworkComponentFirewall *Network_Component_Firewall `json:"networkComponentFirewall,omitempty" xmlrpc:"networkComponentFirewall,omitempty"` + + // The Private Network identifier this subnet is within, if applicable. + NetworkId *int `json:"networkId,omitempty" xmlrpc:"networkId,omitempty"` + + // A subnet's network identifier. This is the first IP address of a subnet and may not be assigned to a network interface. + NetworkIdentifier *string `json:"networkIdentifier,omitempty" xmlrpc:"networkIdentifier,omitempty"` + + // A count of + NetworkProtectionAddressCount *uint `json:"networkProtectionAddressCount,omitempty" xmlrpc:"networkProtectionAddressCount,omitempty"` + + // no documentation yet + NetworkProtectionAddresses []Network_Protection_Address `json:"networkProtectionAddresses,omitempty" xmlrpc:"networkProtectionAddresses,omitempty"` + + // A count of iPSec network tunnels that have access to a private subnet. + NetworkTunnelContextCount *uint `json:"networkTunnelContextCount,omitempty" xmlrpc:"networkTunnelContextCount,omitempty"` + + // IPSec network tunnels that have access to a private subnet. + NetworkTunnelContexts []Network_Tunnel_Module_Context `json:"networkTunnelContexts,omitempty" xmlrpc:"networkTunnelContexts,omitempty"` + + // The VLAN object that a subnet is associated with. + NetworkVlan *Network_Vlan `json:"networkVlan,omitempty" xmlrpc:"networkVlan,omitempty"` + + // A subnet's associated VLAN's internal identifier. + NetworkVlanId *int `json:"networkVlanId,omitempty" xmlrpc:"networkVlanId,omitempty"` + + // This is the note field. + Note *string `json:"note,omitempty" xmlrpc:"note,omitempty"` + + // The pod in which this subnet resides. + PodName *string `json:"podName,omitempty" xmlrpc:"podName,omitempty"` + + // A count of + ProtectedIpAddressCount *uint `json:"protectedIpAddressCount,omitempty" xmlrpc:"protectedIpAddressCount,omitempty"` + + // no documentation yet + ProtectedIpAddresses []Network_Subnet_IpAddress `json:"protectedIpAddresses,omitempty" xmlrpc:"protectedIpAddresses,omitempty"` + + // no documentation yet + RegionalInternetRegistry *Network_Regional_Internet_Registry `json:"regionalInternetRegistry,omitempty" xmlrpc:"regionalInternetRegistry,omitempty"` + + // A count of all registrations that have been created for this subnet. + RegistrationCount *uint `json:"registrationCount,omitempty" xmlrpc:"registrationCount,omitempty"` + + // All registrations that have been created for this subnet. + Registrations []Network_Subnet_Registration `json:"registrations,omitempty" xmlrpc:"registrations,omitempty"` + + // A count of the resource groups in which this subnet is a member. + ResourceGroupCount *uint `json:"resourceGroupCount,omitempty" xmlrpc:"resourceGroupCount,omitempty"` + + // The resource groups in which this subnet is a member. + ResourceGroups []Resource_Group `json:"resourceGroups,omitempty" xmlrpc:"resourceGroups,omitempty"` + + // The reverse DNS domain associated with this subnet. + ReverseDomain *Dns_Domain `json:"reverseDomain,omitempty" xmlrpc:"reverseDomain,omitempty"` + + // An identifier of the role the subnet is within. Roles dictate how a subnet may be used. + RoleKeyName *string `json:"roleKeyName,omitempty" xmlrpc:"roleKeyName,omitempty"` + + // The name of the role the subnet is within. Roles dictate how a subnet may be used. + RoleName *string `json:"roleName,omitempty" xmlrpc:"roleName,omitempty"` + + // The identifier for the type of route then subnet is currently configured for. + RoutingTypeKeyName *string `json:"routingTypeKeyName,omitempty" xmlrpc:"routingTypeKeyName,omitempty"` + + // The name for the type of route then subnet is currently configured for. + RoutingTypeName *string `json:"routingTypeName,omitempty" xmlrpc:"routingTypeName,omitempty"` + + // A subnet can be one of several types. PRIMARY, ADDITIONAL_PRIMARY, SECONDARY, ROUTED_TO_VLAN, SECONDARY_ON_VLAN, and STATIC_IP_ROUTED. The type determines the order in which many subnets are sorted in the SoftLayer customer portal. This groups subnets of similar type together. + SortOrder *string `json:"sortOrder,omitempty" xmlrpc:"sortOrder,omitempty"` + + // A subnet can be one of several types. PRIMARY, ADDITIONAL_PRIMARY, SECONDARY, ROUTED_TO_VLAN, SECONDARY_ON_VLAN, STORAGE_NETWORK, and STATIC_IP_ROUTED. A "PRIMARY" subnet is the primary network bound to a VLAN within the softlayer network. An "ADDITIONAL_PRIMARY" subnet is bound to a network VLAN to augment the pool of available primary IP addresses that may be assigned to a server. A "SECONDARY" subnet is any of the secondary subnet's bound to a VLAN interface. A "ROUTED_TO_VLAN" subnet is a portable subnet that can be routed to any server on a vlan. A "SECONDARY_ON_VLAN" subnet also doesn't exist as a VLAN interface, but is routed directly to a VLAN instead of a single IP address by SoftLayer's routers. + SubnetType *string `json:"subnetType,omitempty" xmlrpc:"subnetType,omitempty"` + + // All the swip transactions associated with a subnet. + SwipTransaction []Network_Subnet_Swip_Transaction `json:"swipTransaction,omitempty" xmlrpc:"swipTransaction,omitempty"` + + // A count of all the swip transactions associated with a subnet. + SwipTransactionCount *uint `json:"swipTransactionCount,omitempty" xmlrpc:"swipTransactionCount,omitempty"` + + // The number of IP addresses contained within this subnet. + TotalIpAddresses *Float64 `json:"totalIpAddresses,omitempty" xmlrpc:"totalIpAddresses,omitempty"` + + // A count of + UnboundDescendantCount *uint `json:"unboundDescendantCount,omitempty" xmlrpc:"unboundDescendantCount,omitempty"` + + // no documentation yet + UnboundDescendants []Network_Subnet `json:"unboundDescendants,omitempty" xmlrpc:"unboundDescendants,omitempty"` + + // The number of IP addresses that can be addressed within this subnet. For IPv4 subnets with a CIDR value of at most 30, a discount of 3 is taken from the total number of IP addresses for the subnet's unusable network, gateway and broadcast IP addresses. For IPv6 subnets with a CIDR value of at most 126, a discount of 2 is taken for the subnet's network and gateway IP addresses. + UsableIpAddressCount *Float64 `json:"usableIpAddressCount,omitempty" xmlrpc:"usableIpAddressCount,omitempty"` + + // Provides the total number of utilized IP addresses on this subnet. The primary consumer of IP addresses are compute resources, which can consume more than one address. This value is only supported for primary subnet types. + UtilizedIpAddressCount *uint `json:"utilizedIpAddressCount,omitempty" xmlrpc:"utilizedIpAddressCount,omitempty"` + + // This is the Internet Protocol version. Current values may be either 4 or 6. + Version *int `json:"version,omitempty" xmlrpc:"version,omitempty"` + + // A count of the Virtual Servers using IP addresses on this subnet. + VirtualGuestCount *uint `json:"virtualGuestCount,omitempty" xmlrpc:"virtualGuestCount,omitempty"` + + // The Virtual Servers using IP addresses on this subnet. + VirtualGuests []Virtual_Guest `json:"virtualGuests,omitempty" xmlrpc:"virtualGuests,omitempty"` +} + +// The SoftLayer_Network_Subnet_IpAddress data type contains general information relating to a single SoftLayer IPv4 address. +type Network_Subnet_IpAddress struct { + Entity + + // The SoftLayer_Network_Storage_Allowed_Host information to connect this IP Address to Network Storage supporting access control lists. + AllowedHost *Network_Storage_Allowed_Host `json:"allowedHost,omitempty" xmlrpc:"allowedHost,omitempty"` + + // The SoftLayer_Network_Storage objects that this SoftLayer_Hardware has access to. + AllowedNetworkStorage []Network_Storage `json:"allowedNetworkStorage,omitempty" xmlrpc:"allowedNetworkStorage,omitempty"` + + // A count of the SoftLayer_Network_Storage objects that this SoftLayer_Hardware has access to. + AllowedNetworkStorageCount *uint `json:"allowedNetworkStorageCount,omitempty" xmlrpc:"allowedNetworkStorageCount,omitempty"` + + // A count of the SoftLayer_Network_Storage objects whose Replica that this SoftLayer_Hardware has access to. + AllowedNetworkStorageReplicaCount *uint `json:"allowedNetworkStorageReplicaCount,omitempty" xmlrpc:"allowedNetworkStorageReplicaCount,omitempty"` + + // The SoftLayer_Network_Storage objects whose Replica that this SoftLayer_Hardware has access to. + AllowedNetworkStorageReplicas []Network_Storage `json:"allowedNetworkStorageReplicas,omitempty" xmlrpc:"allowedNetworkStorageReplicas,omitempty"` + + // The application delivery controller using this address. + ApplicationDeliveryController *Network_Application_Delivery_Controller `json:"applicationDeliveryController,omitempty" xmlrpc:"applicationDeliveryController,omitempty"` + + // A count of an IPSec network tunnel's address translations. These translations use a SoftLayer ip address from an assigned static NAT subnet to deliver the packets to the remote (customer) destination. + ContextTunnelTranslationCount *uint `json:"contextTunnelTranslationCount,omitempty" xmlrpc:"contextTunnelTranslationCount,omitempty"` + + // An IPSec network tunnel's address translations. These translations use a SoftLayer ip address from an assigned static NAT subnet to deliver the packets to the remote (customer) destination. + ContextTunnelTranslations []Network_Tunnel_Module_Context_Address_Translation `json:"contextTunnelTranslations,omitempty" xmlrpc:"contextTunnelTranslations,omitempty"` + + // A count of all the subnets routed to an IP address. + EndpointSubnetCount *uint `json:"endpointSubnetCount,omitempty" xmlrpc:"endpointSubnetCount,omitempty"` + + // All the subnets routed to an IP address. + EndpointSubnets []Network_Subnet `json:"endpointSubnets,omitempty" xmlrpc:"endpointSubnets,omitempty"` + + // A network component that is statically routed to an IP address. + GuestNetworkComponent *Virtual_Guest_Network_Component `json:"guestNetworkComponent,omitempty" xmlrpc:"guestNetworkComponent,omitempty"` + + // A network component that is statically routed to an IP address. + GuestNetworkComponentBinding *Virtual_Guest_Network_Component_IpAddress `json:"guestNetworkComponentBinding,omitempty" xmlrpc:"guestNetworkComponentBinding,omitempty"` + + // A server that this IP address is routed to. + Hardware *Hardware `json:"hardware,omitempty" xmlrpc:"hardware,omitempty"` + + // An IP's internal identifier. + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // An IP address expressed in dotted quad format. + IpAddress *string `json:"ipAddress,omitempty" xmlrpc:"ipAddress,omitempty"` + + // Indicates if an IP address is reserved to be used as the network broadcast address and cannot be assigned to a network interface + IsBroadcast *bool `json:"isBroadcast,omitempty" xmlrpc:"isBroadcast,omitempty"` + + // Indicates if an IP address is reserved to a gateway and cannot be assigned to a network interface + IsGateway *bool `json:"isGateway,omitempty" xmlrpc:"isGateway,omitempty"` + + // Indicates if an IP address is reserved to a network address and cannot be assigned to a network interface + IsNetwork *bool `json:"isNetwork,omitempty" xmlrpc:"isNetwork,omitempty"` + + // Indicates if an IP address is reserved and cannot be assigned to a network interface + IsReserved *bool `json:"isReserved,omitempty" xmlrpc:"isReserved,omitempty"` + + // A network component that is statically routed to an IP address. + NetworkComponent *Network_Component `json:"networkComponent,omitempty" xmlrpc:"networkComponent,omitempty"` + + // An IP address' user defined note. + Note *string `json:"note,omitempty" xmlrpc:"note,omitempty"` + + // The network gateway appliance using this address as the private IP address. + PrivateNetworkGateway *Network_Gateway `json:"privateNetworkGateway,omitempty" xmlrpc:"privateNetworkGateway,omitempty"` + + // no documentation yet + ProtectionAddress []Network_Protection_Address `json:"protectionAddress,omitempty" xmlrpc:"protectionAddress,omitempty"` + + // A count of + ProtectionAddressCount *uint `json:"protectionAddressCount,omitempty" xmlrpc:"protectionAddressCount,omitempty"` + + // The network gateway appliance using this address as the public IP address. + PublicNetworkGateway *Network_Gateway `json:"publicNetworkGateway,omitempty" xmlrpc:"publicNetworkGateway,omitempty"` + + // An IPMI-based management network component of the IP address. + RemoteManagementNetworkComponent *Network_Component `json:"remoteManagementNetworkComponent,omitempty" xmlrpc:"remoteManagementNetworkComponent,omitempty"` + + // An IP address' associated subnet. + Subnet *Network_Subnet `json:"subnet,omitempty" xmlrpc:"subnet,omitempty"` + + // An IP address' subnet id. + SubnetId *int `json:"subnetId,omitempty" xmlrpc:"subnetId,omitempty"` + + // All events for this IP address stored in the datacenter syslogs from the last 24 hours + SyslogEventsOneDay []Network_Logging_Syslog `json:"syslogEventsOneDay,omitempty" xmlrpc:"syslogEventsOneDay,omitempty"` + + // A count of all events for this IP address stored in the datacenter syslogs from the last 24 hours + SyslogEventsOneDayCount *uint `json:"syslogEventsOneDayCount,omitempty" xmlrpc:"syslogEventsOneDayCount,omitempty"` + + // A count of all events for this IP address stored in the datacenter syslogs from the last 7 days + SyslogEventsSevenDayCount *uint `json:"syslogEventsSevenDayCount,omitempty" xmlrpc:"syslogEventsSevenDayCount,omitempty"` + + // All events for this IP address stored in the datacenter syslogs from the last 7 days + SyslogEventsSevenDays []Network_Logging_Syslog `json:"syslogEventsSevenDays,omitempty" xmlrpc:"syslogEventsSevenDays,omitempty"` + + // Top Ten network datacenter syslog events, grouped by destination port, for the last 24 hours + TopTenSyslogEventsByDestinationPortOneDay []Network_Logging_Syslog `json:"topTenSyslogEventsByDestinationPortOneDay,omitempty" xmlrpc:"topTenSyslogEventsByDestinationPortOneDay,omitempty"` + + // A count of top Ten network datacenter syslog events, grouped by destination port, for the last 24 hours + TopTenSyslogEventsByDestinationPortOneDayCount *uint `json:"topTenSyslogEventsByDestinationPortOneDayCount,omitempty" xmlrpc:"topTenSyslogEventsByDestinationPortOneDayCount,omitempty"` + + // A count of top Ten network datacenter syslog events, grouped by destination port, for the last 7 days + TopTenSyslogEventsByDestinationPortSevenDayCount *uint `json:"topTenSyslogEventsByDestinationPortSevenDayCount,omitempty" xmlrpc:"topTenSyslogEventsByDestinationPortSevenDayCount,omitempty"` + + // Top Ten network datacenter syslog events, grouped by destination port, for the last 7 days + TopTenSyslogEventsByDestinationPortSevenDays []Network_Logging_Syslog `json:"topTenSyslogEventsByDestinationPortSevenDays,omitempty" xmlrpc:"topTenSyslogEventsByDestinationPortSevenDays,omitempty"` + + // Top Ten network datacenter syslog events, grouped by source port, for the last 24 hours + TopTenSyslogEventsByProtocolsOneDay []Network_Logging_Syslog `json:"topTenSyslogEventsByProtocolsOneDay,omitempty" xmlrpc:"topTenSyslogEventsByProtocolsOneDay,omitempty"` + + // A count of top Ten network datacenter syslog events, grouped by source port, for the last 24 hours + TopTenSyslogEventsByProtocolsOneDayCount *uint `json:"topTenSyslogEventsByProtocolsOneDayCount,omitempty" xmlrpc:"topTenSyslogEventsByProtocolsOneDayCount,omitempty"` + + // A count of top Ten network datacenter syslog events, grouped by source port, for the last 7 days + TopTenSyslogEventsByProtocolsSevenDayCount *uint `json:"topTenSyslogEventsByProtocolsSevenDayCount,omitempty" xmlrpc:"topTenSyslogEventsByProtocolsSevenDayCount,omitempty"` + + // Top Ten network datacenter syslog events, grouped by source port, for the last 7 days + TopTenSyslogEventsByProtocolsSevenDays []Network_Logging_Syslog `json:"topTenSyslogEventsByProtocolsSevenDays,omitempty" xmlrpc:"topTenSyslogEventsByProtocolsSevenDays,omitempty"` + + // Top Ten network datacenter syslog events, grouped by source ip address, for the last 24 hours + TopTenSyslogEventsBySourceIpOneDay []Network_Logging_Syslog `json:"topTenSyslogEventsBySourceIpOneDay,omitempty" xmlrpc:"topTenSyslogEventsBySourceIpOneDay,omitempty"` + + // A count of top Ten network datacenter syslog events, grouped by source ip address, for the last 24 hours + TopTenSyslogEventsBySourceIpOneDayCount *uint `json:"topTenSyslogEventsBySourceIpOneDayCount,omitempty" xmlrpc:"topTenSyslogEventsBySourceIpOneDayCount,omitempty"` + + // A count of top Ten network datacenter syslog events, grouped by source ip address, for the last 7 days + TopTenSyslogEventsBySourceIpSevenDayCount *uint `json:"topTenSyslogEventsBySourceIpSevenDayCount,omitempty" xmlrpc:"topTenSyslogEventsBySourceIpSevenDayCount,omitempty"` + + // Top Ten network datacenter syslog events, grouped by source ip address, for the last 7 days + TopTenSyslogEventsBySourceIpSevenDays []Network_Logging_Syslog `json:"topTenSyslogEventsBySourceIpSevenDays,omitempty" xmlrpc:"topTenSyslogEventsBySourceIpSevenDays,omitempty"` + + // Top Ten network datacenter syslog events, grouped by source port, for the last 24 hours + TopTenSyslogEventsBySourcePortOneDay []Network_Logging_Syslog `json:"topTenSyslogEventsBySourcePortOneDay,omitempty" xmlrpc:"topTenSyslogEventsBySourcePortOneDay,omitempty"` + + // A count of top Ten network datacenter syslog events, grouped by source port, for the last 24 hours + TopTenSyslogEventsBySourcePortOneDayCount *uint `json:"topTenSyslogEventsBySourcePortOneDayCount,omitempty" xmlrpc:"topTenSyslogEventsBySourcePortOneDayCount,omitempty"` + + // A count of top Ten network datacenter syslog events, grouped by source port, for the last 7 days + TopTenSyslogEventsBySourcePortSevenDayCount *uint `json:"topTenSyslogEventsBySourcePortSevenDayCount,omitempty" xmlrpc:"topTenSyslogEventsBySourcePortSevenDayCount,omitempty"` + + // Top Ten network datacenter syslog events, grouped by source port, for the last 7 days + TopTenSyslogEventsBySourcePortSevenDays []Network_Logging_Syslog `json:"topTenSyslogEventsBySourcePortSevenDays,omitempty" xmlrpc:"topTenSyslogEventsBySourcePortSevenDays,omitempty"` + + // A virtual guest that this IP address is routed to. + VirtualGuest *Virtual_Guest `json:"virtualGuest,omitempty" xmlrpc:"virtualGuest,omitempty"` + + // A count of virtual licenses allocated for an IP Address. + VirtualLicenseCount *uint `json:"virtualLicenseCount,omitempty" xmlrpc:"virtualLicenseCount,omitempty"` + + // Virtual licenses allocated for an IP Address. + VirtualLicenses []Software_VirtualLicense `json:"virtualLicenses,omitempty" xmlrpc:"virtualLicenses,omitempty"` +} + +// no documentation yet +type Network_Subnet_IpAddress_Global struct { + Entity + + // no documentation yet + Account *Account `json:"account,omitempty" xmlrpc:"account,omitempty"` + + // The active transaction associated with this Global IP. + ActiveTransaction *Provisioning_Version1_Transaction `json:"activeTransaction,omitempty" xmlrpc:"activeTransaction,omitempty"` + + // The billing item for this Global IP. + BillingItem *Billing_Item_Network_Subnet_IpAddress_Global `json:"billingItem,omitempty" xmlrpc:"billingItem,omitempty"` + + // A Global IP Address' associated description + Description *int `json:"description,omitempty" xmlrpc:"description,omitempty"` + + // no documentation yet + DestinationIpAddress *Network_Subnet_IpAddress `json:"destinationIpAddress,omitempty" xmlrpc:"destinationIpAddress,omitempty"` + + // A Global IP Address' associated [[SoftLayer_Network_Subnet_IpAddress|ipAddress]] ID + DestinationIpAddressId *int `json:"destinationIpAddressId,omitempty" xmlrpc:"destinationIpAddressId,omitempty"` + + // A Global IP Address' unique identifier + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // no documentation yet + IpAddress *Network_Subnet_IpAddress `json:"ipAddress,omitempty" xmlrpc:"ipAddress,omitempty"` + + // A Global IP Address' associated [[SoftLayer_Account|account]] ID + IpAddressId *int `json:"ipAddressId,omitempty" xmlrpc:"ipAddressId,omitempty"` + + // A Global IP Address' associated type [[SoftLayer_Network_Subnet_IpAddress_Global_Type|id]] ID + TypeId *int `json:"typeId,omitempty" xmlrpc:"typeId,omitempty"` +} + +// The SoftLayer_Network_Subnet_IpAddress data type contains general information relating to a single SoftLayer IPv6 address. +type Network_Subnet_IpAddress_Version6 struct { + Network_Subnet_IpAddress + + // The network gateway appliance using this address as the public IPv6 address. + PublicVersion6NetworkGateway *Network_Gateway `json:"publicVersion6NetworkGateway,omitempty" xmlrpc:"publicVersion6NetworkGateway,omitempty"` +} + +// The subnet registration data type contains general information relating to a single subnet registration instance. These registration instances can be updated to reflect changes, and will record the changes in the [[SoftLayer_Network_Subnet_Registration_Event|events]]. +type Network_Subnet_Registration struct { + Entity + + // The account that this registration belongs to. + Account *Account `json:"account,omitempty" xmlrpc:"account,omitempty"` + + // The registration object's associated [[SoftLayer_Account|account]] id + AccountId *int `json:"accountId,omitempty" xmlrpc:"accountId,omitempty"` + + // The CIDR prefix for the registered subnet + Cidr *int `json:"cidr,omitempty" xmlrpc:"cidr,omitempty"` + + // no documentation yet + CreateDate *Time `json:"createDate,omitempty" xmlrpc:"createDate,omitempty"` + + // A count of the cross-reference records that tie the [[SoftLayer_Account_Regional_Registry_Detail]] objects to the registration object. + DetailReferenceCount *uint `json:"detailReferenceCount,omitempty" xmlrpc:"detailReferenceCount,omitempty"` + + // The cross-reference records that tie the [[SoftLayer_Account_Regional_Registry_Detail]] objects to the registration object. + DetailReferences []Network_Subnet_Registration_Details `json:"detailReferences,omitempty" xmlrpc:"detailReferences,omitempty"` + + // A count of the related registration events. + EventCount *uint `json:"eventCount,omitempty" xmlrpc:"eventCount,omitempty"` + + // The related registration events. + Events []Network_Subnet_Registration_Event `json:"events,omitempty" xmlrpc:"events,omitempty"` + + // Unique ID of the registration object + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // no documentation yet + ModifyDate *Time `json:"modifyDate,omitempty" xmlrpc:"modifyDate,omitempty"` + + // The "network" detail object. + NetworkDetail *Account_Regional_Registry_Detail `json:"networkDetail,omitempty" xmlrpc:"networkDetail,omitempty"` + + // The RIR-specific handle or name of the registered subnet. This field is read-only. + NetworkHandle *string `json:"networkHandle,omitempty" xmlrpc:"networkHandle,omitempty"` + + // The base IP address of the registered subnet + NetworkIdentifier *string `json:"networkIdentifier,omitempty" xmlrpc:"networkIdentifier,omitempty"` + + // The "person" detail object. + PersonDetail *Account_Regional_Registry_Detail `json:"personDetail,omitempty" xmlrpc:"personDetail,omitempty"` + + // The related Regional Internet Registry. + RegionalInternetRegistry *Network_Regional_Internet_Registry `json:"regionalInternetRegistry,omitempty" xmlrpc:"regionalInternetRegistry,omitempty"` + + // The RIR handle that this registration object belongs to. This field may not be populated until the registration is complete. + RegionalInternetRegistryHandle *Account_Rwhois_Handle `json:"regionalInternetRegistryHandle,omitempty" xmlrpc:"regionalInternetRegistryHandle,omitempty"` + + // The registration object's associated [[SoftLayer_Account_Rwhois_Handle|RIR handle]] id + RegionalInternetRegistryHandleId *int `json:"regionalInternetRegistryHandleId,omitempty" xmlrpc:"regionalInternetRegistryHandleId,omitempty"` + + // The registration object's associated [[SoftLayer_Network_Regional_Internet_Registry|RIR]] id + RegionalInternetRegistryId *int `json:"regionalInternetRegistryId,omitempty" xmlrpc:"regionalInternetRegistryId,omitempty"` + + // The status of this registration. + Status *Network_Subnet_Registration_Status `json:"status,omitempty" xmlrpc:"status,omitempty"` + + // The registration object's associated [[SoftLayer_Network_Subnet_Registration_Status|status]] id + StatusId *int `json:"statusId,omitempty" xmlrpc:"statusId,omitempty"` + + // The subnet that this registration pertains to. + Subnet *Network_Subnet `json:"subnet,omitempty" xmlrpc:"subnet,omitempty"` +} + +// APNIC-specific registration object. For more detail see [[SoftLayer_Network_Subnet_Registration (type)|SoftLayer_Network_Subnet_Registration]]. +type Network_Subnet_Registration_Apnic struct { + Network_Subnet_Registration +} + +// ARIN-specific registration object. For more detail see [[SoftLayer_Network_Subnet_Registration (type)|SoftLayer_Network_Subnet_Registration]]. +type Network_Subnet_Registration_Arin struct { + Network_Subnet_Registration +} + +// The SoftLayer_Network_Subnet_Registration_Details objects are used to relate [[SoftLayer_Account_Regional_Registry_Detail]] objects to a [[SoftLayer_Network_Subnet_Registration]] object. This allows for easy reuse of registration details. It is important to note that only one detail object per type may be associated to a registration object. +type Network_Subnet_Registration_Details struct { + Entity + + // no documentation yet + CreateDate *Time `json:"createDate,omitempty" xmlrpc:"createDate,omitempty"` + + // The related [[SoftLayer_Account_Regional_Registry_Detail|detail object]]. + Detail *Account_Regional_Registry_Detail `json:"detail,omitempty" xmlrpc:"detail,omitempty"` + + // Numeric ID of the related [[SoftLayer_Account_Regional_Registry_Detail]] object + DetailId *int `json:"detailId,omitempty" xmlrpc:"detailId,omitempty"` + + // Unique numeric ID of the object + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // no documentation yet + ModifyDate *Time `json:"modifyDate,omitempty" xmlrpc:"modifyDate,omitempty"` + + // The related [[SoftLayer_Network_Subnet_Registration|registration object]]. + Registration *Network_Subnet_Registration `json:"registration,omitempty" xmlrpc:"registration,omitempty"` + + // Numeric ID of the related [[SoftLayer_Network_Subnet_Registration]] object + RegistrationId *int `json:"registrationId,omitempty" xmlrpc:"registrationId,omitempty"` +} + +// Each time a [[SoftLayer_Network_Subnet_Registration|subnet registration]] object is created or modified, the system will generate an event for it. Additional actions that would create an event include RIR responses and error cases. * +type Network_Subnet_Registration_Event struct { + Entity + + // no documentation yet + CreateDate *Time `json:"createDate,omitempty" xmlrpc:"createDate,omitempty"` + + // Unique numeric ID of the event object + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // A string message indicating what took place during this event + Message *string `json:"message,omitempty" xmlrpc:"message,omitempty"` + + // no documentation yet + ModifyDate *Time `json:"modifyDate,omitempty" xmlrpc:"modifyDate,omitempty"` + + // The registration this event pertains to. + Registration *Network_Subnet_Registration `json:"registration,omitempty" xmlrpc:"registration,omitempty"` + + // The numeric ID of the related [[SoftLayer_Network_Subnet_Registration]] object + RegistrationId *int `json:"registrationId,omitempty" xmlrpc:"registrationId,omitempty"` + + // The type of this event. + Type *Network_Subnet_Registration_Event_Type `json:"type,omitempty" xmlrpc:"type,omitempty"` + + // The numeric ID of the associated [[SoftLayer_Network_Subnet_Registration_Event_Type|event type]] object + TypeId *int `json:"typeId,omitempty" xmlrpc:"typeId,omitempty"` +} + +// Subnet Registration Event Type objects describe the nature of a [[SoftLayer_Network_Subnet_Registration_Event]] +// +// The standard values for these objects are as follows:
    • REGISTRATION_CREATED - Indicates that the registration has been created
    • REGISTRATION_UPDATED - Indicates that the registration has been updated
    • REGISTRATION_CANCELLED - Indicates that the registration has been cancelled
    • RIR_RESPONSE - Indicates that an action taken against the RIR has produced a response. More details will be provided in the event message.
    • ERROR - Indicates that an error has been encountered. More details will be provided in the event message.
    • NOTE - An employee or other system has entered a note regarding the registration. The note content will be provided in the event message.
    +type Network_Subnet_Registration_Event_Type struct { + Entity + + // no documentation yet + CreateDate *Time `json:"createDate,omitempty" xmlrpc:"createDate,omitempty"` + + // Unique numeric ID of the event type object + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // Code-friendly string name of the event type + KeyName *string `json:"keyName,omitempty" xmlrpc:"keyName,omitempty"` + + // no documentation yet + ModifyDate *Time `json:"modifyDate,omitempty" xmlrpc:"modifyDate,omitempty"` + + // Human-readable name of the event type + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` +} + +// RIPE-specific registration object. For more detail see [[SoftLayer_Network_Subnet_Registration (type)|SoftLayer_Network_Subnet_Registration]]. +type Network_Subnet_Registration_Ripe struct { + Network_Subnet_Registration +} + +// Subnet Registration Status objects describe the current status of a subnet registration. +// +// The standard values for these objects are as follows:
    • OPEN - Indicates that the registration object is new and has yet to be submitted to the RIR
    • PENDING - Indicates that the registration object has been submitted to the RIR and is awaiting response
    • COMPLETE - Indicates that the RIR action has completed
    • DELETED - Indicates that the registration object has been gracefully removed is no longer valid
    • CANCELLED - Indicates that the registration object has been abruptly removed is no longer valid
    +type Network_Subnet_Registration_Status struct { + Entity + + // no documentation yet + CreateDate *Time `json:"createDate,omitempty" xmlrpc:"createDate,omitempty"` + + // Unique numeric ID of the status object + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // Code-friendly string name of the status + KeyName *string `json:"keyName,omitempty" xmlrpc:"keyName,omitempty"` + + // no documentation yet + ModifyDate *Time `json:"modifyDate,omitempty" xmlrpc:"modifyDate,omitempty"` + + // Human-readable name of the status + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` +} + +// Every SoftLayer customer account has contact information associated with it for reverse WHOIS purposes. An account's RWHOIS data, modeled by the SoftLayer_Network_Subnet_Rwhois_Data data type, is used by SoftLayer's reverse WHOIS server as well as for SWIP transactions. SoftLayer's reverse WHOIS servers respond to WHOIS queries for IP addresses belonging to a customer's servers, returning this RWHOIS data. +// +// A SoftLayer customer's RWHOIS data may not necessarily match their account or portal users' contact information. +type Network_Subnet_Rwhois_Data struct { + Entity + + // An email address associated with an account's RWHOIS data that is responsible for responding to network abuse queries about malicious traffic coming from your servers' IP addresses. + AbuseEmail *string `json:"abuseEmail,omitempty" xmlrpc:"abuseEmail,omitempty"` + + // The SoftLayer customer account associated with this reverse WHOIS data. + Account *Account `json:"account,omitempty" xmlrpc:"account,omitempty"` + + // An account's RWHOIS data's associated account identifier. + AccountId *int `json:"accountId,omitempty" xmlrpc:"accountId,omitempty"` + + // The first line of the mailing address associated with an account's RWHOIS data. + Address1 *string `json:"address1,omitempty" xmlrpc:"address1,omitempty"` + + // The second line of the mailing address associated with an account's RWHOIS data. + Address2 *string `json:"address2,omitempty" xmlrpc:"address2,omitempty"` + + // The city of the mailing address associated with an account's RWHOIS data. + City *string `json:"city,omitempty" xmlrpc:"city,omitempty"` + + // The company name associated with an account's RWHOIS data. + CompanyName *string `json:"companyName,omitempty" xmlrpc:"companyName,omitempty"` + + // A two-letter abbreviation of the country of the mailing address associated with an account's RWHOIS data. + Country *string `json:"country,omitempty" xmlrpc:"country,omitempty"` + + // The date an account's RWHOIS data was created. + CreateDate *Time `json:"createDate,omitempty" xmlrpc:"createDate,omitempty"` + + // The first name associated with an account's RWHOIS data. + FirstName *string `json:"firstName,omitempty" xmlrpc:"firstName,omitempty"` + + // An account's RWHOIS data's internal identifier. + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // The last name associated with an account's RWHOIS data. + LastName *string `json:"lastName,omitempty" xmlrpc:"lastName,omitempty"` + + // The date an account's RWHOIS data was last modified. + ModifyDate *Time `json:"modifyDate,omitempty" xmlrpc:"modifyDate,omitempty"` + + // The postal code of the mailing address associated with an account's RWHOIS data. + PostalCode *string `json:"postalCode,omitempty" xmlrpc:"postalCode,omitempty"` + + // Whether an account's RWHOIS data refers to a private residence or not. + PrivateResidenceFlag *bool `json:"privateResidenceFlag,omitempty" xmlrpc:"privateResidenceFlag,omitempty"` + + // A two-letter abbreviation of the state of the mailing address associated with an account's RWHOIS data. If an account does not reside in a province then this is typically blank. + State *string `json:"state,omitempty" xmlrpc:"state,omitempty"` +} + +// The SoftLayer_Network_Subnet_Swip_Transaction data type contains basic information tracked at SoftLayer to allow automation of Swip creation, update, and removal requests. A specific transaction is attached to an accountId and a subnetId. This also contains a "Status Name" which tells the customer what the transaction is doing: +// +// +// * REQUEST QUEUED: Request is queued up to be sent to ARIN +// * REQUEST SENT: The email request has been sent to ARIN +// * REQUEST CONFIRMED: ARIN has confirmed that the request is good, and should be available in 24 hours +// * OK: The subnet has been checked with WHOIS and it the SWIP transaction has completed correctly +// * REMOVE QUEUED: A subnet is queued to be removed from ARIN's systems +// * REMOVE SENT: The removal email request has been sent to ARIN +// * REMOVE CONFIRMED: ARIN has confirmed that the removal request is good, and the subnet should be clear in WHOIS in 24 hours +// * DELETED: This specific SWIP Transaction has been removed from ARIN and is no longer in effect +// * SOFTLAYER MANUALLY PROCESSING: Sometimes a request doesn't go through correctly and has to be manually processed by SoftLayer. This may take some time. +type Network_Subnet_Swip_Transaction struct { + Entity + + // The Account whose RWHOIS data was used to SWIP this subnet + Account *Account `json:"account,omitempty" xmlrpc:"account,omitempty"` + + // A SWIP transaction's unique identifier. + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // A Name describing which state a SWIP transaction is in. + StatusName *string `json:"statusName,omitempty" xmlrpc:"statusName,omitempty"` + + // The subnet that this SWIP transaction was created for. + Subnet *Network_Subnet `json:"subnet,omitempty" xmlrpc:"subnet,omitempty"` + + // ID Number of the Subnet for this SWIP transaction. + SubnetId *int `json:"subnetId,omitempty" xmlrpc:"subnetId,omitempty"` +} + +// no documentation yet +type Network_TippingPointReporting struct { + Entity +} + +// The SoftLayer_Network_Tunnel_Module_Context data type contains general information relating to a single SoftLayer network tunnel. The SoftLayer_Network_Tunnel_Module_Context is useful to gather information such as related customer subnets (remote) and internal subnets (local) associated with the network tunnel as well as other information needed to manage the network tunnel. Account and billing information related to the network tunnel can also be retrieved. +type Network_Tunnel_Module_Context struct { + Entity + + // The account that a network tunnel belongs to. + Account *Account `json:"account,omitempty" xmlrpc:"account,omitempty"` + + // A network tunnel's account identifier. + AccountId *int `json:"accountId,omitempty" xmlrpc:"accountId,omitempty"` + + // The transaction that is currently applying configurations for the network tunnel. + ActiveTransaction *Provisioning_Version1_Transaction `json:"activeTransaction,omitempty" xmlrpc:"activeTransaction,omitempty"` + + // A count of a network tunnel's address translations. + AddressTranslationCount *uint `json:"addressTranslationCount,omitempty" xmlrpc:"addressTranslationCount,omitempty"` + + // A network tunnel's address translations. + AddressTranslations []Network_Tunnel_Module_Context_Address_Translation `json:"addressTranslations,omitempty" xmlrpc:"addressTranslations,omitempty"` + + // A flag used to specify when advanced configurations, complex configurations that require manual setup, are being applied to network devices for a network tunnel. When the flag is set to true (1), a network tunnel cannot be configured through the management portal nor the API. + AdvancedConfigurationFlag *int `json:"advancedConfigurationFlag,omitempty" xmlrpc:"advancedConfigurationFlag,omitempty"` + + // A count of subnets that provide access to SoftLayer services such as the management portal and the SoftLayer API. + AllAvailableServiceSubnetCount *uint `json:"allAvailableServiceSubnetCount,omitempty" xmlrpc:"allAvailableServiceSubnetCount,omitempty"` + + // Subnets that provide access to SoftLayer services such as the management portal and the SoftLayer API. + AllAvailableServiceSubnets []Network_Subnet `json:"allAvailableServiceSubnets,omitempty" xmlrpc:"allAvailableServiceSubnets,omitempty"` + + // The current billing item for network tunnel. + BillingItem *Billing_Item `json:"billingItem,omitempty" xmlrpc:"billingItem,omitempty"` + + // The date a network tunnel was created. + CreateDate *Time `json:"createDate,omitempty" xmlrpc:"createDate,omitempty"` + + // The remote end of a network tunnel. This end of the network tunnel resides on an outside network and will be sending and receiving the IPSec packets. + CustomerPeerIpAddress *string `json:"customerPeerIpAddress,omitempty" xmlrpc:"customerPeerIpAddress,omitempty"` + + // A count of remote subnets that are allowed access through a network tunnel. + CustomerSubnetCount *uint `json:"customerSubnetCount,omitempty" xmlrpc:"customerSubnetCount,omitempty"` + + // Remote subnets that are allowed access through a network tunnel. + CustomerSubnets []Network_Customer_Subnet `json:"customerSubnets,omitempty" xmlrpc:"customerSubnets,omitempty"` + + // The datacenter location for one end of the network tunnel that allows access to account's private subnets. + Datacenter *Location `json:"datacenter,omitempty" xmlrpc:"datacenter,omitempty"` + + // The name giving to a network tunnel by a user. + FriendlyName *string `json:"friendlyName,omitempty" xmlrpc:"friendlyName,omitempty"` + + // A network tunnel's unique identifier. + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // The local end of a network tunnel. This end of the network tunnel resides on the SoftLayer networks and allows access to remote end of the tunnel to subnets on SoftLayer networks. + InternalPeerIpAddress *string `json:"internalPeerIpAddress,omitempty" xmlrpc:"internalPeerIpAddress,omitempty"` + + // A count of private subnets that can be accessed through the network tunnel. + InternalSubnetCount *uint `json:"internalSubnetCount,omitempty" xmlrpc:"internalSubnetCount,omitempty"` + + // Private subnets that can be accessed through the network tunnel. + InternalSubnets []Network_Subnet `json:"internalSubnets,omitempty" xmlrpc:"internalSubnets,omitempty"` + + // The date a network tunnel was last modified. + // + // NOTE: This date should NOT be used to determine when the network tunnel configurations were last applied to the network device. + ModifyDate *Time `json:"modifyDate,omitempty" xmlrpc:"modifyDate,omitempty"` + + // A network tunnel's unique name used on the network device. + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` + + // Authentication used to generate keys for protecting the negotiations for a network tunnel. + PhaseOneAuthentication *string `json:"phaseOneAuthentication,omitempty" xmlrpc:"phaseOneAuthentication,omitempty"` + + // Determines the strength of the key used in the key exchange process. The higher the group number the stronger the key is and the more secure it is. However, processing time will increase as the strength of the key increases. Both peers in the must use the Diffie-Hellman Group. + PhaseOneDiffieHellmanGroup *int `json:"phaseOneDiffieHellmanGroup,omitempty" xmlrpc:"phaseOneDiffieHellmanGroup,omitempty"` + + // Encryption used to generate keys for protecting the negotiations for a network tunnel. + PhaseOneEncryption *string `json:"phaseOneEncryption,omitempty" xmlrpc:"phaseOneEncryption,omitempty"` + + // Amount of time (in seconds) allowed to pass before the encryption key expires. A new key is generated without interrupting service. Valid times are from 120 to 172800 seconds. + PhaseOneKeylife *int `json:"phaseOneKeylife,omitempty" xmlrpc:"phaseOneKeylife,omitempty"` + + // The authentication used in phase 2 proposal negotiation process. + PhaseTwoAuthentication *string `json:"phaseTwoAuthentication,omitempty" xmlrpc:"phaseTwoAuthentication,omitempty"` + + // Determines the strength of the key used in the key exchange process. The higher the group number the stronger the key is and the more secure it is. However, processing time will increase as the strength of the key increases. Both peers must use the Diffie-Hellman Group. + PhaseTwoDiffieHellmanGroup *int `json:"phaseTwoDiffieHellmanGroup,omitempty" xmlrpc:"phaseTwoDiffieHellmanGroup,omitempty"` + + // The encryption used in phase 2 proposal negotiation process. + PhaseTwoEncryption *string `json:"phaseTwoEncryption,omitempty" xmlrpc:"phaseTwoEncryption,omitempty"` + + // Amount of time (in seconds) allowed to pass before the encryption key expires. A new key is generated without interrupting service. Valid times are from 120 to 172800 seconds. + PhaseTwoKeylife *int `json:"phaseTwoKeylife,omitempty" xmlrpc:"phaseTwoKeylife,omitempty"` + + // Determines if the generated keys are made from previous keys. When PFS is specified, a Diffie-Hellman exchange occurs each time a new security association is negotiated. + PhaseTwoPerfectForwardSecrecy *int `json:"phaseTwoPerfectForwardSecrecy,omitempty" xmlrpc:"phaseTwoPerfectForwardSecrecy,omitempty"` + + // A key used so that peers authenticate each other. This key is hashed by using the phase one encryption and phase one authentication. + PresharedKey *string `json:"presharedKey,omitempty" xmlrpc:"presharedKey,omitempty"` + + // A count of service subnets that can be access through the network tunnel. + ServiceSubnetCount *uint `json:"serviceSubnetCount,omitempty" xmlrpc:"serviceSubnetCount,omitempty"` + + // Service subnets that can be access through the network tunnel. + ServiceSubnets []Network_Subnet `json:"serviceSubnets,omitempty" xmlrpc:"serviceSubnets,omitempty"` + + // A count of subnets used for a network tunnel's address translations. + StaticRouteSubnetCount *uint `json:"staticRouteSubnetCount,omitempty" xmlrpc:"staticRouteSubnetCount,omitempty"` + + // Subnets used for a network tunnel's address translations. + StaticRouteSubnets []Network_Subnet `json:"staticRouteSubnets,omitempty" xmlrpc:"staticRouteSubnets,omitempty"` + + // The transaction history for this network tunnel. + TransactionHistory []Provisioning_Version1_Transaction `json:"transactionHistory,omitempty" xmlrpc:"transactionHistory,omitempty"` + + // A count of the transaction history for this network tunnel. + TransactionHistoryCount *uint `json:"transactionHistoryCount,omitempty" xmlrpc:"transactionHistoryCount,omitempty"` +} + +// The SoftLayer_Network_Tunnel_Module_Context_Address_Translation data type contains general information relating to a single address translation. Information such as notes, ip addresses, along with record information, and network tunnel data may be retrieved. +type Network_Tunnel_Module_Context_Address_Translation struct { + Entity + + // The ip address record that will receive the encrypted traffic. + CustomerIpAddress *string `json:"customerIpAddress,omitempty" xmlrpc:"customerIpAddress,omitempty"` + + // The unique identifier for the ip address record that will receive the encrypted traffic. + CustomerIpAddressId *int `json:"customerIpAddressId,omitempty" xmlrpc:"customerIpAddressId,omitempty"` + + // The ip address record for the ip that will receive the encrypted traffic from the IPSec network tunnel. + CustomerIpAddressRecord *Network_Customer_Subnet_IpAddress `json:"customerIpAddressRecord,omitempty" xmlrpc:"customerIpAddressRecord,omitempty"` + + // An address translation's unique identifier. + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // The ip address record that will deliver the encrypted traffic. + InternalIpAddress *string `json:"internalIpAddress,omitempty" xmlrpc:"internalIpAddress,omitempty"` + + // The unique identifier for the ip address record that will deliver the encrypted traffic. + InternalIpAddressId *int `json:"internalIpAddressId,omitempty" xmlrpc:"internalIpAddressId,omitempty"` + + // The ip address record for the ip that will deliver the encrypted traffic from the IPSec network tunnel. + InternalIpAddressRecord *Network_Subnet_IpAddress `json:"internalIpAddressRecord,omitempty" xmlrpc:"internalIpAddressRecord,omitempty"` + + // The IPSec network tunnel an address translation belongs to. + NetworkTunnelContext *Network_Tunnel_Module_Context `json:"networkTunnelContext,omitempty" xmlrpc:"networkTunnelContext,omitempty"` + + // An address translation's network tunnel identifier. + NetworkTunnelContextId *int `json:"networkTunnelContextId,omitempty" xmlrpc:"networkTunnelContextId,omitempty"` + + // A name or description given to an address translation to help identify the address translation. + Notes *string `json:"notes,omitempty" xmlrpc:"notes,omitempty"` +} + +// The SoftLayer_Network_Vlan data type models a single VLAN within SoftLayer's public and private networks. a Virtual LAN is a structure that associates network interfaces on routers, switches, and servers in different locations to act as if they were on the same local network broadcast domain. VLANs are a central part of the SoftLayer network. They can determine how new IP subnets are routed and how individual servers communicate to each other. +type Network_Vlan struct { + Entity + + // The SoftLayer customer account associated with a VLAN. + Account *Account `json:"account,omitempty" xmlrpc:"account,omitempty"` + + // The internal identifier of the SoftLayer customer account that a VLAN is associated with. + AccountId *int `json:"accountId,omitempty" xmlrpc:"accountId,omitempty"` + + // A count of a VLAN's additional primary subnets. These are used to extend the number of servers attached to the VLAN by adding more ip addresses to the primary IP address pool. + AdditionalPrimarySubnetCount *uint `json:"additionalPrimarySubnetCount,omitempty" xmlrpc:"additionalPrimarySubnetCount,omitempty"` + + // A VLAN's additional primary subnets. These are used to extend the number of servers attached to the VLAN by adding more ip addresses to the primary IP address pool. + AdditionalPrimarySubnets []Network_Subnet `json:"additionalPrimarySubnets,omitempty" xmlrpc:"additionalPrimarySubnets,omitempty"` + + // The gateway this VLAN is inside of. + AttachedNetworkGateway *Network_Gateway `json:"attachedNetworkGateway,omitempty" xmlrpc:"attachedNetworkGateway,omitempty"` + + // Whether or not this VLAN is inside a gateway. + AttachedNetworkGatewayFlag *bool `json:"attachedNetworkGatewayFlag,omitempty" xmlrpc:"attachedNetworkGatewayFlag,omitempty"` + + // The inside VLAN record if this VLAN is inside a network gateway. + AttachedNetworkGatewayVlan *Network_Gateway_Vlan `json:"attachedNetworkGatewayVlan,omitempty" xmlrpc:"attachedNetworkGatewayVlan,omitempty"` + + // The billing item for a network vlan. + BillingItem *Billing_Item `json:"billingItem,omitempty" xmlrpc:"billingItem,omitempty"` + + // A flag indicating that a network vlan is on a Hardware Firewall (Dedicated). + DedicatedFirewallFlag *int `json:"dedicatedFirewallFlag,omitempty" xmlrpc:"dedicatedFirewallFlag,omitempty"` + + // The extension router that a VLAN is associated with. + ExtensionRouter *Hardware_Router `json:"extensionRouter,omitempty" xmlrpc:"extensionRouter,omitempty"` + + // A count of a firewalled Vlan's network components. + FirewallGuestNetworkComponentCount *uint `json:"firewallGuestNetworkComponentCount,omitempty" xmlrpc:"firewallGuestNetworkComponentCount,omitempty"` + + // A firewalled Vlan's network components. + FirewallGuestNetworkComponents []Network_Component_Firewall `json:"firewallGuestNetworkComponents,omitempty" xmlrpc:"firewallGuestNetworkComponents,omitempty"` + + // A count of a firewalled vlan's inbound/outbound interfaces. + FirewallInterfaceCount *uint `json:"firewallInterfaceCount,omitempty" xmlrpc:"firewallInterfaceCount,omitempty"` + + // A firewalled vlan's inbound/outbound interfaces. + FirewallInterfaces []Network_Firewall_Module_Context_Interface `json:"firewallInterfaces,omitempty" xmlrpc:"firewallInterfaces,omitempty"` + + // A count of a firewalled Vlan's network components. + FirewallNetworkComponentCount *uint `json:"firewallNetworkComponentCount,omitempty" xmlrpc:"firewallNetworkComponentCount,omitempty"` + + // A firewalled Vlan's network components. + FirewallNetworkComponents []Network_Component_Firewall `json:"firewallNetworkComponents,omitempty" xmlrpc:"firewallNetworkComponents,omitempty"` + + // A count of the currently running rule set of a firewalled VLAN. + FirewallRuleCount *uint `json:"firewallRuleCount,omitempty" xmlrpc:"firewallRuleCount,omitempty"` + + // The currently running rule set of a firewalled VLAN. + FirewallRules []Network_Vlan_Firewall_Rule `json:"firewallRules,omitempty" xmlrpc:"firewallRules,omitempty"` + + // A count of the networking components that are connected to a VLAN. + GuestNetworkComponentCount *uint `json:"guestNetworkComponentCount,omitempty" xmlrpc:"guestNetworkComponentCount,omitempty"` + + // The networking components that are connected to a VLAN. + GuestNetworkComponents []Virtual_Guest_Network_Component `json:"guestNetworkComponents,omitempty" xmlrpc:"guestNetworkComponents,omitempty"` + + // All of the hardware that exists on a VLAN. Hardware is associated with a VLAN by its networking components. + Hardware []Hardware `json:"hardware,omitempty" xmlrpc:"hardware,omitempty"` + + // A count of all of the hardware that exists on a VLAN. Hardware is associated with a VLAN by its networking components. + HardwareCount *uint `json:"hardwareCount,omitempty" xmlrpc:"hardwareCount,omitempty"` + + // no documentation yet + HighAvailabilityFirewallFlag *bool `json:"highAvailabilityFirewallFlag,omitempty" xmlrpc:"highAvailabilityFirewallFlag,omitempty"` + + // A VLAN's internal identifier. This should not be confused with the ''vlanNumber'' property, which is used in network configuration. + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // A flag indicating that a vlan can be assigned to a host that has local disk functionality. + LocalDiskStorageCapabilityFlag *bool `json:"localDiskStorageCapabilityFlag,omitempty" xmlrpc:"localDiskStorageCapabilityFlag,omitempty"` + + // The date a VLAN was last modified. + ModifyDate *Time `json:"modifyDate,omitempty" xmlrpc:"modifyDate,omitempty"` + + // The optional name for this VLAN + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` + + // The network in which this VLAN resides. + Network *Network `json:"network,omitempty" xmlrpc:"network,omitempty"` + + // A count of the networking components that are connected to a VLAN. + NetworkComponentCount *uint `json:"networkComponentCount,omitempty" xmlrpc:"networkComponentCount,omitempty"` + + // A count of the network components that are connected to this VLAN through a trunk. + NetworkComponentTrunkCount *uint `json:"networkComponentTrunkCount,omitempty" xmlrpc:"networkComponentTrunkCount,omitempty"` + + // The network components that are connected to this VLAN through a trunk. + NetworkComponentTrunks []Network_Component_Network_Vlan_Trunk `json:"networkComponentTrunks,omitempty" xmlrpc:"networkComponentTrunks,omitempty"` + + // The networking components that are connected to a VLAN. + NetworkComponents []Network_Component `json:"networkComponents,omitempty" xmlrpc:"networkComponents,omitempty"` + + // Identifier to denote whether a VLAN is used for public or private connectivity. + NetworkSpace *string `json:"networkSpace,omitempty" xmlrpc:"networkSpace,omitempty"` + + // The Hardware Firewall (Dedicated) for a network vlan. + NetworkVlanFirewall *Network_Vlan_Firewall `json:"networkVlanFirewall,omitempty" xmlrpc:"networkVlanFirewall,omitempty"` + + // The note for this vlan. + Note *string `json:"note,omitempty" xmlrpc:"note,omitempty"` + + // The primary router that a VLAN is associated with. Every SoftLayer VLAN is connected to more than one router for greater network redundancy. + PrimaryRouter *Hardware_Router `json:"primaryRouter,omitempty" xmlrpc:"primaryRouter,omitempty"` + + // A VLAN's primary subnet. Each VLAN has at least one subnet, usually the subnet that is assigned to a server or new IP address block when it's purchased. + PrimarySubnet *Network_Subnet `json:"primarySubnet,omitempty" xmlrpc:"primarySubnet,omitempty"` + + // A count of + PrimarySubnetCount *uint `json:"primarySubnetCount,omitempty" xmlrpc:"primarySubnetCount,omitempty"` + + // The internal identifier of the primary subnet addressed on a VLAN. + PrimarySubnetId *int `json:"primarySubnetId,omitempty" xmlrpc:"primarySubnetId,omitempty"` + + // A VLAN's primary IPv6 subnet. Some VLAN's may not have a primary IPv6 subnet. + PrimarySubnetVersion6 *Network_Subnet `json:"primarySubnetVersion6,omitempty" xmlrpc:"primarySubnetVersion6,omitempty"` + + // no documentation yet + PrimarySubnets []Network_Subnet `json:"primarySubnets,omitempty" xmlrpc:"primarySubnets,omitempty"` + + // A count of the gateways this VLAN is the private VLAN of. + PrivateNetworkGatewayCount *uint `json:"privateNetworkGatewayCount,omitempty" xmlrpc:"privateNetworkGatewayCount,omitempty"` + + // The gateways this VLAN is the private VLAN of. + PrivateNetworkGateways []Network_Gateway `json:"privateNetworkGateways,omitempty" xmlrpc:"privateNetworkGateways,omitempty"` + + // A count of + ProtectedIpAddressCount *uint `json:"protectedIpAddressCount,omitempty" xmlrpc:"protectedIpAddressCount,omitempty"` + + // no documentation yet + ProtectedIpAddresses []Network_Subnet_IpAddress `json:"protectedIpAddresses,omitempty" xmlrpc:"protectedIpAddresses,omitempty"` + + // A count of the gateways this VLAN is the public VLAN of. + PublicNetworkGatewayCount *uint `json:"publicNetworkGatewayCount,omitempty" xmlrpc:"publicNetworkGatewayCount,omitempty"` + + // The gateways this VLAN is the public VLAN of. + PublicNetworkGateways []Network_Gateway `json:"publicNetworkGateways,omitempty" xmlrpc:"publicNetworkGateways,omitempty"` + + // A count of the resource groups in which this VLAN is a member. + ResourceGroupCount *uint `json:"resourceGroupCount,omitempty" xmlrpc:"resourceGroupCount,omitempty"` + + // The resource group member for a network vlan. + ResourceGroupMember []Resource_Group_Member `json:"resourceGroupMember,omitempty" xmlrpc:"resourceGroupMember,omitempty"` + + // A count of the resource group member for a network vlan. + ResourceGroupMemberCount *uint `json:"resourceGroupMemberCount,omitempty" xmlrpc:"resourceGroupMemberCount,omitempty"` + + // The resource groups in which this VLAN is a member. + ResourceGroups []Resource_Group `json:"resourceGroups,omitempty" xmlrpc:"resourceGroups,omitempty"` + + // A flag indicating that a vlan can be assigned to a host that has SAN disk functionality. + SanStorageCapabilityFlag *bool `json:"sanStorageCapabilityFlag,omitempty" xmlrpc:"sanStorageCapabilityFlag,omitempty"` + + // A count of collection of scale VLANs this VLAN applies to. + ScaleVlanCount *uint `json:"scaleVlanCount,omitempty" xmlrpc:"scaleVlanCount,omitempty"` + + // Collection of scale VLANs this VLAN applies to. + ScaleVlans []Scale_Network_Vlan `json:"scaleVlans,omitempty" xmlrpc:"scaleVlans,omitempty"` + + // The secondary router that a VLAN is associated with. Every SoftLayer VLAN is connected to more than one router for greater network redundancy. + SecondaryRouter *Hardware `json:"secondaryRouter,omitempty" xmlrpc:"secondaryRouter,omitempty"` + + // A count of the subnets that exist as secondary interfaces on a VLAN + SecondarySubnetCount *uint `json:"secondarySubnetCount,omitempty" xmlrpc:"secondarySubnetCount,omitempty"` + + // The subnets that exist as secondary interfaces on a VLAN + SecondarySubnets []Network_Subnet `json:"secondarySubnets,omitempty" xmlrpc:"secondarySubnets,omitempty"` + + // A count of all of the subnets that exist as VLAN interfaces. + SubnetCount *uint `json:"subnetCount,omitempty" xmlrpc:"subnetCount,omitempty"` + + // All of the subnets that exist as VLAN interfaces. + Subnets []Network_Subnet `json:"subnets,omitempty" xmlrpc:"subnets,omitempty"` + + // A count of references to all tags for this VLAN. + TagReferenceCount *uint `json:"tagReferenceCount,omitempty" xmlrpc:"tagReferenceCount,omitempty"` + + // References to all tags for this VLAN. + TagReferences []Tag_Reference `json:"tagReferences,omitempty" xmlrpc:"tagReferences,omitempty"` + + // The number of primary IP addresses in a VLAN. + TotalPrimaryIpAddressCount *uint `json:"totalPrimaryIpAddressCount,omitempty" xmlrpc:"totalPrimaryIpAddressCount,omitempty"` + + // The type of this VLAN. + Type *Network_Vlan_Type `json:"type,omitempty" xmlrpc:"type,omitempty"` + + // A count of all of the Virtual Servers that are connected to a VLAN. + VirtualGuestCount *uint `json:"virtualGuestCount,omitempty" xmlrpc:"virtualGuestCount,omitempty"` + + // All of the Virtual Servers that are connected to a VLAN. + VirtualGuests []Virtual_Guest `json:"virtualGuests,omitempty" xmlrpc:"virtualGuests,omitempty"` + + // A VLAN's number as recorded within the SoftLayer network. This is configured directly on SoftLayer's networking equipment and should not be confused with a VLAN's ''id'' property. + VlanNumber *int `json:"vlanNumber,omitempty" xmlrpc:"vlanNumber,omitempty"` +} + +// The SoftLayer_Network_Vlan_Firewall data type contains general information relating to a single SoftLayer VLAN firewall. This is the object which ties the running rules to a specific downstream server. Use the [[SoftLayer Network Firewall Template]] service to pull SoftLayer recommended rule set templates. Use the [[SoftLayer Network Firewall Update Request]] service to submit a firewall update request. +type Network_Vlan_Firewall struct { + Entity + + // A flag to indicate if the firewall is in administrative bypass mode. In other words, no rules are being applied to the traffic coming through. + AdministrativeBypassFlag *string `json:"administrativeBypassFlag,omitempty" xmlrpc:"administrativeBypassFlag,omitempty"` + + // The billing item for a Hardware Firewall (Dedicated). + BillingItem *Billing_Item `json:"billingItem,omitempty" xmlrpc:"billingItem,omitempty"` + + // Whether or not this firewall can be directly logged in to. + CustomerManagedFlag *bool `json:"customerManagedFlag,omitempty" xmlrpc:"customerManagedFlag,omitempty"` + + // The datacenter that the firewall resides in. + Datacenter *Location `json:"datacenter,omitempty" xmlrpc:"datacenter,omitempty"` + + // The firewall device type. + FirewallType *string `json:"firewallType,omitempty" xmlrpc:"firewallType,omitempty"` + + // A name reflecting the hostname and domain of the firewall. This is created from the combined values of the firewall's logical name and vlan number automatically, and thus can not be edited directly. + FullyQualifiedDomainName *string `json:"fullyQualifiedDomainName,omitempty" xmlrpc:"fullyQualifiedDomainName,omitempty"` + + // A firewall's unique identifier. + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // The credentials to log in to a firewall device. This is only present for dedicated appliances. + ManagementCredentials *Software_Component_Password `json:"managementCredentials,omitempty" xmlrpc:"managementCredentials,omitempty"` + + // A count of the update requests made for this firewall. + NetworkFirewallUpdateRequestCount *uint `json:"networkFirewallUpdateRequestCount,omitempty" xmlrpc:"networkFirewallUpdateRequestCount,omitempty"` + + // The update requests made for this firewall. + NetworkFirewallUpdateRequests []Network_Firewall_Update_Request `json:"networkFirewallUpdateRequests,omitempty" xmlrpc:"networkFirewallUpdateRequests,omitempty"` + + // The VLAN object that a firewall is associated with and protecting. + NetworkVlan *Network_Vlan `json:"networkVlan,omitempty" xmlrpc:"networkVlan,omitempty"` + + // A count of the VLAN objects that a firewall is associated with and protecting. + NetworkVlanCount *uint `json:"networkVlanCount,omitempty" xmlrpc:"networkVlanCount,omitempty"` + + // The VLAN objects that a firewall is associated with and protecting. + NetworkVlans []Network_Vlan `json:"networkVlans,omitempty" xmlrpc:"networkVlans,omitempty"` + + // A firewall's primary IP address. This field will be the IP shown when doing network traces and reverse DNS and is a read-only property. + PrimaryIpAddress *string `json:"primaryIpAddress,omitempty" xmlrpc:"primaryIpAddress,omitempty"` + + // A count of the currently running rule set of this network component firewall. + RuleCount *uint `json:"ruleCount,omitempty" xmlrpc:"ruleCount,omitempty"` + + // The currently running rule set of this network component firewall. + Rules []Network_Vlan_Firewall_Rule `json:"rules,omitempty" xmlrpc:"rules,omitempty"` + + // A count of + TagReferenceCount *uint `json:"tagReferenceCount,omitempty" xmlrpc:"tagReferenceCount,omitempty"` + + // no documentation yet + TagReferences []Tag_Reference `json:"tagReferences,omitempty" xmlrpc:"tagReferences,omitempty"` +} + +// A SoftLayer_Network_Component_Firewall_Rule object type represents a currently running firewall rule and contains relative information. Use the [[SoftLayer Network Firewall Update Request]] service to submit a firewall update request. Use the [[SoftLayer Network Firewall Template]] service to pull SoftLayer recommended rule set templates. +type Network_Vlan_Firewall_Rule struct { + Entity + + // The action that the rule is to take [permit or deny]. + Action *string `json:"action,omitempty" xmlrpc:"action,omitempty"` + + // The destination IP address considered for determining rule application. + DestinationIpAddress *string `json:"destinationIpAddress,omitempty" xmlrpc:"destinationIpAddress,omitempty"` + + // The CIDR is used for determining rule application. This value will + DestinationIpCidr *int `json:"destinationIpCidr,omitempty" xmlrpc:"destinationIpCidr,omitempty"` + + // The destination IP subnet mask considered for determining rule application. + DestinationIpSubnetMask *string `json:"destinationIpSubnetMask,omitempty" xmlrpc:"destinationIpSubnetMask,omitempty"` + + // The ending (upper end of range) destination port considered for determining rule application. + DestinationPortRangeEnd *int `json:"destinationPortRangeEnd,omitempty" xmlrpc:"destinationPortRangeEnd,omitempty"` + + // The starting (lower end of range) destination port considered for determining rule application. + DestinationPortRangeStart *int `json:"destinationPortRangeStart,omitempty" xmlrpc:"destinationPortRangeStart,omitempty"` + + // The rule's internal identifier. + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // The network component firewall that this rule belongs to. + NetworkComponentFirewall *Network_Component_Firewall `json:"networkComponentFirewall,omitempty" xmlrpc:"networkComponentFirewall,omitempty"` + + // The notes field for the rule. + Notes *string `json:"notes,omitempty" xmlrpc:"notes,omitempty"` + + // The numeric value describing the order in which the rule should be applied. + OrderValue *int `json:"orderValue,omitempty" xmlrpc:"orderValue,omitempty"` + + // The protocol considered for determining rule application. + Protocol *string `json:"protocol,omitempty" xmlrpc:"protocol,omitempty"` + + // The source IP address considered for determining rule application. + SourceIpAddress *string `json:"sourceIpAddress,omitempty" xmlrpc:"sourceIpAddress,omitempty"` + + // The CIDR is used for determining rule application. This value will + SourceIpCidr *int `json:"sourceIpCidr,omitempty" xmlrpc:"sourceIpCidr,omitempty"` + + // The source IP subnet mask considered for determining rule application. + SourceIpSubnetMask *string `json:"sourceIpSubnetMask,omitempty" xmlrpc:"sourceIpSubnetMask,omitempty"` + + // Current status of the network component firewall. + Status *string `json:"status,omitempty" xmlrpc:"status,omitempty"` + + // Whether this rule is an IPv4 rule or an IPv6 rule. If + Version *int `json:"version,omitempty" xmlrpc:"version,omitempty"` +} + +// no documentation yet +type Network_Vlan_Type struct { + Entity + + // no documentation yet + Description *string `json:"description,omitempty" xmlrpc:"description,omitempty"` + + // no documentation yet + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // no documentation yet + KeyName *string `json:"keyName,omitempty" xmlrpc:"keyName,omitempty"` + + // no documentation yet + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` +} diff --git a/vendor/github.com/softlayer/softlayer-go/datatypes/notification.go b/vendor/github.com/softlayer/softlayer-go/datatypes/notification.go new file mode 100644 index 000000000..225d8602a --- /dev/null +++ b/vendor/github.com/softlayer/softlayer-go/datatypes/notification.go @@ -0,0 +1,648 @@ +/** + * Copyright 2016 IBM Corp. + * + * 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. + */ + +/** + * AUTOMATICALLY GENERATED CODE - DO NOT MODIFY + */ + +package datatypes + +// Details provided for the notification are basic. Details such as the related preferences, name and keyname for the notification can be retrieved. The keyname property for the notification can be used to refer to a notification when integrating into the SoftLayer Notification system. The name property can used more for display purposes. +type Notification struct { + Entity + + // Unique identifier for the notification. + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // Name that can be used by external systems to refer to a notification. + KeyName *string `json:"keyName,omitempty" xmlrpc:"keyName,omitempty"` + + // Friendly name for the notification. + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` + + // A count of the preferences related to the notification. These are preferences are configurable and optional for subscribers to use. + PreferenceCount *uint `json:"preferenceCount,omitempty" xmlrpc:"preferenceCount,omitempty"` + + // The preferences related to the notification. These are preferences are configurable and optional for subscribers to use. + Preferences []Notification_Preference `json:"preferences,omitempty" xmlrpc:"preferences,omitempty"` + + // A count of the required preferences related to the notification. While configurable, the subscriber does not have the option whether to use the preference. + RequiredPreferenceCount *uint `json:"requiredPreferenceCount,omitempty" xmlrpc:"requiredPreferenceCount,omitempty"` + + // The required preferences related to the notification. While configurable, the subscriber does not have the option whether to use the preference. + RequiredPreferences []Notification_Preference `json:"requiredPreferences,omitempty" xmlrpc:"requiredPreferences,omitempty"` +} + +// Provides details for the delivery methods available. +type Notification_Delivery_Method struct { + Entity + + // Determines if the delivery method is still used by the system. + Active *int `json:"active,omitempty" xmlrpc:"active,omitempty"` + + // Description used for the delivery method. + Description *string `json:"description,omitempty" xmlrpc:"description,omitempty"` + + // Unique identifier for the various notification delivery methods. + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // Name that can be used by external systems to refer to delivery method. + KeyName *string `json:"keyName,omitempty" xmlrpc:"keyName,omitempty"` + + // Friendly name used for the delivery method. + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` +} + +// This is an extension of the SoftLayer_Notification class. These are implementation details specific to those notifications which can be subscribed to and received on a mobile device. +type Notification_Mobile struct { + Notification +} + +// no documentation yet +type Notification_Occurrence_Account struct { + Entity + + // no documentation yet + Account *Account `json:"account,omitempty" xmlrpc:"account,omitempty"` + + // no documentation yet + Active *int `json:"active,omitempty" xmlrpc:"active,omitempty"` + + // no documentation yet + LastNotificationUpdate *Notification_Occurrence_Update `json:"lastNotificationUpdate,omitempty" xmlrpc:"lastNotificationUpdate,omitempty"` + + // no documentation yet + NotificationOccurrenceEvent *Notification_Occurrence_Event `json:"notificationOccurrenceEvent,omitempty" xmlrpc:"notificationOccurrenceEvent,omitempty"` +} + +// no documentation yet +type Notification_Occurrence_Event struct { + Entity + + // Indicates whether or not this event has been acknowledged by the user. + AcknowledgedFlag *bool `json:"acknowledgedFlag,omitempty" xmlrpc:"acknowledgedFlag,omitempty"` + + // A count of a collection of attachments for this event which provide supplementary information to impacted users some examples are RFO (Reason For Outage) and root cause analysis documents. + AttachmentCount *uint `json:"attachmentCount,omitempty" xmlrpc:"attachmentCount,omitempty"` + + // A collection of attachments for this event which provide supplementary information to impacted users some examples are RFO (Reason For Outage) and root cause analysis documents. + Attachments []Notification_Occurrence_Event_Attachment `json:"attachments,omitempty" xmlrpc:"attachments,omitempty"` + + // When this event will end. + EndDate *Time `json:"endDate,omitempty" xmlrpc:"endDate,omitempty"` + + // The first update for this event. + FirstUpdate *Notification_Occurrence_Update `json:"firstUpdate,omitempty" xmlrpc:"firstUpdate,omitempty"` + + // Unique identifier for this event. + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // A count of a collection of accounts impacted by this event. Each impacted account record relates directly to a [[SoftLayer_Account]]. + ImpactedAccountCount *uint `json:"impactedAccountCount,omitempty" xmlrpc:"impactedAccountCount,omitempty"` + + // A collection of accounts impacted by this event. Each impacted account record relates directly to a [[SoftLayer_Account]]. + ImpactedAccounts []Notification_Occurrence_Account `json:"impactedAccounts,omitempty" xmlrpc:"impactedAccounts,omitempty"` + + // A count of a collection of resources impacted by this event. Each record will relate to some physical resource that the user has access to such as [[SoftLayer_Hardware]] or [[SoftLayer_Virtual_Guest]]. + ImpactedResourceCount *uint `json:"impactedResourceCount,omitempty" xmlrpc:"impactedResourceCount,omitempty"` + + // A collection of resources impacted by this event. Each record will relate to some physical resource that the user has access to such as [[SoftLayer_Hardware]] or [[SoftLayer_Virtual_Guest]]. + ImpactedResources []Notification_Occurrence_Resource `json:"impactedResources,omitempty" xmlrpc:"impactedResources,omitempty"` + + // A count of a collection of users impacted by this event. Each impacted user record relates directly to a [[SoftLayer_User_Customer]]. + ImpactedUserCount *uint `json:"impactedUserCount,omitempty" xmlrpc:"impactedUserCount,omitempty"` + + // A collection of users impacted by this event. Each impacted user record relates directly to a [[SoftLayer_User_Customer]]. + ImpactedUsers []Notification_Occurrence_User `json:"impactedUsers,omitempty" xmlrpc:"impactedUsers,omitempty"` + + // Latest count of users impacted by this event. + LastImpactedUserCount *int `json:"lastImpactedUserCount,omitempty" xmlrpc:"lastImpactedUserCount,omitempty"` + + // The last update for this event. + LastUpdate *Notification_Occurrence_Update `json:"lastUpdate,omitempty" xmlrpc:"lastUpdate,omitempty"` + + // When this event was last updated. + ModifyDate *Time `json:"modifyDate,omitempty" xmlrpc:"modifyDate,omitempty"` + + // The type of event such as planned or unplanned maintenance. + NotificationOccurrenceEventType *Notification_Occurrence_Event_Type `json:"notificationOccurrenceEventType,omitempty" xmlrpc:"notificationOccurrenceEventType,omitempty"` + + // no documentation yet + RecoveryTime *int `json:"recoveryTime,omitempty" xmlrpc:"recoveryTime,omitempty"` + + // When this event started. + StartDate *Time `json:"startDate,omitempty" xmlrpc:"startDate,omitempty"` + + // no documentation yet + StatusCode *Notification_Occurrence_Status_Code `json:"statusCode,omitempty" xmlrpc:"statusCode,omitempty"` + + // Brief description of this event. + Subject *string `json:"subject,omitempty" xmlrpc:"subject,omitempty"` + + // Details of this event. + Summary *string `json:"summary,omitempty" xmlrpc:"summary,omitempty"` + + // Unique identifier for the [[SoftLayer_Ticket]] associated with this event. + SystemTicketId *int `json:"systemTicketId,omitempty" xmlrpc:"systemTicketId,omitempty"` + + // A count of all updates for this event. + UpdateCount *uint `json:"updateCount,omitempty" xmlrpc:"updateCount,omitempty"` + + // All updates for this event. + Updates []Notification_Occurrence_Update `json:"updates,omitempty" xmlrpc:"updates,omitempty"` +} + +// SoftLayer events can have have files attached to them by a SoftLayer employee. Attaching a file to a event is a way to provide supplementary information such as a RFO (reason for outage) document or root cause analysis. The SoftLayer_Notification_Occurrence_Event_Attachment data type models a single file attached to a event. +type Notification_Occurrence_Event_Attachment struct { + Entity + + // The date the file was attached to the event. + CreateDate *Time `json:"createDate,omitempty" xmlrpc:"createDate,omitempty"` + + // The name of the file attached to the event. + FileName *string `json:"fileName,omitempty" xmlrpc:"fileName,omitempty"` + + // The size of the file, measured in bytes. + FileSize *string `json:"fileSize,omitempty" xmlrpc:"fileSize,omitempty"` + + // A event attachments' unique identifier. + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // no documentation yet + NotificationOccurrenceEvent *Notification_Occurrence_Event `json:"notificationOccurrenceEvent,omitempty" xmlrpc:"notificationOccurrenceEvent,omitempty"` + + // The unique event identifier that the file is attached to. + NotificationOccurrenceEventId *int `json:"notificationOccurrenceEventId,omitempty" xmlrpc:"notificationOccurrenceEventId,omitempty"` +} + +// This represents the type of SoftLayer_Notification_Occurrence_Event. +type Notification_Occurrence_Event_Type struct { + Entity + + // The friendly unique identifier for this event type. + KeyName *string `json:"keyName,omitempty" xmlrpc:"keyName,omitempty"` +} + +// This type contains general information relating to any hardware or services that may be impacted by a SoftLayer_Notification_Occurrence_Event. +type Notification_Occurrence_Resource struct { + Entity + + // no documentation yet + Active *int `json:"active,omitempty" xmlrpc:"active,omitempty"` + + // <<< EOT A label which gives some background as to what piece of + FilterLabel *string `json:"filterLabel,omitempty" xmlrpc:"filterLabel,omitempty"` + + // The associated event. + NotificationOccurrenceEvent *Notification_Occurrence_Event `json:"notificationOccurrenceEvent,omitempty" xmlrpc:"notificationOccurrenceEvent,omitempty"` + + // <<< EOT The unique identifier for the associated + NotificationOccurrenceEventId *int `json:"notificationOccurrenceEventId,omitempty" xmlrpc:"notificationOccurrenceEventId,omitempty"` + + // The physical resource. + Resource *Entity `json:"resource,omitempty" xmlrpc:"resource,omitempty"` + + // <<< EOT The unique identifier for the [[SoftLayer_Account]] associated with + ResourceAccountId *int `json:"resourceAccountId,omitempty" xmlrpc:"resourceAccountId,omitempty"` + + // no documentation yet + ResourceName *string `json:"resourceName,omitempty" xmlrpc:"resourceName,omitempty"` + + // <<< EOT The unique identifier for the physical resource that is associated + ResourceTableId *int `json:"resourceTableId,omitempty" xmlrpc:"resourceTableId,omitempty"` +} + +// This type contains general information related to a [[SoftLayer_Hardware]] resource that is impacted by a [[SoftLayer_Notification_Occurrence_Event]]. +type Notification_Occurrence_Resource_Hardware struct { + Notification_Occurrence_Resource + + // no documentation yet + Hostname *string `json:"hostname,omitempty" xmlrpc:"hostname,omitempty"` + + // no documentation yet + PrivateIp *string `json:"privateIp,omitempty" xmlrpc:"privateIp,omitempty"` + + // no documentation yet + PublicIp *string `json:"publicIp,omitempty" xmlrpc:"publicIp,omitempty"` + + // no documentation yet + ResourceType *string `json:"resourceType,omitempty" xmlrpc:"resourceType,omitempty"` +} + +// This type contains general information related to a [[SoftLayer_Network_Application_Delivery_Controller]] resource that is impacted by a [[SoftLayer_Notification_Occurrence_Event]]. +type Notification_Occurrence_Resource_Network_Application_Delivery_Controller struct { + Notification_Occurrence_Resource + + // no documentation yet + Hostname *string `json:"hostname,omitempty" xmlrpc:"hostname,omitempty"` + + // no documentation yet + PrivateIp *string `json:"privateIp,omitempty" xmlrpc:"privateIp,omitempty"` + + // no documentation yet + PublicIp *string `json:"publicIp,omitempty" xmlrpc:"publicIp,omitempty"` + + // no documentation yet + ResourceType *string `json:"resourceType,omitempty" xmlrpc:"resourceType,omitempty"` +} + +// This type contains general information related to a [[SoftLayer_Network_Application_Delivery_Controller_LoadBalancer_VirtualIpAddress]] resource that is impacted by a [[SoftLayer_Notification_Occurrence_Event]]. +type Notification_Occurrence_Resource_Network_Application_Delivery_Controller_LoadBalancer_VirtualIpAddress struct { + Notification_Occurrence_Resource + + // no documentation yet + Hostname *string `json:"hostname,omitempty" xmlrpc:"hostname,omitempty"` + + // no documentation yet + PublicIp *string `json:"publicIp,omitempty" xmlrpc:"publicIp,omitempty"` + + // no documentation yet + ResourceType *string `json:"resourceType,omitempty" xmlrpc:"resourceType,omitempty"` +} + +// This type contains general information related to a [[SoftLayer_Network_Storage_Iscsi_EqualLogic]] resource that is impacted by a [[SoftLayer_Notification_Occurrence_Event]]. +type Notification_Occurrence_Resource_Network_Storage_Iscsi_EqualLogic struct { + Notification_Occurrence_Resource + + // no documentation yet + Hostname *string `json:"hostname,omitempty" xmlrpc:"hostname,omitempty"` + + // no documentation yet + PrivateIp *string `json:"privateIp,omitempty" xmlrpc:"privateIp,omitempty"` + + // no documentation yet + ResourceType *string `json:"resourceType,omitempty" xmlrpc:"resourceType,omitempty"` +} + +// This type contains general information related to a [[SoftLayer_Network_Storage_Iscsi_NetApp]] resource that is impacted by a [[SoftLayer_Notification_Occurrence_Event]]. +type Notification_Occurrence_Resource_Network_Storage_Iscsi_NetApp struct { + Notification_Occurrence_Resource + + // no documentation yet + Hostname *string `json:"hostname,omitempty" xmlrpc:"hostname,omitempty"` + + // no documentation yet + PrivateIp *string `json:"privateIp,omitempty" xmlrpc:"privateIp,omitempty"` + + // no documentation yet + ResourceType *string `json:"resourceType,omitempty" xmlrpc:"resourceType,omitempty"` +} + +// This type contains general information related to a [[SoftLayer_Network_Storage_Lockbox]] resource that is impacted by a [[SoftLayer_Notification_Occurrence_Event]]. +type Notification_Occurrence_Resource_Network_Storage_Lockbox struct { + Notification_Occurrence_Resource + + // no documentation yet + Hostname *string `json:"hostname,omitempty" xmlrpc:"hostname,omitempty"` + + // no documentation yet + PrivateIp *string `json:"privateIp,omitempty" xmlrpc:"privateIp,omitempty"` + + // no documentation yet + ResourceType *string `json:"resourceType,omitempty" xmlrpc:"resourceType,omitempty"` +} + +// This type contains general information related to a [[SoftLayer_Network_Storage_Nas]] resource that is impacted by a [[SoftLayer_Notification_Occurrence_Event]]. +type Notification_Occurrence_Resource_Network_Storage_Nas struct { + Notification_Occurrence_Resource + + // no documentation yet + Hostname *string `json:"hostname,omitempty" xmlrpc:"hostname,omitempty"` + + // no documentation yet + PrivateIp *string `json:"privateIp,omitempty" xmlrpc:"privateIp,omitempty"` + + // no documentation yet + ResourceType *string `json:"resourceType,omitempty" xmlrpc:"resourceType,omitempty"` +} + +// This type contains general information related to a [[SoftLayer_Network_Storage_NetApp_Volume]] resource that is impacted by a [[SoftLayer_Notification_Occurrence_Event]]. +type Notification_Occurrence_Resource_Network_Storage_NetApp_Volume struct { + Notification_Occurrence_Resource + + // no documentation yet + Hostname *string `json:"hostname,omitempty" xmlrpc:"hostname,omitempty"` + + // no documentation yet + PrivateIp *string `json:"privateIp,omitempty" xmlrpc:"privateIp,omitempty"` + + // no documentation yet + ResourceType *string `json:"resourceType,omitempty" xmlrpc:"resourceType,omitempty"` +} + +// This type contains general information related to a [[SoftLayer_Virtual_Guest]] resource that is impacted by a [[SoftLayer_Notification_Occurrence_Event]]. +type Notification_Occurrence_Resource_Virtual struct { + Notification_Occurrence_Resource + + // no documentation yet + Hostname *string `json:"hostname,omitempty" xmlrpc:"hostname,omitempty"` + + // no documentation yet + PrivateIp *string `json:"privateIp,omitempty" xmlrpc:"privateIp,omitempty"` + + // no documentation yet + PublicIp *string `json:"publicIp,omitempty" xmlrpc:"publicIp,omitempty"` + + // no documentation yet + ResourceType *string `json:"resourceType,omitempty" xmlrpc:"resourceType,omitempty"` +} + +// no documentation yet +type Notification_Occurrence_Status_Code struct { + Entity + + // no documentation yet + Description *string `json:"description,omitempty" xmlrpc:"description,omitempty"` + + // no documentation yet + KeyName *string `json:"keyName,omitempty" xmlrpc:"keyName,omitempty"` + + // no documentation yet + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` +} + +// no documentation yet +type Notification_Occurrence_Update struct { + Entity + + // no documentation yet + Contents *string `json:"contents,omitempty" xmlrpc:"contents,omitempty"` + + // no documentation yet + CreateDate *Time `json:"createDate,omitempty" xmlrpc:"createDate,omitempty"` + + // no documentation yet + Employee *User_Employee `json:"employee,omitempty" xmlrpc:"employee,omitempty"` + + // no documentation yet + EndDate *Time `json:"endDate,omitempty" xmlrpc:"endDate,omitempty"` + + // no documentation yet + NotificationOccurrenceEvent *Notification_Occurrence_Event `json:"notificationOccurrenceEvent,omitempty" xmlrpc:"notificationOccurrenceEvent,omitempty"` + + // no documentation yet + StartDate *Time `json:"startDate,omitempty" xmlrpc:"startDate,omitempty"` +} + +// This type contains general information relating to a user that may be impacted by a [[SoftLayer_Notification_Occurrence_Event]]. +type Notification_Occurrence_User struct { + Entity + + // no documentation yet + AcknowledgedFlag *int `json:"acknowledgedFlag,omitempty" xmlrpc:"acknowledgedFlag,omitempty"` + + // no documentation yet + Active *int `json:"active,omitempty" xmlrpc:"active,omitempty"` + + // no documentation yet + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // A count of a collection of resources impacted by the associated event. + ImpactedResourceCount *uint `json:"impactedResourceCount,omitempty" xmlrpc:"impactedResourceCount,omitempty"` + + // A collection of resources impacted by the associated event. + ImpactedResources []Notification_Occurrence_Resource `json:"impactedResources,omitempty" xmlrpc:"impactedResources,omitempty"` + + // The associated event. + NotificationOccurrenceEvent *Notification_Occurrence_Event `json:"notificationOccurrenceEvent,omitempty" xmlrpc:"notificationOccurrenceEvent,omitempty"` + + // The impacted user. + User *User_Customer `json:"user,omitempty" xmlrpc:"user,omitempty"` + + // no documentation yet + UsrRecordId *int `json:"usrRecordId,omitempty" xmlrpc:"usrRecordId,omitempty"` +} + +// Retrieve details for preferences. Preferences are used to allow the subscriber to modify their subscription in various ways. Details such as friendly name, keyname maximum and minimum values can be retrieved. These provide details to help configure subscriber preferences correctly. +type Notification_Preference struct { + Entity + + // A description of what the preference is used for. + Description *string `json:"description,omitempty" xmlrpc:"description,omitempty"` + + // Unique identifier for the notification preference. + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // Name that can be used by external systems to refer to preference. + KeyName *string `json:"keyName,omitempty" xmlrpc:"keyName,omitempty"` + + // Largest value allowed for the preference. + MaximumValue *string `json:"maximumValue,omitempty" xmlrpc:"maximumValue,omitempty"` + + // Smallest value allowed for the preference. + MinimumValue *string `json:"minimumValue,omitempty" xmlrpc:"minimumValue,omitempty"` + + // Friendly name for the notification. + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` + + // The unit of measure used for the preference's value, minimum and maximum as well. + Units *string `json:"units,omitempty" xmlrpc:"units,omitempty"` + + // Default value used when setting up preferences for a new subscriber. + Value *string `json:"value,omitempty" xmlrpc:"value,omitempty"` +} + +// no documentation yet +type Notification_Subscriber struct { + Entity + + // no documentation yet + Active *int `json:"active,omitempty" xmlrpc:"active,omitempty"` + + // no documentation yet + CreateDate *Time `json:"createDate,omitempty" xmlrpc:"createDate,omitempty"` + + // A count of + DeliveryMethodCount *uint `json:"deliveryMethodCount,omitempty" xmlrpc:"deliveryMethodCount,omitempty"` + + // no documentation yet + DeliveryMethods []Notification_Subscriber_Delivery_Method `json:"deliveryMethods,omitempty" xmlrpc:"deliveryMethods,omitempty"` + + // no documentation yet + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // no documentation yet + ModifyDate *Time `json:"modifyDate,omitempty" xmlrpc:"modifyDate,omitempty"` + + // no documentation yet + Notification *Notification `json:"notification,omitempty" xmlrpc:"notification,omitempty"` + + // no documentation yet + NotificationId *int `json:"notificationId,omitempty" xmlrpc:"notificationId,omitempty"` + + // no documentation yet + NotificationSubscriberTypeId *int `json:"notificationSubscriberTypeId,omitempty" xmlrpc:"notificationSubscriberTypeId,omitempty"` + + // no documentation yet + NotificationSubscriberTypeResourceId *int `json:"notificationSubscriberTypeResourceId,omitempty" xmlrpc:"notificationSubscriberTypeResourceId,omitempty"` +} + +// no documentation yet +type Notification_Subscriber_Customer struct { + Notification_Subscriber + + // no documentation yet + SubscriberRecord *User_Customer `json:"subscriberRecord,omitempty" xmlrpc:"subscriberRecord,omitempty"` +} + +// Provides details for the subscriber's delivery methods. +type Notification_Subscriber_Delivery_Method struct { + Entity + + // Indicates the subscriber's delivery method availability for notifications. + Active *int `json:"active,omitempty" xmlrpc:"active,omitempty"` + + // Date the subscriber's delivery method was created. + CreateDate *Time `json:"createDate,omitempty" xmlrpc:"createDate,omitempty"` + + // Date the subscriber's delivery method was last modified. + ModifyDate *Time `json:"modifyDate,omitempty" xmlrpc:"modifyDate,omitempty"` + + // no documentation yet + NotificationDeliveryMethod *Notification_Delivery_Method `json:"notificationDeliveryMethod,omitempty" xmlrpc:"notificationDeliveryMethod,omitempty"` + + // Identifier for the notification delivery method. + NotificationDeliveryMethodId *int `json:"notificationDeliveryMethodId,omitempty" xmlrpc:"notificationDeliveryMethodId,omitempty"` + + // no documentation yet + NotificationSubscriber *Notification_Subscriber `json:"notificationSubscriber,omitempty" xmlrpc:"notificationSubscriber,omitempty"` + + // Identifier for the subscriber. + NotificationSubscriberId *int `json:"notificationSubscriberId,omitempty" xmlrpc:"notificationSubscriberId,omitempty"` +} + +// A notification subscriber will have details pertaining to the subscriber's notification subscription. You can receive details such as preferences, details of the preferences, delivery methods and the delivery methods for the subscriber. +// +// NOTE: There are preferences and delivery methods that cannot be modified. Also, there are some subscriptions that are required. +type Notification_User_Subscriber struct { + Entity + + // The current status of the subscription. + Active *int `json:"active,omitempty" xmlrpc:"active,omitempty"` + + // A count of the delivery methods used to send the subscribed notification. + DeliveryMethodCount *uint `json:"deliveryMethodCount,omitempty" xmlrpc:"deliveryMethodCount,omitempty"` + + // The delivery methods used to send the subscribed notification. + DeliveryMethods []Notification_Delivery_Method `json:"deliveryMethods,omitempty" xmlrpc:"deliveryMethods,omitempty"` + + // Unique identifier of the subscriber that will receive the alerts. + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // Notification subscribed to. + Notification *Notification `json:"notification,omitempty" xmlrpc:"notification,omitempty"` + + // Unique identifier of the notification subscribed to. + NotificationId *int `json:"notificationId,omitempty" xmlrpc:"notificationId,omitempty"` + + // A count of associated subscriber preferences used for the notification subscription. For example, preferences include number of deliveries (limit) and threshold. + PreferenceCount *uint `json:"preferenceCount,omitempty" xmlrpc:"preferenceCount,omitempty"` + + // Associated subscriber preferences used for the notification subscription. For example, preferences include number of deliveries (limit) and threshold. + Preferences []Notification_User_Subscriber_Preference `json:"preferences,omitempty" xmlrpc:"preferences,omitempty"` + + // A count of preference details such as description, minimum and maximum limits, default value and unit of measure. + PreferencesDetailCount *uint `json:"preferencesDetailCount,omitempty" xmlrpc:"preferencesDetailCount,omitempty"` + + // Preference details such as description, minimum and maximum limits, default value and unit of measure. + PreferencesDetails []Notification_Preference `json:"preferencesDetails,omitempty" xmlrpc:"preferencesDetails,omitempty"` + + // The subscriber id to resource id mapping. + ResourceRecord *Notification_User_Subscriber_Resource `json:"resourceRecord,omitempty" xmlrpc:"resourceRecord,omitempty"` + + // User record for the subscription. + UserRecord *User_Customer `json:"userRecord,omitempty" xmlrpc:"userRecord,omitempty"` + + // Unique identifier of the user the subscription is for. + UserRecordId *int `json:"userRecordId,omitempty" xmlrpc:"userRecordId,omitempty"` +} + +// A notification subscriber will have details pertaining to the subscriber's notification subscription. You can receive details such as preferences, details of the preferences, delivery methods and the delivery methods for the subscriber. +// +// NOTE: There are preferences and delivery methods that cannot be modified. Also, there are some subscriptions that are required. +type Notification_User_Subscriber_Billing struct { + Notification_User_Subscriber +} + +// Provides mapping details of how the subscriber's notification will be delivered. This maps the subscriber's id with all the delivery method ids used to delivery the notification. +type Notification_User_Subscriber_Delivery_Method struct { + Entity + + // Determines if the delivery method is active for the user. + Active *int `json:"active,omitempty" xmlrpc:"active,omitempty"` + + // Provides details for the method used to deliver the notification (email, sms, ticket). + DeliveryMethod *Notification_Delivery_Method `json:"deliveryMethod,omitempty" xmlrpc:"deliveryMethod,omitempty"` + + // Unique identifier of the method used to deliver notification. + NotificationMethodId *int `json:"notificationMethodId,omitempty" xmlrpc:"notificationMethodId,omitempty"` + + // The Subscriber information tied to the delivery method. + NotificationUserSubscriber *Notification_User_Subscriber `json:"notificationUserSubscriber,omitempty" xmlrpc:"notificationUserSubscriber,omitempty"` + + // Unique identifier of the subscriber tied to the delivery method. + NotificationUserSubscriberId *int `json:"notificationUserSubscriberId,omitempty" xmlrpc:"notificationUserSubscriberId,omitempty"` +} + +// A notification subscriber will have details pertaining to the subscriber's notification subscription. You can receive details such as preferences, details of the preferences, delivery methods and the delivery methods for the subscriber. +// +// NOTE: There are preferences and delivery methods that cannot be modified. Also, there are some subscriptions that are required. +type Notification_User_Subscriber_Mobile struct { + Notification_User_Subscriber +} + +// Preferences are settings that can be modified to change the behavior of the subscription. For example, modify the limit preference to only receive notifications 10 times instead of 1 during a billing cycle. +// +// NOTE: Some preferences have certain restrictions on values that can be set. +type Notification_User_Subscriber_Preference struct { + Entity + + // Details such name, keyname, minimum and maximum values for the preference. + DefaultPreference *Notification_Preference `json:"defaultPreference,omitempty" xmlrpc:"defaultPreference,omitempty"` + + // Unique identifier for the subscriber's preferences. + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // Unique identifier of the default preference for which the subscriber preference is based on. For example, if no preferences are supplied during the creation of a subscriber. The default values are pulled using this property. + NotificationPreferenceId *int `json:"notificationPreferenceId,omitempty" xmlrpc:"notificationPreferenceId,omitempty"` + + // Details of the subscriber tied to the preference. + NotificationUserSubscriber *Notification_User_Subscriber `json:"notificationUserSubscriber,omitempty" xmlrpc:"notificationUserSubscriber,omitempty"` + + // Unique identifier of the subscriber tied to the subscriber preference. + NotificationUserSubscriberId *int `json:"notificationUserSubscriberId,omitempty" xmlrpc:"notificationUserSubscriberId,omitempty"` + + // The user supplied value to "override" the "default" preference's value. + Value *string `json:"value,omitempty" xmlrpc:"value,omitempty"` +} + +// Retrieve identifier cross-reference information. SoftLayer_Notification_User_Subscriber_Resource provides the resource table id and subscriber id relation. The resource table id is the id of the service the subscriber receives alerts for. This resource table id could be the unique identifier for a Storage Evault service, Global Load Balancer or CDN service. +type Notification_User_Subscriber_Resource struct { + Entity + + // The Subscriber information tied to the resource service. + NotificationUserSubscriber *Notification_User_Subscriber `json:"notificationUserSubscriber,omitempty" xmlrpc:"notificationUserSubscriber,omitempty"` + + // Unique identifier of the subscriber that will receive the alerts for the resource subscribed to a notification. + NotificationUserSubscriberId *int `json:"notificationUserSubscriberId,omitempty" xmlrpc:"notificationUserSubscriberId,omitempty"` + + // Unique identifier for a SoftLayer service that is subscribed to a notification. Currently, the SoftLayer services that can be subscribed to notifications are: + // + // Storage EVault CDN Global Load Balancer + // + // + ResourceTableId *int `json:"resourceTableId,omitempty" xmlrpc:"resourceTableId,omitempty"` +} diff --git a/vendor/github.com/softlayer/softlayer-go/datatypes/product.go b/vendor/github.com/softlayer/softlayer-go/datatypes/product.go new file mode 100644 index 000000000..a71d97985 --- /dev/null +++ b/vendor/github.com/softlayer/softlayer-go/datatypes/product.go @@ -0,0 +1,1836 @@ +/** + * Copyright 2016 IBM Corp. + * + * 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. + */ + +/** + * AUTOMATICALLY GENERATED CODE - DO NOT MODIFY + */ + +package datatypes + +// A Catalog is defined as a set of prices for products that SoftLayer offers for sale. These prices are organized into packages which represent the different servers and services that SoftLayer offers. +type Product_Catalog struct { + Entity + + // A count of brands using this Catalog + BrandCount *uint `json:"brandCount,omitempty" xmlrpc:"brandCount,omitempty"` + + // Brands using this Catalog + Brands []Brand `json:"brands,omitempty" xmlrpc:"brands,omitempty"` + + // A count of packages available in this catalog + PackageCount *uint `json:"packageCount,omitempty" xmlrpc:"packageCount,omitempty"` + + // Packages available in this catalog + Packages []Product_Package `json:"packages,omitempty" xmlrpc:"packages,omitempty"` + + // A count of prices available in this catalog + PriceCount *uint `json:"priceCount,omitempty" xmlrpc:"priceCount,omitempty"` + + // Prices available in this catalog + Prices []Product_Item_Price `json:"prices,omitempty" xmlrpc:"prices,omitempty"` + + // A count of products available in catalog + ProductCount *uint `json:"productCount,omitempty" xmlrpc:"productCount,omitempty"` + + // Products available in catalog + Products []Product_Item `json:"products,omitempty" xmlrpc:"products,omitempty"` +} + +// The SoftLayer_Product_Catalog_Item_Price type assigns an Item Price to a Catalog. This relation defines the composition of Item Prices in a Catalog. +type Product_Catalog_Item_Price struct { + Entity + + // Catalog being assigned + Catalog *Product_Catalog `json:"catalog,omitempty" xmlrpc:"catalog,omitempty"` + + // The id of the Catalog the Item Price is part of. + CatalogId *int `json:"catalogId,omitempty" xmlrpc:"catalogId,omitempty"` + + // The time the Item Price was defined in the Catalog + CreateDate *Time `json:"createDate,omitempty" xmlrpc:"createDate,omitempty"` + + // The time the Item Price was changed for the Catalog + ModifyDate *Time `json:"modifyDate,omitempty" xmlrpc:"modifyDate,omitempty"` + + // Price being assigned + Price *Product_Item_Price `json:"price,omitempty" xmlrpc:"price,omitempty"` + + // The id of the Item Price that is part of the Catalog. + PriceId *int `json:"priceId,omitempty" xmlrpc:"priceId,omitempty"` +} + +// The SoftLayer_Product_Group data type contains product group relationship. +type Product_Group struct { + Entity + + // The name of the product group. + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` +} + +// The SoftLayer_Product_Item data type contains general information relating to a single SoftLayer product. +type Product_Item struct { + Entity + + // A count of + ActivePresaleEventCount *uint `json:"activePresaleEventCount,omitempty" xmlrpc:"activePresaleEventCount,omitempty"` + + // no documentation yet + ActivePresaleEvents []Sales_Presale_Event `json:"activePresaleEvents,omitempty" xmlrpc:"activePresaleEvents,omitempty"` + + // A count of active usage based prices. + ActiveUsagePriceCount *uint `json:"activeUsagePriceCount,omitempty" xmlrpc:"activeUsagePriceCount,omitempty"` + + // Active usage based prices. + ActiveUsagePrices []Product_Item_Price `json:"activeUsagePrices,omitempty" xmlrpc:"activeUsagePrices,omitempty"` + + // A count of the attribute values for a product item. These are additional properties that give extra information about the product being sold. + AttributeCount *uint `json:"attributeCount,omitempty" xmlrpc:"attributeCount,omitempty"` + + // The attribute values for a product item. These are additional properties that give extra information about the product being sold. + Attributes []Product_Item_Attribute `json:"attributes,omitempty" xmlrpc:"attributes,omitempty"` + + // A count of attributes that govern when an item may no longer be available. + AvailabilityAttributeCount *uint `json:"availabilityAttributeCount,omitempty" xmlrpc:"availabilityAttributeCount,omitempty"` + + // Attributes that govern when an item may no longer be available. + AvailabilityAttributes []Product_Item_Attribute `json:"availabilityAttributes,omitempty" xmlrpc:"availabilityAttributes,omitempty"` + + // An item's special billing type, if applicable. + BillingType *string `json:"billingType,omitempty" xmlrpc:"billingType,omitempty"` + + // An item's included products. Some items have other items included in them that we specifically detail. They are here called Bundled Items. An example is Plesk unlimited. It as a bundled item labeled 'SiteBuilder'. These are the SoftLayer_Product_Item_Bundles objects. + Bundle []Product_Item_Bundles `json:"bundle,omitempty" xmlrpc:"bundle,omitempty"` + + // A count of an item's included products. Some items have other items included in them that we specifically detail. They are here called Bundled Items. An example is Plesk unlimited. It as a bundled item labeled 'SiteBuilder'. These are the SoftLayer_Product_Item_Bundles objects. + BundleCount *uint `json:"bundleCount,omitempty" xmlrpc:"bundleCount,omitempty"` + + // Some Product Items have capacity information such as RAM and bandwidth, and others. This provides the numerical representation of the capacity given in the description of this product item. + Capacity *Float64 `json:"capacity,omitempty" xmlrpc:"capacity,omitempty"` + + // When the product capacity is best described as a range, this holds the ceiling of the range. + CapacityMaximum *string `json:"capacityMaximum,omitempty" xmlrpc:"capacityMaximum,omitempty"` + + // When the product capacity is best described as a range, this holds the floor of the range. + CapacityMinimum *string `json:"capacityMinimum,omitempty" xmlrpc:"capacityMinimum,omitempty"` + + // This flag indicates that this product is restricted by a capacity on a related product. + CapacityRestrictedProductFlag *bool `json:"capacityRestrictedProductFlag,omitempty" xmlrpc:"capacityRestrictedProductFlag,omitempty"` + + // An item's associated item categories. + Categories []Product_Item_Category `json:"categories,omitempty" xmlrpc:"categories,omitempty"` + + // A count of an item's associated item categories. + CategoryCount *uint `json:"categoryCount,omitempty" xmlrpc:"categoryCount,omitempty"` + + // A count of some product items have configuration templates which can be used to during provisioning of that product. + ConfigurationTemplateCount *uint `json:"configurationTemplateCount,omitempty" xmlrpc:"configurationTemplateCount,omitempty"` + + // Some product items have configuration templates which can be used to during provisioning of that product. + ConfigurationTemplates []Configuration_Template `json:"configurationTemplates,omitempty" xmlrpc:"configurationTemplates,omitempty"` + + // An item's conflicts. For example, McAfee LinuxShield cannot be ordered with Windows. It was not meant for that operating system and as such is a conflict. + Conflicts []Product_Item_Resource_Conflict `json:"conflicts,omitempty" xmlrpc:"conflicts,omitempty"` + + // This flag indicates that this product is restricted by the number of cores on the compute instance. This is deprecated. Use [[SoftLayer_Product_Item/getCapacityRestrictedProductFlag|getCapacityRestrictedProductFlag]] + CoreRestrictedItemFlag *bool `json:"coreRestrictedItemFlag,omitempty" xmlrpc:"coreRestrictedItemFlag,omitempty"` + + // A product's description + Description *string `json:"description,omitempty" xmlrpc:"description,omitempty"` + + // Some product items have a downgrade path. This is the first product item in the downgrade path. + DowngradeItem *Product_Item `json:"downgradeItem,omitempty" xmlrpc:"downgradeItem,omitempty"` + + // A count of some product items have a downgrade path. These are those product items. + DowngradeItemCount *uint `json:"downgradeItemCount,omitempty" xmlrpc:"downgradeItemCount,omitempty"` + + // Some product items have a downgrade path. These are those product items. + DowngradeItems []Product_Item `json:"downgradeItems,omitempty" xmlrpc:"downgradeItems,omitempty"` + + // An item's category conflicts. For example, 10 Gbps redundant network functionality cannot be ordered with a secondary GPU and as such is a conflict. + GlobalCategoryConflicts []Product_Item_Resource_Conflict `json:"globalCategoryConflicts,omitempty" xmlrpc:"globalCategoryConflicts,omitempty"` + + // The generic hardware component that this item represents. + HardwareGenericComponentModel *Hardware_Component_Model_Generic `json:"hardwareGenericComponentModel,omitempty" xmlrpc:"hardwareGenericComponentModel,omitempty"` + + // no documentation yet + HideFromPortalFlag *bool `json:"hideFromPortalFlag,omitempty" xmlrpc:"hideFromPortalFlag,omitempty"` + + // A product's internal identification number + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // An item's inventory status per datacenter. + Inventory []Product_Package_Inventory `json:"inventory,omitempty" xmlrpc:"inventory,omitempty"` + + // A count of an item's inventory status per datacenter. + InventoryCount *uint `json:"inventoryCount,omitempty" xmlrpc:"inventoryCount,omitempty"` + + // Flag to indicate the server product is engineered for a multi-server solution. (Deprecated) + IsEngineeredServerProduct *bool `json:"isEngineeredServerProduct,omitempty" xmlrpc:"isEngineeredServerProduct,omitempty"` + + // An item's primary item category. + ItemCategory *Product_Item_Category `json:"itemCategory,omitempty" xmlrpc:"itemCategory,omitempty"` + + // A products tax category internal identification number + ItemTaxCategoryId *int `json:"itemTaxCategoryId,omitempty" xmlrpc:"itemTaxCategoryId,omitempty"` + + // A unique key name for the product. + KeyName *string `json:"keyName,omitempty" xmlrpc:"keyName,omitempty"` + + // no documentation yet + LocalDiskFlag *bool `json:"localDiskFlag,omitempty" xmlrpc:"localDiskFlag,omitempty"` + + // An item's location conflicts. For example, Dual Path network functionality cannot be ordered in WDC and as such is a conflict. + LocationConflicts []Product_Item_Resource_Conflict `json:"locationConflicts,omitempty" xmlrpc:"locationConflicts,omitempty"` + + // Detailed product description + LongDescription *string `json:"longDescription,omitempty" xmlrpc:"longDescription,omitempty"` + + // no documentation yet + ObjectStorageClusterGeolocationType *string `json:"objectStorageClusterGeolocationType,omitempty" xmlrpc:"objectStorageClusterGeolocationType,omitempty"` + + // no documentation yet + ObjectStorageItemFlag *bool `json:"objectStorageItemFlag,omitempty" xmlrpc:"objectStorageItemFlag,omitempty"` + + // no documentation yet + ObjectStorageServiceClass *string `json:"objectStorageServiceClass,omitempty" xmlrpc:"objectStorageServiceClass,omitempty"` + + // A count of a collection of all the SoftLayer_Product_Package(s) in which this item exists. + PackageCount *uint `json:"packageCount,omitempty" xmlrpc:"packageCount,omitempty"` + + // A collection of all the SoftLayer_Product_Package(s) in which this item exists. + Packages []Product_Package `json:"packages,omitempty" xmlrpc:"packages,omitempty"` + + // The number of cores that a processor has. + PhysicalCoreCapacity *string `json:"physicalCoreCapacity,omitempty" xmlrpc:"physicalCoreCapacity,omitempty"` + + // A count of + PresaleEventCount *uint `json:"presaleEventCount,omitempty" xmlrpc:"presaleEventCount,omitempty"` + + // no documentation yet + PresaleEvents []Sales_Presale_Event `json:"presaleEvents,omitempty" xmlrpc:"presaleEvents,omitempty"` + + // A count of a product item's prices. + PriceCount *uint `json:"priceCount,omitempty" xmlrpc:"priceCount,omitempty"` + + // A product item's prices. + Prices []Product_Item_Price `json:"prices,omitempty" xmlrpc:"prices,omitempty"` + + // If an item must be ordered with another item, it will have a requirement item here. + Requirements []Product_Item_Requirement `json:"requirements,omitempty" xmlrpc:"requirements,omitempty"` + + // A count of an item's rules. This includes the requirements and conflicts to resources that an item has. + RuleCount *uint `json:"ruleCount,omitempty" xmlrpc:"ruleCount,omitempty"` + + // An item's rules. This includes the requirements and conflicts to resources that an item has. + Rules []Product_Item_Rule `json:"rules,omitempty" xmlrpc:"rules,omitempty"` + + // The SoftLayer_Software_Description tied to this item. This will only be populated for software items. + SoftwareDescription *Software_Description `json:"softwareDescription,omitempty" xmlrpc:"softwareDescription,omitempty"` + + // The unique identifier of the SoftLayer_Software_Description tied to this item. + SoftwareDescriptionId *int `json:"softwareDescriptionId,omitempty" xmlrpc:"softwareDescriptionId,omitempty"` + + // An item's tax category, if applicable. + TaxCategory *Product_Item_Tax_Category `json:"taxCategory,omitempty" xmlrpc:"taxCategory,omitempty"` + + // A count of third-party policy assignments for this product. + ThirdPartyPolicyAssignmentCount *uint `json:"thirdPartyPolicyAssignmentCount,omitempty" xmlrpc:"thirdPartyPolicyAssignmentCount,omitempty"` + + // Third-party policy assignments for this product. + ThirdPartyPolicyAssignments []Product_Item_Policy_Assignment `json:"thirdPartyPolicyAssignments,omitempty" xmlrpc:"thirdPartyPolicyAssignments,omitempty"` + + // The 3rd party vendor for a support subscription item. (Deprecated) + ThirdPartySupportVendor *string `json:"thirdPartySupportVendor,omitempty" xmlrpc:"thirdPartySupportVendor,omitempty"` + + // The total number of physical processing cores (excluding virtual cores / hyperthreads) for this server. + TotalPhysicalCoreCapacity *int `json:"totalPhysicalCoreCapacity,omitempty" xmlrpc:"totalPhysicalCoreCapacity,omitempty"` + + // Shows the total number of cores. This is deprecated. Use [[SoftLayer_Product_Item/getCapacity|getCapacity]] for guest_core products and [[SoftLayer_Product_Item/getTotalPhysicalCoreCapacity|getTotalPhysicalCoreCapacity]] for server products + TotalPhysicalCoreCount *int `json:"totalPhysicalCoreCount,omitempty" xmlrpc:"totalPhysicalCoreCount,omitempty"` + + // The total number of processors for this server. + TotalProcessorCapacity *int `json:"totalProcessorCapacity,omitempty" xmlrpc:"totalProcessorCapacity,omitempty"` + + // The unit of measurement that a product item is measured in. + Units *string `json:"units,omitempty" xmlrpc:"units,omitempty"` + + // Some product items have an upgrade path. This is the next product item in the upgrade path. + UpgradeItem *Product_Item `json:"upgradeItem,omitempty" xmlrpc:"upgradeItem,omitempty"` + + // A count of some product items have an upgrade path. These are those upgrade product items. + UpgradeItemCount *uint `json:"upgradeItemCount,omitempty" xmlrpc:"upgradeItemCount,omitempty"` + + // A products upgrade item's internal identification number + UpgradeItemId *int `json:"upgradeItemId,omitempty" xmlrpc:"upgradeItemId,omitempty"` + + // Some product items have an upgrade path. These are those upgrade product items. + UpgradeItems []Product_Item `json:"upgradeItems,omitempty" xmlrpc:"upgradeItems,omitempty"` +} + +// The [[SoftLayer_Product_Item_Attribute]] data type allows us to describe a [[SoftLayer_Product_Item]] by attaching specific attributes, which may dictate how it interacts with other products and services. Most, if not all, of these attributes are geared towards internal usage, so customers should rarely be concerned with them. +type Product_Item_Attribute struct { + Entity + + // This represents the attribute type of this product attribute. + AttributeType *Product_Item_Attribute_Type `json:"attributeType,omitempty" xmlrpc:"attributeType,omitempty"` + + // This represents the attribute type's key name of this product attribute. + AttributeTypeKeyName *string `json:"attributeTypeKeyName,omitempty" xmlrpc:"attributeTypeKeyName,omitempty"` + + // This is the primary key value for the product attribute. + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // This represents the product that an attribute is tied to. + Item *Product_Item `json:"item,omitempty" xmlrpc:"item,omitempty"` + + // This is a foreign key value for the [[SoftLayer_Product_Item_Attribute_Type]]. + ItemAttributeTypeId *int `json:"itemAttributeTypeId,omitempty" xmlrpc:"itemAttributeTypeId,omitempty"` + + // This is a foreign key value for the [[SoftLayer_Product_Item]]. + ItemId *int `json:"itemId,omitempty" xmlrpc:"itemId,omitempty"` + + // This is the value for the attribute. + Value *string `json:"value,omitempty" xmlrpc:"value,omitempty"` +} + +// The [[SoftLayer_Product_Item_Attribute_Type]] data type defines the available type of product attributes that are available. This allows for convenient reference to a [[SoftLayer_Product_Item_Attribute|product attribute]] by a unique key name value. +type Product_Item_Attribute_Type struct { + Entity + + // This is the unique identifier of the attribute type. + KeyName *string `json:"keyName,omitempty" xmlrpc:"keyName,omitempty"` + + // This is the user-friendly readable name of the attribute type. + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` +} + +// The SoftLayer_Product_Item_Billing_Type data type models special billing types for non-monthly billed items in the SoftLayer product catalog. +type Product_Item_Billing_Type struct { + Entity + + // A keyword describing a SoftLayer product item billing type. + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` +} + +// The SoftLayer_Product_Item_Bundles contains item to price cross references Relates a category, price and item to a bundle. Match bundle ids to see all items and prices in a particular bundle. +type Product_Item_Bundles struct { + Entity + + // Item in bundle. + BundleItem *Product_Item `json:"bundleItem,omitempty" xmlrpc:"bundleItem,omitempty"` + + // Identifier for bundle. + BundleItemId *int `json:"bundleItemId,omitempty" xmlrpc:"bundleItemId,omitempty"` + + // Category bundle falls in. + Category *Product_Item_Category `json:"category,omitempty" xmlrpc:"category,omitempty"` + + // Identifier for record. + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // Price of item in bundle + ItemPrice *Product_Item_Price `json:"itemPrice,omitempty" xmlrpc:"itemPrice,omitempty"` + + // Identifier for price. + ItemPriceId *int `json:"itemPriceId,omitempty" xmlrpc:"itemPriceId,omitempty"` +} + +// The SoftLayer_Product_Item_Category data type contains general category information for prices. +type Product_Item_Category struct { + Entity + + // A count of the billing items associated with an account that share a category code with an item category's category code. + BillingItemCount *uint `json:"billingItemCount,omitempty" xmlrpc:"billingItemCount,omitempty"` + + // The billing items associated with an account that share a category code with an item category's category code. + BillingItems []Billing_Item `json:"billingItems,omitempty" xmlrpc:"billingItems,omitempty"` + + // The code used to identify this category. + CategoryCode *string `json:"categoryCode,omitempty" xmlrpc:"categoryCode,omitempty"` + + // This invoice item's "item category group". + Group *Product_Item_Category_Group `json:"group,omitempty" xmlrpc:"group,omitempty"` + + // A count of a collection of service offering category groups. Each group contains a collection of items associated with this category. + GroupCount *uint `json:"groupCount,omitempty" xmlrpc:"groupCount,omitempty"` + + // A collection of service offering category groups. Each group contains a collection of items associated with this category. + Groups []Product_Package_Item_Category_Group `json:"groups,omitempty" xmlrpc:"groups,omitempty"` + + // identifier for category. + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // The friendly, descriptive name of the category as seen on the order forms and on invoices. + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` + + // A count of any unique options associated with an item category. + OrderOptionCount *uint `json:"orderOptionCount,omitempty" xmlrpc:"orderOptionCount,omitempty"` + + // Any unique options associated with an item category. + OrderOptions []Product_Item_Category_Order_Option_Type `json:"orderOptions,omitempty" xmlrpc:"orderOptions,omitempty"` + + // A count of a list of configuration available in this category.' + PackageConfigurationCount *uint `json:"packageConfigurationCount,omitempty" xmlrpc:"packageConfigurationCount,omitempty"` + + // A list of configuration available in this category.' + PackageConfigurations []Product_Package_Order_Configuration `json:"packageConfigurations,omitempty" xmlrpc:"packageConfigurations,omitempty"` + + // A count of a list of preset configurations this category is used in.' + PresetConfigurationCount *uint `json:"presetConfigurationCount,omitempty" xmlrpc:"presetConfigurationCount,omitempty"` + + // A list of preset configurations this category is used in.' + PresetConfigurations []Product_Package_Preset_Configuration `json:"presetConfigurations,omitempty" xmlrpc:"presetConfigurations,omitempty"` + + // Quantity that can be ordered. If 0, it will inherit the quantity from the server quantity ordered. Otherwise it can be specified with the order separately + QuantityLimit *int `json:"quantityLimit,omitempty" xmlrpc:"quantityLimit,omitempty"` + + // A count of the questions that are associated with an item category. + QuestionCount *uint `json:"questionCount,omitempty" xmlrpc:"questionCount,omitempty"` + + // A count of the question references that are associated with an item category. + QuestionReferenceCount *uint `json:"questionReferenceCount,omitempty" xmlrpc:"questionReferenceCount,omitempty"` + + // The question references that are associated with an item category. + QuestionReferences []Product_Item_Category_Question_Xref `json:"questionReferences,omitempty" xmlrpc:"questionReferences,omitempty"` + + // The questions that are associated with an item category. + Questions []Product_Item_Category_Question `json:"questions,omitempty" xmlrpc:"questions,omitempty"` + + // The sort order of the category. It may be used to affect the order in which the category may appear in lists (on order forms and invoices). + SortOrder *int `json:"sortOrder,omitempty" xmlrpc:"sortOrder,omitempty"` +} + +// The SoftLayer_Product_Item_Category_Group data type contains general category group information. +type Product_Item_Category_Group struct { + Entity + + // identifier for category group. + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // The friendly, descriptive name of the category group as seen on the order forms and on invoices. + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` +} + +// The SoftLayer_Product_Item_Category_Order_Option_Type data type contains options that can be applied to orders for prices. +type Product_Item_Category_Order_Option_Type struct { + Entity + + // An item category order type's description. + Description *string `json:"description,omitempty" xmlrpc:"description,omitempty"` + + // An item category order type's unique identifier. + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // A simple description for an item category order type. + Keyname *string `json:"keyname,omitempty" xmlrpc:"keyname,omitempty"` + + // An item category order type's name. + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` + + // The value of the item category type's option. + Value *string `json:"value,omitempty" xmlrpc:"value,omitempty"` +} + +// The SoftLayer_Product_Item_Category_Question data type represents a single question to be answered by an end user. The question may or may not be required which can be located by looking at the 'required' property on the item category references. The answerValueExpression property is a regular expression that is used to validate the answer to the question. The description and valueExample properties can be used to get an idea of the type of answer that should be provided. +type Product_Item_Category_Question struct { + Entity + + // The type of answer expected. + AnswerValueExpression *string `json:"answerValueExpression,omitempty" xmlrpc:"answerValueExpression,omitempty"` + + // The description for the question. + Description *string `json:"description,omitempty" xmlrpc:"description,omitempty"` + + // The type of field that should be used in an HTML form to accept an answer from an end user. + FieldType *Product_Item_Category_Question_Field_Type `json:"fieldType,omitempty" xmlrpc:"fieldType,omitempty"` + + // The type of field to use. + FieldTypeId *int `json:"fieldTypeId,omitempty" xmlrpc:"fieldTypeId,omitempty"` + + // identifier for category. + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // A count of the link between an item category and an item category question. + ItemCategoryReferenceCount *uint `json:"itemCategoryReferenceCount,omitempty" xmlrpc:"itemCategoryReferenceCount,omitempty"` + + // The link between an item category and an item category question. + ItemCategoryReferences []Product_Item_Category_Question_Xref `json:"itemCategoryReferences,omitempty" xmlrpc:"itemCategoryReferences,omitempty"` + + // The keyname for the question. + KeyName *string `json:"keyName,omitempty" xmlrpc:"keyName,omitempty"` + + // The question for the category. + Question *string `json:"question,omitempty" xmlrpc:"question,omitempty"` + + // An example and/or explanation of what the answer for the question is expected to look like. + ValueExample *string `json:"valueExample,omitempty" xmlrpc:"valueExample,omitempty"` +} + +// The SoftLayer_Product_Item_Category_Question_Field_Type data type represents the recommended type of field that should be rendered on an HTML form. +type Product_Item_Category_Question_Field_Type struct { + Entity + + // Identifier for the question type. + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // Keyname for the question field type. + KeyName *string `json:"keyName,omitempty" xmlrpc:"keyName,omitempty"` + + // Short name for the question field type. + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` +} + +// The SoftLayer_Product_Item_Category_Question_Xref data type represents a link between an item category and an item category question. It also contains a 'required' field that designates if the question is required to be answered for the given item category. +type Product_Item_Category_Question_Xref struct { + Entity + + // Identifier for category question xref record. + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // The product item category that this reference points to. + ItemCategory *Product_Item_Category `json:"itemCategory,omitempty" xmlrpc:"itemCategory,omitempty"` + + // Identifier for item category. + ItemCategoryId *int `json:"itemCategoryId,omitempty" xmlrpc:"itemCategoryId,omitempty"` + + // Identifier for the question. + LocationId *int `json:"locationId,omitempty" xmlrpc:"locationId,omitempty"` + + // The item category question that this reference points to. + Question *Product_Item_Category_Question `json:"question,omitempty" xmlrpc:"question,omitempty"` + + // Identifier for the question. + QuestionId *int `json:"questionId,omitempty" xmlrpc:"questionId,omitempty"` + + // Flag to indicate whether an answer is required for the question.. + Required *bool `json:"required,omitempty" xmlrpc:"required,omitempty"` +} + +// no documentation yet +type Product_Item_Link_ThePlanet struct { + Entity + + // no documentation yet + Item *Product_Item `json:"item,omitempty" xmlrpc:"item,omitempty"` + + // no documentation yet + ServiceProvider *Service_Provider `json:"serviceProvider,omitempty" xmlrpc:"serviceProvider,omitempty"` +} + +// Represents the assignment of a policy to a product. The existence of a record means that the associated product is subject to the terms defined in the document content of the policy. +type Product_Item_Policy_Assignment struct { + Entity + + // no documentation yet + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // The name of the assigned policy. + PolicyName *string `json:"policyName,omitempty" xmlrpc:"policyName,omitempty"` + + // The [[SoftLayer_Product_Item]] for this policy assignment. + Product *Product_Item `json:"product,omitempty" xmlrpc:"product,omitempty"` + + // no documentation yet + ProductId *int `json:"productId,omitempty" xmlrpc:"productId,omitempty"` +} + +// The SoftLayer_Product_Item_Price data type contains general information relating to a single SoftLayer product item price. You can find out what packages each price is in as well as which category under which this price is sold. All prices are returned in floating point values measured in US Dollars ($USD). +type Product_Item_Price struct { + Entity + + // A count of the account that the item price is restricted to. + AccountRestrictionCount *uint `json:"accountRestrictionCount,omitempty" xmlrpc:"accountRestrictionCount,omitempty"` + + // The account that the item price is restricted to. + AccountRestrictions []Product_Item_Price_Account_Restriction `json:"accountRestrictions,omitempty" xmlrpc:"accountRestrictions,omitempty"` + + // A count of + AttributeCount *uint `json:"attributeCount,omitempty" xmlrpc:"attributeCount,omitempty"` + + // no documentation yet + Attributes []Product_Item_Price_Attribute `json:"attributes,omitempty" xmlrpc:"attributes,omitempty"` + + // Whether the price is for Big Data OS/Journal disks only. (Deprecated) + BigDataOsJournalDiskFlag *bool `json:"bigDataOsJournalDiskFlag,omitempty" xmlrpc:"bigDataOsJournalDiskFlag,omitempty"` + + // A count of cross reference for bundles + BundleReferenceCount *uint `json:"bundleReferenceCount,omitempty" xmlrpc:"bundleReferenceCount,omitempty"` + + // cross reference for bundles + BundleReferences []Product_Item_Bundles `json:"bundleReferences,omitempty" xmlrpc:"bundleReferences,omitempty"` + + // The maximum capacity value for which this price is suitable. + CapacityRestrictionMaximum *string `json:"capacityRestrictionMaximum,omitempty" xmlrpc:"capacityRestrictionMaximum,omitempty"` + + // The minimum capacity value for which this price is suitable. + CapacityRestrictionMinimum *string `json:"capacityRestrictionMinimum,omitempty" xmlrpc:"capacityRestrictionMinimum,omitempty"` + + // The type of capacity restriction by which this price must abide. + CapacityRestrictionType *string `json:"capacityRestrictionType,omitempty" xmlrpc:"capacityRestrictionType,omitempty"` + + // All categories which this item is a member. + Categories []Product_Item_Category `json:"categories,omitempty" xmlrpc:"categories,omitempty"` + + // A count of all categories which this item is a member. + CategoryCount *uint `json:"categoryCount,omitempty" xmlrpc:"categoryCount,omitempty"` + + // This flag is used by the [[SoftLayer_Hardware::getUpgradeItems|getUpgradeItems]] method to indicate if a product price is used for the current billing item. + CurrentPriceFlag *bool `json:"currentPriceFlag,omitempty" xmlrpc:"currentPriceFlag,omitempty"` + + // Whether this price defines a software license for its product item. + DefinedSoftwareLicenseFlag *bool `json:"definedSoftwareLicenseFlag,omitempty" xmlrpc:"definedSoftwareLicenseFlag,omitempty"` + + // The hourly price for this item, should this item be part of an hourly pricing package. + HourlyRecurringFee *Float64 `json:"hourlyRecurringFee,omitempty" xmlrpc:"hourlyRecurringFee,omitempty"` + + // The unique identifier of a Product Item Price. + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // An item price's inventory status per datacenter. + Inventory []Product_Package_Inventory `json:"inventory,omitempty" xmlrpc:"inventory,omitempty"` + + // A count of an item price's inventory status per datacenter. + InventoryCount *uint `json:"inventoryCount,omitempty" xmlrpc:"inventoryCount,omitempty"` + + // The product item a price is tied to. + Item *Product_Item `json:"item,omitempty" xmlrpc:"item,omitempty"` + + // The unique identifier for a product Item + ItemId *int `json:"itemId,omitempty" xmlrpc:"itemId,omitempty"` + + // The labor fee for a product item price. + LaborFee *Float64 `json:"laborFee,omitempty" xmlrpc:"laborFee,omitempty"` + + // The id of the [[SoftLayer_Location_Group_Pricing]] that this price is part of. If set to null, the price is considered a standard price, which can be used with any location when ordering. + // + // During order [[SoftLayer_Product_Order/verifyOrder|verification]] and [[SoftLayer_Product_Order/placeOrder|placement]], if a standard price is used, that price may be replaced with a location based price, which does not have this property set to null. The location based price must be part of a [[SoftLayer_Location_Group_Pricing]] that has the location being ordered in order for this to happen. + LocationGroupId *int `json:"locationGroupId,omitempty" xmlrpc:"locationGroupId,omitempty"` + + // On sale flag. + OnSaleFlag *bool `json:"onSaleFlag,omitempty" xmlrpc:"onSaleFlag,omitempty"` + + // The one time fee for a product item price. + OneTimeFee *Float64 `json:"oneTimeFee,omitempty" xmlrpc:"oneTimeFee,omitempty"` + + // A price's total tax amount of the one time fees (oneTimeFee, laborFee, and setupFee). This is only populated after the order is verified via SoftLayer_Product_Order::verifyOrder() + OneTimeFeeTax *Float64 `json:"oneTimeFeeTax,omitempty" xmlrpc:"oneTimeFeeTax,omitempty"` + + // Order options for the category that this price is associated with. + OrderOptions []Product_Item_Category_Order_Option_Type `json:"orderOptions,omitempty" xmlrpc:"orderOptions,omitempty"` + + // A count of + OrderPremiumCount *uint `json:"orderPremiumCount,omitempty" xmlrpc:"orderPremiumCount,omitempty"` + + // no documentation yet + OrderPremiums []Product_Item_Price_Premium `json:"orderPremiums,omitempty" xmlrpc:"orderPremiums,omitempty"` + + // A count of a price's packages under which this item is sold. + PackageCount *uint `json:"packageCount,omitempty" xmlrpc:"packageCount,omitempty"` + + // A count of cross reference for packages + PackageReferenceCount *uint `json:"packageReferenceCount,omitempty" xmlrpc:"packageReferenceCount,omitempty"` + + // cross reference for packages + PackageReferences []Product_Package_Item_Prices `json:"packageReferences,omitempty" xmlrpc:"packageReferences,omitempty"` + + // A price's packages under which this item is sold. + Packages []Product_Package `json:"packages,omitempty" xmlrpc:"packages,omitempty"` + + // A count of a list of preset configurations this price is used in.' + PresetConfigurationCount *uint `json:"presetConfigurationCount,omitempty" xmlrpc:"presetConfigurationCount,omitempty"` + + // A list of preset configurations this price is used in.' + PresetConfigurations []Product_Package_Preset_Configuration `json:"presetConfigurations,omitempty" xmlrpc:"presetConfigurations,omitempty"` + + // The pricing location group that this price is applicable for. Prices that have a pricing location group will only be available for ordering with the locations specified on the location group. + PricingLocationGroup *Location_Group_Pricing `json:"pricingLocationGroup,omitempty" xmlrpc:"pricingLocationGroup,omitempty"` + + // A recurring fee is a fee that happens every billing period. This fee is represented as a floating point decimal in US dollars ($USD). + ProratedRecurringFee *Float64 `json:"proratedRecurringFee,omitempty" xmlrpc:"proratedRecurringFee,omitempty"` + + // A price's tax amount of the recurring fee. This is only populated after the order is verified via SoftLayer_Product_Order::verifyOrder() + ProratedRecurringFeeTax *Float64 `json:"proratedRecurringFeeTax,omitempty" xmlrpc:"proratedRecurringFeeTax,omitempty"` + + // no documentation yet + Quantity *int `json:"quantity,omitempty" xmlrpc:"quantity,omitempty"` + + // A recurring fee is a fee that happens every billing period. This fee is represented as a floating point decimal in US dollars ($USD). + RecurringFee *Float64 `json:"recurringFee,omitempty" xmlrpc:"recurringFee,omitempty"` + + // A price's tax amount of the recurring fee. This is only populated after the order is verified via SoftLayer_Product_Order::verifyOrder() + RecurringFeeTax *Float64 `json:"recurringFeeTax,omitempty" xmlrpc:"recurringFeeTax,omitempty"` + + // The number of server cores required to order this item. This is deprecated. Use [[SoftLayer_Product_Item_Price/getCapacityRestrictionMinimum|getCapacityRestrictionMinimum]] and [[SoftLayer_Product_Item_Price/getCapacityRestrictionMaximum|getCapacityRestrictionMaximum]] + RequiredCoreCount *int `json:"requiredCoreCount,omitempty" xmlrpc:"requiredCoreCount,omitempty"` + + // The setup fee associated with a product item price. + SetupFee *Float64 `json:"setupFee,omitempty" xmlrpc:"setupFee,omitempty"` + + // Used for ordering items on sales orders. + Sort *int `json:"sort,omitempty" xmlrpc:"sort,omitempty"` + + // The rate for a usage based item + UsageRate *Float64 `json:"usageRate,omitempty" xmlrpc:"usageRate,omitempty"` +} + +// The SoftLayer_Product_Item_Price data type gives more information about the item price restrictions. An item price may be restricted to one or more accounts. If the item price is restricted to an account, only that account will see the restriction details. +type Product_Item_Price_Account_Restriction struct { + Entity + + // The account the item price is restricted to. + Account *Account `json:"account,omitempty" xmlrpc:"account,omitempty"` + + // The account id for the item price account restriction. + AccountId *int `json:"accountId,omitempty" xmlrpc:"accountId,omitempty"` + + // The unique identifier for the item price account restriction. + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // The item price that has the account restriction. + ItemPrice *Product_Item_Price `json:"itemPrice,omitempty" xmlrpc:"itemPrice,omitempty"` + + // The item price id for the item price account restriction. + ItemPriceId *int `json:"itemPriceId,omitempty" xmlrpc:"itemPriceId,omitempty"` +} + +// no documentation yet +type Product_Item_Price_Attribute struct { + Entity + + // no documentation yet + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // no documentation yet + ItemPrice *Product_Item_Price `json:"itemPrice,omitempty" xmlrpc:"itemPrice,omitempty"` + + // no documentation yet + ItemPriceAttributeType *Product_Item_Price_Attribute_Type `json:"itemPriceAttributeType,omitempty" xmlrpc:"itemPriceAttributeType,omitempty"` + + // no documentation yet + ItemPriceAttributeTypeId *int `json:"itemPriceAttributeTypeId,omitempty" xmlrpc:"itemPriceAttributeTypeId,omitempty"` + + // no documentation yet + ItemPriceId *int `json:"itemPriceId,omitempty" xmlrpc:"itemPriceId,omitempty"` + + // no documentation yet + Value *string `json:"value,omitempty" xmlrpc:"value,omitempty"` +} + +// no documentation yet +type Product_Item_Price_Attribute_Type struct { + Entity + + // no documentation yet + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // no documentation yet + Keyname *string `json:"keyname,omitempty" xmlrpc:"keyname,omitempty"` +} + +// no documentation yet +type Product_Item_Price_Premium struct { + Entity + + // no documentation yet + HourlyModifier *Float64 `json:"hourlyModifier,omitempty" xmlrpc:"hourlyModifier,omitempty"` + + // no documentation yet + ItemPrice *Product_Item_Price `json:"itemPrice,omitempty" xmlrpc:"itemPrice,omitempty"` + + // no documentation yet + ItemPriceId *int `json:"itemPriceId,omitempty" xmlrpc:"itemPriceId,omitempty"` + + // no documentation yet + Location *Location `json:"location,omitempty" xmlrpc:"location,omitempty"` + + // no documentation yet + LocationId *int `json:"locationId,omitempty" xmlrpc:"locationId,omitempty"` + + // no documentation yet + MonthlyModifier *Float64 `json:"monthlyModifier,omitempty" xmlrpc:"monthlyModifier,omitempty"` + + // no documentation yet + Package *Product_Package `json:"package,omitempty" xmlrpc:"package,omitempty"` + + // no documentation yet + PackageId *int `json:"packageId,omitempty" xmlrpc:"packageId,omitempty"` +} + +// The SoftLayer_Product_Item_Requirement data type contains information relating to what requirements, if any, exist for an item. The requiredItemId local property is the item id that is required. +type Product_Item_Requirement struct { + Entity + + // Identifier for this record. + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // Item requirement applies to. + Item *Product_Item `json:"item,omitempty" xmlrpc:"item,omitempty"` + + // This is the id of the item affected by the requirement. + ItemId *int `json:"itemId,omitempty" xmlrpc:"itemId,omitempty"` + + // This is a custom message to display to the user when this requirement shortfall arises. + Message *string `json:"message,omitempty" xmlrpc:"message,omitempty"` + + // The product containing the requirement. + Product *Product_Item `json:"product,omitempty" xmlrpc:"product,omitempty"` + + // This is the id of the item required. + RequiredItemId *int `json:"requiredItemId,omitempty" xmlrpc:"requiredItemId,omitempty"` +} + +// no documentation yet +type Product_Item_Resource_Conflict struct { + Entity + + // no documentation yet + Item *Product_Item `json:"item,omitempty" xmlrpc:"item,omitempty"` + + // The unique identifier of the item that contains the conflict. + ItemId *int `json:"itemId,omitempty" xmlrpc:"itemId,omitempty"` + + // An optional conflict message. + Message *string `json:"message,omitempty" xmlrpc:"message,omitempty"` + + // no documentation yet + Package *Product_Package `json:"package,omitempty" xmlrpc:"package,omitempty"` + + // The unique identifier of the service offering that is associated with the conflict. + PackageId *int `json:"packageId,omitempty" xmlrpc:"packageId,omitempty"` + + // The unique identifier of the conflicting type. + ResourceTableId *int `json:"resourceTableId,omitempty" xmlrpc:"resourceTableId,omitempty"` +} + +// no documentation yet +type Product_Item_Resource_Conflict_Item struct { + Product_Item_Resource_Conflict + + // A product item that conflicts with another product item. + Resource *Product_Item `json:"resource,omitempty" xmlrpc:"resource,omitempty"` +} + +// no documentation yet +type Product_Item_Resource_Conflict_Item_Category struct { + Product_Item_Resource_Conflict + + // An item category that conflicts with a product item. + Resource *Product_Item_Category `json:"resource,omitempty" xmlrpc:"resource,omitempty"` +} + +// no documentation yet +type Product_Item_Resource_Conflict_Location struct { + Product_Item_Resource_Conflict + + // A location that conflicts with a product item. + Resource *Location `json:"resource,omitempty" xmlrpc:"resource,omitempty"` +} + +// The item rule data type represents a rule that must be followed when the item assigned to the rule is ordered. The type and operation applied to the resources of the rule will affect how the rule is checked during ordering. +type Product_Item_Rule struct { + Entity + + // The product item that a rule applies to. + Item *Product_Item `json:"item,omitempty" xmlrpc:"item,omitempty"` + + // A count of + ItemCategoryResourceCount *uint `json:"itemCategoryResourceCount,omitempty" xmlrpc:"itemCategoryResourceCount,omitempty"` + + // no documentation yet + ItemCategoryResources []Product_Item_Rule_Resource_Item_Category `json:"itemCategoryResources,omitempty" xmlrpc:"itemCategoryResources,omitempty"` + + // The unique identifier of the item that the rule applies to. + ItemId *int `json:"itemId,omitempty" xmlrpc:"itemId,omitempty"` + + // A count of + ItemResourceCount *uint `json:"itemResourceCount,omitempty" xmlrpc:"itemResourceCount,omitempty"` + + // no documentation yet + ItemResources []Product_Item_Rule_Resource_Item `json:"itemResources,omitempty" xmlrpc:"itemResources,omitempty"` + + // A count of + LocationResourceCount *uint `json:"locationResourceCount,omitempty" xmlrpc:"locationResourceCount,omitempty"` + + // no documentation yet + LocationResources []Product_Item_Rule_Resource_Location `json:"locationResources,omitempty" xmlrpc:"locationResources,omitempty"` + + // An optional message shown for when the rule is found to be invalid when ordering. + Message *string `json:"message,omitempty" xmlrpc:"message,omitempty"` + + // no documentation yet + Operation *string `json:"operation,omitempty" xmlrpc:"operation,omitempty"` + + // The package that a rule is applicable to when ordering. If no package exists, the rule applies to any package. + Package *Product_Package `json:"package,omitempty" xmlrpc:"package,omitempty"` + + // The unique identifier of the service offering that is associated with the rule. + PackageId *int `json:"packageId,omitempty" xmlrpc:"packageId,omitempty"` + + // A count of + PermissionResourceCount *uint `json:"permissionResourceCount,omitempty" xmlrpc:"permissionResourceCount,omitempty"` + + // no documentation yet + PermissionResources []Product_Item_Rule_Resource_Permission `json:"permissionResources,omitempty" xmlrpc:"permissionResources,omitempty"` + + // A count of resources for this rule that are validated when ordering. + ResourceCount *uint `json:"resourceCount,omitempty" xmlrpc:"resourceCount,omitempty"` + + // Resources for this rule that are validated when ordering. + Resources []Product_Item_Rule_Resource `json:"resources,omitempty" xmlrpc:"resources,omitempty"` + + // The type a rule is. The type affects how the rule is validated when ordering. + Type *Product_Item_Rule_Type `json:"type,omitempty" xmlrpc:"type,omitempty"` + + // The unique identifier of the type of resource rule. + TypeId *int `json:"typeId,omitempty" xmlrpc:"typeId,omitempty"` +} + +// The item rule resource data type represents a resource that is part of an item rule. The item rule resource is used when its item rule is checked on an order. +type Product_Item_Rule_Resource struct { + Entity + + // no documentation yet + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // The unique identifier of the resource. + ResourceTableId *int `json:"resourceTableId,omitempty" xmlrpc:"resourceTableId,omitempty"` + + // no documentation yet + Rule *Product_Item_Rule `json:"rule,omitempty" xmlrpc:"rule,omitempty"` + + // The unique identifier of the rule this resource is included in. + RuleId *int `json:"ruleId,omitempty" xmlrpc:"ruleId,omitempty"` +} + +// no documentation yet +type Product_Item_Rule_Resource_Item struct { + Product_Item_Rule_Resource + + // A product item that the associated rule applies to. + Resource *Product_Item `json:"resource,omitempty" xmlrpc:"resource,omitempty"` +} + +// no documentation yet +type Product_Item_Rule_Resource_Item_Category struct { + Product_Item_Rule_Resource + + // An item category that the associated rule applies to. + Resource *Product_Item_Category `json:"resource,omitempty" xmlrpc:"resource,omitempty"` +} + +// no documentation yet +type Product_Item_Rule_Resource_Location struct { + Product_Item_Rule_Resource + + // A location that the associated rule applies to. + Resource *Location `json:"resource,omitempty" xmlrpc:"resource,omitempty"` +} + +// no documentation yet +type Product_Item_Rule_Resource_Permission struct { + Product_Item_Rule_Resource + + // A user permission that the associated rule applies to. + Resource *User_Customer_CustomerPermission_Permission `json:"resource,omitempty" xmlrpc:"resource,omitempty"` +} + +// The item rule type data type represents the type of an item rule. +type Product_Item_Rule_Type struct { + Entity + + // The identifier for the item rule type. + KeyName *string `json:"keyName,omitempty" xmlrpc:"keyName,omitempty"` +} + +// The SoftLayer_Product_Item_Tax_Category data type contains the tax categories that are associated with products. +type Product_Item_Tax_Category struct { + Entity + + // An internal identifier for each tax category. + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // A count of + ItemCount *uint `json:"itemCount,omitempty" xmlrpc:"itemCount,omitempty"` + + // no documentation yet + Items []Product_Item `json:"items,omitempty" xmlrpc:"items,omitempty"` + + // The key name of the tax category. + KeyName *string `json:"keyName,omitempty" xmlrpc:"keyName,omitempty"` + + // The name of the tax category. + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` + + // The status of the tax category. + StatusFlag *int `json:"statusFlag,omitempty" xmlrpc:"statusFlag,omitempty"` +} + +// no documentation yet +type Product_Order struct { + Entity +} + +// The SoftLayer_Product_Package data type contains information about packages from which orders can be generated. Packages contain general information regarding what is in them, where they are currently sold, availability, and pricing. +type Product_Package struct { + Entity + + // The results from this call are similar to [[SoftLayer_Product_Package/getCategories|getCategories]], but these ONLY include account-restricted prices. Not all accounts have restricted pricing. + AccountRestrictedCategories []Product_Item_Category `json:"accountRestrictedCategories,omitempty" xmlrpc:"accountRestrictedCategories,omitempty"` + + // A count of the results from this call are similar to [[SoftLayer_Product_Package/getCategories|getCategories]], but these ONLY include account-restricted prices. Not all accounts have restricted pricing. + AccountRestrictedCategoryCount *uint `json:"accountRestrictedCategoryCount,omitempty" xmlrpc:"accountRestrictedCategoryCount,omitempty"` + + // The flag to indicate if there are any restricted prices in a package for the currently-active account. + AccountRestrictedPricesFlag *bool `json:"accountRestrictedPricesFlag,omitempty" xmlrpc:"accountRestrictedPricesFlag,omitempty"` + + // A count of the available preset configurations for this package. + ActivePresetCount *uint `json:"activePresetCount,omitempty" xmlrpc:"activePresetCount,omitempty"` + + // The available preset configurations for this package. + ActivePresets []Product_Package_Preset `json:"activePresets,omitempty" xmlrpc:"activePresets,omitempty"` + + // A count of a collection of valid RAM items available for purchase in this package. + ActiveRamItemCount *uint `json:"activeRamItemCount,omitempty" xmlrpc:"activeRamItemCount,omitempty"` + + // A collection of valid RAM items available for purchase in this package. + ActiveRamItems []Product_Item `json:"activeRamItems,omitempty" xmlrpc:"activeRamItems,omitempty"` + + // A count of a collection of valid server items available for purchase in this package. + ActiveServerItemCount *uint `json:"activeServerItemCount,omitempty" xmlrpc:"activeServerItemCount,omitempty"` + + // A collection of valid server items available for purchase in this package. + ActiveServerItems []Product_Item `json:"activeServerItems,omitempty" xmlrpc:"activeServerItems,omitempty"` + + // A count of a collection of valid software items available for purchase in this package. + ActiveSoftwareItemCount *uint `json:"activeSoftwareItemCount,omitempty" xmlrpc:"activeSoftwareItemCount,omitempty"` + + // A collection of valid software items available for purchase in this package. + ActiveSoftwareItems []Product_Item `json:"activeSoftwareItems,omitempty" xmlrpc:"activeSoftwareItems,omitempty"` + + // A count of a collection of [[SoftLayer_Product_Item_Price]] objects for pay-as-you-go usage. + ActiveUsagePriceCount *uint `json:"activeUsagePriceCount,omitempty" xmlrpc:"activeUsagePriceCount,omitempty"` + + // A collection of [[SoftLayer_Product_Item_Price]] objects for pay-as-you-go usage. + ActiveUsagePrices []Product_Item_Price `json:"activeUsagePrices,omitempty" xmlrpc:"activeUsagePrices,omitempty"` + + // This flag indicates that the package is an additional service. + AdditionalServiceFlag *bool `json:"additionalServiceFlag,omitempty" xmlrpc:"additionalServiceFlag,omitempty"` + + // A count of + AttributeCount *uint `json:"attributeCount,omitempty" xmlrpc:"attributeCount,omitempty"` + + // no documentation yet + Attributes []Product_Package_Attribute `json:"attributes,omitempty" xmlrpc:"attributes,omitempty"` + + // A count of a collection of valid locations for this package. (Deprecated - Use [[SoftLayer_Product_Package/getRegions|getRegions]]) + AvailableLocationCount *uint `json:"availableLocationCount,omitempty" xmlrpc:"availableLocationCount,omitempty"` + + // A collection of valid locations for this package. (Deprecated - Use [[SoftLayer_Product_Package/getRegions|getRegions]]) + AvailableLocations []Product_Package_Locations `json:"availableLocations,omitempty" xmlrpc:"availableLocations,omitempty"` + + // The maximum number of available disk storage units associated with the servers in a package. + AvailableStorageUnits *uint `json:"availableStorageUnits,omitempty" xmlrpc:"availableStorageUnits,omitempty"` + + // This is a collection of categories ([[SoftLayer_Product_Item_Category]]) associated with a package which can be used for ordering. These categories have several objects prepopulated which are useful when determining the available products for purchase. The categories contain groups ([[SoftLayer_Product_Package_Item_Category_Group]]) that organize the products and prices by similar features. For example, operating systems will be grouped by their manufacturer and virtual server disks will be grouped by their disk type (SAN vs. local). Each group will contain prices ([[SoftLayer_Product_Item_Price]]) which you can use determine the cost of each product. Each price has a product ([[SoftLayer_Product_Item]]) which provides the name and other useful information about the server, service or software you may purchase. + Categories []Product_Item_Category `json:"categories,omitempty" xmlrpc:"categories,omitempty"` + + // The item categories associated with a package, including information detailing which item categories are required as part of a SoftLayer product order. + Configuration []Product_Package_Order_Configuration `json:"configuration,omitempty" xmlrpc:"configuration,omitempty"` + + // A count of the item categories associated with a package, including information detailing which item categories are required as part of a SoftLayer product order. + ConfigurationCount *uint `json:"configurationCount,omitempty" xmlrpc:"configurationCount,omitempty"` + + // A count of a collection of valid RAM items available for purchase in this package. + DefaultRamItemCount *uint `json:"defaultRamItemCount,omitempty" xmlrpc:"defaultRamItemCount,omitempty"` + + // A collection of valid RAM items available for purchase in this package. + DefaultRamItems []Product_Item `json:"defaultRamItems,omitempty" xmlrpc:"defaultRamItems,omitempty"` + + // A count of the package that represents a multi-server solution. (Deprecated) + DeploymentCount *uint `json:"deploymentCount,omitempty" xmlrpc:"deploymentCount,omitempty"` + + // The node type for a package in a solution deployment. + DeploymentNodeType *string `json:"deploymentNodeType,omitempty" xmlrpc:"deploymentNodeType,omitempty"` + + // A count of the packages that are allowed in a multi-server solution. (Deprecated) + DeploymentPackageCount *uint `json:"deploymentPackageCount,omitempty" xmlrpc:"deploymentPackageCount,omitempty"` + + // The packages that are allowed in a multi-server solution. (Deprecated) + DeploymentPackages []Product_Package `json:"deploymentPackages,omitempty" xmlrpc:"deploymentPackages,omitempty"` + + // The solution deployment type. + DeploymentType *string `json:"deploymentType,omitempty" xmlrpc:"deploymentType,omitempty"` + + // The package that represents a multi-server solution. (Deprecated) + Deployments []Product_Package `json:"deployments,omitempty" xmlrpc:"deployments,omitempty"` + + // A generic description of the processor type and count. This includes HTML, so you may want to strip these tags if you plan to use it. + Description *string `json:"description,omitempty" xmlrpc:"description,omitempty"` + + // This flag indicates the package does not allow custom disk partitions. + DisallowCustomDiskPartitions *bool `json:"disallowCustomDiskPartitions,omitempty" xmlrpc:"disallowCustomDiskPartitions,omitempty"` + + // The Softlayer order step is optionally step-based. This returns the first SoftLayer_Product_Package_Order_Step in the step-based order process. + FirstOrderStep *Product_Package_Order_Step `json:"firstOrderStep,omitempty" xmlrpc:"firstOrderStep,omitempty"` + + // This is only needed for step-based order verification. We use this for the order forms, but it is not required. This step is the first SoftLayer_Product_Package_Step for this package. Use this for for filtering which item categories are returned as a part of SoftLayer_Product_Package_Order_Configuration. + FirstOrderStepId *int `json:"firstOrderStepId,omitempty" xmlrpc:"firstOrderStepId,omitempty"` + + // Whether the package is a specialized network gateway appliance package. + GatewayApplianceFlag *bool `json:"gatewayApplianceFlag,omitempty" xmlrpc:"gatewayApplianceFlag,omitempty"` + + // This flag indicates that the package supports GPUs. + GpuFlag *bool `json:"gpuFlag,omitempty" xmlrpc:"gpuFlag,omitempty"` + + // Determines whether the package contains prices that can be ordered hourly. + HourlyBillingAvailableFlag *bool `json:"hourlyBillingAvailableFlag,omitempty" xmlrpc:"hourlyBillingAvailableFlag,omitempty"` + + // A package's internal identifier. Everything regarding a SoftLayer_Product_Package is tied back to this id. + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // no documentation yet + IsActive *int `json:"isActive,omitempty" xmlrpc:"isActive,omitempty"` + + // The item-item conflicts associated with a package. + ItemConflicts []Product_Item_Resource_Conflict `json:"itemConflicts,omitempty" xmlrpc:"itemConflicts,omitempty"` + + // A count of a collection of valid items available for purchase in this package. + ItemCount *uint `json:"itemCount,omitempty" xmlrpc:"itemCount,omitempty"` + + // The item-location conflicts associated with a package. + ItemLocationConflicts []Product_Item_Resource_Conflict `json:"itemLocationConflicts,omitempty" xmlrpc:"itemLocationConflicts,omitempty"` + + // A count of a collection of SoftLayer_Product_Item_Prices that are valid for this package. + ItemPriceCount *uint `json:"itemPriceCount,omitempty" xmlrpc:"itemPriceCount,omitempty"` + + // A count of cross reference for item prices + ItemPriceReferenceCount *uint `json:"itemPriceReferenceCount,omitempty" xmlrpc:"itemPriceReferenceCount,omitempty"` + + // cross reference for item prices + ItemPriceReferences []Product_Package_Item_Prices `json:"itemPriceReferences,omitempty" xmlrpc:"itemPriceReferences,omitempty"` + + // A collection of SoftLayer_Product_Item_Prices that are valid for this package. + ItemPrices []Product_Item_Price `json:"itemPrices,omitempty" xmlrpc:"itemPrices,omitempty"` + + // A collection of valid items available for purchase in this package. + Items []Product_Item `json:"items,omitempty" xmlrpc:"items,omitempty"` + + // A unique key name for the package. + KeyName *string `json:"keyName,omitempty" xmlrpc:"keyName,omitempty"` + + // A count of a collection of valid locations for this package. (Deprecated - Use [[SoftLayer_Product_Package/getRegions|getRegions]]) + LocationCount *uint `json:"locationCount,omitempty" xmlrpc:"locationCount,omitempty"` + + // A collection of valid locations for this package. (Deprecated - Use [[SoftLayer_Product_Package/getRegions|getRegions]]) + Locations []Location `json:"locations,omitempty" xmlrpc:"locations,omitempty"` + + // The lowest server [[SoftLayer_Product_Item_Price]] related to this package. + LowestServerPrice *Product_Item_Price `json:"lowestServerPrice,omitempty" xmlrpc:"lowestServerPrice,omitempty"` + + // The maximum available network speed associated with the package. + MaximumPortSpeed *uint `json:"maximumPortSpeed,omitempty" xmlrpc:"maximumPortSpeed,omitempty"` + + // The minimum available network speed associated with the package. + MinimumPortSpeed *uint `json:"minimumPortSpeed,omitempty" xmlrpc:"minimumPortSpeed,omitempty"` + + // This flag indicates that this is a MongoDB engineered package. (Deprecated) + MongoDbEngineeredFlag *bool `json:"mongoDbEngineeredFlag,omitempty" xmlrpc:"mongoDbEngineeredFlag,omitempty"` + + // The description of the package. For server packages, this is usually a detailed description of processor type and count. + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` + + // A count of the premium price modifiers associated with the [[SoftLayer_Product_Item_Price]] and [[SoftLayer_Location]] objects in a package. + OrderPremiumCount *uint `json:"orderPremiumCount,omitempty" xmlrpc:"orderPremiumCount,omitempty"` + + // The premium price modifiers associated with the [[SoftLayer_Product_Item_Price]] and [[SoftLayer_Location]] objects in a package. + OrderPremiums []Product_Item_Price_Premium `json:"orderPremiums,omitempty" xmlrpc:"orderPremiums,omitempty"` + + // This flag indicates the package is pre-configured. (Deprecated) + PreconfiguredFlag *bool `json:"preconfiguredFlag,omitempty" xmlrpc:"preconfiguredFlag,omitempty"` + + // Whether the package requires the user to define a preset configuration. + PresetConfigurationRequiredFlag *bool `json:"presetConfigurationRequiredFlag,omitempty" xmlrpc:"presetConfigurationRequiredFlag,omitempty"` + + // Whether the package prevents the user from specifying a Vlan. + PreventVlanSelectionFlag *bool `json:"preventVlanSelectionFlag,omitempty" xmlrpc:"preventVlanSelectionFlag,omitempty"` + + // This flag indicates the package is for a private hosted cloud deployment. (Deprecated) + PrivateHostedCloudPackageFlag *bool `json:"privateHostedCloudPackageFlag,omitempty" xmlrpc:"privateHostedCloudPackageFlag,omitempty"` + + // The server role of the private hosted cloud deployment. (Deprecated) + PrivateHostedCloudPackageType *string `json:"privateHostedCloudPackageType,omitempty" xmlrpc:"privateHostedCloudPackageType,omitempty"` + + // Whether the package only has access to the private network. + PrivateNetworkOnlyFlag *bool `json:"privateNetworkOnlyFlag,omitempty" xmlrpc:"privateNetworkOnlyFlag,omitempty"` + + // Whether the package is a specialized mass storage QuantaStor package. + QuantaStorPackageFlag *bool `json:"quantaStorPackageFlag,omitempty" xmlrpc:"quantaStorPackageFlag,omitempty"` + + // This flag indicates the package does not allow different disks with RAID. + RaidDiskRestrictionFlag *bool `json:"raidDiskRestrictionFlag,omitempty" xmlrpc:"raidDiskRestrictionFlag,omitempty"` + + // This flag determines if the package contains a redundant power supply product. + RedundantPowerFlag *bool `json:"redundantPowerFlag,omitempty" xmlrpc:"redundantPowerFlag,omitempty"` + + // A count of the regional locations that a package is available in. + RegionCount *uint `json:"regionCount,omitempty" xmlrpc:"regionCount,omitempty"` + + // The regional locations that a package is available in. + Regions []Location_Region `json:"regions,omitempty" xmlrpc:"regions,omitempty"` + + // The resource group template that describes a multi-server solution. (Deprecated) + ResourceGroupTemplate *Resource_Group_Template `json:"resourceGroupTemplate,omitempty" xmlrpc:"resourceGroupTemplate,omitempty"` + + // This currently contains no information but is here for future use. + SubDescription *string `json:"subDescription,omitempty" xmlrpc:"subDescription,omitempty"` + + // The top level category code for this service offering. + TopLevelItemCategoryCode *string `json:"topLevelItemCategoryCode,omitempty" xmlrpc:"topLevelItemCategoryCode,omitempty"` + + // The type of service offering. This property can be used to help filter packages. + Type *Product_Package_Type `json:"type,omitempty" xmlrpc:"type,omitempty"` + + // The server unit size this package will match to. + UnitSize *int `json:"unitSize,omitempty" xmlrpc:"unitSize,omitempty"` +} + +// no documentation yet +type Product_Package_Attribute struct { + Entity + + // no documentation yet + AttributeType *Product_Package_Attribute_Type `json:"attributeType,omitempty" xmlrpc:"attributeType,omitempty"` + + // no documentation yet + Package *Product_Package `json:"package,omitempty" xmlrpc:"package,omitempty"` + + // no documentation yet + Value *string `json:"value,omitempty" xmlrpc:"value,omitempty"` +} + +// no documentation yet +type Product_Package_Attribute_Type struct { + Entity + + // no documentation yet + Description *string `json:"description,omitempty" xmlrpc:"description,omitempty"` + + // no documentation yet + KeyName *string `json:"keyName,omitempty" xmlrpc:"keyName,omitempty"` + + // no documentation yet + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` +} + +// SoftLayer keeps near real-time track of the number of items available in it's product catalog inventory. The SoftLayer_Product_Package_Inventory data type models one of these inventory records. SoftLayer tracks inventory per product package and item per datacenter. This type is useful if you need to purchase specific servers in a specific location, and wish to check their availability before ordering. +// +// The data from this type is used primarily on the SoftLayer outlet website. +type Product_Package_Inventory struct { + Entity + + // The number of units available for purchase in SoftLayer's inventory for a single item in a single datacenter. + AvailableInventoryCount *int `json:"availableInventoryCount,omitempty" xmlrpc:"availableInventoryCount,omitempty"` + + // The product package item that is associated with an inventory record. + Item *Product_Item `json:"item,omitempty" xmlrpc:"item,omitempty"` + + // The unique identifier of the product item that an inventory record is associated with. + ItemId *int `json:"itemId,omitempty" xmlrpc:"itemId,omitempty"` + + // The datacenter that an inventory record is located in. + Location *Location `json:"location,omitempty" xmlrpc:"location,omitempty"` + + // The unique identifier of the datacenter that an inventory record is located in. + LocationId *int `json:"locationId,omitempty" xmlrpc:"locationId,omitempty"` + + // The date that an inventory record was last updated. + ModifyDate *Time `json:"modifyDate,omitempty" xmlrpc:"modifyDate,omitempty"` + + // Whether an inventory record is marked as "overstock". Overstock records appear at the top portion of the SoftLayer outlet website. + OverstockFlag *int `json:"overstockFlag,omitempty" xmlrpc:"overstockFlag,omitempty"` + + // The product package that is associated with an inventory record. + Package *Product_Package `json:"package,omitempty" xmlrpc:"package,omitempty"` + + // The unique identifier of the product package that an inventory record is associated with. + PackageId *int `json:"packageId,omitempty" xmlrpc:"packageId,omitempty"` +} + +// This class is used to organize categories for a service offering. A service offering (usually) contains multiple categories (e.g., server, os, disk0, ram). This class allows us to organize the prices into related item category groups. +type Product_Package_Item_Category_Group struct { + Entity + + // no documentation yet + Category *Product_Item_Category `json:"category,omitempty" xmlrpc:"category,omitempty"` + + // The item category id associated with this group. + ItemCategoryId *int `json:"itemCategoryId,omitempty" xmlrpc:"itemCategoryId,omitempty"` + + // no documentation yet + Package *Product_Package `json:"package,omitempty" xmlrpc:"package,omitempty"` + + // The service offering id associated with this group. + PackageId *int `json:"packageId,omitempty" xmlrpc:"packageId,omitempty"` + + // A count of + PriceCount *uint `json:"priceCount,omitempty" xmlrpc:"priceCount,omitempty"` + + // no documentation yet + Prices []Product_Item_Price `json:"prices,omitempty" xmlrpc:"prices,omitempty"` + + // The sort value for this group. + Sort *int `json:"sort,omitempty" xmlrpc:"sort,omitempty"` + + // An optional title associated with this group. E.g., for operating systems, this will be the manufacturer. + Title *string `json:"title,omitempty" xmlrpc:"title,omitempty"` +} + +// The SoftLayer_Product_Package_Item_Prices contains price to package cross references Relates a category, price and item to a bundle. Match bundle ids to see all items and prices in a particular bundle. +type Product_Package_Item_Prices struct { + Entity + + // The unique identifier for SoftLayer_Product_Package_Item_Price. This is only needed as a reference. The important data is the itemPriceId property. + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // The item price to which this object belongs. The item price has details regarding cost for the item it belongs to. + ItemPrice *Product_Item_Price `json:"itemPrice,omitempty" xmlrpc:"itemPrice,omitempty"` + + // The SoftLayer_Product_Item_Price id. This value is to be used when placing orders. To get more information about this item price, go from the item price to the item description + ItemPriceId *int `json:"itemPriceId,omitempty" xmlrpc:"itemPriceId,omitempty"` + + // The package to which this object belongs. + Package *Product_Package `json:"package,omitempty" xmlrpc:"package,omitempty"` + + // The Package ID to which this price reference belongs + PackageId *int `json:"packageId,omitempty" xmlrpc:"packageId,omitempty"` +} + +// This data type is a cross-reference between the SoftLayer_Product_Package and the SoftLayer_Product_Item(s) that belong in the SoftLayer_Product_Package. +type Product_Package_Items struct { + Entity + + // The unique identifier for this object. It is not used anywhere but in this object. + Id *string `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // The item to which this object belongs. + Item *Product_Item `json:"item,omitempty" xmlrpc:"item,omitempty"` + + // The SoftLayer_Product_Item id to which this instance of the object belongs. + ItemId *int `json:"itemId,omitempty" xmlrpc:"itemId,omitempty"` + + // The package to which this object belongs. + Package *Product_Package `json:"package,omitempty" xmlrpc:"package,omitempty"` + + // The SoftLayer_Product_Package id to which this instance of the object belongs. + PackageId *int `json:"packageId,omitempty" xmlrpc:"packageId,omitempty"` +} + +// Most packages are available in many locations. This object describes that availability for each package. +type Product_Package_Locations struct { + Entity + + // This describes the availability of the package tied to this location. + DeliveryTimeInformation *string `json:"deliveryTimeInformation,omitempty" xmlrpc:"deliveryTimeInformation,omitempty"` + + // A simple flag which describes whether or not this location is available for this package. + IsAvailable *int `json:"isAvailable,omitempty" xmlrpc:"isAvailable,omitempty"` + + // The location to which this object belongs. + Location *Location `json:"location,omitempty" xmlrpc:"location,omitempty"` + + // The location id tied to this object. + LocationId *int `json:"locationId,omitempty" xmlrpc:"locationId,omitempty"` + + // The package to which this object belongs. + Package *Product_Package `json:"package,omitempty" xmlrpc:"package,omitempty"` + + // The SoftLayer_Product_Package ID tied to this object. + PackageId *int `json:"packageId,omitempty" xmlrpc:"packageId,omitempty"` +} + +// This datatype describes the item categories that are required for each package to be ordered. For instance, for package 2, there will be many required categories. When submitting an order for a server, there must be at most 1 price for each category whose "isRequired" is set. Examples of required categories: - server - ram - bandwidth - disk0 +// +// There are others, but these are the main ones. For each required category, a SoftLayer_Product_Item_Price must be chosen that is valid for the package. +// +// +type Product_Package_Order_Configuration struct { + Entity + + // The error message displayed if the submitted order does not contain this item category, if it is required. + ErrorMessage *string `json:"errorMessage,omitempty" xmlrpc:"errorMessage,omitempty"` + + // The unique identifier for this object. + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // This is a flag which tells SoftLayer_Product_Order::verifyOrder() whether or not this category is required. If this is set, then the order submitted must contain a SoftLayer_Product_Item_Price with this category as part of the order. + IsRequired *int `json:"isRequired,omitempty" xmlrpc:"isRequired,omitempty"` + + // The item category for this configuration instance. + ItemCategory *Product_Item_Category `json:"itemCategory,omitempty" xmlrpc:"itemCategory,omitempty"` + + // The SoftLayer_Product_Item_Category. + ItemCategoryId *int `json:"itemCategoryId,omitempty" xmlrpc:"itemCategoryId,omitempty"` + + // The order step ID for this particular option in the package. + OrderStepId *int `json:"orderStepId,omitempty" xmlrpc:"orderStepId,omitempty"` + + // The package to which this instance belongs. + Package *Product_Package `json:"package,omitempty" xmlrpc:"package,omitempty"` + + // The PackageId tied to this instance. + PackageId *int `json:"packageId,omitempty" xmlrpc:"packageId,omitempty"` + + // This is an integer used to show the order in which each item Category should be displayed. This is merely the suggested order. + Sort *int `json:"sort,omitempty" xmlrpc:"sort,omitempty"` + + // The step to which this instance belongs. + Step *Product_Package_Order_Step `json:"step,omitempty" xmlrpc:"step,omitempty"` +} + +// Each package has at least 1 step to the ordering process. For server orders, there are many. Each step has certain item categories which are displayed. This type describes the steps for each package. +type Product_Package_Order_Step struct { + Entity + + // The unique identifier for this object. It is not used anywhere but in this object. + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // A count of the next steps in the ordering process for the package tied to this object, including this step. + InclusivePreviousStepCount *uint `json:"inclusivePreviousStepCount,omitempty" xmlrpc:"inclusivePreviousStepCount,omitempty"` + + // The next steps in the ordering process for the package tied to this object, including this step. + InclusivePreviousSteps []Product_Package_Order_Step_Next `json:"inclusivePreviousSteps,omitempty" xmlrpc:"inclusivePreviousSteps,omitempty"` + + // A count of the next steps in the ordering process for the package tied to this object. + NextStepCount *uint `json:"nextStepCount,omitempty" xmlrpc:"nextStepCount,omitempty"` + + // The next steps in the ordering process for the package tied to this object. + NextSteps []Product_Package_Order_Step_Next `json:"nextSteps,omitempty" xmlrpc:"nextSteps,omitempty"` + + // A count of the item to which this object belongs. + PreviousStepCount *uint `json:"previousStepCount,omitempty" xmlrpc:"previousStepCount,omitempty"` + + // The item to which this object belongs. + PreviousSteps []Product_Package_Order_Step_Next `json:"previousSteps,omitempty" xmlrpc:"previousSteps,omitempty"` + + // The number of the step in the order process for this package. These are sequential and only needed for step-based ordering. + Step *string `json:"step,omitempty" xmlrpc:"step,omitempty"` +} + +// This datatype simply describes which steps are next in line for ordering. +type Product_Package_Order_Step_Next struct { + Entity + + // The unique identifier for this object. + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // The unique identifier for SoftLayer_Product_Package_Order_Step for the next step in the process. + NextOrderStepId *int `json:"nextOrderStepId,omitempty" xmlrpc:"nextOrderStepId,omitempty"` + + // The unique identifier for SoftLayer_Product_Package_Order_Step for the current step. + OrderStepId *int `json:"orderStepId,omitempty" xmlrpc:"orderStepId,omitempty"` + + // The SoftLayer_Product_Package_Order_Step to which this object belongs. + Step *Product_Package_Order_Step `json:"step,omitempty" xmlrpc:"step,omitempty"` +} + +// Package presets are used to simplify ordering by eliminating the need for price ids when submitting orders. +// +// Orders submitted with a preset id defined will use the prices included in the package preset. Prices submitted on an order with a preset id will replace the prices included in the package preset for that prices category. If the package preset has a fixed configuration flag (fixedConfigurationFlag) set then the prices included in the preset configuration cannot be replaced by prices submitted on the order. The only exception to the fixed configuration flag would be if a price submitted on the order is an account-restricted price for the same product item. +type Product_Package_Preset struct { + Entity + + // no documentation yet + AvailableStorageUnits *uint `json:"availableStorageUnits,omitempty" xmlrpc:"availableStorageUnits,omitempty"` + + // The item categories that are included in this package preset configuration. + Categories []Product_Item_Category `json:"categories,omitempty" xmlrpc:"categories,omitempty"` + + // A count of the item categories that are included in this package preset configuration. + CategoryCount *uint `json:"categoryCount,omitempty" xmlrpc:"categoryCount,omitempty"` + + // The preset configuration (category and price). + Configuration []Product_Package_Preset_Configuration `json:"configuration,omitempty" xmlrpc:"configuration,omitempty"` + + // A count of the preset configuration (category and price). + ConfigurationCount *uint `json:"configurationCount,omitempty" xmlrpc:"configurationCount,omitempty"` + + // A description of the package preset. + Description *string `json:"description,omitempty" xmlrpc:"description,omitempty"` + + // A package preset with this flag set will not allow the price's defined in the preset configuration to be overriden during order placement. + FixedConfigurationFlag *bool `json:"fixedConfigurationFlag,omitempty" xmlrpc:"fixedConfigurationFlag,omitempty"` + + // A preset's internal identifier. Everything regarding a SoftLayer_Product_Package_Preset is tied back to this id. + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // The status of the package preset. + IsActive *string `json:"isActive,omitempty" xmlrpc:"isActive,omitempty"` + + // The key name of the package preset. For the base configuration of a package the preset key name is "DEFAULT". + KeyName *string `json:"keyName,omitempty" xmlrpc:"keyName,omitempty"` + + // The lowest server prices related to this package preset. + LowestPresetServerPrice *Product_Item_Price `json:"lowestPresetServerPrice,omitempty" xmlrpc:"lowestPresetServerPrice,omitempty"` + + // The name of the package preset. + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` + + // The package this preset belongs to. + Package *Product_Package `json:"package,omitempty" xmlrpc:"package,omitempty"` + + // The item categories associated with a package preset, including information detailing which item categories are required as part of a SoftLayer product order. + PackageConfiguration []Product_Package_Order_Configuration `json:"packageConfiguration,omitempty" xmlrpc:"packageConfiguration,omitempty"` + + // A count of the item categories associated with a package preset, including information detailing which item categories are required as part of a SoftLayer product order. + PackageConfigurationCount *uint `json:"packageConfigurationCount,omitempty" xmlrpc:"packageConfigurationCount,omitempty"` + + // The package id for the package this preset belongs to. + PackageId *int `json:"packageId,omitempty" xmlrpc:"packageId,omitempty"` + + // A count of the item prices that are included in this package preset configuration. + PriceCount *uint `json:"priceCount,omitempty" xmlrpc:"priceCount,omitempty"` + + // The item prices that are included in this package preset configuration. + Prices []Product_Item_Price `json:"prices,omitempty" xmlrpc:"prices,omitempty"` + + // A count of describes how all disks in this preset will be configured. + StorageGroupTemplateArrayCount *uint `json:"storageGroupTemplateArrayCount,omitempty" xmlrpc:"storageGroupTemplateArrayCount,omitempty"` + + // Describes how all disks in this preset will be configured. + StorageGroupTemplateArrays []Configuration_Storage_Group_Template_Group `json:"storageGroupTemplateArrays,omitempty" xmlrpc:"storageGroupTemplateArrays,omitempty"` + + // The starting hourly price for this configuration. Additional options not defined in the preset may increase the cost. + TotalMinimumHourlyFee *Float64 `json:"totalMinimumHourlyFee,omitempty" xmlrpc:"totalMinimumHourlyFee,omitempty"` + + // The starting monthly price for this configuration. Additional options not defined in the preset may increase the cost. + TotalMinimumRecurringFee *Float64 `json:"totalMinimumRecurringFee,omitempty" xmlrpc:"totalMinimumRecurringFee,omitempty"` +} + +// Package preset attributes contain supplementary information for a package preset. +type Product_Package_Preset_Attribute struct { + Entity + + // no documentation yet + AttributeType *Product_Package_Preset_Attribute_Type `json:"attributeType,omitempty" xmlrpc:"attributeType,omitempty"` + + // The internal identifier of the type of attribute that a pacakge preset attribute belongs to. + AttributeTypeId *int `json:"attributeTypeId,omitempty" xmlrpc:"attributeTypeId,omitempty"` + + // A package preset attribute's internal identifier. + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // no documentation yet + Preset *Product_Package_Preset `json:"preset,omitempty" xmlrpc:"preset,omitempty"` + + // The internal identifier of the package preset an attribute belongs to. + PresetId *int `json:"presetId,omitempty" xmlrpc:"presetId,omitempty"` + + // A package preset's attribute value. + Value *string `json:"value,omitempty" xmlrpc:"value,omitempty"` +} + +// SoftLayer_Product_Package_Preset_Attribute_Type models the type of attribute that can be assigned to a package preset. +type Product_Package_Preset_Attribute_Type struct { + Entity + + // A brief description of a package preset attribute type. + Description *string `json:"description,omitempty" xmlrpc:"description,omitempty"` + + // A package preset attribute type's internal identifier. + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // A package preset attribute type's key name. This is typically a shorter version of an attribute type's name. + KeyName *string `json:"keyName,omitempty" xmlrpc:"keyName,omitempty"` + + // A package preset attribute type's name. + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` +} + +// no documentation yet +type Product_Package_Preset_Configuration struct { + Entity + + // no documentation yet + Category *Product_Item_Category `json:"category,omitempty" xmlrpc:"category,omitempty"` + + // no documentation yet + PackagePreset *Product_Package_Preset `json:"packagePreset,omitempty" xmlrpc:"packagePreset,omitempty"` + + // no documentation yet + Price *Product_Item_Price `json:"price,omitempty" xmlrpc:"price,omitempty"` +} + +// The SoftLayer_Product_Package_Server data type contains summarized information for bare metal servers regarding pricing, processor stats, and feature sets. +type Product_Package_Server struct { + Entity + + // no documentation yet + Catalog *Product_Catalog `json:"catalog,omitempty" xmlrpc:"catalog,omitempty"` + + // The unique identifier of a [[SoftLayer_Product_Catalog]]. + CatalogId *int `json:"catalogId,omitempty" xmlrpc:"catalogId,omitempty"` + + // Comma-separated list of datacenter names this server is available in + Datacenters *string `json:"datacenters,omitempty" xmlrpc:"datacenters,omitempty"` + + // The minimum amount of RAM the server is configured with. + DefaultRamCapacity *Float64 `json:"defaultRamCapacity,omitempty" xmlrpc:"defaultRamCapacity,omitempty"` + + // Flag to indicate if the server configuration supports dual path network routing. + DualPathNetworkFlag *bool `json:"dualPathNetworkFlag,omitempty" xmlrpc:"dualPathNetworkFlag,omitempty"` + + // no documentation yet + FlexCoreServerFlag *bool `json:"flexCoreServerFlag,omitempty" xmlrpc:"flexCoreServerFlag,omitempty"` + + // Indicates whether or not the server contains a GPU. + GpuFlag *bool `json:"gpuFlag,omitempty" xmlrpc:"gpuFlag,omitempty"` + + // Flag to determine if a server is available for hourly billing. + HourlyBillingFlag *bool `json:"hourlyBillingFlag,omitempty" xmlrpc:"hourlyBillingFlag,omitempty"` + + // The unique identifier of a [[SoftLayer_Product_Package_Server]]. + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // no documentation yet + Item *Product_Item `json:"item,omitempty" xmlrpc:"item,omitempty"` + + // The unique identifier of a [[SoftLayer_Product_Item]]. + ItemId *int `json:"itemId,omitempty" xmlrpc:"itemId,omitempty"` + + // no documentation yet + ItemPrice *Product_Item_Price `json:"itemPrice,omitempty" xmlrpc:"itemPrice,omitempty"` + + // The unique identifier of a [[SoftLayer_Product_Item_Price]]. + ItemPriceId *int `json:"itemPriceId,omitempty" xmlrpc:"itemPriceId,omitempty"` + + // The maximum number of hard drives the server can support. + MaximumDriveCount *int `json:"maximumDriveCount,omitempty" xmlrpc:"maximumDriveCount,omitempty"` + + // The maximum available network speed for the server. + MaximumPortSpeed *Float64 `json:"maximumPortSpeed,omitempty" xmlrpc:"maximumPortSpeed,omitempty"` + + // The maximum amount of RAM the server can support. + MaximumRamCapacity *Float64 `json:"maximumRamCapacity,omitempty" xmlrpc:"maximumRamCapacity,omitempty"` + + // The minimum available network speed for the server. + MinimumPortSpeed *Float64 `json:"minimumPortSpeed,omitempty" xmlrpc:"minimumPortSpeed,omitempty"` + + // no documentation yet + NetworkGatewayApplianceRoleFlag *bool `json:"networkGatewayApplianceRoleFlag,omitempty" xmlrpc:"networkGatewayApplianceRoleFlag,omitempty"` + + // Indicates whether or not the server is being sold as part of an outlet package. + OutletFlag *bool `json:"outletFlag,omitempty" xmlrpc:"outletFlag,omitempty"` + + // no documentation yet + Package *Product_Package `json:"package,omitempty" xmlrpc:"package,omitempty"` + + // The unique identifier of a [[SoftLayer_Product_Package]]. + PackageId *int `json:"packageId,omitempty" xmlrpc:"packageId,omitempty"` + + // The type of service offering/package. + PackageType *string `json:"packageType,omitempty" xmlrpc:"packageType,omitempty"` + + // Flag to indicate if the server is an IBM Power server. + PowerServerFlag *bool `json:"powerServerFlag,omitempty" xmlrpc:"powerServerFlag,omitempty"` + + // no documentation yet + Preset *Product_Package_Preset `json:"preset,omitempty" xmlrpc:"preset,omitempty"` + + // The unique identifier of a [[SoftLayer_Product_Package_Preset]]. + PresetId *int `json:"presetId,omitempty" xmlrpc:"presetId,omitempty"` + + // Indicates whether or not the server can only be configured with a private network. + PrivateNetworkOnlyFlag *bool `json:"privateNetworkOnlyFlag,omitempty" xmlrpc:"privateNetworkOnlyFlag,omitempty"` + + // The processor's bus speed. + ProcessorBusSpeed *string `json:"processorBusSpeed,omitempty" xmlrpc:"processorBusSpeed,omitempty"` + + // The amount of cache the processor has. + ProcessorCache *string `json:"processorCache,omitempty" xmlrpc:"processorCache,omitempty"` + + // The number of cores in each processor. + ProcessorCores *int `json:"processorCores,omitempty" xmlrpc:"processorCores,omitempty"` + + // The number of processors the server has. + ProcessorCount *int `json:"processorCount,omitempty" xmlrpc:"processorCount,omitempty"` + + // The manufacturer of the server's processor. + ProcessorManufacturer *string `json:"processorManufacturer,omitempty" xmlrpc:"processorManufacturer,omitempty"` + + // The model of the server's processor. + ProcessorModel *string `json:"processorModel,omitempty" xmlrpc:"processorModel,omitempty"` + + // The name of the server's processor. + ProcessorName *string `json:"processorName,omitempty" xmlrpc:"processorName,omitempty"` + + // The processor speed. + ProcessorSpeed *string `json:"processorSpeed,omitempty" xmlrpc:"processorSpeed,omitempty"` + + // The name of the server product. + ProductName *string `json:"productName,omitempty" xmlrpc:"productName,omitempty"` + + // Indicates whether or not the server has the capability to support a redundant power supply. + RedundantPowerFlag *bool `json:"redundantPowerFlag,omitempty" xmlrpc:"redundantPowerFlag,omitempty"` + + // Flag to indicate if the server is SAP certified. + SapCertifiedServerFlag *bool `json:"sapCertifiedServerFlag,omitempty" xmlrpc:"sapCertifiedServerFlag,omitempty"` + + // The hourly starting price for the server. This includes a sum of all the minimum required items, including RAM and hard drives. Not all servers are available hourly. + StartingHourlyPrice *Float64 `json:"startingHourlyPrice,omitempty" xmlrpc:"startingHourlyPrice,omitempty"` + + // The monthly starting price for the server. This includes a sum of all the minimum required items, including RAM and hard drives. + StartingMonthlyPrice *Float64 `json:"startingMonthlyPrice,omitempty" xmlrpc:"startingMonthlyPrice,omitempty"` + + // The total number of processor cores available for the server. + TotalCoreCount *int `json:"totalCoreCount,omitempty" xmlrpc:"totalCoreCount,omitempty"` + + // Flag to indicate if the server configuration supports TXT/TPM. + TxtTpmFlag *bool `json:"txtTpmFlag,omitempty" xmlrpc:"txtTpmFlag,omitempty"` + + // The size of the server. + UnitSize *int `json:"unitSize,omitempty" xmlrpc:"unitSize,omitempty"` +} + +// The [[SoftLayer_Product_Package_Server_Option]] data type contains various data points associated with package servers that can be used in selection criteria. +type Product_Package_Server_Option struct { + Entity + + // The unique identifier of a Catalog. + CatalogId *int `json:"catalogId,omitempty" xmlrpc:"catalogId,omitempty"` + + // A description of the option. + Description *string `json:"description,omitempty" xmlrpc:"description,omitempty"` + + // The unique identifier of a Package Server Option. + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // The type of option. + Type *string `json:"type,omitempty" xmlrpc:"type,omitempty"` + + // The value of the the option. + Value *string `json:"value,omitempty" xmlrpc:"value,omitempty"` +} + +// The [[SoftLayer_Product_Package_Type]] object indicates the type for a service offering (package). The type can be used to filter packages. For example, if you are looking for the package representing virtual servers, you can filter on the type's key name of '''VIRTUAL_SERVER_INSTANCE'''. For bare metal servers by core or CPU, filter on '''BARE_METAL_CORE''' or '''BARE_METAL_CPU''', respectively. +type Product_Package_Type struct { + Entity + + // The package type's unique identifier. + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // The unique key name of the package type. Use this value when filtering. + KeyName *string `json:"keyName,omitempty" xmlrpc:"keyName,omitempty"` + + // The name of the package type. + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` + + // A count of all the packages associated with the given package type. + PackageCount *uint `json:"packageCount,omitempty" xmlrpc:"packageCount,omitempty"` + + // All the packages associated with the given package type. + Packages []Product_Package `json:"packages,omitempty" xmlrpc:"packages,omitempty"` +} + +// The SoftLayer_Product_Upgrade_Request data type contains general information relating to a hardware, virtual server, or service upgrade. It also relates a [[SoftLayer_Billing_Order]] to a [[SoftLayer_Ticket]]. +type Product_Upgrade_Request struct { + Entity + + // The account that an order belongs to + Account *Account `json:"account,omitempty" xmlrpc:"account,omitempty"` + + // The unique internal id of a SoftLayer account + AccountId *int `json:"accountId,omitempty" xmlrpc:"accountId,omitempty"` + + // Indicates that the upgrade request has completed or has been cancelled. + CompletedFlag *bool `json:"completedFlag,omitempty" xmlrpc:"completedFlag,omitempty"` + + // The date an upgrade request was created. + CreateDate *Time `json:"createDate,omitempty" xmlrpc:"createDate,omitempty"` + + // The unique internal id of the last modified user + EmployeeId *int `json:"employeeId,omitempty" xmlrpc:"employeeId,omitempty"` + + // The unique internal id of the virtual server that an upgrade will be done + GuestId *int `json:"guestId,omitempty" xmlrpc:"guestId,omitempty"` + + // The unique internal id of the hardware that an upgrade will be done + HardwareId *int `json:"hardwareId,omitempty" xmlrpc:"hardwareId,omitempty"` + + // An upgrade request's internal identifier. + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // This is the invoice associated with the upgrade request. For hourly servers or services, an invoice will not be available. + Invoice *Billing_Invoice `json:"invoice,omitempty" xmlrpc:"invoice,omitempty"` + + // The time that system admin starts working on the order item. This is used for upgrade orders. + MaintenanceStartTimeUtc *Time `json:"maintenanceStartTimeUtc,omitempty" xmlrpc:"maintenanceStartTimeUtc,omitempty"` + + // The date an upgrade request was last modified. + ModifyDate *Time `json:"modifyDate,omitempty" xmlrpc:"modifyDate,omitempty"` + + // An order record associated to the upgrade request + Order *Billing_Order `json:"order,omitempty" xmlrpc:"order,omitempty"` + + // The unique internal id of the order that an upgrade request is related to + OrderId *int `json:"orderId,omitempty" xmlrpc:"orderId,omitempty"` + + // The total amount of fees + OrderTotal *Float64 `json:"orderTotal,omitempty" xmlrpc:"orderTotal,omitempty"` + + // The prorated total amount of recurring fees + ProratedTotal *Float64 `json:"proratedTotal,omitempty" xmlrpc:"proratedTotal,omitempty"` + + // A server object associated with the upgrade request if any. + Server *Hardware `json:"server,omitempty" xmlrpc:"server,omitempty"` + + // The current status of the upgrade request. + Status *Product_Upgrade_Request_Status `json:"status,omitempty" xmlrpc:"status,omitempty"` + + // The unique internal id of an upgrade status + StatusId *int `json:"statusId,omitempty" xmlrpc:"statusId,omitempty"` + + // The ticket that is used to coordinate the upgrade process. + Ticket *Ticket `json:"ticket,omitempty" xmlrpc:"ticket,omitempty"` + + // The unique internal id of the ticket related to an upgrade request + TicketId *int `json:"ticketId,omitempty" xmlrpc:"ticketId,omitempty"` + + // The user that placed the order. + User *User_Customer `json:"user,omitempty" xmlrpc:"user,omitempty"` + + // The unique internal id of the customer who place the order + UserId *int `json:"userId,omitempty" xmlrpc:"userId,omitempty"` + + // A virtual server object associated with the upgrade request if any. + VirtualGuest *Virtual_Guest `json:"virtualGuest,omitempty" xmlrpc:"virtualGuest,omitempty"` +} + +// The SoftLayer_Product_Upgrade_Request_Status data type contains detailed information relating to an hardware or software upgrade request. +type Product_Upgrade_Request_Status struct { + Entity + + // The detailed description of an upgrade request status. + Description *string `json:"description,omitempty" xmlrpc:"description,omitempty"` + + // An internal identifier of an upgrade request status. + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // The name of an upgrade request status. + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` + + // The status code of an upgrade request status. + StatusCode *string `json:"statusCode,omitempty" xmlrpc:"statusCode,omitempty"` +} diff --git a/vendor/github.com/softlayer/softlayer-go/datatypes/provisioning.go b/vendor/github.com/softlayer/softlayer-go/datatypes/provisioning.go new file mode 100644 index 000000000..e79fac229 --- /dev/null +++ b/vendor/github.com/softlayer/softlayer-go/datatypes/provisioning.go @@ -0,0 +1,303 @@ +/** + * Copyright 2016 IBM Corp. + * + * 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. + */ + +/** + * AUTOMATICALLY GENERATED CODE - DO NOT MODIFY + */ + +package datatypes + +// The SoftLayer_Provisioning_Hook contains all the information needed to add a hook into a server/Virtual provision and os reload. +type Provisioning_Hook struct { + Entity + + // no documentation yet + Account *Account `json:"account,omitempty" xmlrpc:"account,omitempty"` + + // The ID of the account the script belongs to. + AccountId *int `json:"accountId,omitempty" xmlrpc:"accountId,omitempty"` + + // no documentation yet + CreateDate *Time `json:"createDate,omitempty" xmlrpc:"createDate,omitempty"` + + // no documentation yet + HookType *Provisioning_Hook_Type `json:"hookType,omitempty" xmlrpc:"hookType,omitempty"` + + // no documentation yet + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // no documentation yet + ModifyDate *Time `json:"modifyDate,omitempty" xmlrpc:"modifyDate,omitempty"` + + // The name of the hook. + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` + + // The ID of the type of hook the script is identified as. Currently only CUSTOMER_PROVIDED_HOOK has been implemented. + TypeId *int `json:"typeId,omitempty" xmlrpc:"typeId,omitempty"` + + // The endpoint that the script will be downloaded from (USERNAME AND PASSWORD SHOULD BE INCLUDED HERE). If the endpoint is HTTP, the script will only be downloaded. If the endpoint is HTTPS, the script will be downloaded and executed. + Uri *string `json:"uri,omitempty" xmlrpc:"uri,omitempty"` +} + +// no documentation yet +type Provisioning_Hook_Type struct { + Entity + + // no documentation yet + Description *string `json:"description,omitempty" xmlrpc:"description,omitempty"` + + // no documentation yet + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // no documentation yet + KeyName *string `json:"keyName,omitempty" xmlrpc:"keyName,omitempty"` + + // no documentation yet + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` +} + +// The SoftLayer_Provisioning_Maintenance_Classification represent a maintenance type for the specific hardware maintenance desired. +type Provisioning_Maintenance_Classification struct { + Entity + + // The id of the maintenance classification. + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // no documentation yet + ItemCategories []Provisioning_Maintenance_Classification_Item_Category `json:"itemCategories,omitempty" xmlrpc:"itemCategories,omitempty"` + + // A count of + ItemCategoryCount *uint `json:"itemCategoryCount,omitempty" xmlrpc:"itemCategoryCount,omitempty"` + + // The number of slots required for the maintenance classification. + Slots *int `json:"slots,omitempty" xmlrpc:"slots,omitempty"` + + // The type or name of the maintenance classification. + Type *string `json:"type,omitempty" xmlrpc:"type,omitempty"` +} + +// no documentation yet +type Provisioning_Maintenance_Classification_Item_Category struct { + Entity + + // no documentation yet + ItemCategoryId *int `json:"itemCategoryId,omitempty" xmlrpc:"itemCategoryId,omitempty"` + + // no documentation yet + MaintenanceClassification *Provisioning_Maintenance_Classification `json:"maintenanceClassification,omitempty" xmlrpc:"maintenanceClassification,omitempty"` + + // no documentation yet + MaintenanceClassificationId *int `json:"maintenanceClassificationId,omitempty" xmlrpc:"maintenanceClassificationId,omitempty"` +} + +// The SoftLayer_Provisioning_Maintenance_Slots represent the available slots for a given maintenance window at a SoftLayer data center. +type Provisioning_Maintenance_Slots struct { + Entity + + // The available slots for a maintenance window. + AvailableSlots *int `json:"availableSlots,omitempty" xmlrpc:"availableSlots,omitempty"` +} + +// no documentation yet +type Provisioning_Maintenance_Ticket struct { + Entity + + // no documentation yet + AvailableSlots *Provisioning_Maintenance_Slots `json:"availableSlots,omitempty" xmlrpc:"availableSlots,omitempty"` + + // no documentation yet + MaintClassId *int `json:"maintClassId,omitempty" xmlrpc:"maintClassId,omitempty"` + + // no documentation yet + MaintWindowId *int `json:"maintWindowId,omitempty" xmlrpc:"maintWindowId,omitempty"` + + // no documentation yet + MaintenanceClass *Provisioning_Maintenance_Classification `json:"maintenanceClass,omitempty" xmlrpc:"maintenanceClass,omitempty"` + + // no documentation yet + MaintenanceDate *Time `json:"maintenanceDate,omitempty" xmlrpc:"maintenanceDate,omitempty"` + + // no documentation yet + Ticket *Ticket `json:"ticket,omitempty" xmlrpc:"ticket,omitempty"` + + // no documentation yet + TicketId *int `json:"ticketId,omitempty" xmlrpc:"ticketId,omitempty"` +} + +// The SoftLayer_Provisioning_Maintenance_Window represent a time window that SoftLayer performs a hardware or software maintenance and upgrades. +type Provisioning_Maintenance_Window struct { + Entity + + // The date and time a maintenance window is scheduled to begin. + BeginDate *Time `json:"beginDate,omitempty" xmlrpc:"beginDate,omitempty"` + + // An ISO-8601 numeric representation of the day of the week that a maintenance window is performed. 1: Monday, 7: Sunday + DayOfWeek *int `json:"dayOfWeek,omitempty" xmlrpc:"dayOfWeek,omitempty"` + + // The date and time a maintenance window is scheduled to end. + EndDate *Time `json:"endDate,omitempty" xmlrpc:"endDate,omitempty"` + + // Id of the maintenance window + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // An internal identifier of the location (data center) record that a maintenance window takes place in. + LocationId *int `json:"locationId,omitempty" xmlrpc:"locationId,omitempty"` + + // An internal identifier of the datacenter timezone. + PortalTzId *int `json:"portalTzId,omitempty" xmlrpc:"portalTzId,omitempty"` +} + +// The SoftLayer_Provisioning_Version1_Transaction data type contains general information relating to a single SoftLayer hardware transaction. +// +// SoftLayer customers are unable to change their hardware transactions. +type Provisioning_Version1_Transaction struct { + Entity + + // The account that a transaction belongs to. + Account *Account `json:"account,omitempty" xmlrpc:"account,omitempty"` + + // The date a transaction was created. + CreateDate *Time `json:"createDate,omitempty" xmlrpc:"createDate,omitempty"` + + // The amount of seconds that have elapsed since the transaction was last modified. + ElapsedSeconds *int `json:"elapsedSeconds,omitempty" xmlrpc:"elapsedSeconds,omitempty"` + + // The guest record for this transaction. + Guest *Virtual_Guest `json:"guest,omitempty" xmlrpc:"guest,omitempty"` + + // A transaction's associated guest identification number. + GuestId *int `json:"guestId,omitempty" xmlrpc:"guestId,omitempty"` + + // The hardware object for this transaction. + Hardware *Hardware `json:"hardware,omitempty" xmlrpc:"hardware,omitempty"` + + // A transaction's associated hardware identification number. + HardwareId *int `json:"hardwareId,omitempty" xmlrpc:"hardwareId,omitempty"` + + // A transaction's identifying number. + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // no documentation yet + Loopback []Provisioning_Version1_Transaction `json:"loopback,omitempty" xmlrpc:"loopback,omitempty"` + + // A count of + LoopbackCount *uint `json:"loopbackCount,omitempty" xmlrpc:"loopbackCount,omitempty"` + + // The date a transaction was last modified. + ModifyDate *Time `json:"modifyDate,omitempty" xmlrpc:"modifyDate,omitempty"` + + // A count of + PendingTransactionCount *uint `json:"pendingTransactionCount,omitempty" xmlrpc:"pendingTransactionCount,omitempty"` + + // no documentation yet + PendingTransactions []Provisioning_Version1_Transaction `json:"pendingTransactions,omitempty" xmlrpc:"pendingTransactions,omitempty"` + + // The date the transaction status was last modified. + StatusChangeDate *Time `json:"statusChangeDate,omitempty" xmlrpc:"statusChangeDate,omitempty"` + + // no documentation yet + TicketScheduledActionReference []Ticket_Attachment `json:"ticketScheduledActionReference,omitempty" xmlrpc:"ticketScheduledActionReference,omitempty"` + + // A count of + TicketScheduledActionReferenceCount *uint `json:"ticketScheduledActionReferenceCount,omitempty" xmlrpc:"ticketScheduledActionReferenceCount,omitempty"` + + // A transaction's group. This group object determines what type of service is being done on the hardware. + TransactionGroup *Provisioning_Version1_Transaction_Group `json:"transactionGroup,omitempty" xmlrpc:"transactionGroup,omitempty"` + + // A transaction's status. This status object determines the state it is in the transaction group. + TransactionStatus *Provisioning_Version1_Transaction_Status `json:"transactionStatus,omitempty" xmlrpc:"transactionStatus,omitempty"` +} + +// The SoftLayer_Provisioning_Version1_Transaction_Group data type contains general information relating to a single SoftLayer hardware transaction group. +// +// SoftLayer customers are unable to change their hardware transactions or the hardware transaction group. +type Provisioning_Version1_Transaction_Group struct { + Entity + + // Average time, in minutes, for this type of transaction to complete. Please note that this is only an estimate. + AverageTimeToComplete *Float64 `json:"averageTimeToComplete,omitempty" xmlrpc:"averageTimeToComplete,omitempty"` + + // A transaction group's name. + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` +} + +// no documentation yet +type Provisioning_Version1_Transaction_History struct { + Entity + + // The finish date of a transaction history record. + FinishDate *Time `json:"finishDate,omitempty" xmlrpc:"finishDate,omitempty"` + + // The guest from where transaction history originates. + Guest *Virtual_Guest `json:"guest,omitempty" xmlrpc:"guest,omitempty"` + + // The guest ID associated with a transaction history. + GuestId *int `json:"guestId,omitempty" xmlrpc:"guestId,omitempty"` + + // The hardware from where transaction history originates. + Hardware *Hardware `json:"hardware,omitempty" xmlrpc:"hardware,omitempty"` + + // The hardware ID associated with a transaction history. + HardwareId *int `json:"hardwareId,omitempty" xmlrpc:"hardwareId,omitempty"` + + // The host ID associated with a transaction history. + HostId *int `json:"hostId,omitempty" xmlrpc:"hostId,omitempty"` + + // The ID associated with a transaction history. + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // The start date of a transaction history record. + StartDate *Time `json:"startDate,omitempty" xmlrpc:"startDate,omitempty"` + + // The transaction from where transaction history originates. + Transaction *Provisioning_Version1_Transaction `json:"transaction,omitempty" xmlrpc:"transaction,omitempty"` + + // The transaction ID associated with a transaction history. + TransactionId *int `json:"transactionId,omitempty" xmlrpc:"transactionId,omitempty"` + + // The transaction status of a transaction history. + TransactionStatus *Provisioning_Version1_Transaction_Status `json:"transactionStatus,omitempty" xmlrpc:"transactionStatus,omitempty"` + + // The transaction status ID associated with a transaction history. + TransactionStatusId *int `json:"transactionStatusId,omitempty" xmlrpc:"transactionStatusId,omitempty"` +} + +// The SoftLayer_Provisioning_Version1_Transaction_Status data type contains general information relating to a single SoftLayer hardware transaction status. +// +// SoftLayer customers are unable to change their hardware transaction status. +type Provisioning_Version1_Transaction_Status struct { + Entity + + // Hardware transaction status average duration. + AverageDuration *Float64 `json:"averageDuration,omitempty" xmlrpc:"averageDuration,omitempty"` + + // Transaction status friendly name. + FriendlyName *string `json:"friendlyName,omitempty" xmlrpc:"friendlyName,omitempty"` + + // Transaction status name. + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` + + // A count of + NonCompletedTransactionCount *uint `json:"nonCompletedTransactionCount,omitempty" xmlrpc:"nonCompletedTransactionCount,omitempty"` + + // no documentation yet + NonCompletedTransactions []Provisioning_Version1_Transaction `json:"nonCompletedTransactions,omitempty" xmlrpc:"nonCompletedTransactions,omitempty"` +} + +// no documentation yet +type Provisioning_Version1_Transaction_SubnetMigration struct { + Provisioning_Version1_Transaction +} diff --git a/vendor/github.com/softlayer/softlayer-go/datatypes/resource.go b/vendor/github.com/softlayer/softlayer-go/datatypes/resource.go new file mode 100644 index 000000000..f2a293ad2 --- /dev/null +++ b/vendor/github.com/softlayer/softlayer-go/datatypes/resource.go @@ -0,0 +1,413 @@ +/** + * Copyright 2016 IBM Corp. + * + * 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. + */ + +/** + * AUTOMATICALLY GENERATED CODE - DO NOT MODIFY + */ + +package datatypes + +// no documentation yet +type Resource_Configuration struct { + Entity +} + +// no documentation yet +type Resource_Group struct { + Entity + + // A count of a resource group's associated group ancestors. + AncestorGroupCount *uint `json:"ancestorGroupCount,omitempty" xmlrpc:"ancestorGroupCount,omitempty"` + + // A resource group's associated group ancestors. + AncestorGroups []Resource_Group `json:"ancestorGroups,omitempty" xmlrpc:"ancestorGroups,omitempty"` + + // A count of a resource group's associated attributes. + AttributeCount *uint `json:"attributeCount,omitempty" xmlrpc:"attributeCount,omitempty"` + + // A resource group's associated attributes. + Attributes []Resource_Group_Attribute `json:"attributes,omitempty" xmlrpc:"attributes,omitempty"` + + // A resource group's creation date. + CreateDate *Time `json:"createDate,omitempty" xmlrpc:"createDate,omitempty"` + + // A resource group's description. + Description *string `json:"description,omitempty" xmlrpc:"description,omitempty"` + + // A count of a resource group's associated hardware members. + HardwareMemberCount *uint `json:"hardwareMemberCount,omitempty" xmlrpc:"hardwareMemberCount,omitempty"` + + // A resource group's associated hardware members. + HardwareMembers []Resource_Group_Member `json:"hardwareMembers,omitempty" xmlrpc:"hardwareMembers,omitempty"` + + // A resource group's ID. + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // A resource group's keyname. + KeyName *string `json:"keyName,omitempty" xmlrpc:"keyName,omitempty"` + + // A count of a resource group's associated members. + MemberCount *uint `json:"memberCount,omitempty" xmlrpc:"memberCount,omitempty"` + + // A resource group's associated members. + Members []Resource_Group_Member `json:"members,omitempty" xmlrpc:"members,omitempty"` + + // A resource group's name. + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` + + // A resource group's associated root resource group. + RootResourceGroup *Resource_Group `json:"rootResourceGroup,omitempty" xmlrpc:"rootResourceGroup,omitempty"` + + // no documentation yet + RootResourceGroupId *int `json:"rootResourceGroupId,omitempty" xmlrpc:"rootResourceGroupId,omitempty"` + + // A count of a resource group's associated subnet members. + SubnetMemberCount *uint `json:"subnetMemberCount,omitempty" xmlrpc:"subnetMemberCount,omitempty"` + + // A resource group's associated subnet members. + SubnetMembers []Resource_Group_Member `json:"subnetMembers,omitempty" xmlrpc:"subnetMembers,omitempty"` + + // A resource group's associated template. + Template *Resource_Group_Template `json:"template,omitempty" xmlrpc:"template,omitempty"` + + // A resource group's template ID. + TemplateId *int `json:"templateId,omitempty" xmlrpc:"templateId,omitempty"` + + // A count of a resource group's associated VLAN members. + VlanMemberCount *uint `json:"vlanMemberCount,omitempty" xmlrpc:"vlanMemberCount,omitempty"` + + // A resource group's associated VLAN members. + VlanMembers []Resource_Group_Member `json:"vlanMembers,omitempty" xmlrpc:"vlanMembers,omitempty"` +} + +// no documentation yet +type Resource_Group_Attribute struct { + Entity + + // A resource group attribute's creation date. + CreateDate *Time `json:"createDate,omitempty" xmlrpc:"createDate,omitempty"` + + // A resource group attribute's resource group. + Group *Resource_Group `json:"group,omitempty" xmlrpc:"group,omitempty"` + + // A resource group attribute's ID. + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // A resource group attribute's type. + Type *Resource_Group_Attribute_Type `json:"type,omitempty" xmlrpc:"type,omitempty"` + + // A resource group attribute's value. + Value *string `json:"value,omitempty" xmlrpc:"value,omitempty"` +} + +// no documentation yet +type Resource_Group_Attribute_Type struct { + Entity + + // no documentation yet + Description *string `json:"description,omitempty" xmlrpc:"description,omitempty"` + + // no documentation yet + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // no documentation yet + KeyName *string `json:"keyName,omitempty" xmlrpc:"keyName,omitempty"` + + // no documentation yet + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` +} + +// The SoftLayer_Resource_Group_Descendant_Reference data type simplifies the link between one SoftLayer_Resource_Group_Member object and all of its parents. +// +// +type Resource_Group_Descendant_Reference struct { + Entity + + // no documentation yet + Group *Resource_Group `json:"group,omitempty" xmlrpc:"group,omitempty"` + + // no documentation yet + GroupMember *Resource_Group_Member `json:"groupMember,omitempty" xmlrpc:"groupMember,omitempty"` +} + +// no documentation yet +type Resource_Group_Member struct { + Entity + + // A count of a resource group member's associated attributes. + AttributeCount *uint `json:"attributeCount,omitempty" xmlrpc:"attributeCount,omitempty"` + + // A resource group member's associated attributes. + Attributes []Resource_Group_Member_Attribute `json:"attributes,omitempty" xmlrpc:"attributes,omitempty"` + + // A resource group member's creation date. + CreateDate *Time `json:"createDate,omitempty" xmlrpc:"createDate,omitempty"` + + // A count of a resource group member's associated member descendants. + DescendantMemberCount *uint `json:"descendantMemberCount,omitempty" xmlrpc:"descendantMemberCount,omitempty"` + + // A resource group member's associated member descendants. + DescendantMembers []Resource_Group_Member `json:"descendantMembers,omitempty" xmlrpc:"descendantMembers,omitempty"` + + // A resource group member's resource group. + Group *Resource_Group `json:"group,omitempty" xmlrpc:"group,omitempty"` + + // A resource group member's ID. + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // A count of a resource group member's associated roles. + RoleCount *uint `json:"roleCount,omitempty" xmlrpc:"roleCount,omitempty"` + + // A resource group member's associated roles. + Roles []Resource_Group_Role `json:"roles,omitempty" xmlrpc:"roles,omitempty"` + + // A resource group member's status. + Status *string `json:"status,omitempty" xmlrpc:"status,omitempty"` + + // A resource group member's type. + Type *Resource_Group_Member_Type `json:"type,omitempty" xmlrpc:"type,omitempty"` +} + +// no documentation yet +type Resource_Group_Member_Attribute struct { + Entity + + // A resource group member attribute's creation date. + CreateDate *Time `json:"createDate,omitempty" xmlrpc:"createDate,omitempty"` + + // A resource group member attribute's ID. + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // A resource group member attribute's resource group member. + Member *Resource_Group_Member `json:"member,omitempty" xmlrpc:"member,omitempty"` + + // A resource group member attribute's type. + Type *Resource_Group_Member_Attribute_Type `json:"type,omitempty" xmlrpc:"type,omitempty"` + + // A resource group member attribute's value. + Value *string `json:"value,omitempty" xmlrpc:"value,omitempty"` +} + +// no documentation yet +type Resource_Group_Member_Attribute_Type struct { + Entity + + // no documentation yet + Description *string `json:"description,omitempty" xmlrpc:"description,omitempty"` + + // no documentation yet + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // no documentation yet + KeyName *string `json:"keyName,omitempty" xmlrpc:"keyName,omitempty"` + + // no documentation yet + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` +} + +// no documentation yet +type Resource_Group_Member_CloudStack_Version3_Cluster struct { + Resource_Group_Member + + // A resource group member's associated cluster. + Resource *Resource_Group `json:"resource,omitempty" xmlrpc:"resource,omitempty"` +} + +// no documentation yet +type Resource_Group_Member_CloudStack_Version3_Pod struct { + Resource_Group_Member + + // A resource group member's associated pod. + Resource *Resource_Group `json:"resource,omitempty" xmlrpc:"resource,omitempty"` +} + +// no documentation yet +type Resource_Group_Member_CloudStack_Version3_Zone struct { + Resource_Group_Member + + // A resource group member's associated zone. + Resource *Resource_Group `json:"resource,omitempty" xmlrpc:"resource,omitempty"` +} + +// no documentation yet +type Resource_Group_Member_Hardware struct { + Resource_Group_Member + + // A resource group member's associated hardware. + Resource *Hardware `json:"resource,omitempty" xmlrpc:"resource,omitempty"` + + // A resource group hardware member's associated server arbiter-only state. + ServerArbiterOnly *Resource_Group_Member_Attribute `json:"serverArbiterOnly,omitempty" xmlrpc:"serverArbiterOnly,omitempty"` + + // A resource group hardware member's associated server hidden state. + ServerHidden *Resource_Group_Member_Attribute `json:"serverHidden,omitempty" xmlrpc:"serverHidden,omitempty"` + + // A resource group hardware member's associated server priority. + ServerPriority *Resource_Group_Member_Attribute `json:"serverPriority,omitempty" xmlrpc:"serverPriority,omitempty"` + + // A resource group hardware member's associated server slave delay (in seconds). + ServerSlaveDelay *Resource_Group_Member_Attribute `json:"serverSlaveDelay,omitempty" xmlrpc:"serverSlaveDelay,omitempty"` + + // A resource group hardware member's associated server tags (in JSON format). + ServerTags *Resource_Group_Member_Attribute `json:"serverTags,omitempty" xmlrpc:"serverTags,omitempty"` + + // A resource group hardware member's associated server vote count. + ServerVotes *Resource_Group_Member_Attribute `json:"serverVotes,omitempty" xmlrpc:"serverVotes,omitempty"` +} + +// no documentation yet +type Resource_Group_Member_Network_Storage struct { + Resource_Group_Member + + // A resource group member's associated network storage. + Resource *Network_Storage `json:"resource,omitempty" xmlrpc:"resource,omitempty"` +} + +// no documentation yet +type Resource_Group_Member_Network_Subnet struct { + Resource_Group_Member + + // A resource group member's associated network subnet. + Resource *Network_Subnet `json:"resource,omitempty" xmlrpc:"resource,omitempty"` +} + +// no documentation yet +type Resource_Group_Member_Network_Vlan struct { + Resource_Group_Member + + // A resource group member's associated network VLAN. + Resource *Network_Vlan `json:"resource,omitempty" xmlrpc:"resource,omitempty"` +} + +// no documentation yet +type Resource_Group_Member_Resource_Group struct { + Resource_Group_Member + + // A resource group member's associated resource group. + Resource *Resource_Group `json:"resource,omitempty" xmlrpc:"resource,omitempty"` +} + +// no documentation yet +type Resource_Group_Member_Role_Link struct { + Entity + + // A resource group member's ID. + GroupMemberId *int `json:"groupMemberId,omitempty" xmlrpc:"groupMemberId,omitempty"` + + // A resource group's template role ID. + GroupTemplateRoleId *int `json:"groupTemplateRoleId,omitempty" xmlrpc:"groupTemplateRoleId,omitempty"` +} + +// no documentation yet +type Resource_Group_Member_Software_Component_Password struct { + Resource_Group_Member + + // A resource group member's associated software component password. + Resource *Software_Component_Password `json:"resource,omitempty" xmlrpc:"resource,omitempty"` +} + +// no documentation yet +type Resource_Group_Member_Type struct { + Entity + + // A resource group member's type description. + Description *string `json:"description,omitempty" xmlrpc:"description,omitempty"` + + // A resource group member's type keyname. + KeyName *string `json:"keyName,omitempty" xmlrpc:"keyName,omitempty"` +} + +// no documentation yet +type Resource_Group_Member_Virtual_Host_Pool struct { + Resource_Group_Member +} + +// no documentation yet +type Resource_Group_Role struct { + Entity + + // A resource group role's description. + Description *string `json:"description,omitempty" xmlrpc:"description,omitempty"` + + // A resource group role's ID. + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // A resource group role's keyname. + KeyName *string `json:"keyName,omitempty" xmlrpc:"keyName,omitempty"` + + // A count of a resource group's role. + MemberLinkCount *uint `json:"memberLinkCount,omitempty" xmlrpc:"memberLinkCount,omitempty"` + + // A resource group's role. + MemberLinks []Resource_Group_Member_Role_Link `json:"memberLinks,omitempty" xmlrpc:"memberLinks,omitempty"` +} + +// no documentation yet +type Resource_Group_Template struct { + Entity + + // no documentation yet + Children []Resource_Group_Template `json:"children,omitempty" xmlrpc:"children,omitempty"` + + // A count of + ChildrenCount *uint `json:"childrenCount,omitempty" xmlrpc:"childrenCount,omitempty"` + + // A resource group template's description. + Description *string `json:"description,omitempty" xmlrpc:"description,omitempty"` + + // no documentation yet + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // A resource group template's keyname. + KeyName *string `json:"keyName,omitempty" xmlrpc:"keyName,omitempty"` + + // A count of + MemberCount *uint `json:"memberCount,omitempty" xmlrpc:"memberCount,omitempty"` + + // no documentation yet + Members []Resource_Group_Template_Member `json:"members,omitempty" xmlrpc:"members,omitempty"` + + // no documentation yet + Package *Product_Package `json:"package,omitempty" xmlrpc:"package,omitempty"` +} + +// no documentation yet +type Resource_Group_Template_Member struct { + Entity + + // no documentation yet + MaxQuantity *int `json:"maxQuantity,omitempty" xmlrpc:"maxQuantity,omitempty"` + + // no documentation yet + MinQuantity *int `json:"minQuantity,omitempty" xmlrpc:"minQuantity,omitempty"` + + // no documentation yet + Role *Resource_Group_Role `json:"role,omitempty" xmlrpc:"role,omitempty"` + + // no documentation yet + RoleId *int `json:"roleId,omitempty" xmlrpc:"roleId,omitempty"` + + // no documentation yet + Template *Resource_Group_Template `json:"template,omitempty" xmlrpc:"template,omitempty"` + + // no documentation yet + TemplateId *int `json:"templateId,omitempty" xmlrpc:"templateId,omitempty"` +} + +// no documentation yet +type Resource_Metadata struct { + Entity +} diff --git a/vendor/github.com/softlayer/softlayer-go/datatypes/sales.go b/vendor/github.com/softlayer/softlayer-go/datatypes/sales.go new file mode 100644 index 000000000..bf667aab4 --- /dev/null +++ b/vendor/github.com/softlayer/softlayer-go/datatypes/sales.go @@ -0,0 +1,62 @@ +/** + * Copyright 2016 IBM Corp. + * + * 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. + */ + +/** + * AUTOMATICALLY GENERATED CODE - DO NOT MODIFY + */ + +package datatypes + +// The presale event data types indicate the information regarding an individual presale event. The '''locationId''' will indicate the datacenter associated with the presale event. The '''itemId''' will indicate the product item associated with a particular presale event - however these are more rare. The '''startDate''' and '''endDate''' will provide information regarding when the presale event is available for use. At the end of the presale event, the server or services purchased will be available once approved and provisioned. +type Sales_Presale_Event struct { + Entity + + // A flag to indicate that the presale event is currently active. A presale event is active if the current time is between the start and end dates. + ActiveFlag *bool `json:"activeFlag,omitempty" xmlrpc:"activeFlag,omitempty"` + + // Description of the presale event. + Description *string `json:"description,omitempty" xmlrpc:"description,omitempty"` + + // End date of the presale event. Orders can be approved and provisioned after this date. + EndDate *Time `json:"endDate,omitempty" xmlrpc:"endDate,omitempty"` + + // A flag to indicate that the presale event is expired. A presale event is expired if the current time is after the end date. + ExpiredFlag *bool `json:"expiredFlag,omitempty" xmlrpc:"expiredFlag,omitempty"` + + // Presale event unique identifier. + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // The [[SoftLayer_Product_Item]] associated with the presale event. + Item *Product_Item `json:"item,omitempty" xmlrpc:"item,omitempty"` + + // [[SoftLayer_Product_Item]] id associated with the presale event. + ItemId *int `json:"itemId,omitempty" xmlrpc:"itemId,omitempty"` + + // The [[SoftLayer_Location]] associated with the presale event. + Location *Location `json:"location,omitempty" xmlrpc:"location,omitempty"` + + // [[SoftLayer_Location]] id for the presale event. + LocationId *int `json:"locationId,omitempty" xmlrpc:"locationId,omitempty"` + + // A count of the orders ([[SoftLayer_Billing_Order]]) associated with this presale event that were created for the customer's account. + OrderCount *uint `json:"orderCount,omitempty" xmlrpc:"orderCount,omitempty"` + + // The orders ([[SoftLayer_Billing_Order]]) associated with this presale event that were created for the customer's account. + Orders []Billing_Order `json:"orders,omitempty" xmlrpc:"orders,omitempty"` + + // Start date of the presale event. Orders cannot be approved before this date. + StartDate *Time `json:"startDate,omitempty" xmlrpc:"startDate,omitempty"` +} diff --git a/vendor/github.com/softlayer/softlayer-go/datatypes/scale.go b/vendor/github.com/softlayer/softlayer-go/datatypes/scale.go new file mode 100644 index 000000000..4ecc2a0f1 --- /dev/null +++ b/vendor/github.com/softlayer/softlayer-go/datatypes/scale.go @@ -0,0 +1,559 @@ +/** + * Copyright 2016 IBM Corp. + * + * 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. + */ + +/** + * AUTOMATICALLY GENERATED CODE - DO NOT MODIFY + */ + +package datatypes + +// no documentation yet +type Scale_Asset struct { + Entity + + // When this asset was created. + CreateDate *Time `json:"createDate,omitempty" xmlrpc:"createDate,omitempty"` + + // When set and true any edit that happens on this object, be it calling edit on this directly or setting as a child while editing a parent object, will end up being a deletion. + DeleteFlag *bool `json:"deleteFlag,omitempty" xmlrpc:"deleteFlag,omitempty"` + + // An asset's internal identifier. + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // The group this asset belongs to. + ScaleGroup *Scale_Group `json:"scaleGroup,omitempty" xmlrpc:"scaleGroup,omitempty"` + + // The identifier of the group this asset belongs to. + ScaleGroupId *int `json:"scaleGroupId,omitempty" xmlrpc:"scaleGroupId,omitempty"` +} + +// no documentation yet +type Scale_Asset_Hardware struct { + Scale_Asset + + // The hardware for this asset. + Hardware *Hardware `json:"hardware,omitempty" xmlrpc:"hardware,omitempty"` + + // The identifier of the hardware for this asset. + HardwareId *int `json:"hardwareId,omitempty" xmlrpc:"hardwareId,omitempty"` +} + +// no documentation yet +type Scale_Asset_Virtual_Guest struct { + Scale_Asset + + // The guest for this asset. + VirtualGuest *Virtual_Guest `json:"virtualGuest,omitempty" xmlrpc:"virtualGuest,omitempty"` + + // The identifier of the guest for this asset. + VirtualGuestId *int `json:"virtualGuestId,omitempty" xmlrpc:"virtualGuestId,omitempty"` +} + +// no documentation yet +type Scale_Group struct { + Entity + + // The account for this scaling group. + Account *Account `json:"account,omitempty" xmlrpc:"account,omitempty"` + + // The identifier of the account assigned to this group. + AccountId *int `json:"accountId,omitempty" xmlrpc:"accountId,omitempty"` + + // If this is true, this group will scale down members in a way to preserve the balance across VLANs. If there is ambiguity about which member to use to maintain balance, the terminationPolicy is used to resolve it. This is false by default and can only be set to true if there are multiple VLANs that are being balanced across. + BalancedTerminationFlag *bool `json:"balancedTerminationFlag,omitempty" xmlrpc:"balancedTerminationFlag,omitempty"` + + // The number of seconds this group will wait after lastActionDate before performing another action. Be advised, this can be overridden per policy. While strongly discouraged, a value of 0 effectively disables cooldown. + Cooldown *int `json:"cooldown,omitempty" xmlrpc:"cooldown,omitempty"` + + // When this group was created. + CreateDate *Time `json:"createDate,omitempty" xmlrpc:"createDate,omitempty"` + + // This value is only available on the template for creating and editing a group. It will be null when retrieved. When this value is provided on create or edit, guests will be scaled up or down to meet this number. This number must be in the range provided by minimumMemberCount and maximumMemberCount. This value can only be present during create or edit when this group is active. Note, guests that are created as a result of this value can possibly be removed after cooldown by a policy. + DesiredMemberCount *int `json:"desiredMemberCount,omitempty" xmlrpc:"desiredMemberCount,omitempty"` + + // A group's internal identifier. + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // The date of the last action on this group or its create date + LastActionDate *Time `json:"lastActionDate,omitempty" xmlrpc:"lastActionDate,omitempty"` + + // A count of collection of load balancers for this auto scale group. + LoadBalancerCount *uint `json:"loadBalancerCount,omitempty" xmlrpc:"loadBalancerCount,omitempty"` + + // Collection of load balancers for this auto scale group. + LoadBalancers []Scale_LoadBalancer `json:"loadBalancers,omitempty" xmlrpc:"loadBalancers,omitempty"` + + // A count of collection of log entries for this group. + LogCount *uint `json:"logCount,omitempty" xmlrpc:"logCount,omitempty"` + + // Collection of log entries for this group. + Logs []Scale_Group_Log `json:"logs,omitempty" xmlrpc:"logs,omitempty"` + + // The greatest number of virtual guest members that are allowed on this group. Any attempts to add a guest member will fail if it will result in the total guest member count of this group to be above this number. If this number is edited and is less than the current guest member count, guests will be removed to at least be no greater than this number. + MaximumMemberCount *int `json:"maximumMemberCount,omitempty" xmlrpc:"maximumMemberCount,omitempty"` + + // The fewest number of virtual guest members that are allowed on this group. Any attempts to remove a guest member will fail if it will result in the total guest member count of this group to be below this number. If this number is edited and is larger than the current guest member count, guests will be added to at least reach this number. + MinimumMemberCount *int `json:"minimumMemberCount,omitempty" xmlrpc:"minimumMemberCount,omitempty"` + + // When this group was last modified. + ModifyDate *Time `json:"modifyDate,omitempty" xmlrpc:"modifyDate,omitempty"` + + // The name of this scale group. It must be unique on the account. + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` + + // A count of collection of VLANs for this auto scale group. VLANs are optional. This can contain a public or private VLAN or both. When a single VLAN for a public/private type is given it can be a non-purchased VLAN only if the minimumMemberCount on the group is >= 1. This can also contain any number of public/private purchased VLANs and members are staggered across them when scaled up. + NetworkVlanCount *uint `json:"networkVlanCount,omitempty" xmlrpc:"networkVlanCount,omitempty"` + + // Collection of VLANs for this auto scale group. VLANs are optional. This can contain a public or private VLAN or both. When a single VLAN for a public/private type is given it can be a non-purchased VLAN only if the minimumMemberCount on the group is >= 1. This can also contain any number of public/private purchased VLANs and members are staggered across them when scaled up. + NetworkVlans []Scale_Network_Vlan `json:"networkVlans,omitempty" xmlrpc:"networkVlans,omitempty"` + + // Collection of policies for this group. This can be empty. + Policies []Scale_Policy `json:"policies,omitempty" xmlrpc:"policies,omitempty"` + + // A count of collection of policies for this group. This can be empty. + PolicyCount *uint `json:"policyCount,omitempty" xmlrpc:"policyCount,omitempty"` + + // The regional group for this scale group. + RegionalGroup *Location_Group_Regional `json:"regionalGroup,omitempty" xmlrpc:"regionalGroup,omitempty"` + + // The identifier of the regional group this scaling group is assigned to. + RegionalGroupId *int `json:"regionalGroupId,omitempty" xmlrpc:"regionalGroupId,omitempty"` + + // The status for this scale group. + Status *Scale_Group_Status `json:"status,omitempty" xmlrpc:"status,omitempty"` + + // If true, this group is suspended. + SuspendedFlag *bool `json:"suspendedFlag,omitempty" xmlrpc:"suspendedFlag,omitempty"` + + // The termination policy for this scaling group. + TerminationPolicy *Scale_Termination_Policy `json:"terminationPolicy,omitempty" xmlrpc:"terminationPolicy,omitempty"` + + // The termination policy for the group. This determines which member to choose to delete when scaling downwards. + TerminationPolicyId *int `json:"terminationPolicyId,omitempty" xmlrpc:"terminationPolicyId,omitempty"` + + // A count of collection of guests that have been pinned to this group. Guest assets are only used for certain trigger checks such as resource watches. They do not count towards the auto scaling guest counts of this group in anyway and are never automatically added or removed. + VirtualGuestAssetCount *uint `json:"virtualGuestAssetCount,omitempty" xmlrpc:"virtualGuestAssetCount,omitempty"` + + // Collection of guests that have been pinned to this group. Guest assets are only used for certain trigger checks such as resource watches. They do not count towards the auto scaling guest counts of this group in anyway and are never automatically added or removed. + VirtualGuestAssets []Scale_Asset_Virtual_Guest `json:"virtualGuestAssets,omitempty" xmlrpc:"virtualGuestAssets,omitempty"` + + // A count of collection of guests that have been scaled with the group. When this group is active, the count of guests here is guaranteed to be between minimumMemberCount and maximumMemberCount inclusively. + VirtualGuestMemberCount *uint `json:"virtualGuestMemberCount,omitempty" xmlrpc:"virtualGuestMemberCount,omitempty"` + + // This is the template to create guest members with. This is the same template accepted by the createObject call on SoftLayer_Virtual_Guest with some caveats. The hostname provided will have an arbitrary value appended to it for each guest created. Also, hourlyBillingFlag cannot be false, and if the datacenter is provided it must be in the region of this group. Finally, VLANs cannot be provided for the template, it will use VLANs provided to this group instead. + // + // Note, if this template is edited on an existing group the previous template values are not kept and are not considered during termination. This means a group's guest members could effectively be a hybrid of multiple templates because this value was changed after some guest members were created but before others were created. + VirtualGuestMemberTemplate *Virtual_Guest `json:"virtualGuestMemberTemplate,omitempty" xmlrpc:"virtualGuestMemberTemplate,omitempty"` + + // Collection of guests that have been scaled with the group. When this group is active, the count of guests here is guaranteed to be between minimumMemberCount and maximumMemberCount inclusively. + VirtualGuestMembers []Scale_Member_Virtual_Guest `json:"virtualGuestMembers,omitempty" xmlrpc:"virtualGuestMembers,omitempty"` +} + +// no documentation yet +type Scale_Group_Log struct { + Entity + + // When this event occurred. + CreateDate *Time `json:"createDate,omitempty" xmlrpc:"createDate,omitempty"` + + // A textual description of what happened during this action. + Description *string `json:"description,omitempty" xmlrpc:"description,omitempty"` + + // This log's internal identifier. + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // The group this log refers to. + ScaleGroup *Scale_Group `json:"scaleGroup,omitempty" xmlrpc:"scaleGroup,omitempty"` + + // The identifier of the group this log refers to. + ScaleGroupId *int `json:"scaleGroupId,omitempty" xmlrpc:"scaleGroupId,omitempty"` +} + +// no documentation yet +type Scale_Group_Status struct { + Entity + + // A status's internal identifier. + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // A status's programmatic name. + KeyName *string `json:"keyName,omitempty" xmlrpc:"keyName,omitempty"` + + // A status's human-friendly name. + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` +} + +// no documentation yet +type Scale_LoadBalancer struct { + Entity + + // The percentage of connections allocated to this virtual server. + AllocationPercent *int `json:"allocationPercent,omitempty" xmlrpc:"allocationPercent,omitempty"` + + // When this load balancer configuration was created. + CreateDate *Time `json:"createDate,omitempty" xmlrpc:"createDate,omitempty"` + + // When set and true any edit that happens on this object, be it calling edit on this directly or setting as a child while editing a parent object, will end up being a deletion. + DeleteFlag *bool `json:"deleteFlag,omitempty" xmlrpc:"deleteFlag,omitempty"` + + // The health check for this configuration. + HealthCheck *Network_Application_Delivery_Controller_LoadBalancer_Health_Check `json:"healthCheck,omitempty" xmlrpc:"healthCheck,omitempty"` + + // The identifier for the health check of this load balancer configuration + HealthCheckId *int `json:"healthCheckId,omitempty" xmlrpc:"healthCheckId,omitempty"` + + // The load balancer configuration's internal identifier. + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // When this load balancer configuration was last modified. + ModifyDate *Time `json:"modifyDate,omitempty" xmlrpc:"modifyDate,omitempty"` + + // The port for this load balancer configuration. + Port *int `json:"port,omitempty" xmlrpc:"port,omitempty"` + + // The routing method. + RoutingMethod *Network_Application_Delivery_Controller_LoadBalancer_Routing_Method `json:"routingMethod,omitempty" xmlrpc:"routingMethod,omitempty"` + + // The routing type. + RoutingType *Network_Application_Delivery_Controller_LoadBalancer_Routing_Type `json:"routingType,omitempty" xmlrpc:"routingType,omitempty"` + + // The group this load balancer configuration is for. + ScaleGroup *Scale_Group `json:"scaleGroup,omitempty" xmlrpc:"scaleGroup,omitempty"` + + // The identifier of the group this load balancer configuration applies to. + ScaleGroupId *int `json:"scaleGroupId,omitempty" xmlrpc:"scaleGroupId,omitempty"` + + // The ID of the virtual IP address. + VirtualIpAddressId *int `json:"virtualIpAddressId,omitempty" xmlrpc:"virtualIpAddressId,omitempty"` + + // The virtual server for this configuration. + VirtualServer *Network_Application_Delivery_Controller_LoadBalancer_VirtualServer `json:"virtualServer,omitempty" xmlrpc:"virtualServer,omitempty"` + + // The identifier of the virtual server this load balancer configuration uses. + VirtualServerId *int `json:"virtualServerId,omitempty" xmlrpc:"virtualServerId,omitempty"` + + // The port on the virtual server. + VirtualServerPort *int `json:"virtualServerPort,omitempty" xmlrpc:"virtualServerPort,omitempty"` +} + +// no documentation yet +type Scale_Member struct { + Entity + + // When this member was created. + CreateDate *Time `json:"createDate,omitempty" xmlrpc:"createDate,omitempty"` + + // A member's internal identifier. + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // The group this member belongs to. + ScaleGroup *Scale_Group `json:"scaleGroup,omitempty" xmlrpc:"scaleGroup,omitempty"` + + // The identifier of the group this member belongs to. + ScaleGroupId *int `json:"scaleGroupId,omitempty" xmlrpc:"scaleGroupId,omitempty"` +} + +// no documentation yet +type Scale_Member_Virtual_Guest struct { + Scale_Member + + // The guest for this member. + VirtualGuest *Virtual_Guest `json:"virtualGuest,omitempty" xmlrpc:"virtualGuest,omitempty"` + + // The identifier of the guest for this member. + VirtualGuestId *int `json:"virtualGuestId,omitempty" xmlrpc:"virtualGuestId,omitempty"` +} + +// no documentation yet +type Scale_Network_Vlan struct { + Entity + + // When this network VLAN reference was created. + CreateDate *Time `json:"createDate,omitempty" xmlrpc:"createDate,omitempty"` + + // When set and true any edit that happens on this object, be it calling edit on this directly or setting as a child while editing a parent object, will end up being a deletion. + DeleteFlag *bool `json:"deleteFlag,omitempty" xmlrpc:"deleteFlag,omitempty"` + + // The network VLAN reference's internal identifier. + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // The network VLAN to scale with. + NetworkVlan *Network_Vlan `json:"networkVlan,omitempty" xmlrpc:"networkVlan,omitempty"` + + // The identifier for the VLAN to scale with. + NetworkVlanId *int `json:"networkVlanId,omitempty" xmlrpc:"networkVlanId,omitempty"` + + // The group this network VLAN is for. + ScaleGroup *Scale_Group `json:"scaleGroup,omitempty" xmlrpc:"scaleGroup,omitempty"` + + // The identifier of the group this network VLAN reference applies to. + ScaleGroupId *int `json:"scaleGroupId,omitempty" xmlrpc:"scaleGroupId,omitempty"` +} + +// no documentation yet +type Scale_Policy struct { + Entity + + // A count of the actions to perform upon any trigger hit. Currently this must be a single value. + ActionCount *uint `json:"actionCount,omitempty" xmlrpc:"actionCount,omitempty"` + + // The actions to perform upon any trigger hit. Currently this must be a single value. + Actions []Scale_Policy_Action `json:"actions,omitempty" xmlrpc:"actions,omitempty"` + + // The number of seconds this policy will wait after lastActionDate on group before performing another action. If not present, the group's cooldown value is used. + Cooldown *int `json:"cooldown,omitempty" xmlrpc:"cooldown,omitempty"` + + // When this policy was created. + CreateDate *Time `json:"createDate,omitempty" xmlrpc:"createDate,omitempty"` + + // When set and true any edit that happens on this object, be it calling edit on this directly or setting as a child while editing a parent object, will end up being a deletion. + DeleteFlag *bool `json:"deleteFlag,omitempty" xmlrpc:"deleteFlag,omitempty"` + + // A policy's internal identifier. + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // When this policy was last modified. + ModifyDate *Time `json:"modifyDate,omitempty" xmlrpc:"modifyDate,omitempty"` + + // The name of this policy. It must be unique within the group. + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` + + // A count of the one-time triggers to check for this group. + OneTimeTriggerCount *uint `json:"oneTimeTriggerCount,omitempty" xmlrpc:"oneTimeTriggerCount,omitempty"` + + // The one-time triggers to check for this group. + OneTimeTriggers []Scale_Policy_Trigger_OneTime `json:"oneTimeTriggers,omitempty" xmlrpc:"oneTimeTriggers,omitempty"` + + // A count of the repeating triggers to check for this group. + RepeatingTriggerCount *uint `json:"repeatingTriggerCount,omitempty" xmlrpc:"repeatingTriggerCount,omitempty"` + + // The repeating triggers to check for this group. + RepeatingTriggers []Scale_Policy_Trigger_Repeating `json:"repeatingTriggers,omitempty" xmlrpc:"repeatingTriggers,omitempty"` + + // A count of the resource-use triggers to check for this group. + ResourceUseTriggerCount *uint `json:"resourceUseTriggerCount,omitempty" xmlrpc:"resourceUseTriggerCount,omitempty"` + + // The resource-use triggers to check for this group. + ResourceUseTriggers []Scale_Policy_Trigger_ResourceUse `json:"resourceUseTriggers,omitempty" xmlrpc:"resourceUseTriggers,omitempty"` + + // A count of the scale actions to perform upon any trigger hit. Currently this must be a single value. + ScaleActionCount *uint `json:"scaleActionCount,omitempty" xmlrpc:"scaleActionCount,omitempty"` + + // The scale actions to perform upon any trigger hit. Currently this must be a single value. + ScaleActions []Scale_Policy_Action_Scale `json:"scaleActions,omitempty" xmlrpc:"scaleActions,omitempty"` + + // The group this policy is on. + ScaleGroup *Scale_Group `json:"scaleGroup,omitempty" xmlrpc:"scaleGroup,omitempty"` + + // The identifier of the group this member belongs to. + ScaleGroupId *int `json:"scaleGroupId,omitempty" xmlrpc:"scaleGroupId,omitempty"` + + // A count of the triggers to check for this group. + TriggerCount *uint `json:"triggerCount,omitempty" xmlrpc:"triggerCount,omitempty"` + + // The triggers to check for this group. + Triggers []Scale_Policy_Trigger `json:"triggers,omitempty" xmlrpc:"triggers,omitempty"` +} + +// no documentation yet +type Scale_Policy_Action struct { + Entity + + // When this action was created. + CreateDate *Time `json:"createDate,omitempty" xmlrpc:"createDate,omitempty"` + + // When set and true any edit that happens on this object, be it calling edit on this directly or setting as a child while editing a parent object, will end up being a deletion. + DeleteFlag *bool `json:"deleteFlag,omitempty" xmlrpc:"deleteFlag,omitempty"` + + // An action's internal identifier. + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // Then this action was last modified. + ModifyDate *Time `json:"modifyDate,omitempty" xmlrpc:"modifyDate,omitempty"` + + // The policy this action is on. + ScalePolicy *Scale_Policy `json:"scalePolicy,omitempty" xmlrpc:"scalePolicy,omitempty"` + + // The policy this action is on. + ScalePolicyId *int `json:"scalePolicyId,omitempty" xmlrpc:"scalePolicyId,omitempty"` + + // The type of action. + Type *Scale_Policy_Action_Type `json:"type,omitempty" xmlrpc:"type,omitempty"` + + // The identifier of this action's type. + TypeId *int `json:"typeId,omitempty" xmlrpc:"typeId,omitempty"` +} + +// no documentation yet +type Scale_Policy_Action_Scale struct { + Scale_Policy_Action + + // The number to scale by. This number has different meanings based on type. + Amount *int `json:"amount,omitempty" xmlrpc:"amount,omitempty"` + + // The type of scale to perform. Possible values: + // + // + // * ABSOLUTE - Force the group to be set at a specific number of group members. This may include scaling up or + // down or not at all. If the amount is outside of the min/max range of the group, an error occurs. + // * PERCENT - Scale the group up or down based on the positive or negative percentage given in amount. The + // number is a percent of the current group member count. Any extra percent after the decimal point is always ignored. If the resulting amount is zero, -1 or 1 is used depending upon whether the percentage was negative or positive respectively. + // * RELATIVE - Scale the group up or down by the positive or negative value given in amount. + ScaleType *string `json:"scaleType,omitempty" xmlrpc:"scaleType,omitempty"` +} + +// no documentation yet +type Scale_Policy_Action_Type struct { + Entity + + // This type's internal identifier. + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // An action type's programmatic name. + KeyName *string `json:"keyName,omitempty" xmlrpc:"keyName,omitempty"` + + // An action type's human-friendly name. + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` +} + +// no documentation yet +type Scale_Policy_Trigger struct { + Entity + + // When this trigger was created. + CreateDate *Time `json:"createDate,omitempty" xmlrpc:"createDate,omitempty"` + + // When set and true any edit that happens on this object, be it calling edit on this directly or setting as a child while editing a parent object, will end up being a deletion. + DeleteFlag *bool `json:"deleteFlag,omitempty" xmlrpc:"deleteFlag,omitempty"` + + // A trigger's internal identifier. + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // When this trigger was last modified. + ModifyDate *Time `json:"modifyDate,omitempty" xmlrpc:"modifyDate,omitempty"` + + // The policy this trigger is on. + ScalePolicy *Scale_Policy `json:"scalePolicy,omitempty" xmlrpc:"scalePolicy,omitempty"` + + // The policy this trigger is on. + ScalePolicyId *int `json:"scalePolicyId,omitempty" xmlrpc:"scalePolicyId,omitempty"` + + // The type of trigger. + Type *Scale_Policy_Trigger_Type `json:"type,omitempty" xmlrpc:"type,omitempty"` + + // The type of trigger this is. + TypeId *int `json:"typeId,omitempty" xmlrpc:"typeId,omitempty"` +} + +// no documentation yet +type Scale_Policy_Trigger_OneTime struct { + Scale_Policy_Trigger + + // The date to execute the policy. + Date *Time `json:"date,omitempty" xmlrpc:"date,omitempty"` +} + +// no documentation yet +type Scale_Policy_Trigger_Repeating struct { + Scale_Policy_Trigger + + // The cron-formatted schedule. This is run in the UTC timezone. + Schedule *string `json:"schedule,omitempty" xmlrpc:"schedule,omitempty"` +} + +// no documentation yet +type Scale_Policy_Trigger_ResourceUse struct { + Scale_Policy_Trigger + + // A count of the resource watches for this trigger. + WatchCount *uint `json:"watchCount,omitempty" xmlrpc:"watchCount,omitempty"` + + // The resource watches for this trigger. + Watches []Scale_Policy_Trigger_ResourceUse_Watch `json:"watches,omitempty" xmlrpc:"watches,omitempty"` +} + +// no documentation yet +type Scale_Policy_Trigger_ResourceUse_Watch struct { + Entity + + // The algorithm to use when aggregating and comparing. Currently, the only value that is accepted is EWMA (Exponential Weighted Moving Average). EWMA is the default value if no value is given. + Algorithm *string `json:"algorithm,omitempty" xmlrpc:"algorithm,omitempty"` + + // When this watch was created. + CreateDate *Time `json:"createDate,omitempty" xmlrpc:"createDate,omitempty"` + + // When set and true any edit that happens on this object, be it calling edit on this directly or setting as a child while editing a parent object, will end up being a deletion. + DeleteFlag *bool `json:"deleteFlag,omitempty" xmlrpc:"deleteFlag,omitempty"` + + // A watch's internal identifier. + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // The metric to watch. Possible values: + // + // + // * host.cpu.percent - On a scale of 0 to 100, the percent CPU a guest is using. + // * host.network.backend.in and host.network.frontend.in - The network bytes-per-second incoming on the interface + // of either the frontend or backend network. + // * host.network.backend.out and host.network.frontend.out - The network bytes-per-second incoming on the interface + // of either the frontend or backend network. + Metric *string `json:"metric,omitempty" xmlrpc:"metric,omitempty"` + + // When this watch was last modified. + ModifyDate *Time `json:"modifyDate,omitempty" xmlrpc:"modifyDate,omitempty"` + + // The operator to use for comparison. The only two valid values are ">" and "<". + Operator *string `json:"operator,omitempty" xmlrpc:"operator,omitempty"` + + // The number of seconds the values are aggregated for when compared to value. If values are not retrieved steadily and consecutively for the length of this period, nothing is compared. + Period *int `json:"period,omitempty" xmlrpc:"period,omitempty"` + + // The trigger this watch is on. + ScalePolicyTrigger *Scale_Policy_Trigger_ResourceUse `json:"scalePolicyTrigger,omitempty" xmlrpc:"scalePolicyTrigger,omitempty"` + + // The trigger this watch is on. + ScalePolicyTriggerId *int `json:"scalePolicyTriggerId,omitempty" xmlrpc:"scalePolicyTriggerId,omitempty"` + + // The value to compare against. Although the value is a string, validation will be done on the value for restrictions (such as numeric-only) based on the metric. + Value *string `json:"value,omitempty" xmlrpc:"value,omitempty"` +} + +// no documentation yet +type Scale_Policy_Trigger_Type struct { + Entity + + // A trigger type's internal identifier. + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // A trigger type's programmatic name. + KeyName *string `json:"keyName,omitempty" xmlrpc:"keyName,omitempty"` + + // A trigger type's human-friendly name. + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` +} + +// no documentation yet +type Scale_Termination_Policy struct { + Entity + + // A termination policy's internal identifier. + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // A termination policy's programmatic name. + KeyName *string `json:"keyName,omitempty" xmlrpc:"keyName,omitempty"` + + // A termination policy's human-friendly name. + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` +} diff --git a/vendor/github.com/softlayer/softlayer-go/datatypes/search.go b/vendor/github.com/softlayer/softlayer-go/datatypes/search.go new file mode 100644 index 000000000..5afb44aac --- /dev/null +++ b/vendor/github.com/softlayer/softlayer-go/datatypes/search.go @@ -0,0 +1,26 @@ +/** + * Copyright 2016 IBM Corp. + * + * 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. + */ + +/** + * AUTOMATICALLY GENERATED CODE - DO NOT MODIFY + */ + +package datatypes + +// no documentation yet +type Search struct { + Entity +} diff --git a/vendor/github.com/softlayer/softlayer-go/datatypes/security.go b/vendor/github.com/softlayer/softlayer-go/datatypes/security.go new file mode 100644 index 000000000..d77cdaafe --- /dev/null +++ b/vendor/github.com/softlayer/softlayer-go/datatypes/security.go @@ -0,0 +1,283 @@ +/** + * Copyright 2016 IBM Corp. + * + * 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. + */ + +/** + * AUTOMATICALLY GENERATED CODE - DO NOT MODIFY + */ + +package datatypes + +// no documentation yet +type Security_Certificate struct { + Entity + + // The number of services currently associated with the certificate. + AssociatedServiceCount *int `json:"associatedServiceCount,omitempty" xmlrpc:"associatedServiceCount,omitempty"` + + // The certificate provided publicly to clients requesting identity credentials. This certificate is usually signed by a source trusted by the client or a signature chain can be established between this certificate and the truested certificate. + // + // This property may only be modified when no services are associated. See associatedServiceCount. + Certificate *string `json:"certificate,omitempty" xmlrpc:"certificate,omitempty"` + + // The signing request used to request a certificate authority generate a signed certificate. + // + // This property may only be modified when no services are associated. See associatedServiceCount. + CertificateSigningRequest *string `json:"certificateSigningRequest,omitempty" xmlrpc:"certificateSigningRequest,omitempty"` + + // The common name (usually a domain name) encoded within the certificate. + // + // This property is read only. Changes made will be silently ignored. + CommonName *string `json:"commonName,omitempty" xmlrpc:"commonName,omitempty"` + + // The date the certificate _record_ was created. The contents of the certificate may of changed since the record was created, so this does not represent anything about the certificate itself. + // + // This property is read only. Changes made will be silently ignored. + CreateDate *Time `json:"createDate,omitempty" xmlrpc:"createDate,omitempty"` + + // The ID of the certificate record. + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // The intermediate certificate authorities certificate that completes the certificate chain for the issued certificate. Required when clients will only trust the root certificate. + // + // This property may only be modified when no services are associated. See associatedServiceCount. + IntermediateCertificate *string `json:"intermediateCertificate,omitempty" xmlrpc:"intermediateCertificate,omitempty"` + + // The size (number of bits) of the public key represented by the certificate. + KeySize *int `json:"keySize,omitempty" xmlrpc:"keySize,omitempty"` + + // A count of the load balancers virtual IP addresses currently associated with the certificate. + LoadBalancerVirtualIpAddressCount *uint `json:"loadBalancerVirtualIpAddressCount,omitempty" xmlrpc:"loadBalancerVirtualIpAddressCount,omitempty"` + + // The load balancers virtual IP addresses currently associated with the certificate. + LoadBalancerVirtualIpAddresses []Network_Application_Delivery_Controller_LoadBalancer_VirtualIpAddress `json:"loadBalancerVirtualIpAddresses,omitempty" xmlrpc:"loadBalancerVirtualIpAddresses,omitempty"` + + // The date the certificate _record_ was last modified.The contents of the certificate may of changed since the record was created, so this does not represent anything about the certificate itself. + // + // This property is read only. Changes made will be silently ignored. + ModifyDate *Time `json:"modifyDate,omitempty" xmlrpc:"modifyDate,omitempty"` + + // A note to help describe the certificate. + Notes *string `json:"notes,omitempty" xmlrpc:"notes,omitempty"` + + // The organizational name encoded in the certificate. + // + // This property is read only. Changes made will be silently ignored. + OrganizationName *string `json:"organizationName,omitempty" xmlrpc:"organizationName,omitempty"` + + // The private key in the key/certificate pair. + // + // This property may only be modified when no services are associated. See associatedServiceCount. + PrivateKey *string `json:"privateKey,omitempty" xmlrpc:"privateKey,omitempty"` + + // The UTC timestamp representing the beginning of the certificate's validity + // + // This property is read only. Changes made will be silently ignored. + ValidityBegin *Time `json:"validityBegin,omitempty" xmlrpc:"validityBegin,omitempty"` + + // The number of days remaining in the validity period for the certificate. + // + // This property is read only. Changes made will be silently ignored. + ValidityDays *int `json:"validityDays,omitempty" xmlrpc:"validityDays,omitempty"` + + // The UTC timestamp representing the end of the certificate's validity period. + // + // This property is read only. Changes made will be silently ignored. + ValidityEnd *Time `json:"validityEnd,omitempty" xmlrpc:"validityEnd,omitempty"` +} + +// no documentation yet +type Security_Certificate_Entry struct { + Entity + + // The ID of the certificate record. + CertificateId *int `json:"certificateId,omitempty" xmlrpc:"certificateId,omitempty"` + + // The common name (usually a domain name) encoded within the certificate. + CommonName *string `json:"commonName,omitempty" xmlrpc:"commonName,omitempty"` + + // The size (number of bits) of the public key represented by the certificate. + KeySize *int `json:"keySize,omitempty" xmlrpc:"keySize,omitempty"` + + // The organizational name encoded in the certificate. + OrganizationName *string `json:"organizationName,omitempty" xmlrpc:"organizationName,omitempty"` + + // The UTC timestamp representing the beginning of the certificate's validity + ValidityBegin *Time `json:"validityBegin,omitempty" xmlrpc:"validityBegin,omitempty"` + + // The number of days remaining in the validity period for the certificate. + ValidityDays *int `json:"validityDays,omitempty" xmlrpc:"validityDays,omitempty"` + + // The UTC timestamp representing the end of the certificate's validity period. + ValidityEnd *Time `json:"validityEnd,omitempty" xmlrpc:"validityEnd,omitempty"` +} + +// SoftLayer_Security_Certificate_Request data type is used to harness your SSL certificate order to a Certificate Authority. This contains data that is required by a Certificate Authority to place an SSL certificate order. +type Security_Certificate_Request struct { + Entity + + // The account to which a SSL certificate request belongs. + Account *Account `json:"account,omitempty" xmlrpc:"account,omitempty"` + + // This is a reference to your SoftLayer account. + AccountId *int `json:"accountId,omitempty" xmlrpc:"accountId,omitempty"` + + // The email address of a person who will approve your SSL certificate order. This is usually an email address of your domain administrator. + ApproverEmailAddress *string `json:"approverEmailAddress,omitempty" xmlrpc:"approverEmailAddress,omitempty"` + + // The Certificate Authority name + CertificateAuthorityName *string `json:"certificateAuthorityName,omitempty" xmlrpc:"certificateAuthorityName,omitempty"` + + // A Certificate Signing Request (CSR) string + CertificateSigningRequest *string `json:"certificateSigningRequest,omitempty" xmlrpc:"certificateSigningRequest,omitempty"` + + // A domain name of a SSL certificate request + CommonName *string `json:"commonName,omitempty" xmlrpc:"commonName,omitempty"` + + // The date a SSL certificate request was created. + CreateDate *Time `json:"createDate,omitempty" xmlrpc:"createDate,omitempty"` + + // The date of your SSL certificate went into effect + EffectiveDate *Time `json:"effectiveDate,omitempty" xmlrpc:"effectiveDate,omitempty"` + + // The expiration date of your SSL certificate + ExpirationDate *Time `json:"expirationDate,omitempty" xmlrpc:"expirationDate,omitempty"` + + // The internal identifier of an SSL certificate request + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // The date a SSL certificate request was last modified. + ModifyDate *Time `json:"modifyDate,omitempty" xmlrpc:"modifyDate,omitempty"` + + // The order contains the information related to a SSL certificate request. + Order *Billing_Order `json:"order,omitempty" xmlrpc:"order,omitempty"` + + // The associated order item for this SSL certificate request. + OrderItem *Billing_Order_Item `json:"orderItem,omitempty" xmlrpc:"orderItem,omitempty"` + + // The status of a SSL certificate request. + Status *Security_Certificate_Request_Status `json:"status,omitempty" xmlrpc:"status,omitempty"` + + // A status id reflecting the state of a SSL certificate request + StatusId *int `json:"statusId,omitempty" xmlrpc:"statusId,omitempty"` + + // The technical contact email address. + TechnicalContactEmailAddress *string `json:"technicalContactEmailAddress,omitempty" xmlrpc:"technicalContactEmailAddress,omitempty"` +} + +// Represents a server type that can be specified when ordering an SSL certificate. +type Security_Certificate_Request_ServerType struct { + Entity + + // The description of the certificate server type. + Description *string `json:"description,omitempty" xmlrpc:"description,omitempty"` + + // The internal identifier of the certificate server type. + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // The name of the certificate server type. + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` + + // The value of the certificate server type. + Value *int `json:"value,omitempty" xmlrpc:"value,omitempty"` +} + +// Represents the status of an SSL certificate request. +type Security_Certificate_Request_Status struct { + Entity + + // The description of a SSL certificate request status + Description *string `json:"description,omitempty" xmlrpc:"description,omitempty"` + + // The internal identifier of an SSL certificate request status + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // The status name + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` +} + +// SoftLayer_Security_Directory_Service_Host_Xref_Hardware extends the [[SoftLayer_Security_Directory_Service_Host_Xref]] data type to include hardware specific properties. +type Security_Directory_Service_Host_Xref_Hardware struct { + Entity + + // The hardware object. + Host *Hardware `json:"host,omitempty" xmlrpc:"host,omitempty"` +} + +// Encryption algorithm intended for use in SSL/TLS communications +type Security_SecureTransportCipher struct { + Entity + + // Unique identifier for the encryption algorithm + KeyName *string `json:"keyName,omitempty" xmlrpc:"keyName,omitempty"` +} + +// Protocol intended for use in secure communications +type Security_SecureTransportProtocol struct { + Entity + + // Unique identifier for the protocol + KeyName *string `json:"keyName,omitempty" xmlrpc:"keyName,omitempty"` + + // List of the supported encryption ciphers + SupportedSecureTransportCiphers []Security_SecureTransportCipher `json:"supportedSecureTransportCiphers,omitempty" xmlrpc:"supportedSecureTransportCiphers,omitempty"` +} + +// no documentation yet +type Security_Ssh_Key struct { + Entity + + // no documentation yet + Account *Account `json:"account,omitempty" xmlrpc:"account,omitempty"` + + // A count of the image template groups that are linked to an SSH key. + BlockDeviceTemplateGroupCount *uint `json:"blockDeviceTemplateGroupCount,omitempty" xmlrpc:"blockDeviceTemplateGroupCount,omitempty"` + + // The image template groups that are linked to an SSH key. + BlockDeviceTemplateGroups []Virtual_Guest_Block_Device_Template_Group `json:"blockDeviceTemplateGroups,omitempty" xmlrpc:"blockDeviceTemplateGroups,omitempty"` + + // The date a ssh key was added. + // + // This property is read only. Changes made will be silently ignored. + CreateDate *Time `json:"createDate,omitempty" xmlrpc:"createDate,omitempty"` + + // A short sequence of bytes used to authenticate or lookup a longer ssh key. This will automatically be generated upon adding or modifying the ssh key. + // + // This property is read only. Changes made will be silently ignored. + Fingerprint *string `json:"fingerprint,omitempty" xmlrpc:"fingerprint,omitempty"` + + // The ID of the ssh key record. + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // The ssh key. + Key *string `json:"key,omitempty" xmlrpc:"key,omitempty"` + + // A descriptive name used to identify a ssh key. + Label *string `json:"label,omitempty" xmlrpc:"label,omitempty"` + + // The date a ssh key was last modified. + // + // This property is read only. Changes made will be silently ignored. + ModifyDate *Time `json:"modifyDate,omitempty" xmlrpc:"modifyDate,omitempty"` + + // A small note about a ssh key to use at your discretion. + Notes *string `json:"notes,omitempty" xmlrpc:"notes,omitempty"` + + // A count of the OS root users that are linked to an SSH key. + SoftwarePasswordCount *uint `json:"softwarePasswordCount,omitempty" xmlrpc:"softwarePasswordCount,omitempty"` + + // The OS root users that are linked to an SSH key. + SoftwarePasswords []Software_Component_Password `json:"softwarePasswords,omitempty" xmlrpc:"softwarePasswords,omitempty"` +} diff --git a/vendor/github.com/softlayer/softlayer-go/datatypes/service.go b/vendor/github.com/softlayer/softlayer-go/datatypes/service.go new file mode 100644 index 000000000..c73b1f48b --- /dev/null +++ b/vendor/github.com/softlayer/softlayer-go/datatypes/service.go @@ -0,0 +1,55 @@ +/** + * Copyright 2016 IBM Corp. + * + * 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. + */ + +/** + * AUTOMATICALLY GENERATED CODE - DO NOT MODIFY + */ + +package datatypes + +// The SoftLayer_Service_External_Resource is a placeholder that references a service being provided outside of the standard SoftLayer system. +type Service_External_Resource struct { + Entity + + // The customer account that is consuming the service. + Account *Account `json:"account,omitempty" xmlrpc:"account,omitempty"` + + // The customer account that is consuming the related service. + AccountId *int `json:"accountId,omitempty" xmlrpc:"accountId,omitempty"` + + // The unique identifier in the service provider's system. + ExternalIdentifier *string `json:"externalIdentifier,omitempty" xmlrpc:"externalIdentifier,omitempty"` + + // An external resource's unique identifier in the SoftLayer system. + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` +} + +// no documentation yet +type Service_Provider struct { + Entity + + // no documentation yet + Description *string `json:"description,omitempty" xmlrpc:"description,omitempty"` + + // no documentation yet + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // no documentation yet + KeyName *string `json:"keyName,omitempty" xmlrpc:"keyName,omitempty"` + + // no documentation yet + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` +} diff --git a/vendor/github.com/softlayer/softlayer-go/datatypes/softlayer.go b/vendor/github.com/softlayer/softlayer-go/datatypes/softlayer.go new file mode 100644 index 000000000..a1f8f0b8d --- /dev/null +++ b/vendor/github.com/softlayer/softlayer-go/datatypes/softlayer.go @@ -0,0 +1,104 @@ +/** + * Copyright 2016 IBM Corp. + * + * 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 datatypes + +import ( + "errors" + "fmt" + "reflect" + "strconv" + "strings" + "time" +) + +// Void is a dummy type for identifying void return values from methods +type Void int + +// Time type overrides the default json marshaler with the SoftLayer custom format +type Time struct { + time.Time +} + +func (r Time) String() string { + return r.Time.Format(time.RFC3339) +} + +// MarshalJSON returns the json encoding of the datatypes.Time receiver. This +// override is necessary to ensure datetimes are formatted in the way SoftLayer +// expects - that is, using the RFC3339 format, without nanoseconds. +func (r Time) MarshalJSON() ([]byte, error) { + return []byte(`"` + r.String() + `"`), nil +} + +// MarshalText returns a text encoding of the datatypes.Time receiver. This +// is mainly provided to complete what might be expected of a type that +// implements the Marshaler interface. +func (r Time) MarshalText() ([]byte, error) { + return []byte(r.String()), nil +} + +// FIXME: Need to have special unmarshaling of some values defined as float type +// in the metadata that actually come down as strings in the api. +// e.g. SoftLayer_Product_Item.capacity +// Float64 is a float type that deals with some of the oddities when +// unmarshalling from the SLAPI +// +// Code borrowed from https://github.com/sudorandom/softlayer-go/blob/master/slapi/types/float.go +type Float64 float64 + +// UnmarshalJSON statisied the json.Unmarshaler interface +func (f *Float64) UnmarshalJSON(data []byte) error { + + // Attempt parsing the float normally + v, err := strconv.ParseFloat(string(data), 64) + + // Attempt parsing the float as a string + if err != nil { + if len(data) < 2 || data[0] != '"' || data[len(data)-1] != '"' { + return fmt.Errorf("malformed data") + } + + v, err = strconv.ParseFloat(string(data[1:len(data)-1]), 64) + if err != nil { + return err + } + } + *f = Float64(v) + return nil +} + +// Used to set the appropriate complexType field in the passed product order. +// Employs reflection to determine the type of the passed value and use it +// to derive the complexType to send to SoftLayer. +func SetComplexType(v interface{}) error { + orderDataPtr := reflect.ValueOf(v) + if orderDataPtr.Type().Name() != "" { + return errors.New("Did not pass a pointer to a product order.") + } + + orderDataValue := reflect.Indirect(reflect.ValueOf(v)) + orderDataType := orderDataValue.Type().Name() + if !strings.HasPrefix(orderDataType, "Container_Product_Order") { + return fmt.Errorf("Did not pass a pointer to a product order: %s", orderDataType) + } + + complexTypeField := orderDataValue.FieldByName("ComplexType") + complexType := "SoftLayer_" + orderDataType + complexTypeField.Set(reflect.ValueOf(&complexType)) + + return nil +} diff --git a/vendor/github.com/softlayer/softlayer-go/datatypes/software.go b/vendor/github.com/softlayer/softlayer-go/datatypes/software.go new file mode 100644 index 000000000..6c6541f3f --- /dev/null +++ b/vendor/github.com/softlayer/softlayer-go/datatypes/software.go @@ -0,0 +1,768 @@ +/** + * Copyright 2016 IBM Corp. + * + * 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. + */ + +/** + * AUTOMATICALLY GENERATED CODE - DO NOT MODIFY + */ + +package datatypes + +// SoftLayer_Software_AccountLicense is a class that represents software licenses that are tied only to a customer's account and not to any particular hardware, IP address, etc. +type Software_AccountLicense struct { + Entity + + // The customer account this Account License belongs to. + Account *Account `json:"account,omitempty" xmlrpc:"account,omitempty"` + + // The ID of the SoftLayer Account to which this Account License belongs to. + AccountId *int `json:"accountId,omitempty" xmlrpc:"accountId,omitempty"` + + // The billing item for a software account license. + BillingItem *Billing_Item `json:"billingItem,omitempty" xmlrpc:"billingItem,omitempty"` + + // Some Account Licenses have capacity information such as CPU specified in the units key. This provides the numerical representation of the capacity of the units. + Capacity *string `json:"capacity,omitempty" xmlrpc:"capacity,omitempty"` + + // The License Key for this specific Account License. + Key *string `json:"key,omitempty" xmlrpc:"key,omitempty"` + + // The SoftLayer_Software_Description that this account license is for. + SoftwareDescription *Software_Description `json:"softwareDescription,omitempty" xmlrpc:"softwareDescription,omitempty"` + + // The unit of measurement that an account license has the capacity of. + Units *string `json:"units,omitempty" xmlrpc:"units,omitempty"` +} + +// A SoftLayer_Software_Component ties the installation of a specific piece of software onto a specific piece of hardware. +// +// SoftLayer_Software_Component works with SoftLayer_Software_License and SoftLayer_Software_Description to tie this all together. +// +//
    • SoftLayer_Software_Component is the installation of a specific piece of software onto a specific piece of hardware in accordance to a software license.
      • SoftLayer_Software_License dictates when and how a specific piece of software may be installed onto a piece of hardware.
        • SoftLayer_Software_Description describes a specific piece of software which can be installed onto hardware in accordance with it's license agreement.
    +type Software_Component struct { + Entity + + // The average amount of time that a software component takes to install. + AverageInstallationDuration *uint `json:"averageInstallationDuration,omitempty" xmlrpc:"averageInstallationDuration,omitempty"` + + // The billing item for a software component. + BillingItem *Billing_Item `json:"billingItem,omitempty" xmlrpc:"billingItem,omitempty"` + + // The hardware this Software Component is installed upon. + Hardware *Hardware `json:"hardware,omitempty" xmlrpc:"hardware,omitempty"` + + // Hardware Identification Number for the server this Software Component is installed upon. + HardwareId *int `json:"hardwareId,omitempty" xmlrpc:"hardwareId,omitempty"` + + // An ID number identifying this Software Component (Software Installation) + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // The manufacturer code that is needed to activate a license. + ManufacturerActivationCode *string `json:"manufacturerActivationCode,omitempty" xmlrpc:"manufacturerActivationCode,omitempty"` + + // A license key for this specific installation of software, if it is needed. + ManufacturerLicenseInstance *string `json:"manufacturerLicenseInstance,omitempty" xmlrpc:"manufacturerLicenseInstance,omitempty"` + + // A count of username/Password pairs used for access to this Software Installation. + PasswordCount *uint `json:"passwordCount,omitempty" xmlrpc:"passwordCount,omitempty"` + + // History Records for Software Passwords. + PasswordHistory []Software_Component_Password_History `json:"passwordHistory,omitempty" xmlrpc:"passwordHistory,omitempty"` + + // A count of history Records for Software Passwords. + PasswordHistoryCount *uint `json:"passwordHistoryCount,omitempty" xmlrpc:"passwordHistoryCount,omitempty"` + + // Username/Password pairs used for access to this Software Installation. + Passwords []Software_Component_Password `json:"passwords,omitempty" xmlrpc:"passwords,omitempty"` + + // The Software Description of this Software Component. + SoftwareDescription *Software_Description `json:"softwareDescription,omitempty" xmlrpc:"softwareDescription,omitempty"` + + // The License this Software Component uses. + SoftwareLicense *Software_License `json:"softwareLicense,omitempty" xmlrpc:"softwareLicense,omitempty"` + + // The virtual guest this software component is installed upon. + VirtualGuest *Virtual_Guest `json:"virtualGuest,omitempty" xmlrpc:"virtualGuest,omitempty"` +} + +// This object specifies a specific type of Software Component: An analytics instance. Analytics installations have a specific default ports and patterns for usernames and passwords. Defaults are initiated by this object. +type Software_Component_Analytics struct { + Software_Component +} + +// This object specifies a specific Software Component: An Urchin instance. Urchin installations have a specific default port (9999) and a pattern for usernames and passwords. Defaults are initiated by this object. +type Software_Component_Analytics_Urchin struct { + Software_Component_Analytics +} + +// This object specifies a specific type of Software Component: An Anti-virus/spyware instance. Anti-virus/spyware installations have specific properties and methods such as SoftLayer_Software_Component_AntivirusSpyware::updateAntivirusSpywarePolicy. Defaults are initiated by this object. +type Software_Component_AntivirusSpyware struct { + Software_Component +} + +// The SoftLayer_Software_Component_AntivirusSpyware_Mcafee represents a single anti-virus/spyware software component. +type Software_Component_AntivirusSpyware_Mcafee struct { + Software_Component_AntivirusSpyware +} + +// The SoftLayer_Software_Component_AntivirusSpyware_Mcafee_Epo_Version36 data type represents a single McAfee Secure anti-virus/spyware software component that uses the ePolicy Orchestrator version 3.6 backend. +type Software_Component_AntivirusSpyware_Mcafee_Epo_Version36 struct { + Software_Component_AntivirusSpyware_Mcafee + + // The virus scan agent details. + AgentDetails *McAfee_Epolicy_Orchestrator_Version36_Agent_Details `json:"agentDetails,omitempty" xmlrpc:"agentDetails,omitempty"` + + // The current anti-virus policy. + CurrentAntivirusPolicy *int `json:"currentAntivirusPolicy,omitempty" xmlrpc:"currentAntivirusPolicy,omitempty"` + + // The virus definition file version. + DataFileVersion *McAfee_Epolicy_Orchestrator_Version36_Product_Properties `json:"dataFileVersion,omitempty" xmlrpc:"dataFileVersion,omitempty"` + + // The version of ePolicy Orchestrator that the anti-virus/spyware client communicates with. + EpoVersion *string `json:"epoVersion,omitempty" xmlrpc:"epoVersion,omitempty"` + + // A count of the latest access protection events. + LatestAccessProtectionEventCount *uint `json:"latestAccessProtectionEventCount,omitempty" xmlrpc:"latestAccessProtectionEventCount,omitempty"` + + // The latest access protection events. + LatestAccessProtectionEvents []McAfee_Epolicy_Orchestrator_Version36_Antivirus_Event_AccessProtection `json:"latestAccessProtectionEvents,omitempty" xmlrpc:"latestAccessProtectionEvents,omitempty"` + + // A count of the latest anti-virus events. + LatestAntivirusEventCount *uint `json:"latestAntivirusEventCount,omitempty" xmlrpc:"latestAntivirusEventCount,omitempty"` + + // The latest anti-virus events. + LatestAntivirusEvents []McAfee_Epolicy_Orchestrator_Version36_Antivirus_Event `json:"latestAntivirusEvents,omitempty" xmlrpc:"latestAntivirusEvents,omitempty"` + + // A count of the latest spyware events. + LatestSpywareEventCount *uint `json:"latestSpywareEventCount,omitempty" xmlrpc:"latestSpywareEventCount,omitempty"` + + // The latest spyware events. + LatestSpywareEvents []McAfee_Epolicy_Orchestrator_Version36_Antivirus_Event `json:"latestSpywareEvents,omitempty" xmlrpc:"latestSpywareEvents,omitempty"` + + // The current transaction status of a server. + TransactionStatus *string `json:"transactionStatus,omitempty" xmlrpc:"transactionStatus,omitempty"` +} + +// The SoftLayer_Software_Component_AntivirusSpyware_Mcafee_Epo_Version45 data type represents a single McAfee Secure anti-virus/spyware software component that uses the ePolicy Orchestrator version 4.5 backend. +type Software_Component_AntivirusSpyware_Mcafee_Epo_Version45 struct { + Software_Component_AntivirusSpyware_Mcafee + + // The virus scan agent details. + AgentDetails *McAfee_Epolicy_Orchestrator_Version45_Agent_Details `json:"agentDetails,omitempty" xmlrpc:"agentDetails,omitempty"` + + // The current anti-virus policy. + CurrentAntivirusPolicy *int `json:"currentAntivirusPolicy,omitempty" xmlrpc:"currentAntivirusPolicy,omitempty"` + + // The virus definition file version. + DataFileVersion *McAfee_Epolicy_Orchestrator_Version45_Product_Properties `json:"dataFileVersion,omitempty" xmlrpc:"dataFileVersion,omitempty"` + + // The version of ePolicy Orchestrator that the anti-virus/spyware client communicates with. + EpoVersion *string `json:"epoVersion,omitempty" xmlrpc:"epoVersion,omitempty"` + + // A count of the latest access protection events. + LatestAccessProtectionEventCount *uint `json:"latestAccessProtectionEventCount,omitempty" xmlrpc:"latestAccessProtectionEventCount,omitempty"` + + // The latest access protection events. + LatestAccessProtectionEvents []McAfee_Epolicy_Orchestrator_Version45_Event `json:"latestAccessProtectionEvents,omitempty" xmlrpc:"latestAccessProtectionEvents,omitempty"` + + // A count of the latest anti-virus events. + LatestAntivirusEventCount *uint `json:"latestAntivirusEventCount,omitempty" xmlrpc:"latestAntivirusEventCount,omitempty"` + + // The latest anti-virus events. + LatestAntivirusEvents []McAfee_Epolicy_Orchestrator_Version45_Event `json:"latestAntivirusEvents,omitempty" xmlrpc:"latestAntivirusEvents,omitempty"` + + // A count of the latest spyware events + LatestSpywareEventCount *uint `json:"latestSpywareEventCount,omitempty" xmlrpc:"latestSpywareEventCount,omitempty"` + + // The latest spyware events + LatestSpywareEvents []McAfee_Epolicy_Orchestrator_Version45_Event `json:"latestSpywareEvents,omitempty" xmlrpc:"latestSpywareEvents,omitempty"` + + // The current transaction status of a server. + TransactionStatus *string `json:"transactionStatus,omitempty" xmlrpc:"transactionStatus,omitempty"` +} + +// This object specifies a specific type of Software Component: A control panel instance. Control panel installations have a specific default ports and patterns for usernames and passwords. Defaults are initiated by this object. +type Software_Component_ControlPanel struct { + Software_Component +} + +// This object specifies a specific Software Component: A cPanel instance. cPanel installations have a specific default port (2086) and a pattern for usernames and passwords. Defaults are initiated by this object. +type Software_Component_ControlPanel_Cpanel struct { + Software_Component +} + +// This object specifies a specific type of control panel Software Component: An Idera instance. +type Software_Component_ControlPanel_Idera struct { + Software_Component +} + +// This object specifies a specific type of Software Component: A Idera Server Backup instance. +type Software_Component_ControlPanel_Idera_ServerBackup struct { + Software_Component_ControlPanel_Idera +} + +// This object is a parent class for Microsoft Products, like Web Matrix +type Software_Component_ControlPanel_Microsoft struct { + Software_Component +} + +// This object specifies a specific Software Component: A WebPlatform instance. WebPlatform installations have a specific xml config with usernames and passwords. Defaults are initiated by this object. +type Software_Component_ControlPanel_Microsoft_WebPlatform struct { + Software_Component_ControlPanel_Microsoft +} + +// This object is a parent class for SWSoft Products, like Plesk +type Software_Component_ControlPanel_Parallels struct { + Software_Component +} + +// This object specifies a specific Software Component: A Plesk instance produced by SWSoft. SWSoft Plesk installations have a specific default port (8443) and a pattern for usernames and passwords. Defaults are initiated by this object. +type Software_Component_ControlPanel_Parallels_Plesk struct { + Software_Component_ControlPanel_Parallels +} + +// This object specifies a specific type of control panel Software Component: A R1soft instance. +type Software_Component_ControlPanel_R1soft struct { + Software_Component +} + +// This object specifies a specific type of Software Component: A R1soft continuous data protection instance. +type Software_Component_ControlPanel_R1soft_Cdp struct { + Software_Component_ControlPanel_R1soft +} + +// This object specifies a specific type of Software Component: A R1Soft Server Backup instance. +type Software_Component_ControlPanel_R1soft_ServerBackup struct { + Software_Component_ControlPanel_R1soft +} + +// This object is a parent class for SWSoft Products, like Plesk +type Software_Component_ControlPanel_Swsoft struct { + Software_Component +} + +// This object specifies a specific Software Component: A Helm instance produced by Webhost Automation. WEbhost Automation's Helm installations have a specific default port (8086) and a pattern for usernames and passwords. Defaults are initiated by this object. +type Software_Component_ControlPanel_WebhostAutomation struct { + Software_Component +} + +// This object specifies a specific type of Software Component: A Host Intrusion Protection System instance. +type Software_Component_HostIps struct { + Software_Component +} + +// The SoftLayer_Software_Component_HostIps_Mcafee represents a single host IPS software component. +type Software_Component_HostIps_Mcafee struct { + Software_Component_HostIps +} + +// The SoftLayer_Software_Component_HostIps_Mcafee_Epo_Version36_Hips data type represents a single McAfee Secure Host IPS software component that uses the ePolicy Orchestrator version 3.6 backend. +type Software_Component_HostIps_Mcafee_Epo_Version36_Hips struct { + Software_Component_HostIps_Mcafee + + // The host IPS agent details. + AgentDetails *McAfee_Epolicy_Orchestrator_Version36_Agent_Details `json:"agentDetails,omitempty" xmlrpc:"agentDetails,omitempty"` + + // A count of the names of the possible policy options for the application mode setting. + ApplicationModePolicyNameCount *uint `json:"applicationModePolicyNameCount,omitempty" xmlrpc:"applicationModePolicyNameCount,omitempty"` + + // The names of the possible policy options for the application mode setting. + ApplicationModePolicyNames []McAfee_Epolicy_Orchestrator_Version36_Policy_Object `json:"applicationModePolicyNames,omitempty" xmlrpc:"applicationModePolicyNames,omitempty"` + + // A count of the names of the possible policy options for the application rule set setting. + ApplicationRuleSetPolicyNameCount *uint `json:"applicationRuleSetPolicyNameCount,omitempty" xmlrpc:"applicationRuleSetPolicyNameCount,omitempty"` + + // The names of the possible policy options for the application rule set setting. + ApplicationRuleSetPolicyNames []McAfee_Epolicy_Orchestrator_Version36_Policy_Object `json:"applicationRuleSetPolicyNames,omitempty" xmlrpc:"applicationRuleSetPolicyNames,omitempty"` + + // A count of the names of the possible options for the enforcement policy setting. + EnforcementPolicyNameCount *uint `json:"enforcementPolicyNameCount,omitempty" xmlrpc:"enforcementPolicyNameCount,omitempty"` + + // The names of the possible options for the enforcement policy setting. + EnforcementPolicyNames []McAfee_Epolicy_Orchestrator_Version36_Policy_Object `json:"enforcementPolicyNames,omitempty" xmlrpc:"enforcementPolicyNames,omitempty"` + + // The version of ePolicy Orchestrator that the host IPS client communicates with. + EpoVersion *string `json:"epoVersion,omitempty" xmlrpc:"epoVersion,omitempty"` + + // A count of the names of the possible policy options for the firewall mode setting. + FirewallModePolicyNameCount *uint `json:"firewallModePolicyNameCount,omitempty" xmlrpc:"firewallModePolicyNameCount,omitempty"` + + // The names of the possible policy options for the firewall mode setting. + FirewallModePolicyNames []McAfee_Epolicy_Orchestrator_Version36_Policy_Object `json:"firewallModePolicyNames,omitempty" xmlrpc:"firewallModePolicyNames,omitempty"` + + // A count of the names of the possible policy options for the firewall rule set setting. + FirewallRuleSetPolicyNameCount *uint `json:"firewallRuleSetPolicyNameCount,omitempty" xmlrpc:"firewallRuleSetPolicyNameCount,omitempty"` + + // The names of the possible policy options for the firewall rule set setting. + FirewallRuleSetPolicyNames []McAfee_Epolicy_Orchestrator_Version36_Policy_Object `json:"firewallRuleSetPolicyNames,omitempty" xmlrpc:"firewallRuleSetPolicyNames,omitempty"` + + // A count of the names of the possible policy options for the host IPS mode setting. + IpsModePolicyNameCount *uint `json:"ipsModePolicyNameCount,omitempty" xmlrpc:"ipsModePolicyNameCount,omitempty"` + + // The names of the possible policy options for the host IPS mode setting. + IpsModePolicyNames []McAfee_Epolicy_Orchestrator_Version36_Policy_Object `json:"ipsModePolicyNames,omitempty" xmlrpc:"ipsModePolicyNames,omitempty"` + + // A count of the names of the possible policy options for the host IPS protection setting. + IpsProtectionPolicyNameCount *uint `json:"ipsProtectionPolicyNameCount,omitempty" xmlrpc:"ipsProtectionPolicyNameCount,omitempty"` + + // The names of the possible policy options for the host IPS protection setting. + IpsProtectionPolicyNames []McAfee_Epolicy_Orchestrator_Version36_Policy_Object `json:"ipsProtectionPolicyNames,omitempty" xmlrpc:"ipsProtectionPolicyNames,omitempty"` + + // The current transaction status of a server. + TransactionStatus *string `json:"transactionStatus,omitempty" xmlrpc:"transactionStatus,omitempty"` +} + +// The SoftLayer_Software_Component_HostIps_Mcafee_Epo_Version36_Hips_Version6 data type represents a single McAfee Secure Host IPS software component for version 6 of the Host IPS client and uses the ePolicy Orchestrator version 3.6 backend. +type Software_Component_HostIps_Mcafee_Epo_Version36_Hips_Version6 struct { + Software_Component_HostIps_Mcafee_Epo_Version36_Hips + + // A count of the blocked application events for this software component. + BlockedApplicationEventCount *uint `json:"blockedApplicationEventCount,omitempty" xmlrpc:"blockedApplicationEventCount,omitempty"` + + // The blocked application events for this software component. + BlockedApplicationEvents []McAfee_Epolicy_Orchestrator_Version36_Hips_Version6_BlockedApplicationEvent `json:"blockedApplicationEvents,omitempty" xmlrpc:"blockedApplicationEvents,omitempty"` + + // A count of the host IPS events for this software component. + IpsEventCount *uint `json:"ipsEventCount,omitempty" xmlrpc:"ipsEventCount,omitempty"` + + // The host IPS events for this software component. + IpsEvents []McAfee_Epolicy_Orchestrator_Version36_Hips_Version6_IPSEvent `json:"ipsEvents,omitempty" xmlrpc:"ipsEvents,omitempty"` +} + +// The SoftLayer_Software_Component_HostIps_Mcafee_Epo_Version36_Hips_Version7 data type represents a single McAfee Secure Host IPS software component for version 7 of the Host IPS client and uses the ePolicy Orchestrator version 3.6 backend. +type Software_Component_HostIps_Mcafee_Epo_Version36_Hips_Version7 struct { + Software_Component_HostIps_Mcafee_Epo_Version36_Hips + + // A count of the blocked application events for this software component. + BlockedApplicationEventCount *uint `json:"blockedApplicationEventCount,omitempty" xmlrpc:"blockedApplicationEventCount,omitempty"` + + // The blocked application events for this software component. + BlockedApplicationEvents []McAfee_Epolicy_Orchestrator_Version36_Hips_Version7_BlockedApplicationEvent `json:"blockedApplicationEvents,omitempty" xmlrpc:"blockedApplicationEvents,omitempty"` + + // A count of the host IPS events for this software component. + IpsEventCount *uint `json:"ipsEventCount,omitempty" xmlrpc:"ipsEventCount,omitempty"` + + // The host IPS events for this software component. + IpsEvents []McAfee_Epolicy_Orchestrator_Version36_Hips_Version7_IPSEvent `json:"ipsEvents,omitempty" xmlrpc:"ipsEvents,omitempty"` +} + +// The SoftLayer_Software_Component_HostIps_Mcafee_Epo_Version45_Hips data type represents a single McAfee Secure Host IPS software component that uses the ePolicy Orchestrator version 4.5 backend. +type Software_Component_HostIps_Mcafee_Epo_Version45_Hips struct { + Software_Component_HostIps_Mcafee + + // The host IPS agent details. + AgentDetails *McAfee_Epolicy_Orchestrator_Version45_Agent_Details `json:"agentDetails,omitempty" xmlrpc:"agentDetails,omitempty"` + + // A count of the names of the possible policy options for the application mode setting. + ApplicationModePolicyNameCount *uint `json:"applicationModePolicyNameCount,omitempty" xmlrpc:"applicationModePolicyNameCount,omitempty"` + + // The names of the possible policy options for the application mode setting. + ApplicationModePolicyNames []McAfee_Epolicy_Orchestrator_Version45_Policy_Object `json:"applicationModePolicyNames,omitempty" xmlrpc:"applicationModePolicyNames,omitempty"` + + // A count of the names of the possible policy options for the application rule set setting. + ApplicationRuleSetPolicyNameCount *uint `json:"applicationRuleSetPolicyNameCount,omitempty" xmlrpc:"applicationRuleSetPolicyNameCount,omitempty"` + + // The names of the possible policy options for the application rule set setting. + ApplicationRuleSetPolicyNames []McAfee_Epolicy_Orchestrator_Version45_Policy_Object `json:"applicationRuleSetPolicyNames,omitempty" xmlrpc:"applicationRuleSetPolicyNames,omitempty"` + + // A count of the blocked application events for this software component. + BlockedApplicationEventCount *uint `json:"blockedApplicationEventCount,omitempty" xmlrpc:"blockedApplicationEventCount,omitempty"` + + // The blocked application events for this software component. + BlockedApplicationEvents []McAfee_Epolicy_Orchestrator_Version45_Event `json:"blockedApplicationEvents,omitempty" xmlrpc:"blockedApplicationEvents,omitempty"` + + // A count of the names of the possible options for the enforcement policy setting. + EnforcementPolicyNameCount *uint `json:"enforcementPolicyNameCount,omitempty" xmlrpc:"enforcementPolicyNameCount,omitempty"` + + // The names of the possible options for the enforcement policy setting. + EnforcementPolicyNames []McAfee_Epolicy_Orchestrator_Version45_Policy_Object `json:"enforcementPolicyNames,omitempty" xmlrpc:"enforcementPolicyNames,omitempty"` + + // The version of ePolicy Orchestrator that the host IPS client communicates with. + EpoVersion *string `json:"epoVersion,omitempty" xmlrpc:"epoVersion,omitempty"` + + // A count of the names of the possible policy options for the firewall mode setting. + FirewallModePolicyNameCount *uint `json:"firewallModePolicyNameCount,omitempty" xmlrpc:"firewallModePolicyNameCount,omitempty"` + + // The names of the possible policy options for the firewall mode setting. + FirewallModePolicyNames []McAfee_Epolicy_Orchestrator_Version45_Policy_Object `json:"firewallModePolicyNames,omitempty" xmlrpc:"firewallModePolicyNames,omitempty"` + + // A count of the names of the possible policy options for the firewall rule set setting. + FirewallRuleSetPolicyNameCount *uint `json:"firewallRuleSetPolicyNameCount,omitempty" xmlrpc:"firewallRuleSetPolicyNameCount,omitempty"` + + // The names of the possible policy options for the firewall rule set setting. + FirewallRuleSetPolicyNames []McAfee_Epolicy_Orchestrator_Version45_Policy_Object `json:"firewallRuleSetPolicyNames,omitempty" xmlrpc:"firewallRuleSetPolicyNames,omitempty"` + + // A count of the host IPS events for this software component. + IpsEventCount *uint `json:"ipsEventCount,omitempty" xmlrpc:"ipsEventCount,omitempty"` + + // The host IPS events for this software component. + IpsEvents []McAfee_Epolicy_Orchestrator_Version45_Event `json:"ipsEvents,omitempty" xmlrpc:"ipsEvents,omitempty"` + + // A count of the names of the possible policy options for the host IPS mode setting. + IpsModePolicyNameCount *uint `json:"ipsModePolicyNameCount,omitempty" xmlrpc:"ipsModePolicyNameCount,omitempty"` + + // The names of the possible policy options for the host IPS mode setting. + IpsModePolicyNames []McAfee_Epolicy_Orchestrator_Version45_Policy_Object `json:"ipsModePolicyNames,omitempty" xmlrpc:"ipsModePolicyNames,omitempty"` + + // A count of the names of the possible policy options for the host IPS protection setting. + IpsProtectionPolicyNameCount *uint `json:"ipsProtectionPolicyNameCount,omitempty" xmlrpc:"ipsProtectionPolicyNameCount,omitempty"` + + // The names of the possible policy options for the host IPS protection setting. + IpsProtectionPolicyNames []McAfee_Epolicy_Orchestrator_Version45_Policy_Object `json:"ipsProtectionPolicyNames,omitempty" xmlrpc:"ipsProtectionPolicyNames,omitempty"` + + // The current transaction status of a server. + TransactionStatus *string `json:"transactionStatus,omitempty" xmlrpc:"transactionStatus,omitempty"` +} + +// The SoftLayer_Software_Component_HostIps_Mcafee_Epo_Version45_Hips_Version7 data type represents a single McAfee Secure Host IPS software component for version 7 of the Host IPS client and uses the ePolicy Orchestrator version 4.5 backend. +type Software_Component_HostIps_Mcafee_Epo_Version45_Hips_Version7 struct { + Software_Component_HostIps_Mcafee_Epo_Version45_Hips +} + +// The SoftLayer_Software_Component_HostIps_Mcafee_Epo_Version45_Hips_Version8 data type represents a single McAfee Secure Host IPS software component for version 8 of the Host IPS client and uses the ePolicy Orchestrator version 4.5 backend. +type Software_Component_HostIps_Mcafee_Epo_Version45_Hips_Version8 struct { + Software_Component_HostIps_Mcafee_Epo_Version45_Hips +} + +// SoftLayer_Software_Component_OperatingSystem extends the [[SoftLayer_Software_Component]] data type to include operating system specific properties. +type Software_Component_OperatingSystem struct { + Software_Component + + // The date in which the license for this software expires. + LicenseExpirationDate *Time `json:"licenseExpirationDate,omitempty" xmlrpc:"licenseExpirationDate,omitempty"` + + // A count of an operating system's associated [[SoftLayer_Hardware_Component_Partition_Template|Partition Templates]] that can be used to configure a hardware drive. + PartitionTemplateCount *uint `json:"partitionTemplateCount,omitempty" xmlrpc:"partitionTemplateCount,omitempty"` + + // An operating system's associated [[SoftLayer_Hardware_Component_Partition_Template|Partition Templates]] that can be used to configure a hardware drive. + PartitionTemplates []Hardware_Component_Partition_Template `json:"partitionTemplates,omitempty" xmlrpc:"partitionTemplates,omitempty"` + + // An operating systems associated [[SoftLayer_Provisioning_Version1_Transaction_Group|Transaction Group]]. A transaction group is a list of operations that will occur during the installment of an operating system. + ReloadTransactionGroup *Provisioning_Version1_Transaction_Group `json:"reloadTransactionGroup,omitempty" xmlrpc:"reloadTransactionGroup,omitempty"` +} + +// This object specifies a specific type of Software Component: A package instance. +type Software_Component_Package struct { + Software_Component +} + +// This object specifies a specific type of Software Component: A package management instance. +type Software_Component_Package_Management struct { + Software_Component_Package +} + +// This object specifies a specific type of Software Component: A Ksplice instance. +type Software_Component_Package_Management_Ksplice struct { + Software_Component_Package_Management +} + +// This SoftLayer_Software_Component_Password data type contains a password for a specific software component instance. +type Software_Component_Password struct { + Entity + + // The date this username/password pair was created. + CreateDate *Time `json:"createDate,omitempty" xmlrpc:"createDate,omitempty"` + + // An id number for this specific username/password pair. + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // The date of the last modification to this username/password pair. + ModifyDate *Time `json:"modifyDate,omitempty" xmlrpc:"modifyDate,omitempty"` + + // A note string stored for this username/password pair. + Notes *string `json:"notes,omitempty" xmlrpc:"notes,omitempty"` + + // The password part of the username/password pair. + Password *string `json:"password,omitempty" xmlrpc:"password,omitempty"` + + // The application access port for the Software Component. + Port *int `json:"port,omitempty" xmlrpc:"port,omitempty"` + + // The SoftLayer_Software_Component instance that this username/password pair is valid for. + Software *Software_Component `json:"software,omitempty" xmlrpc:"software,omitempty"` + + // An id number for the software component this username/password pair is valid for. + SoftwareId *int `json:"softwareId,omitempty" xmlrpc:"softwareId,omitempty"` + + // A count of sSH keys to be installed on the server during provisioning or an OS reload. + SshKeyCount *uint `json:"sshKeyCount,omitempty" xmlrpc:"sshKeyCount,omitempty"` + + // SSH keys to be installed on the server during provisioning or an OS reload. + SshKeys []Security_Ssh_Key `json:"sshKeys,omitempty" xmlrpc:"sshKeys,omitempty"` + + // The username part of the username/password pair. + Username *string `json:"username,omitempty" xmlrpc:"username,omitempty"` +} + +// This object allows you to find the history of password changes for a specific SoftLayer_Software Component +type Software_Component_Password_History struct { + Entity + + // The date this username/password pair was created. + CreateDate *Time `json:"createDate,omitempty" xmlrpc:"createDate,omitempty"` + + // A note string stored for this username/password pair. + Notes *string `json:"notes,omitempty" xmlrpc:"notes,omitempty"` + + // The password part of this specific password history instance. + Password *string `json:"password,omitempty" xmlrpc:"password,omitempty"` + + // An installed and licensed instance of a piece of software + SoftwareComponent *Software_Component `json:"softwareComponent,omitempty" xmlrpc:"softwareComponent,omitempty"` + + // The id number for the Software Component this username/password pair is for. + SoftwareComponentId *int `json:"softwareComponentId,omitempty" xmlrpc:"softwareComponentId,omitempty"` + + // The username part of this specific password history instance. + Username *string `json:"username,omitempty" xmlrpc:"username,omitempty"` +} + +// This object specifies a specific type of Software Component: A security instance. Security installations have custom configurations for password requirements. +type Software_Component_Security struct { + Software_Component +} + +// This object specifies a specific Software Component: A SafeNet instance. SafeNet installations have custom configurations for password requirements. +type Software_Component_Security_SafeNet struct { + Software_Component_Security +} + +// This class holds a description for a specific installation of a Software Component. +// +// SoftLayer_Software_Licenses tie a Software Component (A specific installation on a piece of hardware) to it's description. +// +// The "Manufacturer" and "Name" properties of a SoftLayer_Software_Description are used by the framework to factory specific objects, objects that may have special methods for that specific piece of software, or objects that contain application specific data, such as default ports. For example, if you create a SoftLayer_Software_Component who's SoftLayer_Software_License points to the SoftLayer_Software_Description for "Swsoft" "Plesk", you'll actually get a SoftLayer_Software_Component_Swsoft_Plesk object. +type Software_Description struct { + Entity + + // A count of + AttributeCount *uint `json:"attributeCount,omitempty" xmlrpc:"attributeCount,omitempty"` + + // no documentation yet + Attributes []Software_Description_Attribute `json:"attributes,omitempty" xmlrpc:"attributes,omitempty"` + + // The average amount of time that a software description takes to install. + AverageInstallationDuration *int `json:"averageInstallationDuration,omitempty" xmlrpc:"averageInstallationDuration,omitempty"` + + // A count of a list of the software descriptions that are compatible with this software description. + CompatibleSoftwareDescriptionCount *uint `json:"compatibleSoftwareDescriptionCount,omitempty" xmlrpc:"compatibleSoftwareDescriptionCount,omitempty"` + + // A list of the software descriptions that are compatible with this software description. + CompatibleSoftwareDescriptions []Software_Description `json:"compatibleSoftwareDescriptions,omitempty" xmlrpc:"compatibleSoftwareDescriptions,omitempty"` + + // This is set to '1' if this Software Description describes a Control Panel. + ControlPanel *int `json:"controlPanel,omitempty" xmlrpc:"controlPanel,omitempty"` + + // A count of the feature attributes of a software description. + FeatureCount *uint `json:"featureCount,omitempty" xmlrpc:"featureCount,omitempty"` + + // The feature attributes of a software description. + Features []Software_Description_Feature `json:"features,omitempty" xmlrpc:"features,omitempty"` + + // An ID number to identify this Software Description. + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // The latest version of a software description. + LatestVersion []Software_Description `json:"latestVersion,omitempty" xmlrpc:"latestVersion,omitempty"` + + // A count of the latest version of a software description. + LatestVersionCount *uint `json:"latestVersionCount,omitempty" xmlrpc:"latestVersionCount,omitempty"` + + // The unit of measurement (day, month, or year) for license registration. Used in conjunction with licenseTermValue to determine overall license registration length of a new license. + LicenseTermUnit *string `json:"licenseTermUnit,omitempty" xmlrpc:"licenseTermUnit,omitempty"` + + // The number of units (licenseTermUnit) a new license is valid for at the time of registration. + LicenseTermValue *int `json:"licenseTermValue,omitempty" xmlrpc:"licenseTermValue,omitempty"` + + // The manufacturer, name and version of a piece of software. + LongDescription *string `json:"longDescription,omitempty" xmlrpc:"longDescription,omitempty"` + + // The name of the manufacturer for this specific piece of software. This name is used by SoftLayer_Software_Component to tailor make (factory) specific types of Software Components that know details like default ports. + Manufacturer *string `json:"manufacturer,omitempty" xmlrpc:"manufacturer,omitempty"` + + // The name of this specific piece of software. This name is used by SoftLayer_Software_Component to tailor make (factory) specific types of Software Components that know details like default ports. + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` + + // This is set to '1' if this Software Description describes an Operating System. + OperatingSystem *int `json:"operatingSystem,omitempty" xmlrpc:"operatingSystem,omitempty"` + + // A count of the various product items to which this software description is linked. + ProductItemCount *uint `json:"productItemCount,omitempty" xmlrpc:"productItemCount,omitempty"` + + // The various product items to which this software description is linked. + ProductItems []Product_Item `json:"productItems,omitempty" xmlrpc:"productItems,omitempty"` + + // This details the provisioning transaction group for this software. This is only valid for Operating System software. + ProvisionTransactionGroup *Provisioning_Version1_Transaction_Group `json:"provisionTransactionGroup,omitempty" xmlrpc:"provisionTransactionGroup,omitempty"` + + // A reference code is structured as three tokens separated by underscores. The first token represents the product, the second is the version of the product, and the third is whether the software is 32 or 64bit. + ReferenceCode *string `json:"referenceCode,omitempty" xmlrpc:"referenceCode,omitempty"` + + // The transaction group that a software description belongs to. A transaction group is a sequence of transactions that must be performed in a specific order for the installation of software. + ReloadTransactionGroup *Provisioning_Version1_Transaction_Group `json:"reloadTransactionGroup,omitempty" xmlrpc:"reloadTransactionGroup,omitempty"` + + // The default user created for a given a software description. + RequiredUser *string `json:"requiredUser,omitempty" xmlrpc:"requiredUser,omitempty"` + + // A count of software Licenses that govern this Software Description. + SoftwareLicenseCount *uint `json:"softwareLicenseCount,omitempty" xmlrpc:"softwareLicenseCount,omitempty"` + + // Software Licenses that govern this Software Description. + SoftwareLicenses []Software_License `json:"softwareLicenses,omitempty" xmlrpc:"softwareLicenses,omitempty"` + + // A suggestion for an upgrade path from this Software Description + UpgradeSoftwareDescription *Software_Description `json:"upgradeSoftwareDescription,omitempty" xmlrpc:"upgradeSoftwareDescription,omitempty"` + + // Contains the ID of the suggested upgrade from this Software_Description to a more powerful software installation. + UpgradeSoftwareDescriptionId *int `json:"upgradeSoftwareDescriptionId,omitempty" xmlrpc:"upgradeSoftwareDescriptionId,omitempty"` + + // A suggestion for an upgrade path from this Software Description (Deprecated - Use upgradeSoftwareDescription) + UpgradeSwDesc *Software_Description `json:"upgradeSwDesc,omitempty" xmlrpc:"upgradeSwDesc,omitempty"` + + // Contains the ID of the suggested upgrade from this Software_Description to a more powerful software installation. (Deprecated - Use upgradeSoftwareDescriptionId) + UpgradeSwDescId *int `json:"upgradeSwDescId,omitempty" xmlrpc:"upgradeSwDescId,omitempty"` + + // A count of + ValidFilesystemTypeCount *uint `json:"validFilesystemTypeCount,omitempty" xmlrpc:"validFilesystemTypeCount,omitempty"` + + // no documentation yet + ValidFilesystemTypes []Configuration_Storage_Filesystem_Type `json:"validFilesystemTypes,omitempty" xmlrpc:"validFilesystemTypes,omitempty"` + + // The version of this specific piece of software. + Version *string `json:"version,omitempty" xmlrpc:"version,omitempty"` + + // This is set to '1' if this Software Description can be licensed to a Virtual Machine (an IP address). + VirtualLicense *int `json:"virtualLicense,omitempty" xmlrpc:"virtualLicense,omitempty"` + + // This is set to '1' if this Software Description a platform for hosting virtual servers. + VirtualizationPlatform *int `json:"virtualizationPlatform,omitempty" xmlrpc:"virtualizationPlatform,omitempty"` +} + +// The SoftLayer_Software_Description_Attribute data type represents an attributes associated with this software description. +type Software_Description_Attribute struct { + Entity + + // no documentation yet + SoftwareDescription *Software_Description `json:"softwareDescription,omitempty" xmlrpc:"softwareDescription,omitempty"` + + // no documentation yet + Type *Software_Description_Attribute_Type `json:"type,omitempty" xmlrpc:"type,omitempty"` + + // The value that was assigned to this attribute. + Value *string `json:"value,omitempty" xmlrpc:"value,omitempty"` +} + +// The SoftLayer_Software_Description_Attribute_Type data type represents the type of an attribute. +type Software_Description_Attribute_Type struct { + Entity + + // The keyname for this attribute type. + Keyname *string `json:"keyname,omitempty" xmlrpc:"keyname,omitempty"` +} + +// The SoftLayer_Software_Description_Feature data type represents a single software description feature. A feature may show up on more than one software description and can not be created, modified, or removed. +type Software_Description_Feature struct { + Entity + + // The unique identifier for a software description feature. + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // A unique name used to reference this software description feature. + KeyName *string `json:"keyName,omitempty" xmlrpc:"keyName,omitempty"` + + // The name of a software description feature. + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` + + // The vendor that a software description feature belongs to. + Vendor *string `json:"vendor,omitempty" xmlrpc:"vendor,omitempty"` +} + +// This class represents a software description's required user +type Software_Description_RequiredUser struct { + Entity + + // If the default password is set the user will be created with that password, otherwise a random password is generated. + DefaultPassword *string `json:"defaultPassword,omitempty" xmlrpc:"defaultPassword,omitempty"` + + // If this software has a required user (such as "root") this string contains it's name. + Username *string `json:"username,omitempty" xmlrpc:"username,omitempty"` +} + +// This class describes a specific type of license, like a Microsoft Windows Site License, a GPL license, or a license of another type. +type Software_License struct { + Entity + + // The account that owns this specific License instance. + Account *Account `json:"account,omitempty" xmlrpc:"account,omitempty"` + + // An ID number for this specific License type. + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // The account that owns this specific License instance. + Owner *Account `json:"owner,omitempty" xmlrpc:"owner,omitempty"` + + // A Description of the software that this license instance is valid for. + SoftwareDescription *Software_Description `json:"softwareDescription,omitempty" xmlrpc:"softwareDescription,omitempty"` + + // The ID number of a Software Description that this specific license is valid for. + SoftwareDescriptionId *int `json:"softwareDescriptionId,omitempty" xmlrpc:"softwareDescriptionId,omitempty"` +} + +// SoftLayer_Software_VirtualLicense is the application class that handles a special type of Software License. Most software licenses are licensed to a specific hardware ID; virtual licenses are designed for virtual machines and therefore are assigned to an IP Address. Not all software packages can be "virtual licensed". +type Software_VirtualLicense struct { + Entity + + // The customer account this Virtual License belongs to. + Account *Account `json:"account,omitempty" xmlrpc:"account,omitempty"` + + // The ID of the SoftLayer Account to which this Virtual License belongs to. + AccountId *int `json:"accountId,omitempty" xmlrpc:"accountId,omitempty"` + + // The billing item for a software virtual license. + BillingItem *Billing_Item `json:"billingItem,omitempty" xmlrpc:"billingItem,omitempty"` + + // The hardware record to which the software virtual license is assigned. + HostHardware *Hardware_Server `json:"hostHardware,omitempty" xmlrpc:"hostHardware,omitempty"` + + // The ID of the SoftLayer Hardware Server record to which this Virtual License belongs. + HostHardwareId *int `json:"hostHardwareId,omitempty" xmlrpc:"hostHardwareId,omitempty"` + + // An ID number for this Virtual License instance. + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // The specific IP address this Virtual License belongs to. + IpAddress *string `json:"ipAddress,omitempty" xmlrpc:"ipAddress,omitempty"` + + // The IP Address record associated with a virtual license. + IpAddressRecord *Network_Subnet_IpAddress `json:"ipAddressRecord,omitempty" xmlrpc:"ipAddressRecord,omitempty"` + + // The License Key for this specific Virtual License. + Key *string `json:"key,omitempty" xmlrpc:"key,omitempty"` + + // A "notes" string attached to this specific Virtual License. + Notes *string `json:"notes,omitempty" xmlrpc:"notes,omitempty"` + + // The SoftLayer_Software_Description that this virtual license is for. + SoftwareDescription *Software_Description `json:"softwareDescription,omitempty" xmlrpc:"softwareDescription,omitempty"` + + // The Software Description ID this Virtual License is for. + SoftwareDescriptionId *int `json:"softwareDescriptionId,omitempty" xmlrpc:"softwareDescriptionId,omitempty"` + + // The subnet this Virtual License's IP address belongs to. + Subnet *Network_Subnet `json:"subnet,omitempty" xmlrpc:"subnet,omitempty"` + + // The ID of the SoftLayer Network Subnet this Virtual License belongs to. + SubnetId *int `json:"subnetId,omitempty" xmlrpc:"subnetId,omitempty"` +} diff --git a/vendor/github.com/softlayer/softlayer-go/datatypes/survey.go b/vendor/github.com/softlayer/softlayer-go/datatypes/survey.go new file mode 100644 index 000000000..243c10073 --- /dev/null +++ b/vendor/github.com/softlayer/softlayer-go/datatypes/survey.go @@ -0,0 +1,150 @@ +/** + * Copyright 2016 IBM Corp. + * + * 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. + */ + +/** + * AUTOMATICALLY GENERATED CODE - DO NOT MODIFY + */ + +package datatypes + +// The SoftLayer_Survey data type contains general information relating to a single SoftLayer survey. +type Survey struct { + Entity + + // A flag indicating if a survey can be taken. + Active *int `json:"active,omitempty" xmlrpc:"active,omitempty"` + + // The date that a survey had originally started. + CreateDate *Time `json:"createDate,omitempty" xmlrpc:"createDate,omitempty"` + + // A survey's id. + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // A survey's name or title. + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` + + // A count of the questions for a survey. + QuestionCount *uint `json:"questionCount,omitempty" xmlrpc:"questionCount,omitempty"` + + // The questions for a survey. + Questions []Survey_Question `json:"questions,omitempty" xmlrpc:"questions,omitempty"` + + // The status of the survey + Status *Survey_Status `json:"status,omitempty" xmlrpc:"status,omitempty"` + + // The status id of the survey. + StatusId *int `json:"statusId,omitempty" xmlrpc:"statusId,omitempty"` + + // The type of survey + Type *Survey_Type `json:"type,omitempty" xmlrpc:"type,omitempty"` + + // The type id of the survey. + TypeId *int `json:"typeId,omitempty" xmlrpc:"typeId,omitempty"` +} + +// The SoftLayer_Survey_Answer data type contains general information relating to a single SoftLayer survey answer. +type Survey_Answer struct { + Entity + + // A survey answer's answer that a user can response too. + Answer *string `json:"answer,omitempty" xmlrpc:"answer,omitempty"` + + // A value indicating the order in when a survey answer will be displayed to a user. + AnswerOrder *int `json:"answerOrder,omitempty" xmlrpc:"answerOrder,omitempty"` + + // A survey answer's Id. + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // The survey question that this answer belongs to. + SurveyQuestion *Survey_Question `json:"surveyQuestion,omitempty" xmlrpc:"surveyQuestion,omitempty"` + + // A survey answer's associated [[SoftLayer_Survey_Question|Survey Question]] Id. + SurveyQuestionId *int `json:"surveyQuestionId,omitempty" xmlrpc:"surveyQuestionId,omitempty"` +} + +// The SoftLayer_Survey_Question data type contains general information relating to a single SoftLayer survey question. +type Survey_Question struct { + Entity + + // A count of the possible answers for a survey question. + AnswerCount *uint `json:"answerCount,omitempty" xmlrpc:"answerCount,omitempty"` + + // The possible answers for a survey question. + Answers []Survey_Answer `json:"answers,omitempty" xmlrpc:"answers,omitempty"` + + // A survey question's Id. + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // A flag indicating that a survey question requires a response. + IsRequired *int `json:"isRequired,omitempty" xmlrpc:"isRequired,omitempty"` + + // A flag indicating that a survey question can have multiple answers responded to. + MultiAnswer *int `json:"multiAnswer,omitempty" xmlrpc:"multiAnswer,omitempty"` + + // A survey question's question. + Question *string `json:"question,omitempty" xmlrpc:"question,omitempty"` + + // A value indicating the order in when a survey question will be asked. + QuestionOrder *int `json:"questionOrder,omitempty" xmlrpc:"questionOrder,omitempty"` + + // The survey that a question belongs to. + Survey *Survey `json:"survey,omitempty" xmlrpc:"survey,omitempty"` + + // A survey question's associated [[SoftLayer_Survey|Survey]] Id. + SurveyId *int `json:"surveyId,omitempty" xmlrpc:"surveyId,omitempty"` +} + +// The SoftLayer_Survey_Response data type contains general information relating to a single SoftLayer survey response. +type Survey_Response struct { + Entity + + // The user typed response for the [[SoftLayer_Survey_Answer|Survey Answer]] that a response is associated with. + OtherAnswer *string `json:"otherAnswer,omitempty" xmlrpc:"otherAnswer,omitempty"` + + // The survey answer that this response was to. + SurveyAnswer *Survey_Answer `json:"surveyAnswer,omitempty" xmlrpc:"surveyAnswer,omitempty"` + + // The Id of the [[SoftLayer_Survey_Answer|Survey Answer]] that a response was made for. + SurveyAnswerId *int `json:"surveyAnswerId,omitempty" xmlrpc:"surveyAnswerId,omitempty"` +} + +// The SoftLayer_Survey_Status data type contains survey status information. +type Survey_Status struct { + Entity + + // Description of a survey status + Description *string `json:"description,omitempty" xmlrpc:"description,omitempty"` + + // Internal identifier of a survey status + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // Name of a survey status + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` +} + +// The SoftLayer_Survey_Type data type contains survey type information. +type Survey_Type struct { + Entity + + // Description of a survey type + Description *string `json:"description,omitempty" xmlrpc:"description,omitempty"` + + // Internal identifier of a survey type + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // Name of a survey type + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` +} diff --git a/vendor/github.com/softlayer/softlayer-go/datatypes/tag.go b/vendor/github.com/softlayer/softlayer-go/datatypes/tag.go new file mode 100644 index 000000000..b4cc0a816 --- /dev/null +++ b/vendor/github.com/softlayer/softlayer-go/datatypes/tag.go @@ -0,0 +1,149 @@ +/** + * Copyright 2016 IBM Corp. + * + * 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. + */ + +/** + * AUTOMATICALLY GENERATED CODE - DO NOT MODIFY + */ + +package datatypes + +// The SoftLayer_Tag data type is an optional type associated with hardware. The account ID that the tag is tied to, and the tag itself are stored in this data type. There is also a flag to denote whether the tag is internal or not. +type Tag struct { + Entity + + // The account to which the tag is tied. + Account *Account `json:"account,omitempty" xmlrpc:"account,omitempty"` + + // Account the tag belongs to. + AccountId *int `json:"accountId,omitempty" xmlrpc:"accountId,omitempty"` + + // Unique identifier for a tag. + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // Indicates whether a tag is internal. + Internal *int `json:"internal,omitempty" xmlrpc:"internal,omitempty"` + + // Name of the tag. The characters permitted are A-Z, 0-9, whitespace, _ (underscore), + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` + + // A count of references that tie object to the tag. + ReferenceCount *uint `json:"referenceCount,omitempty" xmlrpc:"referenceCount,omitempty"` + + // References that tie object to the tag. + References []Tag_Reference `json:"references,omitempty" xmlrpc:"references,omitempty"` +} + +// no documentation yet +type Tag_Reference struct { + Entity + + // no documentation yet + Customer *User_Customer `json:"customer,omitempty" xmlrpc:"customer,omitempty"` + + // no documentation yet + EmpRecordId *int `json:"empRecordId,omitempty" xmlrpc:"empRecordId,omitempty"` + + // no documentation yet + Employee *User_Employee `json:"employee,omitempty" xmlrpc:"employee,omitempty"` + + // no documentation yet + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // no documentation yet + ResourceTableId *int `json:"resourceTableId,omitempty" xmlrpc:"resourceTableId,omitempty"` + + // no documentation yet + Tag *Tag `json:"tag,omitempty" xmlrpc:"tag,omitempty"` + + // no documentation yet + TagId *int `json:"tagId,omitempty" xmlrpc:"tagId,omitempty"` + + // no documentation yet + TagType *Tag_Type `json:"tagType,omitempty" xmlrpc:"tagType,omitempty"` + + // no documentation yet + TagTypeId *int `json:"tagTypeId,omitempty" xmlrpc:"tagTypeId,omitempty"` + + // no documentation yet + UsrRecordId *int `json:"usrRecordId,omitempty" xmlrpc:"usrRecordId,omitempty"` +} + +// no documentation yet +type Tag_Reference_Hardware struct { + Tag_Reference + + // no documentation yet + Resource *Hardware `json:"resource,omitempty" xmlrpc:"resource,omitempty"` +} + +// no documentation yet +type Tag_Reference_Network_Application_Delivery_Controller struct { + Tag_Reference + + // no documentation yet + Resource *Network_Application_Delivery_Controller `json:"resource,omitempty" xmlrpc:"resource,omitempty"` +} + +// no documentation yet +type Tag_Reference_Network_Vlan struct { + Tag_Reference + + // no documentation yet + Resource *Network_Vlan `json:"resource,omitempty" xmlrpc:"resource,omitempty"` +} + +// no documentation yet +type Tag_Reference_Network_Vlan_Firewall struct { + Tag_Reference + + // no documentation yet + Resource *Network_Vlan_Firewall `json:"resource,omitempty" xmlrpc:"resource,omitempty"` +} + +// no documentation yet +type Tag_Reference_Resource_Group struct { + Tag_Reference + + // no documentation yet + Resource *Resource_Group `json:"resource,omitempty" xmlrpc:"resource,omitempty"` +} + +// no documentation yet +type Tag_Reference_Virtual_Guest struct { + Tag_Reference + + // no documentation yet + Resource *Virtual_Guest `json:"resource,omitempty" xmlrpc:"resource,omitempty"` +} + +// no documentation yet +type Tag_Reference_Virtual_Guest_Block_Device_Template_Group struct { + Tag_Reference + + // no documentation yet + Resource *Virtual_Guest_Block_Device_Template_Group `json:"resource,omitempty" xmlrpc:"resource,omitempty"` +} + +// no documentation yet +type Tag_Type struct { + Entity + + // no documentation yet + Description *string `json:"description,omitempty" xmlrpc:"description,omitempty"` + + // no documentation yet + KeyName *string `json:"keyName,omitempty" xmlrpc:"keyName,omitempty"` +} diff --git a/vendor/github.com/softlayer/softlayer-go/datatypes/ticket.go b/vendor/github.com/softlayer/softlayer-go/datatypes/ticket.go new file mode 100644 index 000000000..b28764b06 --- /dev/null +++ b/vendor/github.com/softlayer/softlayer-go/datatypes/ticket.go @@ -0,0 +1,702 @@ +/** + * Copyright 2016 IBM Corp. + * + * 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. + */ + +/** + * AUTOMATICALLY GENERATED CODE - DO NOT MODIFY + */ + +package datatypes + +// The SoftLayer_Ticket data type models a single SoftLayer customer support or notification ticket. Each ticket object contains references to it's updates, the user it's assigned to, the SoftLayer department and employee that it's assigned to, and any hardware objects or attached files associated with the ticket. Tickets are described in further detail on the [[SoftLayer_Ticket]] service page. +// +// To create a support ticket execute the [[SoftLayer_Ticket::createStandardTicket|createStandardTicket]] or [[SoftLayer_Ticket::createAdministrativeTicket|createAdministrativeTicket]] methods in the SoftLayer_Ticket service. To create an upgrade ticket for the SoftLayer sales group execute the [[SoftLayer_Ticket::createUpgradeTicket|createUpgradeTicket]]. +type Ticket struct { + Entity + + // The SoftLayer customer account associated with a ticket. + Account *Account `json:"account,omitempty" xmlrpc:"account,omitempty"` + + // An internal identifier of the SoftLayer customer account that a ticket is associated with. + AccountId *int `json:"accountId,omitempty" xmlrpc:"accountId,omitempty"` + + // A count of + AssignedAgentCount *uint `json:"assignedAgentCount,omitempty" xmlrpc:"assignedAgentCount,omitempty"` + + // no documentation yet + AssignedAgents []User_Customer `json:"assignedAgents,omitempty" xmlrpc:"assignedAgents,omitempty"` + + // The portal user that a ticket is assigned to. + AssignedUser *User_Customer `json:"assignedUser,omitempty" xmlrpc:"assignedUser,omitempty"` + + // An internal identifier of the portal user that a ticket is assigned to. + AssignedUserId *int `json:"assignedUserId,omitempty" xmlrpc:"assignedUserId,omitempty"` + + // A count of the list of additional emails to notify when a ticket update is made. + AttachedAdditionalEmailCount *uint `json:"attachedAdditionalEmailCount,omitempty" xmlrpc:"attachedAdditionalEmailCount,omitempty"` + + // The list of additional emails to notify when a ticket update is made. + AttachedAdditionalEmails []User_Customer_AdditionalEmail `json:"attachedAdditionalEmails,omitempty" xmlrpc:"attachedAdditionalEmails,omitempty"` + + // A count of the Dedicated Hosts associated with a ticket. This is used in cases where a ticket is directly associated with one or more Dedicated Hosts. + AttachedDedicatedHostCount *uint `json:"attachedDedicatedHostCount,omitempty" xmlrpc:"attachedDedicatedHostCount,omitempty"` + + // The Dedicated Hosts associated with a ticket. This is used in cases where a ticket is directly associated with one or more Dedicated Hosts. + AttachedDedicatedHosts []Virtual_DedicatedHost `json:"attachedDedicatedHosts,omitempty" xmlrpc:"attachedDedicatedHosts,omitempty"` + + // A count of the files attached to a ticket. + AttachedFileCount *uint `json:"attachedFileCount,omitempty" xmlrpc:"attachedFileCount,omitempty"` + + // The files attached to a ticket. + AttachedFiles []Ticket_Attachment_File `json:"attachedFiles,omitempty" xmlrpc:"attachedFiles,omitempty"` + + // The hardware associated with a ticket. This is used in cases where a ticket is directly associated with one or more pieces of hardware. + AttachedHardware []Hardware `json:"attachedHardware,omitempty" xmlrpc:"attachedHardware,omitempty"` + + // no documentation yet + AttachedHardwareCount *uint `json:"attachedHardwareCount,omitempty" xmlrpc:"attachedHardwareCount,omitempty"` + + // A count of + AttachedResourceCount *uint `json:"attachedResourceCount,omitempty" xmlrpc:"attachedResourceCount,omitempty"` + + // no documentation yet + AttachedResources []Ticket_Attachment `json:"attachedResources,omitempty" xmlrpc:"attachedResources,omitempty"` + + // A count of the virtual guests associated with a ticket. This is used in cases where a ticket is directly associated with one or more virtualized guests installations or Virtual Servers. + AttachedVirtualGuestCount *uint `json:"attachedVirtualGuestCount,omitempty" xmlrpc:"attachedVirtualGuestCount,omitempty"` + + // The virtual guests associated with a ticket. This is used in cases where a ticket is directly associated with one or more virtualized guests installations or Virtual Servers. + AttachedVirtualGuests []Virtual_Guest `json:"attachedVirtualGuests,omitempty" xmlrpc:"attachedVirtualGuests,omitempty"` + + // Ticket is waiting on a response from a customer flag. + AwaitingUserResponseFlag *bool `json:"awaitingUserResponseFlag,omitempty" xmlrpc:"awaitingUserResponseFlag,omitempty"` + + // Whether a ticket has a one-time charge associated with it. Standard tickets are free while administrative tickets typically cost $3 USD. + BillableFlag *bool `json:"billableFlag,omitempty" xmlrpc:"billableFlag,omitempty"` + + // A service cancellation request. + CancellationRequest *Billing_Item_Cancellation_Request `json:"cancellationRequest,omitempty" xmlrpc:"cancellationRequest,omitempty"` + + // no documentation yet + ChangeOwnerFlag *bool `json:"changeOwnerFlag,omitempty" xmlrpc:"changeOwnerFlag,omitempty"` + + // The date that a ticket was created. + CreateDate *Time `json:"createDate,omitempty" xmlrpc:"createDate,omitempty"` + + // A count of + EmployeeAttachmentCount *uint `json:"employeeAttachmentCount,omitempty" xmlrpc:"employeeAttachmentCount,omitempty"` + + // no documentation yet + EmployeeAttachments []User_Employee `json:"employeeAttachments,omitempty" xmlrpc:"employeeAttachments,omitempty"` + + // Feedback left by a portal or API user on their experiences in a ticket. Final comments may be created after a ticket is closed. + FinalComments *string `json:"finalComments,omitempty" xmlrpc:"finalComments,omitempty"` + + // The first physical or virtual server attached to a ticket. + FirstAttachedResource *Ticket_Attachment `json:"firstAttachedResource,omitempty" xmlrpc:"firstAttachedResource,omitempty"` + + // The first update made to a ticket. This is typically the contents of a ticket when it's created. + FirstUpdate *Ticket_Update `json:"firstUpdate,omitempty" xmlrpc:"firstUpdate,omitempty"` + + // The SoftLayer department that a ticket is assigned to. + Group *Ticket_Group `json:"group,omitempty" xmlrpc:"group,omitempty"` + + // The internal identifier of the SoftLayer department that a ticket is assigned to. + GroupId *int `json:"groupId,omitempty" xmlrpc:"groupId,omitempty"` + + // A ticket's internal identifier. Each ticket is defined by a unique identifier. + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // A count of the invoice items associated with a ticket. Ticket based invoice items only exist when a ticket incurs a fee that has been invoiced. + InvoiceItemCount *uint `json:"invoiceItemCount,omitempty" xmlrpc:"invoiceItemCount,omitempty"` + + // The invoice items associated with a ticket. Ticket based invoice items only exist when a ticket incurs a fee that has been invoiced. + InvoiceItems []Billing_Invoice_Item `json:"invoiceItems,omitempty" xmlrpc:"invoiceItems,omitempty"` + + // no documentation yet + LastActivity *Ticket_Activity `json:"lastActivity,omitempty" xmlrpc:"lastActivity,omitempty"` + + // The date that a ticket was last modified. A modification does not necessarily mean that an update was added. + LastEditDate *Time `json:"lastEditDate,omitempty" xmlrpc:"lastEditDate,omitempty"` + + // The type of user who last edited or updated a ticket. This is either "EMPLOYEE" or "USER". + LastEditType *string `json:"lastEditType,omitempty" xmlrpc:"lastEditType,omitempty"` + + // no documentation yet + LastEditor *User_Interface `json:"lastEditor,omitempty" xmlrpc:"lastEditor,omitempty"` + + // The date that the last ticket update was made + LastResponseDate *Time `json:"lastResponseDate,omitempty" xmlrpc:"lastResponseDate,omitempty"` + + // The last update made to a ticket. + LastUpdate *Ticket_Update `json:"lastUpdate,omitempty" xmlrpc:"lastUpdate,omitempty"` + + // A timestamp of the last time the Ticket was viewed by the active user. + LastViewedDate *Time `json:"lastViewedDate,omitempty" xmlrpc:"lastViewedDate,omitempty"` + + // A ticket's associated location within the SoftLayer location hierarchy. + Location *Location `json:"location,omitempty" xmlrpc:"location,omitempty"` + + // The internal identifier of the location associated with a ticket. + LocationId *int `json:"locationId,omitempty" xmlrpc:"locationId,omitempty"` + + // The date that a ticket was last updated. + ModifyDate *Time `json:"modifyDate,omitempty" xmlrpc:"modifyDate,omitempty"` + + // True if there are new, unread updates to this ticket for the current user, False otherwise. + NewUpdatesFlag *bool `json:"newUpdatesFlag,omitempty" xmlrpc:"newUpdatesFlag,omitempty"` + + // Whether or not the user who owns a ticket is notified via email when a ticket is updated. + NotifyUserOnUpdateFlag *bool `json:"notifyUserOnUpdateFlag,omitempty" xmlrpc:"notifyUserOnUpdateFlag,omitempty"` + + // The IP address of the user who opened a ticket. + OriginatingIpAddress *string `json:"originatingIpAddress,omitempty" xmlrpc:"originatingIpAddress,omitempty"` + + // no documentation yet + Priority *int `json:"priority,omitempty" xmlrpc:"priority,omitempty"` + + // no documentation yet + ResponsibleBrandId *int `json:"responsibleBrandId,omitempty" xmlrpc:"responsibleBrandId,omitempty"` + + // A count of + ScheduledActionCount *uint `json:"scheduledActionCount,omitempty" xmlrpc:"scheduledActionCount,omitempty"` + + // no documentation yet + ScheduledActions []Provisioning_Version1_Transaction `json:"scheduledActions,omitempty" xmlrpc:"scheduledActions,omitempty"` + + // The amount of money in US Dollars ($USD) that a ticket has charged to an account. A ticket's administrative billing amount is a one time charge and only applies to administrative support tickets. + ServerAdministrationBillingAmount *int `json:"serverAdministrationBillingAmount,omitempty" xmlrpc:"serverAdministrationBillingAmount,omitempty"` + + // The invoice associated with a ticket. Only tickets with an associated administrative charge have an invoice. + ServerAdministrationBillingInvoice *Billing_Invoice `json:"serverAdministrationBillingInvoice,omitempty" xmlrpc:"serverAdministrationBillingInvoice,omitempty"` + + // The internal identifier of the invoice associated with a ticket's administrative charge. Only tickets with an administrative charge have an associated invoice. + ServerAdministrationBillingInvoiceId *int `json:"serverAdministrationBillingInvoiceId,omitempty" xmlrpc:"serverAdministrationBillingInvoiceId,omitempty"` + + // Whether a ticket is a standard or an administrative support ticket. Administrative support tickets typically incur a $3 USD charge. + ServerAdministrationFlag *int `json:"serverAdministrationFlag,omitempty" xmlrpc:"serverAdministrationFlag,omitempty"` + + // The refund invoice associated with a ticket. Only tickets with a refund applied in them have an associated refund invoice. + ServerAdministrationRefundInvoice *Billing_Invoice `json:"serverAdministrationRefundInvoice,omitempty" xmlrpc:"serverAdministrationRefundInvoice,omitempty"` + + // The internal identifier of the refund invoice associated with a ticket. Only tickets with an account refund associated with them have an associated refund invoice. + ServerAdministrationRefundInvoiceId *int `json:"serverAdministrationRefundInvoiceId,omitempty" xmlrpc:"serverAdministrationRefundInvoiceId,omitempty"` + + // no documentation yet + ServiceProvider *Service_Provider `json:"serviceProvider,omitempty" xmlrpc:"serviceProvider,omitempty"` + + // no documentation yet + ServiceProviderId *int `json:"serviceProviderId,omitempty" xmlrpc:"serviceProviderId,omitempty"` + + // A ticket's internal identifier at its service provider. Each ticket is defined by a unique identifier. + ServiceProviderResourceId *int `json:"serviceProviderResourceId,omitempty" xmlrpc:"serviceProviderResourceId,omitempty"` + + // no documentation yet + State []Ticket_State `json:"state,omitempty" xmlrpc:"state,omitempty"` + + // A count of + StateCount *uint `json:"stateCount,omitempty" xmlrpc:"stateCount,omitempty"` + + // A ticket's status. + Status *Ticket_Status `json:"status,omitempty" xmlrpc:"status,omitempty"` + + // A ticket status' internal identifier. + StatusId *int `json:"statusId,omitempty" xmlrpc:"statusId,omitempty"` + + // A ticket's subject. Only standard support tickets have an associated subject. A standard support ticket's title corresponds with it's subject's name. + Subject *Ticket_Subject `json:"subject,omitempty" xmlrpc:"subject,omitempty"` + + // An internal identifier of the pre-set subject that a ticket is associated with. Standard support tickets have a subject set while administrative tickets have a null subject. A standard support ticket's title is the name of it's associated subject. + SubjectId *int `json:"subjectId,omitempty" xmlrpc:"subjectId,omitempty"` + + // A count of + TagReferenceCount *uint `json:"tagReferenceCount,omitempty" xmlrpc:"tagReferenceCount,omitempty"` + + // no documentation yet + TagReferences []Tag_Reference `json:"tagReferences,omitempty" xmlrpc:"tagReferences,omitempty"` + + // A ticket's title. This is typically a brief summary of the issue described in the ticket. + Title *string `json:"title,omitempty" xmlrpc:"title,omitempty"` + + // no documentation yet + TotalUpdateCount *int `json:"totalUpdateCount,omitempty" xmlrpc:"totalUpdateCount,omitempty"` + + // A count of a ticket's updates. + UpdateCount *uint `json:"updateCount,omitempty" xmlrpc:"updateCount,omitempty"` + + // A ticket's updates. + Updates []Ticket_Update `json:"updates,omitempty" xmlrpc:"updates,omitempty"` + + // Whether a user is able to update a ticket. + UserEditableFlag *bool `json:"userEditableFlag,omitempty" xmlrpc:"userEditableFlag,omitempty"` +} + +// no documentation yet +type Ticket_Activity struct { + Entity + + // no documentation yet + CreateDate *Time `json:"createDate,omitempty" xmlrpc:"createDate,omitempty"` + + // no documentation yet + CreateTimestamp *Time `json:"createTimestamp,omitempty" xmlrpc:"createTimestamp,omitempty"` + + // no documentation yet + Editor *User_Interface `json:"editor,omitempty" xmlrpc:"editor,omitempty"` + + // no documentation yet + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // no documentation yet + Ticket *Ticket `json:"ticket,omitempty" xmlrpc:"ticket,omitempty"` + + // no documentation yet + TicketUpdate *Ticket_Update `json:"ticketUpdate,omitempty" xmlrpc:"ticketUpdate,omitempty"` + + // no documentation yet + Value *string `json:"value,omitempty" xmlrpc:"value,omitempty"` +} + +// SoftLayer tickets have the ability to be associated with specific pieces of hardware in a customer's inventory. Attaching hardware to a ticket can greatly increase response time from SoftLayer for issues that are related to one or more specific servers on a customer's account. The SoftLayer_Ticket_Attachment_Hardware data type models the relationship between a piece of hardware and a ticket. Only one attachment record may exist per hardware item per ticket. +type Ticket_Attachment struct { + Entity + + // no documentation yet + AssignedAgent *User_Customer `json:"assignedAgent,omitempty" xmlrpc:"assignedAgent,omitempty"` + + // The internal identifier of an item that is attached to a ticket. + AttachmentId *int `json:"attachmentId,omitempty" xmlrpc:"attachmentId,omitempty"` + + // The date that an item was attached to a ticket. + CreateDate *Time `json:"createDate,omitempty" xmlrpc:"createDate,omitempty"` + + // A ticket attachment's internal identifier. + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // no documentation yet + ScheduledAction *Provisioning_Version1_Transaction `json:"scheduledAction,omitempty" xmlrpc:"scheduledAction,omitempty"` + + // The ticket that an item is attached to. + Ticket *Ticket `json:"ticket,omitempty" xmlrpc:"ticket,omitempty"` + + // The internal identifier of the ticket that an item is attached to. + TicketId *int `json:"ticketId,omitempty" xmlrpc:"ticketId,omitempty"` +} + +// no documentation yet +type Ticket_Attachment_Assigned_Agent struct { + Ticket_Attachment + + // The internal identifier of an assigned Agent that is attached to a ticket. + AssignedAgentId *int `json:"assignedAgentId,omitempty" xmlrpc:"assignedAgentId,omitempty"` + + // no documentation yet + Resource *User_Customer `json:"resource,omitempty" xmlrpc:"resource,omitempty"` +} + +// This datatype contains tickets referenced from card change request +type Ticket_Attachment_CardChangeRequest struct { + Ticket_Attachment + + // The card change request that is attached to a ticket. + Resource *Billing_Payment_Card_ChangeRequest `json:"resource,omitempty" xmlrpc:"resource,omitempty"` +} + +// SoftLayer tickets have the ability to be associated with specific pieces of dedicated hosts in a customer's inventory. Attaching a dedicated host to a ticket can greatly increase response time from SoftLayer for issues that are related to one or more specific servers on a customer's account. The SoftLayer_Ticket_Attachment_Dedicated_Host data type models the relationship between a dedicated host and a ticket. Only one attachment record may exist per dedicated host item per ticket. +type Ticket_Attachment_Dedicated_Host struct { + Ticket_Attachment + + // The Dedicated Host that is attached to a ticket. + DedicatedHost *Virtual_DedicatedHost `json:"dedicatedHost,omitempty" xmlrpc:"dedicatedHost,omitempty"` + + // The internal identifier of the Dedicated Host that is attached to a ticket. + DedicatedHostId *int `json:"dedicatedHostId,omitempty" xmlrpc:"dedicatedHostId,omitempty"` + + // The Dedicated Host that is attached to a ticket. + Resource *Virtual_DedicatedHost `json:"resource,omitempty" xmlrpc:"resource,omitempty"` +} + +// SoftLayer tickets can have have files attached to them. Attaching a file to a ticket is a good way to report issues, provide documentation, and give examples of an issue. Both SoftLayer customers and employees have the ability to attach files to a ticket. The SoftLayer_Ticket_Attachment_File data type models a single file attached to a ticket. +type Ticket_Attachment_File struct { + Entity + + // The date a file was originally attached to a ticket. + CreateDate *Time `json:"createDate,omitempty" xmlrpc:"createDate,omitempty"` + + // The name of a file attached to a ticket. + FileName *string `json:"fileName,omitempty" xmlrpc:"fileName,omitempty"` + + // The size of a file attached to a ticket, measured in bytes. + FileSize *string `json:"fileSize,omitempty" xmlrpc:"fileSize,omitempty"` + + // A ticket file attachment's internal identifier. + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // The date that a file attachment record was last modified. + ModifyDate *Time `json:"modifyDate,omitempty" xmlrpc:"modifyDate,omitempty"` + + // no documentation yet + Ticket *Ticket `json:"ticket,omitempty" xmlrpc:"ticket,omitempty"` + + // The internal identifier of the ticket that a file is attached to. + TicketId *int `json:"ticketId,omitempty" xmlrpc:"ticketId,omitempty"` + + // The ticket that a file is attached to. + Update *Ticket_Update `json:"update,omitempty" xmlrpc:"update,omitempty"` + + // The internal identifier of the ticket update the attached file is associated with. + UpdateId *int `json:"updateId,omitempty" xmlrpc:"updateId,omitempty"` + + // The internal identifier of the user that uploaded a ticket file attachment. This is only used when A file attachment's ''uploaderType'' is set to "USER". + UploaderId *string `json:"uploaderId,omitempty" xmlrpc:"uploaderId,omitempty"` + + // The type of user that attached a file to a ticket. This is either "USER" if the file was uploaded by a portal or API user or "EMPLOYEE" if the file was uploaded by a SoftLayer employee. + UploaderType *string `json:"uploaderType,omitempty" xmlrpc:"uploaderType,omitempty"` +} + +// SoftLayer tickets have the ability to be associated with specific pieces of hardware in a customer's inventory. Attaching hardware to a ticket can greatly increase response time from SoftLayer for issues that are related to one or more specific servers on a customer's account. The SoftLayer_Ticket_Attachment_Hardware data type models the relationship between a piece of hardware and a ticket. Only one attachment record may exist per hardware item per ticket. +type Ticket_Attachment_Hardware struct { + Ticket_Attachment + + // The hardware that is attached to a ticket. + Hardware *Hardware `json:"hardware,omitempty" xmlrpc:"hardware,omitempty"` + + // The internal identifier of a piece of hardware that is attached to a ticket. + HardwareId *int `json:"hardwareId,omitempty" xmlrpc:"hardwareId,omitempty"` + + // The hardware that is attached to a ticket. + Resource *Hardware `json:"resource,omitempty" xmlrpc:"resource,omitempty"` +} + +// This datatype contains tickets referenced from manual payments +type Ticket_Attachment_ManualPayment struct { + Ticket_Attachment + + // The manual payment that is attached to a ticket. + Resource *Billing_Payment_Card_ManualPayment `json:"resource,omitempty" xmlrpc:"resource,omitempty"` +} + +// no documentation yet +type Ticket_Attachment_Scheduled_Action struct { + Ticket_Attachment + + // no documentation yet + Resource *Provisioning_Version1_Transaction `json:"resource,omitempty" xmlrpc:"resource,omitempty"` + + // The internal identifier of a scheduled action transaction that is attached to a ticket. + RunDate *Time `json:"runDate,omitempty" xmlrpc:"runDate,omitempty"` + + // no documentation yet + Transaction *Provisioning_Version1_Transaction `json:"transaction,omitempty" xmlrpc:"transaction,omitempty"` + + // The internal identifier of a scheduled action transaction that is attached to a ticket. + TransactionId *int `json:"transactionId,omitempty" xmlrpc:"transactionId,omitempty"` +} + +// SoftLayer tickets have the ability to be associated with specific virtual guests in a customer's inventory. Attaching virtual guests to a ticket can greatly increase response time from SoftLayer for issues that are related to one or more specific servers on a customer's account. The SoftLayer_Ticket_Attachment_Virtual_Guest data type models the relationship between a virtual guest and a ticket. Only one attachment record may exist per virtual guest per ticket. +type Ticket_Attachment_Virtual_Guest struct { + Ticket_Attachment + + // The virtualized guest or CloudLayer Computing Instance that is attached to a ticket. + Resource *Virtual_Guest `json:"resource,omitempty" xmlrpc:"resource,omitempty"` + + // The virtualized guest or CloudLayer Computing Instance that is attached to a ticket. + VirtualGuest *Virtual_Guest `json:"virtualGuest,omitempty" xmlrpc:"virtualGuest,omitempty"` + + // The internal identifier of the virtualized guest or CloudLayer Computing Instance that is attached to a ticket. + VirtualGuestId *int `json:"virtualGuestId,omitempty" xmlrpc:"virtualGuestId,omitempty"` +} + +// no documentation yet +type Ticket_Chat struct { + Entity + + // no documentation yet + Agent *User_Employee `json:"agent,omitempty" xmlrpc:"agent,omitempty"` + + // no documentation yet + Customer *User_Customer `json:"customer,omitempty" xmlrpc:"customer,omitempty"` + + // no documentation yet + CustomerId *int `json:"customerId,omitempty" xmlrpc:"customerId,omitempty"` + + // no documentation yet + EndDate *Time `json:"endDate,omitempty" xmlrpc:"endDate,omitempty"` + + // no documentation yet + StartDate *Time `json:"startDate,omitempty" xmlrpc:"startDate,omitempty"` + + // no documentation yet + TicketUpdate *Ticket_Update_Chat `json:"ticketUpdate,omitempty" xmlrpc:"ticketUpdate,omitempty"` + + // no documentation yet + Transcript *string `json:"transcript,omitempty" xmlrpc:"transcript,omitempty"` +} + +// no documentation yet +type Ticket_Chat_Liveperson struct { + Ticket_Chat +} + +// no documentation yet +type Ticket_Chat_TranscriptLine struct { + Entity + + // no documentation yet + Speaker *User_Interface `json:"speaker,omitempty" xmlrpc:"speaker,omitempty"` +} + +// no documentation yet +type Ticket_Chat_TranscriptLine_Customer struct { + Ticket_Chat_TranscriptLine +} + +// no documentation yet +type Ticket_Chat_TranscriptLine_Employee struct { + Ticket_Chat_TranscriptLine +} + +// SoftLayer tickets have the ability to be assigned to one of SoftLayer's internal departments. The department that a ticket is assigned to is modeled by the SoftLayer_Ticket_Group data type. Ticket groups help to ensure that the proper department is handling a ticket. Standard support tickets are created from a number of pre-determined subjects. These subjects help determine which group a standard ticket is assigned to. +type Ticket_Group struct { + Entity + + // The category that a ticket group belongs to. + Category *Ticket_Group_Category `json:"category,omitempty" xmlrpc:"category,omitempty"` + + // A ticket group's internal identifier. + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // A ticket group's name. + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` + + // The internal identifier for the category that a ticket group belongs to.. + TicketGroupCategoryId *int `json:"ticketGroupCategoryId,omitempty" xmlrpc:"ticketGroupCategoryId,omitempty"` +} + +// SoftLayer's support ticket groups represent the department at SoftLayer that is assigned to work one of your support tickets. Many departments are responsible for handling different types of tickets. These types of tickets are modeled in the SoftLayer_Ticket_Group_Category data type. Ticket group categories also help separate differentiate your tickets' issues in the SoftLayer customer portal. +type Ticket_Group_Category struct { + Entity + + // A ticket group category's unique identifier. + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // A ticket group category's name. + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` +} + +// no documentation yet +type Ticket_Priority struct { + Entity +} + +// no documentation yet +type Ticket_State struct { + Entity + + // no documentation yet + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // no documentation yet + StateType *Ticket_State_Type `json:"stateType,omitempty" xmlrpc:"stateType,omitempty"` + + // no documentation yet + StateTypeId *int `json:"stateTypeId,omitempty" xmlrpc:"stateTypeId,omitempty"` + + // no documentation yet + Ticket *Ticket `json:"ticket,omitempty" xmlrpc:"ticket,omitempty"` + + // no documentation yet + TicketId *int `json:"ticketId,omitempty" xmlrpc:"ticketId,omitempty"` +} + +// no documentation yet +type Ticket_State_Type struct { + Entity + + // no documentation yet + Description *string `json:"description,omitempty" xmlrpc:"description,omitempty"` + + // no documentation yet + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // no documentation yet + KeyName *string `json:"keyName,omitempty" xmlrpc:"keyName,omitempty"` + + // no documentation yet + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` +} + +// The SoftLayer_Ticket_Status data type models the state of a ticket as it is worked by SoftLayer and its customers. Tickets exist in one of three states: +// *'''OPEN''': Open tickets are considered unresolved issues by SoftLayer and can be assigned to a SoftLayer employee for work. Tickets created by portal or API users are created in the Open state. +// *'''ASSIGNED''': Assigned tickets are identical to open tickets, but are assigned to an individual SoftLayer employee. An assigned ticket is actively being worked by SoftLayer. +// *'''CLOSED''': Tickets are closed when the issue at hand is considered resolved. A SoftLayer employee can change a ticket's status from Closed to Open or Assigned if the need arises. +// +// +// A ticket usually goes from the Open to Assigned to Closed states during its life cycle. If a ticket is forwarded from one department to another it may change from the Assigned state back to Open until it is assigned to a member of the new department. +type Ticket_Status struct { + Entity + + // A ticket status' internal identifier. + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // A ticket status' name. + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` +} + +// The SoftLayer_Ticket_Subject data type models one of the possible subjects that a standard support ticket may belong to. A basic support ticket's title matches it's corresponding subject's name. +type Ticket_Subject struct { + Entity + + // no documentation yet + Category *Ticket_Subject_Category `json:"category,omitempty" xmlrpc:"category,omitempty"` + + // The subject category id that this ticket subject belongs to. + CategoryId *int `json:"categoryId,omitempty" xmlrpc:"categoryId,omitempty"` + + // A child subject + Children []Ticket_Subject `json:"children,omitempty" xmlrpc:"children,omitempty"` + + // A count of a child subject + ChildrenCount *uint `json:"childrenCount,omitempty" xmlrpc:"childrenCount,omitempty"` + + // no documentation yet + Group *Ticket_Group `json:"group,omitempty" xmlrpc:"group,omitempty"` + + // A ticket subject's internal identifier. + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // A ticket subject's name. This name is used for a standard support ticket's title. + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` + + // A parent subject + Parent *Ticket_Subject `json:"parent,omitempty" xmlrpc:"parent,omitempty"` + + // Specifies the parent subject id. + ParentId *int `json:"parentId,omitempty" xmlrpc:"parentId,omitempty"` +} + +// SoftLayer_Ticket_Subject_Category groups ticket subjects into logical group. +type Ticket_Subject_Category struct { + Entity + + // A unique identifier of a ticket subject category. + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // A ticket subject category name. + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` + + // A count of + SubjectCount *uint `json:"subjectCount,omitempty" xmlrpc:"subjectCount,omitempty"` + + // no documentation yet + Subjects []Ticket_Subject `json:"subjects,omitempty" xmlrpc:"subjects,omitempty"` +} + +// no documentation yet +type Ticket_Survey struct { + Entity +} + +// no documentation yet +type Ticket_Type struct { + Entity + + // no documentation yet + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // no documentation yet + KeyName *string `json:"keyName,omitempty" xmlrpc:"keyName,omitempty"` +} + +// The SoftLayer_Ticket_Update type relates to a single update to a ticket, either by a customer or an employee. +type Ticket_Update struct { + Entity + + // no documentation yet + ChangeOwnerActivity *string `json:"changeOwnerActivity,omitempty" xmlrpc:"changeOwnerActivity,omitempty"` + + // The data a ticket update was created. + CreateDate *Time `json:"createDate,omitempty" xmlrpc:"createDate,omitempty"` + + // The user or SoftLayer employee who created a ticket update. + Editor *User_Interface `json:"editor,omitempty" xmlrpc:"editor,omitempty"` + + // The internal identifier of the SoftLayer portal or API user who created a ticket update. This is only used if a ticket update's ''editorType'' property is "USER". + EditorId *int `json:"editorId,omitempty" xmlrpc:"editorId,omitempty"` + + // The type user who created a ticket update. This is either "USER" for an update created by a SoftLayer portal or API user, "EMPLOYEE" for an update created by a SoftLayer employee, or "AUTO" if a ticket update was generated automatically by SoftLayer's backend systems. + EditorType *string `json:"editorType,omitempty" xmlrpc:"editorType,omitempty"` + + // The contents of a ticket update. + Entry *string `json:"entry,omitempty" xmlrpc:"entry,omitempty"` + + // The files attached to a ticket update. + FileAttachment []Ticket_Attachment_File `json:"fileAttachment,omitempty" xmlrpc:"fileAttachment,omitempty"` + + // A count of the files attached to a ticket update. + FileAttachmentCount *uint `json:"fileAttachmentCount,omitempty" xmlrpc:"fileAttachmentCount,omitempty"` + + // A ticket update's internal identifier. + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // The ticket that a ticket update belongs to. + Ticket *Ticket `json:"ticket,omitempty" xmlrpc:"ticket,omitempty"` + + // The internal identifier of the ticket that a ticket update belongs to. + TicketId *int `json:"ticketId,omitempty" xmlrpc:"ticketId,omitempty"` + + // The Type of update to this ticket + Type *Ticket_Update_Type `json:"type,omitempty" xmlrpc:"type,omitempty"` +} + +// A SoftLayer_Ticket_Update_Agent type models an update to a ticket made by an agent. +type Ticket_Update_Agent struct { + Ticket_Update +} + +// A SoftLayer_Ticket_Update_Chat is a chat between a customer and a customer service representative relating to a ticket. +type Ticket_Update_Chat struct { + Ticket_Update + + // The chat between the Customer and Agent + Chat *Ticket_Chat_Liveperson `json:"chat,omitempty" xmlrpc:"chat,omitempty"` +} + +// A SoftLayer_Ticket_Update_Customer is a single update made by a customer to a ticket. +type Ticket_Update_Customer struct { + Ticket_Update +} + +// The SoftLayer_Ticket_Update_Employee data type models an update to a ticket made by a SoftLayer employee. +type Ticket_Update_Employee struct { + Ticket_Update + + // A ticket update's response rating. Ticket updates posted by SoftLayer employees have the option of earning a rating from SoftLayer's customers. Ratings are based on a 1 - 5 scale, with one being a poor rating while 5 is a very high rating. This is only used if a ticket update's ''editorType'' property is "EMPLOYEE". + ResponseRating *int `json:"responseRating,omitempty" xmlrpc:"responseRating,omitempty"` +} + +// no documentation yet +type Ticket_Update_Type struct { + Entity + + // no documentation yet + Description *string `json:"description,omitempty" xmlrpc:"description,omitempty"` + + // no documentation yet + KeyName *string `json:"keyName,omitempty" xmlrpc:"keyName,omitempty"` + + // no documentation yet + Ticket *Ticket_Update `json:"ticket,omitempty" xmlrpc:"ticket,omitempty"` +} diff --git a/vendor/github.com/softlayer/softlayer-go/datatypes/user.go b/vendor/github.com/softlayer/softlayer-go/datatypes/user.go new file mode 100644 index 000000000..dde8b3581 --- /dev/null +++ b/vendor/github.com/softlayer/softlayer-go/datatypes/user.go @@ -0,0 +1,1412 @@ +/** + * Copyright 2016 IBM Corp. + * + * 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. + */ + +/** + * AUTOMATICALLY GENERATED CODE - DO NOT MODIFY + */ + +package datatypes + +// This class represents a login/logout sheet for facility visitors. +type User_Access_Facility_Log struct { + Entity + + // This is the account associated with the log entry. For users under a customer's account, it is the customer's account. For contractors and others visiting a colocation area, it is the account associated with the area they visited. + Account *Account `json:"account,omitempty" xmlrpc:"account,omitempty"` + + // This is the account associated with a log record. For a customer logging into a datacenter, this is the customer's account. For a contractor or any other guest logging into a customer's cabinet or colocation cage, this is the customer's account. + AccountId *int `json:"accountId,omitempty" xmlrpc:"accountId,omitempty"` + + // This is the location of the facility. + Datacenter *Location `json:"datacenter,omitempty" xmlrpc:"datacenter,omitempty"` + + // This is a short description of why the person is at the location. + Description *string `json:"description,omitempty" xmlrpc:"description,omitempty"` + + // This is the colocation hardware that was visited. + Hardware *Hardware `json:"hardware,omitempty" xmlrpc:"hardware,omitempty"` + + // no documentation yet + HardwareId *int `json:"hardwareId,omitempty" xmlrpc:"hardwareId,omitempty"` + + // no documentation yet + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // no documentation yet + LocationId *int `json:"locationId,omitempty" xmlrpc:"locationId,omitempty"` + + // This is the type of person entering the facility. + LogType *User_Access_Facility_Log_Type `json:"logType,omitempty" xmlrpc:"logType,omitempty"` + + // This is the date and time the person arrived. + TimeIn *Time `json:"timeIn,omitempty" xmlrpc:"timeIn,omitempty"` + + // no documentation yet + TimeOut *Time `json:"timeOut,omitempty" xmlrpc:"timeOut,omitempty"` + + // no documentation yet + Visitor *Entity `json:"visitor,omitempty" xmlrpc:"visitor,omitempty"` +} + +// no documentation yet +type User_Access_Facility_Log_Type struct { + Entity + + // no documentation yet + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // no documentation yet + KeyName *string `json:"keyName,omitempty" xmlrpc:"keyName,omitempty"` + + // no documentation yet + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` +} + +// This class represents a facility visitor that is not an active employee or customer. +type User_Access_Facility_Visitor struct { + Entity + + // no documentation yet + CompanyName *string `json:"companyName,omitempty" xmlrpc:"companyName,omitempty"` + + // no documentation yet + FirstName *string `json:"firstName,omitempty" xmlrpc:"firstName,omitempty"` + + // no documentation yet + LastName *string `json:"lastName,omitempty" xmlrpc:"lastName,omitempty"` + + // no documentation yet + TypeId *int `json:"typeId,omitempty" xmlrpc:"typeId,omitempty"` + + // no documentation yet + VisitorType *User_Access_Facility_Visitor_Type `json:"visitorType,omitempty" xmlrpc:"visitorType,omitempty"` +} + +// no documentation yet +type User_Access_Facility_Visitor_Type struct { + Entity + + // no documentation yet + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // no documentation yet + KeyName *string `json:"keyName,omitempty" xmlrpc:"keyName,omitempty"` + + // no documentation yet + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` +} + +// The SoftLayer_User_Customer data type contains general information relating to a single SoftLayer customer portal user. Personal information in this type such as names, addresses, and phone numbers are not necessarily associated with the customer account the user is assigned to. +type User_Customer struct { + User_Interface + + // The customer account that a user belongs to. + Account *Account `json:"account,omitempty" xmlrpc:"account,omitempty"` + + // A portal user's associated [[SoftLayer_Account|customer account]] id. + AccountId *int `json:"accountId,omitempty" xmlrpc:"accountId,omitempty"` + + // A count of + ActionCount *uint `json:"actionCount,omitempty" xmlrpc:"actionCount,omitempty"` + + // no documentation yet + Actions []User_Permission_Action `json:"actions,omitempty" xmlrpc:"actions,omitempty"` + + // A count of a portal user's additional email addresses. These email addresses are contacted when updates are made to support tickets. + AdditionalEmailCount *uint `json:"additionalEmailCount,omitempty" xmlrpc:"additionalEmailCount,omitempty"` + + // A portal user's additional email addresses. These email addresses are contacted when updates are made to support tickets. + AdditionalEmails []User_Customer_AdditionalEmail `json:"additionalEmails,omitempty" xmlrpc:"additionalEmails,omitempty"` + + // The first line of the mailing address belonging to a portal user. + Address1 *string `json:"address1,omitempty" xmlrpc:"address1,omitempty"` + + // The second line of the mailing address belonging to a portal user. + Address2 *string `json:"address2,omitempty" xmlrpc:"address2,omitempty"` + + // A portal user's AOL Instant Messenger screen name. + Aim *string `json:"aim,omitempty" xmlrpc:"aim,omitempty"` + + // A portal user's secondary phone number. + AlternatePhone *string `json:"alternatePhone,omitempty" xmlrpc:"alternatePhone,omitempty"` + + // A count of a portal user's API Authentication keys. There is a max limit of two API keys per user. + ApiAuthenticationKeyCount *uint `json:"apiAuthenticationKeyCount,omitempty" xmlrpc:"apiAuthenticationKeyCount,omitempty"` + + // A portal user's API Authentication keys. There is a max limit of two API keys per user. + ApiAuthenticationKeys []User_Customer_ApiAuthentication `json:"apiAuthenticationKeys,omitempty" xmlrpc:"apiAuthenticationKeys,omitempty"` + + // The authentication token used for logging into the SoftLayer customer portal. + AuthenticationToken *Container_User_Authentication_Token `json:"authenticationToken,omitempty" xmlrpc:"authenticationToken,omitempty"` + + // A count of the CDN accounts associated with a portal user. + CdnAccountCount *uint `json:"cdnAccountCount,omitempty" xmlrpc:"cdnAccountCount,omitempty"` + + // The CDN accounts associated with a portal user. + CdnAccounts []Network_ContentDelivery_Account `json:"cdnAccounts,omitempty" xmlrpc:"cdnAccounts,omitempty"` + + // A count of a portal user's child users. Some portal users may not have child users. + ChildUserCount *uint `json:"childUserCount,omitempty" xmlrpc:"childUserCount,omitempty"` + + // A portal user's child users. Some portal users may not have child users. + ChildUsers []User_Customer `json:"childUsers,omitempty" xmlrpc:"childUsers,omitempty"` + + // The city of the mailing address belonging to a portal user. + City *string `json:"city,omitempty" xmlrpc:"city,omitempty"` + + // A count of an user's associated closed tickets. + ClosedTicketCount *uint `json:"closedTicketCount,omitempty" xmlrpc:"closedTicketCount,omitempty"` + + // An user's associated closed tickets. + ClosedTickets []Ticket `json:"closedTickets,omitempty" xmlrpc:"closedTickets,omitempty"` + + // A portal user's associated company. This may not be the same company as the customer that owns this portal user. + CompanyName *string `json:"companyName,omitempty" xmlrpc:"companyName,omitempty"` + + // A two-letter abbreviation of the country in the mailing address belonging to a portal user. + Country *string `json:"country,omitempty" xmlrpc:"country,omitempty"` + + // The date a portal user's record was created. + CreateDate *Time `json:"createDate,omitempty" xmlrpc:"createDate,omitempty"` + + // Whether a portal user's time zone is affected by Daylight Savings Time. + DaylightSavingsTimeFlag *bool `json:"daylightSavingsTimeFlag,omitempty" xmlrpc:"daylightSavingsTimeFlag,omitempty"` + + // Flag used to deny access to all hardware and cloud computing instances upon user creation. + DenyAllResourceAccessOnCreateFlag *bool `json:"denyAllResourceAccessOnCreateFlag,omitempty" xmlrpc:"denyAllResourceAccessOnCreateFlag,omitempty"` + + // no documentation yet + DisplayName *string `json:"displayName,omitempty" xmlrpc:"displayName,omitempty"` + + // A portal user's email address. + Email *string `json:"email,omitempty" xmlrpc:"email,omitempty"` + + // A count of the external authentication bindings that link an external identifier to a SoftLayer user. + ExternalBindingCount *uint `json:"externalBindingCount,omitempty" xmlrpc:"externalBindingCount,omitempty"` + + // The external authentication bindings that link an external identifier to a SoftLayer user. + ExternalBindings []User_External_Binding `json:"externalBindings,omitempty" xmlrpc:"externalBindings,omitempty"` + + // A portal user's first name. + FirstName *string `json:"firstName,omitempty" xmlrpc:"firstName,omitempty"` + + // A user's password for the SoftLayer forums, hashed for auto-login capability from the SoftLayer customer portal + ForumPasswordHash *string `json:"forumPasswordHash,omitempty" xmlrpc:"forumPasswordHash,omitempty"` + + // A portal user's accessible hardware. These permissions control which hardware a user has access to in the SoftLayer customer portal. + Hardware []Hardware `json:"hardware,omitempty" xmlrpc:"hardware,omitempty"` + + // A count of a portal user's accessible hardware. These permissions control which hardware a user has access to in the SoftLayer customer portal. + HardwareCount *uint `json:"hardwareCount,omitempty" xmlrpc:"hardwareCount,omitempty"` + + // A count of hardware notifications associated with this user. A hardware notification links a user to a piece of hardware, and that user will be notified if any monitors on that hardware fail, if the monitors have a status of 'Notify User'. + HardwareNotificationCount *uint `json:"hardwareNotificationCount,omitempty" xmlrpc:"hardwareNotificationCount,omitempty"` + + // Hardware notifications associated with this user. A hardware notification links a user to a piece of hardware, and that user will be notified if any monitors on that hardware fail, if the monitors have a status of 'Notify User'. + HardwareNotifications []User_Customer_Notification_Hardware `json:"hardwareNotifications,omitempty" xmlrpc:"hardwareNotifications,omitempty"` + + // Whether or not a user has acknowledged the support policy. + HasAcknowledgedSupportPolicyFlag *bool `json:"hasAcknowledgedSupportPolicyFlag,omitempty" xmlrpc:"hasAcknowledgedSupportPolicyFlag,omitempty"` + + // Whether or not a portal user has access to all hardware on their account. + HasFullHardwareAccessFlag *bool `json:"hasFullHardwareAccessFlag,omitempty" xmlrpc:"hasFullHardwareAccessFlag,omitempty"` + + // Whether or not a portal user has access to all hardware on their account. + HasFullVirtualGuestAccessFlag *bool `json:"hasFullVirtualGuestAccessFlag,omitempty" xmlrpc:"hasFullVirtualGuestAccessFlag,omitempty"` + + // A portal user's ICQ UIN. + Icq *string `json:"icq,omitempty" xmlrpc:"icq,omitempty"` + + // A portal user's internal identifying number. + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // The IP addresses or IP ranges from which a user may login to the SoftLayer customer portal. Specify subnets in CIDR format and separate multiple addresses and subnets by commas. You may combine IPv4 and IPv6 addresses and subnets, for example: 192.168.0.0/16,fe80:021b::0/64. + IpAddressRestriction *string `json:"ipAddressRestriction,omitempty" xmlrpc:"ipAddressRestriction,omitempty"` + + // no documentation yet + IsMasterUserFlag *bool `json:"isMasterUserFlag,omitempty" xmlrpc:"isMasterUserFlag,omitempty"` + + // A portal user's last name. + LastName *string `json:"lastName,omitempty" xmlrpc:"lastName,omitempty"` + + // A count of + LayoutProfileCount *uint `json:"layoutProfileCount,omitempty" xmlrpc:"layoutProfileCount,omitempty"` + + // no documentation yet + LayoutProfiles []Layout_Profile `json:"layoutProfiles,omitempty" xmlrpc:"layoutProfiles,omitempty"` + + // The linked account integration mode + LinkedAccountIntegrationMode *string `json:"linkedAccountIntegrationMode,omitempty" xmlrpc:"linkedAccountIntegrationMode,omitempty"` + + // A user's locale. Locale holds user's language and region information. + Locale *Locale `json:"locale,omitempty" xmlrpc:"locale,omitempty"` + + // A portal user's associated [[SoftLayer_Locale|locale]] id. + LocaleId *int `json:"localeId,omitempty" xmlrpc:"localeId,omitempty"` + + // A count of a user's attempts to log into the SoftLayer customer portal. + LoginAttemptCount *uint `json:"loginAttemptCount,omitempty" xmlrpc:"loginAttemptCount,omitempty"` + + // A user's attempts to log into the SoftLayer customer portal. + LoginAttempts []User_Customer_Access_Authentication `json:"loginAttempts,omitempty" xmlrpc:"loginAttempts,omitempty"` + + // Determines if this portal user is managed by SAML federation. + ManagedByFederationFlag *bool `json:"managedByFederationFlag,omitempty" xmlrpc:"managedByFederationFlag,omitempty"` + + // Determines if this portal user is managed by IBMid federation. + ManagedByOpenIdConnectFlag *bool `json:"managedByOpenIdConnectFlag,omitempty" xmlrpc:"managedByOpenIdConnectFlag,omitempty"` + + // A count of a portal user's associated mobile device profiles. + MobileDeviceCount *uint `json:"mobileDeviceCount,omitempty" xmlrpc:"mobileDeviceCount,omitempty"` + + // A portal user's associated mobile device profiles. + MobileDevices []User_Customer_MobileDevice `json:"mobileDevices,omitempty" xmlrpc:"mobileDevices,omitempty"` + + // The date a portal user's record was last modified. + ModifyDate *Time `json:"modifyDate,omitempty" xmlrpc:"modifyDate,omitempty"` + + // A portal user's MSN address. + Msn *string `json:"msn,omitempty" xmlrpc:"msn,omitempty"` + + // no documentation yet + NameId *string `json:"nameId,omitempty" xmlrpc:"nameId,omitempty"` + + // A count of notification subscription records for the user. + NotificationSubscriberCount *uint `json:"notificationSubscriberCount,omitempty" xmlrpc:"notificationSubscriberCount,omitempty"` + + // Notification subscription records for the user. + NotificationSubscribers []Notification_Subscriber `json:"notificationSubscribers,omitempty" xmlrpc:"notificationSubscribers,omitempty"` + + // A portal user's office phone number. + OfficePhone *string `json:"officePhone,omitempty" xmlrpc:"officePhone,omitempty"` + + // The BlueID username associated to with this user, if the account is managed by OpenIDConnect / BlueID federation + OpenIdConnectUserName *string `json:"openIdConnectUserName,omitempty" xmlrpc:"openIdConnectUserName,omitempty"` + + // A count of an user's associated open tickets. + OpenTicketCount *uint `json:"openTicketCount,omitempty" xmlrpc:"openTicketCount,omitempty"` + + // An user's associated open tickets. + OpenTickets []Ticket `json:"openTickets,omitempty" xmlrpc:"openTickets,omitempty"` + + // A count of a portal user's vpn accessible subnets. + OverrideCount *uint `json:"overrideCount,omitempty" xmlrpc:"overrideCount,omitempty"` + + // A portal user's vpn accessible subnets. + Overrides []Network_Service_Vpn_Overrides `json:"overrides,omitempty" xmlrpc:"overrides,omitempty"` + + // A portal user's parent user. If a SoftLayer_User_Customer has a null parentId property then it doesn't have a parent user. + Parent *User_Customer `json:"parent,omitempty" xmlrpc:"parent,omitempty"` + + // A portal user's parent user. Id a users parentId is ''null'' then it doesn't have a parent user in the customer portal. + ParentId *int `json:"parentId,omitempty" xmlrpc:"parentId,omitempty"` + + // The expiration date for the user's password + PasswordExpireDate *Time `json:"passwordExpireDate,omitempty" xmlrpc:"passwordExpireDate,omitempty"` + + // A count of a portal user's permissions. These permissions control that user's access to functions within the SoftLayer customer portal and API. + PermissionCount *uint `json:"permissionCount,omitempty" xmlrpc:"permissionCount,omitempty"` + + // no documentation yet + PermissionSystemVersion *int `json:"permissionSystemVersion,omitempty" xmlrpc:"permissionSystemVersion,omitempty"` + + // A portal user's permissions. These permissions control that user's access to functions within the SoftLayer customer portal and API. + Permissions []User_Customer_CustomerPermission_Permission `json:"permissions,omitempty" xmlrpc:"permissions,omitempty"` + + // The postal code of the mailing address belonging to an portal user. + PostalCode *string `json:"postalCode,omitempty" xmlrpc:"postalCode,omitempty"` + + // Whether a portal user may connect to the SoftLayer private network via PPTP VPN or not. + PptpVpnAllowedFlag *bool `json:"pptpVpnAllowedFlag,omitempty" xmlrpc:"pptpVpnAllowedFlag,omitempty"` + + // A count of + PreferenceCount *uint `json:"preferenceCount,omitempty" xmlrpc:"preferenceCount,omitempty"` + + // no documentation yet + Preferences []User_Preference `json:"preferences,omitempty" xmlrpc:"preferences,omitempty"` + + // A count of + RoleCount *uint `json:"roleCount,omitempty" xmlrpc:"roleCount,omitempty"` + + // no documentation yet + Roles []User_Permission_Role `json:"roles,omitempty" xmlrpc:"roles,omitempty"` + + // no documentation yet + SalesforceUserLink *User_Customer_Link `json:"salesforceUserLink,omitempty" xmlrpc:"salesforceUserLink,omitempty"` + + // no documentation yet + SavedId *string `json:"savedId,omitempty" xmlrpc:"savedId,omitempty"` + + // Whether a user may change their security options (IP restriction, password expiration, or enforce security questions on login) which were pre-selected by their account's master user. + SecondaryLoginManagementFlag *bool `json:"secondaryLoginManagementFlag,omitempty" xmlrpc:"secondaryLoginManagementFlag,omitempty"` + + // Whether a user is required to answer a security question when logging into the SoftLayer customer portal. + SecondaryLoginRequiredFlag *bool `json:"secondaryLoginRequiredFlag,omitempty" xmlrpc:"secondaryLoginRequiredFlag,omitempty"` + + // The date when a user's password was last updated. + SecondaryPasswordModifyDate *Time `json:"secondaryPasswordModifyDate,omitempty" xmlrpc:"secondaryPasswordModifyDate,omitempty"` + + // The number of days for which a user's password is active. + SecondaryPasswordTimeoutDays *int `json:"secondaryPasswordTimeoutDays,omitempty" xmlrpc:"secondaryPasswordTimeoutDays,omitempty"` + + // A count of a portal user's security question answers. Some portal users may not have security answers or may not be configured to require answering a security question on login. + SecurityAnswerCount *uint `json:"securityAnswerCount,omitempty" xmlrpc:"securityAnswerCount,omitempty"` + + // A portal user's security question answers. Some portal users may not have security answers or may not be configured to require answering a security question on login. + SecurityAnswers []User_Customer_Security_Answer `json:"securityAnswers,omitempty" xmlrpc:"securityAnswers,omitempty"` + + // A phone number that can receive SMS text messages for this portal user. + Sms *string `json:"sms,omitempty" xmlrpc:"sms,omitempty"` + + // Whether a portal user may connect to the SoftLayer private network via SSL VPN or not. + SslVpnAllowedFlag *bool `json:"sslVpnAllowedFlag,omitempty" xmlrpc:"sslVpnAllowedFlag,omitempty"` + + // A two-letter abbreviation of the state in the mailing address belonging to a portal user. If a user does not reside in a province then this is typically blank. + State *string `json:"state,omitempty" xmlrpc:"state,omitempty"` + + // The date a portal users record's last status change. + StatusDate *Time `json:"statusDate,omitempty" xmlrpc:"statusDate,omitempty"` + + // A count of a user's notification subscription records. + SubscriberCount *uint `json:"subscriberCount,omitempty" xmlrpc:"subscriberCount,omitempty"` + + // A user's notification subscription records. + Subscribers []Notification_User_Subscriber `json:"subscribers,omitempty" xmlrpc:"subscribers,omitempty"` + + // A count of a user's successful attempts to log into the SoftLayer customer portal. + SuccessfulLoginCount *uint `json:"successfulLoginCount,omitempty" xmlrpc:"successfulLoginCount,omitempty"` + + // A user's successful attempts to log into the SoftLayer customer portal. + SuccessfulLogins []User_Customer_Access_Authentication `json:"successfulLogins,omitempty" xmlrpc:"successfulLogins,omitempty"` + + // Whether or not a user is required to acknowledge the support policy for portal access. + SupportPolicyAcknowledgementRequiredFlag *int `json:"supportPolicyAcknowledgementRequiredFlag,omitempty" xmlrpc:"supportPolicyAcknowledgementRequiredFlag,omitempty"` + + // A count of the surveys that a user has taken in the SoftLayer customer portal. + SurveyCount *uint `json:"surveyCount,omitempty" xmlrpc:"surveyCount,omitempty"` + + // Whether or not a user must take a brief survey the next time they log into the SoftLayer customer portal. + SurveyRequiredFlag *bool `json:"surveyRequiredFlag,omitempty" xmlrpc:"surveyRequiredFlag,omitempty"` + + // The surveys that a user has taken in the SoftLayer customer portal. + Surveys []Survey `json:"surveys,omitempty" xmlrpc:"surveys,omitempty"` + + // A count of an user's associated tickets. + TicketCount *uint `json:"ticketCount,omitempty" xmlrpc:"ticketCount,omitempty"` + + // An user's associated tickets. + Tickets []Ticket `json:"tickets,omitempty" xmlrpc:"tickets,omitempty"` + + // A portal user's time zone. + Timezone *Locale_Timezone `json:"timezone,omitempty" xmlrpc:"timezone,omitempty"` + + // A portal user's time zone. + TimezoneId *int `json:"timezoneId,omitempty" xmlrpc:"timezoneId,omitempty"` + + // A count of a user's unsuccessful attempts to log into the SoftLayer customer portal. + UnsuccessfulLoginCount *uint `json:"unsuccessfulLoginCount,omitempty" xmlrpc:"unsuccessfulLoginCount,omitempty"` + + // A user's unsuccessful attempts to log into the SoftLayer customer portal. + UnsuccessfulLogins []User_Customer_Access_Authentication `json:"unsuccessfulLogins,omitempty" xmlrpc:"unsuccessfulLogins,omitempty"` + + // A count of + UserLinkCount *uint `json:"userLinkCount,omitempty" xmlrpc:"userLinkCount,omitempty"` + + // no documentation yet + UserLinks []User_Customer_Link `json:"userLinks,omitempty" xmlrpc:"userLinks,omitempty"` + + // A portal user's status, which controls overall access to the SoftLayer customer portal and VPN access to the private network. + UserStatus *User_Customer_Status `json:"userStatus,omitempty" xmlrpc:"userStatus,omitempty"` + + // A number reflecting the state of a portal user. + UserStatusId *int `json:"userStatusId,omitempty" xmlrpc:"userStatusId,omitempty"` + + // A portal user's username. + Username *string `json:"username,omitempty" xmlrpc:"username,omitempty"` + + // The verification code from Bluemix BSS to save in the invitation + VerificationCode *string `json:"verificationCode,omitempty" xmlrpc:"verificationCode,omitempty"` + + // A count of a portal user's accessible CloudLayer Computing Instances. These permissions control which CloudLayer Computing Instances a user has access to in the SoftLayer customer portal. + VirtualGuestCount *uint `json:"virtualGuestCount,omitempty" xmlrpc:"virtualGuestCount,omitempty"` + + // A portal user's accessible CloudLayer Computing Instances. These permissions control which CloudLayer Computing Instances a user has access to in the SoftLayer customer portal. + VirtualGuests []Virtual_Guest `json:"virtualGuests,omitempty" xmlrpc:"virtualGuests,omitempty"` + + // Whether a portal user vpn subnets have been manual configured. + VpnManualConfig *bool `json:"vpnManualConfig,omitempty" xmlrpc:"vpnManualConfig,omitempty"` + + // A portal user's Yahoo! Chat name. + Yahoo *string `json:"yahoo,omitempty" xmlrpc:"yahoo,omitempty"` +} + +// SoftLayer_User_Customer_Access_Authentication models a single attempt to log into the SoftLayer customer portal. A SoftLayer_User_Customer_Access_Authentication record is created every time a user attempts to log into the portal. Use this service to audit your users' portal activity and diagnose potential security breaches of your SoftLayer portal accounts. +// +// Unsuccessful login attempts can be caused by an incorrect password, failing to answer or not answering a login security question if the user has them configured, or attempting to log in from an IP address outside of the user's IP address restriction list. +// +// SoftLayer employees periodically log into our customer portal as users to diagnose portal issues, verify settings and configuration, and to perform maintenance on your account or services. SoftLayer employees only log into customer accounts from the following IP ranges: +// * 2607:f0d0:1000::/48 +// * 2607:f0d0:2000::/48 +// * 2607:f0d0:3000::/48 +// * 66.228.118.67/32 +// * 66.228.118.86/32 +type User_Customer_Access_Authentication struct { + Entity + + // The date of an attempt to log into the SoftLayer customer portal. + CreateDate *Time `json:"createDate,omitempty" xmlrpc:"createDate,omitempty"` + + // The IP address of the user who attempted to log into the SoftLayer customer portal. + IpAddress *string `json:"ipAddress,omitempty" xmlrpc:"ipAddress,omitempty"` + + // Whether an attempt to log into the SoftLayer customer portal was successful or not. + SuccessFlag *bool `json:"successFlag,omitempty" xmlrpc:"successFlag,omitempty"` + + // The user who has attempted to log into the SoftLayer customer portal. + User *User_Customer `json:"user,omitempty" xmlrpc:"user,omitempty"` + + // The internal identifier of the user who attempted to log into the SoftLayer customer portal. + UserId *int `json:"userId,omitempty" xmlrpc:"userId,omitempty"` + + // The username used when attempting to log into the SoftLayer customer portal + Username *string `json:"username,omitempty" xmlrpc:"username,omitempty"` +} + +// The SoftLayer_User_Customer_AdditionalEmail data type contains the additional email for use in ticket update notifications. +type User_Customer_AdditionalEmail struct { + Entity + + // Email assigned to user for use in ticket update notifications. + Email *string `json:"email,omitempty" xmlrpc:"email,omitempty"` + + // The portal user that owns this additional email address. + User *User_Customer `json:"user,omitempty" xmlrpc:"user,omitempty"` + + // An internal identifier for the portal user who this additional email belongs to. + UserId *int `json:"userId,omitempty" xmlrpc:"userId,omitempty"` +} + +// The SoftLayer_User_Customer_ApiAuthentication type contains user's authentication key(s). +type User_Customer_ApiAuthentication struct { + Entity + + // The user's authentication key for API access. + AuthenticationKey *string `json:"authenticationKey,omitempty" xmlrpc:"authenticationKey,omitempty"` + + // The user's API authentication identifying number. + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // The IP addresses or IP ranges from which this user may access the SoftLayer API. Specify subnets in CIDR format and separate multiple addresses and subnets by commas. You may combine IPv4 and IPv6 addresses and subnets, for example: 192.168.0.0/16,fe80:021b::0/64. + IpAddressRestriction *string `json:"ipAddressRestriction,omitempty" xmlrpc:"ipAddressRestriction,omitempty"` + + // The user's authentication key modification date. + TimestampKey *int `json:"timestampKey,omitempty" xmlrpc:"timestampKey,omitempty"` + + // The user who owns the api authentication key. + User *User_Customer `json:"user,omitempty" xmlrpc:"user,omitempty"` + + // The user's identifying number. + UserId *int `json:"userId,omitempty" xmlrpc:"userId,omitempty"` +} + +// Each SoftLayer portal account is assigned a series of permissions that determine what access the user has to functions within the SoftLayer customer portal. This status is reflected in the SoftLayer_User_Customer_Status data type. Permissions differ from user status in that user status applies globally to the portal while user permissions are applied to specific portal functions. +type User_Customer_CustomerPermission_Permission struct { + Entity + + // A user permission's short name. + Key *string `json:"key,omitempty" xmlrpc:"key,omitempty"` + + // A user permission's key name. + KeyName *string `json:"keyName,omitempty" xmlrpc:"keyName,omitempty"` + + // A user permission's name. + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` +} + +// The SoftLayer_User_Customer_External_Binding data type contains general information for a single external binding. This includes the 3rd party vendor, type of binding, and a unique identifier and password that is used to authenticate against the 3rd party service. +type User_Customer_External_Binding struct { + User_External_Binding + + // The SoftLayer user that the external authentication binding belongs to. + User *User_Customer `json:"user,omitempty" xmlrpc:"user,omitempty"` +} + +// The SoftLayer_User_Customer_External_Binding_Attribute data type contains the value for a single attribute associated with an external binding. External binding attributes contain additional information about an external binding. An attribute can be generic or specific to a 3rd party vendor. For example these attributes relate to Verisign: +// *Credential Type +// *Credential State +// *Credential Expiration Date +// *Credential Last Update Date +type User_Customer_External_Binding_Attribute struct { + User_External_Binding_Attribute +} + +// The SoftLayer_User_Customer_External_Binding_Phone data type contains information about an external binding that uses a phone call, SMS or mobile app for 2 form factor authentication. The external binding information is used when a SoftLayer customer logs into the SoftLayer customer portal or VPN to authenticate them against a trusted 3rd party, in this case using a mobile phone, mobile phone application or land-line phone. +// +// SoftLayer users with an active external binding will be prohibited from using the API for security reasons. +type User_Customer_External_Binding_Phone struct { + User_Customer_External_Binding + + // The current external binding status. It can be "ACTIVE" or "BLOCKED". + BindingStatus *string `json:"bindingStatus,omitempty" xmlrpc:"bindingStatus,omitempty"` + + // no documentation yet + PinLength *string `json:"pinLength,omitempty" xmlrpc:"pinLength,omitempty"` +} + +// The SoftLayer_User_Customer_External_Binding_Totp data type contains information about a single time-based one time password external binding. The external binding information is used when a SoftLayer customer logs into the SoftLayer customer portal to authenticate them. +// +// The information provided by this external binding data type includes: +// * The type of credential +// * The current state of the credential +// ** Active +// ** Inactive +// +// +// SoftLayer users with an active external binding will be prohibited from using the API for security reasons. +type User_Customer_External_Binding_Totp struct { + User_Customer_External_Binding +} + +// The SoftLayer_User_Customer_External_Binding_Type data type contains information relating to a type of external authentication binding. It contains a user friendly name as well as a unique key name. +type User_Customer_External_Binding_Type struct { + User_External_Binding_Type +} + +// The SoftLayer_User_Customer_External_Binding_Vendor data type contains information for a single external binding vendor. This information includes a user friendly vendor name, a unique version of the vendor name, and a unique internal identifier that can be used when creating a new external binding. +type User_Customer_External_Binding_Vendor struct { + User_External_Binding_Vendor +} + +// The SoftLayer_User_Customer_External_Binding_Verisign data type contains information about a single VeriSign external binding. The external binding information is used when a SoftLayer customer logs into the SoftLayer customer portal to authenticate them against a 3rd party, in this case VeriSign. +// +// The information provided by the VeriSign external binding data type includes: +// * The type of credential +// * The current state of the credential +// ** Enabled +// ** Disabled +// ** Locked +// * The credential's expiration date +// * The last time the credential was updated +// +// +// SoftLayer users with an active external binding will be prohibited from using the API for security reasons. +type User_Customer_External_Binding_Verisign struct { + User_Customer_External_Binding + + // The date that a VeriSign credential expires. + CredentialExpirationDate *string `json:"credentialExpirationDate,omitempty" xmlrpc:"credentialExpirationDate,omitempty"` + + // The last time a VeriSign credential was updated. + CredentialLastUpdateDate *string `json:"credentialLastUpdateDate,omitempty" xmlrpc:"credentialLastUpdateDate,omitempty"` + + // The current state of a VeriSign credential. This can be 'Enabled', 'Disabled', or 'Locked'. + CredentialState *string `json:"credentialState,omitempty" xmlrpc:"credentialState,omitempty"` + + // The type of VeriSign credential. This can be either 'Hardware' or 'Software'. + CredentialType *string `json:"credentialType,omitempty" xmlrpc:"credentialType,omitempty"` +} + +// no documentation yet +type User_Customer_Invitation struct { + Entity + + // no documentation yet + Code *string `json:"code,omitempty" xmlrpc:"code,omitempty"` + + // no documentation yet + CreateDate *Time `json:"createDate,omitempty" xmlrpc:"createDate,omitempty"` + + // no documentation yet + CreatorId *int `json:"creatorId,omitempty" xmlrpc:"creatorId,omitempty"` + + // no documentation yet + CreatorType *string `json:"creatorType,omitempty" xmlrpc:"creatorType,omitempty"` + + // no documentation yet + Email *string `json:"email,omitempty" xmlrpc:"email,omitempty"` + + // no documentation yet + ExistingBlueIdFlag *int `json:"existingBlueIdFlag,omitempty" xmlrpc:"existingBlueIdFlag,omitempty"` + + // no documentation yet + ExpirationDate *Time `json:"expirationDate,omitempty" xmlrpc:"expirationDate,omitempty"` + + // no documentation yet + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // no documentation yet + IsFederatedEmailDomainFlag *int `json:"isFederatedEmailDomainFlag,omitempty" xmlrpc:"isFederatedEmailDomainFlag,omitempty"` + + // no documentation yet + ModifyDate *Time `json:"modifyDate,omitempty" xmlrpc:"modifyDate,omitempty"` + + // no documentation yet + ResponseDate *Time `json:"responseDate,omitempty" xmlrpc:"responseDate,omitempty"` + + // no documentation yet + StatusId *int `json:"statusId,omitempty" xmlrpc:"statusId,omitempty"` + + // no documentation yet + User *User_Customer `json:"user,omitempty" xmlrpc:"user,omitempty"` + + // no documentation yet + UserId *int `json:"userId,omitempty" xmlrpc:"userId,omitempty"` +} + +// no documentation yet +type User_Customer_Link struct { + Entity + + // no documentation yet + CreateDate *Time `json:"createDate,omitempty" xmlrpc:"createDate,omitempty"` + + // no documentation yet + DefaultFlag *int `json:"defaultFlag,omitempty" xmlrpc:"defaultFlag,omitempty"` + + // no documentation yet + DestinationUserAlphanumericId *string `json:"destinationUserAlphanumericId,omitempty" xmlrpc:"destinationUserAlphanumericId,omitempty"` + + // no documentation yet + DestinationUserId *int `json:"destinationUserId,omitempty" xmlrpc:"destinationUserId,omitempty"` + + // no documentation yet + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // no documentation yet + ServiceProvider *Service_Provider `json:"serviceProvider,omitempty" xmlrpc:"serviceProvider,omitempty"` + + // no documentation yet + ServiceProviderId *int `json:"serviceProviderId,omitempty" xmlrpc:"serviceProviderId,omitempty"` + + // no documentation yet + User *User_Customer `json:"user,omitempty" xmlrpc:"user,omitempty"` + + // no documentation yet + UserId *int `json:"userId,omitempty" xmlrpc:"userId,omitempty"` +} + +// no documentation yet +type User_Customer_Link_ThePlanet struct { + User_Customer_Link +} + +// This class represents a mobile device belonging to a user. The device can be a phone, tablet, or possibly even some Android based net books. The purpose is to tie just enough info with the device and the user to enable push notifications through non-softlayer entities (Google, Apple, RIM). +type User_Customer_MobileDevice struct { + Entity + + // A count of notification subscriptions available to a mobile device. + AvailablePushNotificationSubscriptionCount *uint `json:"availablePushNotificationSubscriptionCount,omitempty" xmlrpc:"availablePushNotificationSubscriptionCount,omitempty"` + + // Notification subscriptions available to a mobile device. + AvailablePushNotificationSubscriptions []Notification `json:"availablePushNotificationSubscriptions,omitempty" xmlrpc:"availablePushNotificationSubscriptions,omitempty"` + + // Created date for the record. + CreateDate *Time `json:"createDate,omitempty" xmlrpc:"createDate,omitempty"` + + // The user this mobile device belongs to. + Customer *User_Customer `json:"customer,omitempty" xmlrpc:"customer,omitempty"` + + // The device resolution formatted width x height + DisplayResolutionXxY *string `json:"displayResolutionXxY,omitempty" xmlrpc:"displayResolutionXxY,omitempty"` + + // Record Identifier + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // Device type identifier. + MobileDeviceTypeId *int `json:"mobileDeviceTypeId,omitempty" xmlrpc:"mobileDeviceTypeId,omitempty"` + + // Mobile OS identifier. + MobileOperatingSystemId *int `json:"mobileOperatingSystemId,omitempty" xmlrpc:"mobileOperatingSystemId,omitempty"` + + // Device model number + ModelNumber *string `json:"modelNumber,omitempty" xmlrpc:"modelNumber,omitempty"` + + // Last modify date for the record. + ModifyDate *Time `json:"modifyDate,omitempty" xmlrpc:"modifyDate,omitempty"` + + // The name of the device the user is using. + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` + + // The operating system this device is using + OperatingSystem *User_Customer_MobileDevice_OperatingSystem `json:"operatingSystem,omitempty" xmlrpc:"operatingSystem,omitempty"` + + // Device phone number + PhoneNumber *string `json:"phoneNumber,omitempty" xmlrpc:"phoneNumber,omitempty"` + + // A count of notification subscriptions attached to a mobile device. + PushNotificationSubscriptionCount *uint `json:"pushNotificationSubscriptionCount,omitempty" xmlrpc:"pushNotificationSubscriptionCount,omitempty"` + + // Notification subscriptions attached to a mobile device. + PushNotificationSubscriptions []Notification_User_Subscriber `json:"pushNotificationSubscriptions,omitempty" xmlrpc:"pushNotificationSubscriptions,omitempty"` + + // Device serial number + SerialNumber *string `json:"serialNumber,omitempty" xmlrpc:"serialNumber,omitempty"` + + // The token that is provided by the mobile device. + Token *string `json:"token,omitempty" xmlrpc:"token,omitempty"` + + // The type of device this user is using + Type *User_Customer_MobileDevice_Type `json:"type,omitempty" xmlrpc:"type,omitempty"` + + // User Identifier + UserId *int `json:"userId,omitempty" xmlrpc:"userId,omitempty"` +} + +// This class represents the mobile operating system installed on a user's registered mobile device. It assists us when determining the how to get a push notification to the user. +type User_Customer_MobileDevice_OperatingSystem struct { + Entity + + // Build revision number of the operating system. + BuildVersion *int `json:"buildVersion,omitempty" xmlrpc:"buildVersion,omitempty"` + + // Create date of the record. + CreateDate *Time `json:"createDate,omitempty" xmlrpc:"createDate,omitempty"` + + // Description of the mobile operating system.. + Description *string `json:"description,omitempty" xmlrpc:"description,omitempty"` + + // Indentifier for the record. + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // Major revision number of the operating system. + MajorVersion *int `json:"majorVersion,omitempty" xmlrpc:"majorVersion,omitempty"` + + // Minor revision number of the operating system. + MinorVersion *int `json:"minorVersion,omitempty" xmlrpc:"minorVersion,omitempty"` + + // Modify date of the record. + ModifyDate *Time `json:"modifyDate,omitempty" xmlrpc:"modifyDate,omitempty"` + + // Name of the mobile operating system. + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` +} + +// Describes a supported class of mobile device. In this the word class is used in the context of classes of consumer electronic devices, the two most prominent examples being mobile phones and tablets. +type User_Customer_MobileDevice_Type struct { + Entity + + // Record create date. + CreateDate *Time `json:"createDate,omitempty" xmlrpc:"createDate,omitempty"` + + // A description of the device + Description *string `json:"description,omitempty" xmlrpc:"description,omitempty"` + + // Indentifier for record. + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // Last modify date for record. + ModifyDate *Time `json:"modifyDate,omitempty" xmlrpc:"modifyDate,omitempty"` + + // The common name of the device. + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` +} + +// The Customer_Notification_Hardware object stores links between customers and the hardware devices they wish to monitor. This link is not enough, the user must be sure to also create SoftLayer_Network_Monitor_Version1_Query_Host instance with the response action set to "notify users" in order for the users linked to that hardware object to be notified on failure. +type User_Customer_Notification_Hardware struct { + Entity + + // The hardware object that will be monitored. + Hardware *Hardware `json:"hardware,omitempty" xmlrpc:"hardware,omitempty"` + + // The ID of the Hardware object that is to be monitored. + HardwareId *int `json:"hardwareId,omitempty" xmlrpc:"hardwareId,omitempty"` + + // The unique identifier for this object + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // The user that will be notified when the associated hardware object fails a monitoring instance. + User *User_Customer `json:"user,omitempty" xmlrpc:"user,omitempty"` + + // The ID of the SoftLayer_User_Customer object that represents the user to be notified on monitoring failure. + UserId *int `json:"userId,omitempty" xmlrpc:"userId,omitempty"` +} + +// The SoftLayer_User_Customer_Notification_Virtual_Guest object stores links between customers and the virtual guests they wish to monitor. This link is not enough, the user must be sure to also create SoftLayer_Network_Monitor_Version1_Query_Host instance with the response action set to "notify users" in order for the users linked to that hardware object to be notified on failure. +type User_Customer_Notification_Virtual_Guest struct { + Entity + + // The virtual guest object that will be monitored. + Guest *Virtual_Guest `json:"guest,omitempty" xmlrpc:"guest,omitempty"` + + // The ID of the virtual guest object that is to be monitored. + GuestId *int `json:"guestId,omitempty" xmlrpc:"guestId,omitempty"` + + // The unique identifier for this object + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // The user that will be notified when the associated virtual guest object fails a monitoring instance. + User *User_Customer `json:"user,omitempty" xmlrpc:"user,omitempty"` + + // The ID of the SoftLayer_User_Customer object that represents the user to be notified on monitoring failure. + UserId *int `json:"userId,omitempty" xmlrpc:"userId,omitempty"` +} + +// no documentation yet +type User_Customer_OpenIdConnect struct { + User_Customer +} + +// no documentation yet +type User_Customer_Prospect struct { + Entity + + // no documentation yet + Account *Account `json:"account,omitempty" xmlrpc:"account,omitempty"` + + // A count of + AssignedEmployeeCount *uint `json:"assignedEmployeeCount,omitempty" xmlrpc:"assignedEmployeeCount,omitempty"` + + // no documentation yet + AssignedEmployees []User_Employee `json:"assignedEmployees,omitempty" xmlrpc:"assignedEmployees,omitempty"` + + // A count of + QuoteCount *uint `json:"quoteCount,omitempty" xmlrpc:"quoteCount,omitempty"` + + // no documentation yet + Quotes []Billing_Order_Quote `json:"quotes,omitempty" xmlrpc:"quotes,omitempty"` + + // no documentation yet + Type *User_Customer_Prospect_Type `json:"type,omitempty" xmlrpc:"type,omitempty"` +} + +// Contains user information for Service Provider Enrollment. +type User_Customer_Prospect_ServiceProvider_EnrollRequest struct { + Entity + + // accountId of existing SoftLayer Customer + AccountId *int `json:"accountId,omitempty" xmlrpc:"accountId,omitempty"` + + // Service provider address1 + Address1 *string `json:"address1,omitempty" xmlrpc:"address1,omitempty"` + + // Service provider address2 + Address2 *string `json:"address2,omitempty" xmlrpc:"address2,omitempty"` + + // Credit card account number + CardAccountNumber *string `json:"cardAccountNumber,omitempty" xmlrpc:"cardAccountNumber,omitempty"` + + // Credit card expiration month + CardExpirationMonth *string `json:"cardExpirationMonth,omitempty" xmlrpc:"cardExpirationMonth,omitempty"` + + // Credit card expiration year + CardExpirationYear *string `json:"cardExpirationYear,omitempty" xmlrpc:"cardExpirationYear,omitempty"` + + // Type of credit card being used + CardType *string `json:"cardType,omitempty" xmlrpc:"cardType,omitempty"` + + // Credit card verification number + CardVerificationNumber *string `json:"cardVerificationNumber,omitempty" xmlrpc:"cardVerificationNumber,omitempty"` + + // Service provider city + City *string `json:"city,omitempty" xmlrpc:"city,omitempty"` + + // Service provider company name + CompanyName *string `json:"companyName,omitempty" xmlrpc:"companyName,omitempty"` + + // Catalyst company types. + CompanyType *Catalyst_Company_Type `json:"companyType,omitempty" xmlrpc:"companyType,omitempty"` + + // Id of the company type which best describes applicant's company + CompanyTypeId *int `json:"companyTypeId,omitempty" xmlrpc:"companyTypeId,omitempty"` + + // Service provider company url + CompanyUrl *string `json:"companyUrl,omitempty" xmlrpc:"companyUrl,omitempty"` + + // Service provider contact's email + ContactEmail *string `json:"contactEmail,omitempty" xmlrpc:"contactEmail,omitempty"` + + // Service provider contact's first name + ContactFirstName *string `json:"contactFirstName,omitempty" xmlrpc:"contactFirstName,omitempty"` + + // Service provider contact's last name + ContactLastName *string `json:"contactLastName,omitempty" xmlrpc:"contactLastName,omitempty"` + + // Service provider contact's Phone + ContactPhone *string `json:"contactPhone,omitempty" xmlrpc:"contactPhone,omitempty"` + + // Service provider country + Country *string `json:"country,omitempty" xmlrpc:"country,omitempty"` + + // Customer Prospect id + CustomerProspectId *int `json:"customerProspectId,omitempty" xmlrpc:"customerProspectId,omitempty"` + + // Id of the device fingerprint + DeviceFingerprintId *string `json:"deviceFingerprintId,omitempty" xmlrpc:"deviceFingerprintId,omitempty"` + + // Service provider email + Email *string `json:"email,omitempty" xmlrpc:"email,omitempty"` + + // Indicates if customer has an existing SoftLayer account + ExistingCustomerFlag *bool `json:"existingCustomerFlag,omitempty" xmlrpc:"existingCustomerFlag,omitempty"` + + // Service provider first name + FirstName *string `json:"firstName,omitempty" xmlrpc:"firstName,omitempty"` + + // IBM partner world id + IbmPartnerWorldId *string `json:"ibmPartnerWorldId,omitempty" xmlrpc:"ibmPartnerWorldId,omitempty"` + + // Indicates if the customer is IBM partner world member + IbmPartnerWorldMemberFlag *bool `json:"ibmPartnerWorldMemberFlag,omitempty" xmlrpc:"ibmPartnerWorldMemberFlag,omitempty"` + + // Service provider last name + LastName *string `json:"lastName,omitempty" xmlrpc:"lastName,omitempty"` + + // Flag indicating whether or not applicant acknowledged MSA + MasterAgreementCompleteFlag *bool `json:"masterAgreementCompleteFlag,omitempty" xmlrpc:"masterAgreementCompleteFlag,omitempty"` + + // Service provider office phone + OfficePhone *string `json:"officePhone,omitempty" xmlrpc:"officePhone,omitempty"` + + // Service provider postalCode + PostalCode *string `json:"postalCode,omitempty" xmlrpc:"postalCode,omitempty"` + + // Flag indicating whether or not applicant acknowledged service provider addendum + ServiceProviderAddendumFlag *bool `json:"serviceProviderAddendumFlag,omitempty" xmlrpc:"serviceProviderAddendumFlag,omitempty"` + + // Service provider state + State *string `json:"state,omitempty" xmlrpc:"state,omitempty"` + + // Survey responses + SurveyResponses []Survey_Response `json:"surveyResponses,omitempty" xmlrpc:"surveyResponses,omitempty"` + + // Applicant's VAT id, if one exists + VatId *string `json:"vatId,omitempty" xmlrpc:"vatId,omitempty"` +} + +// no documentation yet +type User_Customer_Prospect_Type struct { + Entity + + // no documentation yet + CreateDate *Time `json:"createDate,omitempty" xmlrpc:"createDate,omitempty"` + + // no documentation yet + Description *string `json:"description,omitempty" xmlrpc:"description,omitempty"` + + // no documentation yet + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // no documentation yet + KeyName *string `json:"keyName,omitempty" xmlrpc:"keyName,omitempty"` + + // no documentation yet + ModifyDate *Time `json:"modifyDate,omitempty" xmlrpc:"modifyDate,omitempty"` + + // no documentation yet + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` +} + +// The SoftLayer_User_Customer_Security_Answer type contains user's answers to security questions. +type User_Customer_Security_Answer struct { + Entity + + // A user's answer. + Answer *string `json:"answer,omitempty" xmlrpc:"answer,omitempty"` + + // A user's answer identifying number. + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // The question the security answer is associated with. + Question *User_Security_Question `json:"question,omitempty" xmlrpc:"question,omitempty"` + + // A user's question identifying number. + QuestionId *int `json:"questionId,omitempty" xmlrpc:"questionId,omitempty"` + + // The user who the security answer belongs to. + User *User_Customer `json:"user,omitempty" xmlrpc:"user,omitempty"` + + // A user's identifying number. + UserId *int `json:"userId,omitempty" xmlrpc:"userId,omitempty"` +} + +// Each SoftLayer portal account is assigned a status code that determines how it's treated in the customer portal. This status is reflected in the SoftLayer_User_Customer_Status data type. Status differs from user permissions in that user status applies globally to the portal while user permissions are applied to specific portal functions. +type User_Customer_Status struct { + Entity + + // A user's status identifying number. + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // A user's status keyname + KeyName *string `json:"keyName,omitempty" xmlrpc:"keyName,omitempty"` + + // A user's status. This can be either "Active" for user accounts with portal access, "Inactive" for users disabled by another portal user, "Disabled" for accounts turned off by SoftLayer, or "VPN Only" for user accounts with no access to the customer portal but VPN access to the private network. + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` +} + +// A SoftLayer_User_Employee models a single SoftLayer employee for the purposes of ticket updates created by SoftLayer employees. SoftLayer portal and API users cannot see individual employee names in ticket responses. SoftLayer employees can be assigned to customer accounts as a personal support representative. Employee names and email will be available if an employee is assigned to the account. +type User_Employee struct { + User_Interface + + // A count of + ActionCount *uint `json:"actionCount,omitempty" xmlrpc:"actionCount,omitempty"` + + // no documentation yet + Actions []User_Permission_Action `json:"actions,omitempty" xmlrpc:"actions,omitempty"` + + // no documentation yet + ChatTranscript []Ticket_Chat `json:"chatTranscript,omitempty" xmlrpc:"chatTranscript,omitempty"` + + // A count of + ChatTranscriptCount *uint `json:"chatTranscriptCount,omitempty" xmlrpc:"chatTranscriptCount,omitempty"` + + // no documentation yet + DisplayName *string `json:"displayName,omitempty" xmlrpc:"displayName,omitempty"` + + // A SoftLayer employee's email address. Email addresses are only visible to [[SoftLayer_Account|SoftLayer Accounts]] that are assigned to an employee + Email *string `json:"email,omitempty" xmlrpc:"email,omitempty"` + + // The department that a SoftLayer employee belongs to. + EmployeeDepartment *User_Employee_Department `json:"employeeDepartment,omitempty" xmlrpc:"employeeDepartment,omitempty"` + + // A SoftLayer employee's [[SoftLayer_User_Employee_Department|department]] id. + EmployeeDepartmentId *int `json:"employeeDepartmentId,omitempty" xmlrpc:"employeeDepartmentId,omitempty"` + + // A SoftLayer employee's first name. First names are only visible to [[SoftLayer_Account|SoftLayer Accounts]] that are assigned to an employee + FirstName *string `json:"firstName,omitempty" xmlrpc:"firstName,omitempty"` + + // A SoftLayer employee's last name. Last names are only visible to [[SoftLayer_Account|SoftLayer Accounts]] that are assigned to an employee + LastName *string `json:"lastName,omitempty" xmlrpc:"lastName,omitempty"` + + // A count of + LayoutProfileCount *uint `json:"layoutProfileCount,omitempty" xmlrpc:"layoutProfileCount,omitempty"` + + // no documentation yet + LayoutProfiles []Layout_Profile `json:"layoutProfiles,omitempty" xmlrpc:"layoutProfiles,omitempty"` + + // no documentation yet + MetricTrackingObject *Metric_Tracking_Object `json:"metricTrackingObject,omitempty" xmlrpc:"metricTrackingObject,omitempty"` + + // no documentation yet + OfficePhone *string `json:"officePhone,omitempty" xmlrpc:"officePhone,omitempty"` + + // A count of + RoleCount *uint `json:"roleCount,omitempty" xmlrpc:"roleCount,omitempty"` + + // no documentation yet + Roles []User_Permission_Role `json:"roles,omitempty" xmlrpc:"roles,omitempty"` + + // no documentation yet + TicketActivities []Ticket_Activity `json:"ticketActivities,omitempty" xmlrpc:"ticketActivities,omitempty"` + + // A count of + TicketActivityCount *uint `json:"ticketActivityCount,omitempty" xmlrpc:"ticketActivityCount,omitempty"` + + // A count of + TicketAttachmentReferenceCount *uint `json:"ticketAttachmentReferenceCount,omitempty" xmlrpc:"ticketAttachmentReferenceCount,omitempty"` + + // no documentation yet + TicketAttachmentReferences []Ticket_Attachment `json:"ticketAttachmentReferences,omitempty" xmlrpc:"ticketAttachmentReferences,omitempty"` + + // A representation of a SoftLayer employee's username. In all cases this should simply state "Employee". + Username *string `json:"username,omitempty" xmlrpc:"username,omitempty"` +} + +// SoftLayer_User_Employee_Department models a department within SoftLayer's internal employee hierarchy. Common departments include Support, Sales, Accounting, Development, Systems, and Networking. +type User_Employee_Department struct { + Entity + + // The name of one of SoftLayer's employee departments. + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` +} + +// The SoftLayer_User_External_Binding data type contains general information for a single external binding. This includes the 3rd party vendor, type of binding, and a unique identifier and password that is used to authenticate against the 3rd party service. +type User_External_Binding struct { + Entity + + // The flag that determines whether the external binding is active will be used for authentication or not. + Active *bool `json:"active,omitempty" xmlrpc:"active,omitempty"` + + // A count of attributes of an external authentication binding. + AttributeCount *uint `json:"attributeCount,omitempty" xmlrpc:"attributeCount,omitempty"` + + // Attributes of an external authentication binding. + Attributes []User_External_Binding_Attribute `json:"attributes,omitempty" xmlrpc:"attributes,omitempty"` + + // Information regarding the billing item for external authentication. + BillingItem *Billing_Item `json:"billingItem,omitempty" xmlrpc:"billingItem,omitempty"` + + // The date that the external authentication binding was created. + CreateDate *Time `json:"createDate,omitempty" xmlrpc:"createDate,omitempty"` + + // The identifier used to identify this binding to an external authentication source. + ExternalId *string `json:"externalId,omitempty" xmlrpc:"externalId,omitempty"` + + // An external authentication binding's internal identifier. + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // An optional note for identifying the external binding. + Note *string `json:"note,omitempty" xmlrpc:"note,omitempty"` + + // The password used to authenticate the external id at an external authentication source. + Password *string `json:"password,omitempty" xmlrpc:"password,omitempty"` + + // The type of external authentication binding. + Type *User_External_Binding_Type `json:"type,omitempty" xmlrpc:"type,omitempty"` + + // The [[SoftLayer_User_External_Binding_Type|type]] identifier of an external authentication binding. + TypeId *int `json:"typeId,omitempty" xmlrpc:"typeId,omitempty"` + + // An external authentication binding's associated [[SoftLayer_User_Customer|user account]] id. + UserId *int `json:"userId,omitempty" xmlrpc:"userId,omitempty"` + + // The vendor of an external authentication binding. + Vendor *User_External_Binding_Vendor `json:"vendor,omitempty" xmlrpc:"vendor,omitempty"` + + // The [[SoftLayer_User_External_Binding_Vendor|vendor]] identifier of an external authentication binding. + VendorId *int `json:"vendorId,omitempty" xmlrpc:"vendorId,omitempty"` +} + +// The SoftLayer_User_External_Binding_Attribute data type contains the value for a single attribute associated with an external binding. External binding attributes contain additional information about an external binding. An attribute can be generic or specific to a 3rd party vendor. For example these attributes relate to Verisign: +// *Credential Type +// *Credential State +// *Credential Expiration Date +// *Credential Last Update Date +type User_External_Binding_Attribute struct { + Entity + + // The external authentication binding an attribute belongs to. + ExternalBinding *User_External_Binding `json:"externalBinding,omitempty" xmlrpc:"externalBinding,omitempty"` + + // The value of an external binding attribute. + Value *string `json:"value,omitempty" xmlrpc:"value,omitempty"` +} + +// The SoftLayer_User_External_Binding_Type data type contains information relating to a type of external authentication binding. It contains a user friendly name as well as a unique key name. +type User_External_Binding_Type struct { + Entity + + // The unique name used to identify a type of external authentication binding. + KeyName *string `json:"keyName,omitempty" xmlrpc:"keyName,omitempty"` + + // The user friendly name of a type of external authentication binding. + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` +} + +// The SoftLayer_User_External_Binding_Vendor data type contains information for a single external binding vendor. This information includes a user friendly vendor name, a unique version of the vendor name, and a unique internal identifier that can be used when creating a new external binding. +type User_External_Binding_Vendor struct { + Entity + + // The unique identifier for an external binding vendor. + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // A unique version of the name property. + KeyName *string `json:"keyName,omitempty" xmlrpc:"keyName,omitempty"` + + // The user friendly name of an external binding vendor. + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` +} + +// A SoftLayer_User_Interface represents a generic user instance within the SoftLayer API. The SoftLayer API uses SoftLayer_User_Interfaces in cases where a user object could be one of many types of users. Currently the [[SoftLayer_User_Customer]] and [[SoftLayer_User_Employee]] classes are abstracted by this type. +type User_Interface struct { + Entity +} + +// no documentation yet +type User_Permission_Action struct { + Entity + + // no documentation yet + CreateDate *Time `json:"createDate,omitempty" xmlrpc:"createDate,omitempty"` + + // no documentation yet + Description *string `json:"description,omitempty" xmlrpc:"description,omitempty"` + + // no documentation yet + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // no documentation yet + Key *string `json:"key,omitempty" xmlrpc:"key,omitempty"` + + // no documentation yet + KeyName *string `json:"keyName,omitempty" xmlrpc:"keyName,omitempty"` + + // no documentation yet + ModifyDate *Time `json:"modifyDate,omitempty" xmlrpc:"modifyDate,omitempty"` + + // no documentation yet + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` +} + +// no documentation yet +type User_Permission_Group struct { + Entity + + // no documentation yet + Account *Account `json:"account,omitempty" xmlrpc:"account,omitempty"` + + // A permission groups associated [[SoftLayer_Account|customer account]] id. + AccountId *int `json:"accountId,omitempty" xmlrpc:"accountId,omitempty"` + + // A count of + ActionCount *uint `json:"actionCount,omitempty" xmlrpc:"actionCount,omitempty"` + + // no documentation yet + Actions []User_Permission_Action `json:"actions,omitempty" xmlrpc:"actions,omitempty"` + + // The date the permission group record was created. + CreateDate *Time `json:"createDate,omitempty" xmlrpc:"createDate,omitempty"` + + // The description of the permission group. + Description *string `json:"description,omitempty" xmlrpc:"description,omitempty"` + + // The date the temporary group will be destroyed. + ExpirationDate *Time `json:"expirationDate,omitempty" xmlrpc:"expirationDate,omitempty"` + + // A permission groups internal identifying number. + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // The date the permission group record was last modified. + ModifyDate *Time `json:"modifyDate,omitempty" xmlrpc:"modifyDate,omitempty"` + + // The name of the permission group. + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` + + // A count of + RoleCount *uint `json:"roleCount,omitempty" xmlrpc:"roleCount,omitempty"` + + // no documentation yet + Roles []User_Permission_Role `json:"roles,omitempty" xmlrpc:"roles,omitempty"` + + // The type of the permission group. + Type *User_Permission_Group_Type `json:"type,omitempty" xmlrpc:"type,omitempty"` + + // The type of permission group. + TypeId *int `json:"typeId,omitempty" xmlrpc:"typeId,omitempty"` +} + +// no documentation yet +type User_Permission_Group_Type struct { + Entity + + // no documentation yet + CreateDate *Time `json:"createDate,omitempty" xmlrpc:"createDate,omitempty"` + + // A count of + GroupCount *uint `json:"groupCount,omitempty" xmlrpc:"groupCount,omitempty"` + + // no documentation yet + Groups []User_Permission_Group `json:"groups,omitempty" xmlrpc:"groups,omitempty"` + + // no documentation yet + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // no documentation yet + KeyName *string `json:"keyName,omitempty" xmlrpc:"keyName,omitempty"` + + // no documentation yet + ModifyDate *Time `json:"modifyDate,omitempty" xmlrpc:"modifyDate,omitempty"` + + // no documentation yet + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` +} + +// no documentation yet +type User_Permission_Role struct { + Entity + + // no documentation yet + Account *Account `json:"account,omitempty" xmlrpc:"account,omitempty"` + + // A permission roles associated [[SoftLayer_Account|customer account]] id. + AccountId *int `json:"accountId,omitempty" xmlrpc:"accountId,omitempty"` + + // A count of + ActionCount *uint `json:"actionCount,omitempty" xmlrpc:"actionCount,omitempty"` + + // no documentation yet + Actions []User_Permission_Action `json:"actions,omitempty" xmlrpc:"actions,omitempty"` + + // The date the permission role record was created. + CreateDate *Time `json:"createDate,omitempty" xmlrpc:"createDate,omitempty"` + + // The description of the permission role. + Description *string `json:"description,omitempty" xmlrpc:"description,omitempty"` + + // A count of + GroupCount *uint `json:"groupCount,omitempty" xmlrpc:"groupCount,omitempty"` + + // no documentation yet + Groups []User_Permission_Group `json:"groups,omitempty" xmlrpc:"groups,omitempty"` + + // A permission roles internal identifying number. + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // The date the permission role record was last modified. + ModifyDate *Time `json:"modifyDate,omitempty" xmlrpc:"modifyDate,omitempty"` + + // The name of the permission role. + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` + + // A flag showing if new users should be automatically added to this role. + NewUserDefaultFlag *int `json:"newUserDefaultFlag,omitempty" xmlrpc:"newUserDefaultFlag,omitempty"` + + // A flag showing if the permission role was created by our internal system for a single user. If this flag is set only a single user can be assigned to this permission role and it can not be deleted. + SystemFlag *int `json:"systemFlag,omitempty" xmlrpc:"systemFlag,omitempty"` + + // A count of + UserCount *uint `json:"userCount,omitempty" xmlrpc:"userCount,omitempty"` + + // no documentation yet + Users []User_Customer `json:"users,omitempty" xmlrpc:"users,omitempty"` +} + +// The SoftLayer_User_Preference data type contains a single user preference to a specific preference type. +type User_Preference struct { + Entity + + // Description of the user preference + Description *string `json:"description,omitempty" xmlrpc:"description,omitempty"` + + // Type of user preference + Type *User_Preference_Type `json:"type,omitempty" xmlrpc:"type,omitempty"` + + // The users current preference value + Value *string `json:"value,omitempty" xmlrpc:"value,omitempty"` +} + +// The SoftLayer_User_Preference_Type data type contains a single preference type including the accepted values. +type User_Preference_Type struct { + Entity + + // A description of the preference type + Description *string `json:"description,omitempty" xmlrpc:"description,omitempty"` + + // no documentation yet + KeyName *string `json:"keyName,omitempty" xmlrpc:"keyName,omitempty"` + + // The name of the preference type + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` + + // An example of accepted preference values + ValueExample *string `json:"valueExample,omitempty" xmlrpc:"valueExample,omitempty"` +} + +// The SoftLayer_User_Security_Question data type contains questions. +type User_Security_Question struct { + Entity + + // A security question's display order. + DisplayOrder *int `json:"displayOrder,omitempty" xmlrpc:"displayOrder,omitempty"` + + // A security question's internal identifying number. + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // A security question's question. + Question *string `json:"question,omitempty" xmlrpc:"question,omitempty"` + + // A security question's viewable flag. + Viewable *int `json:"viewable,omitempty" xmlrpc:"viewable,omitempty"` +} diff --git a/vendor/github.com/softlayer/softlayer-go/datatypes/utility.go b/vendor/github.com/softlayer/softlayer-go/datatypes/utility.go new file mode 100644 index 000000000..4711f0129 --- /dev/null +++ b/vendor/github.com/softlayer/softlayer-go/datatypes/utility.go @@ -0,0 +1,46 @@ +/** + * Copyright 2016 IBM Corp. + * + * 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. + */ + +/** + * AUTOMATICALLY GENERATED CODE - DO NOT MODIFY + */ + +package datatypes + +// Generic utility class used for gathering graphing parameters and actually creating graphs. +type Utility_Bandwidth_Graph struct { + Entity +} + +// no documentation yet +type Utility_Network struct { + Entity +} + +// no documentation yet +type Utility_ObjectFilter struct { + Entity +} + +// no documentation yet +type Utility_ObjectFilter_Operation struct { + Entity +} + +// no documentation yet +type Utility_ObjectFilter_Operation_Option struct { + Entity +} diff --git a/vendor/github.com/softlayer/softlayer-go/datatypes/virtual.go b/vendor/github.com/softlayer/softlayer-go/datatypes/virtual.go new file mode 100644 index 000000000..752c8f7f8 --- /dev/null +++ b/vendor/github.com/softlayer/softlayer-go/datatypes/virtual.go @@ -0,0 +1,1313 @@ +/** + * Copyright 2016 IBM Corp. + * + * 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. + */ + +/** + * AUTOMATICALLY GENERATED CODE - DO NOT MODIFY + */ + +package datatypes + +// This type presents the structure for a DedicatedHost. The type contains relational properties to distinguish a host, associate an account to it. +type Virtual_DedicatedHost struct { + Entity + + // The account which dedicated host belongs to. + Account *Account `json:"account,omitempty" xmlrpc:"account,omitempty"` + + // Dedicated host's associated account id + AccountId *int `json:"accountId,omitempty" xmlrpc:"accountId,omitempty"` + + // The container representing allocations on a dedicated host. + AllocationStatus *Container_Virtual_DedicatedHost_AllocationStatus `json:"allocationStatus,omitempty" xmlrpc:"allocationStatus,omitempty"` + + // The backendRouter behind dedicated host's pool. + BackendRouter *Hardware_Router_Backend `json:"backendRouter,omitempty" xmlrpc:"backendRouter,omitempty"` + + // The billing item for a dedicated host. + BillingItem *Billing_Item_Virtual_DedicatedHost `json:"billingItem,omitempty" xmlrpc:"billingItem,omitempty"` + + // Capacity this dedicated host's cpu allocation is restricted to + CpuCount *int `json:"cpuCount,omitempty" xmlrpc:"cpuCount,omitempty"` + + // The date dedicated host was created. + CreateDate *Time `json:"createDate,omitempty" xmlrpc:"createDate,omitempty"` + + // The datacenter that the host resides in. + Datacenter *Location `json:"datacenter,omitempty" xmlrpc:"datacenter,omitempty"` + + // Capacity this dedicated host's disk allocation is restricted to + DiskCapacity *int `json:"diskCapacity,omitempty" xmlrpc:"diskCapacity,omitempty"` + + // A count of the guests associated with a host. + GuestCount *uint `json:"guestCount,omitempty" xmlrpc:"guestCount,omitempty"` + + // The guests associated with a host. + Guests []Virtual_Guest `json:"guests,omitempty" xmlrpc:"guests,omitempty"` + + // Unique ID for dedicated host. + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // Capacity this dedicated host's memory allocation is restricted to + MemoryCapacity *int `json:"memoryCapacity,omitempty" xmlrpc:"memoryCapacity,omitempty"` + + // The date dedicated host was last modified. + ModifyDate *Time `json:"modifyDate,omitempty" xmlrpc:"modifyDate,omitempty"` + + // Dedicated host's name. + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` +} + +// The virtual disk image data type presents the structure in which a virtual disk image will be presented. +// +// Virtual block devices are assigned to disk images. +type Virtual_Disk_Image struct { + Entity + + // The billing item for a virtual disk image. + BillingItem *Billing_Item_Virtual_Disk_Image `json:"billingItem,omitempty" xmlrpc:"billingItem,omitempty"` + + // A count of the block devices that a disk image is attached to. Block devices connect computing instances to disk images. + BlockDeviceCount *uint `json:"blockDeviceCount,omitempty" xmlrpc:"blockDeviceCount,omitempty"` + + // The block devices that a disk image is attached to. Block devices connect computing instances to disk images. + BlockDevices []Virtual_Guest_Block_Device `json:"blockDevices,omitempty" xmlrpc:"blockDevices,omitempty"` + + // no documentation yet + BootableVolumeFlag *bool `json:"bootableVolumeFlag,omitempty" xmlrpc:"bootableVolumeFlag,omitempty"` + + // A disk image's size measured in gigabytes. + Capacity *int `json:"capacity,omitempty" xmlrpc:"capacity,omitempty"` + + // A disk image's unique md5 checksum. + Checksum *string `json:"checksum,omitempty" xmlrpc:"checksum,omitempty"` + + // A count of + CoalescedDiskImageCount *uint `json:"coalescedDiskImageCount,omitempty" xmlrpc:"coalescedDiskImageCount,omitempty"` + + // no documentation yet + CoalescedDiskImages []Virtual_Disk_Image `json:"coalescedDiskImages,omitempty" xmlrpc:"coalescedDiskImages,omitempty"` + + // no documentation yet + CopyOnWriteFlag *bool `json:"copyOnWriteFlag,omitempty" xmlrpc:"copyOnWriteFlag,omitempty"` + + // The date a disk image was created. + CreateDate *Time `json:"createDate,omitempty" xmlrpc:"createDate,omitempty"` + + // A brief description of a virtual disk image. + Description *string `json:"description,omitempty" xmlrpc:"description,omitempty"` + + // A disk image's unique ID. + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // no documentation yet + LocalDiskFlag *bool `json:"localDiskFlag,omitempty" xmlrpc:"localDiskFlag,omitempty"` + + // Whether this disk image is meant for storage of custom user data supplied with a Cloud Computing Instance order. + MetadataFlag *bool `json:"metadataFlag,omitempty" xmlrpc:"metadataFlag,omitempty"` + + // The date a disk image was last modified. + ModifyDate *Time `json:"modifyDate,omitempty" xmlrpc:"modifyDate,omitempty"` + + // A descriptive name used to identify a disk image to a user. + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` + + // The ID of the the disk image that this disk image is based on, if applicable. + ParentId *int `json:"parentId,omitempty" xmlrpc:"parentId,omitempty"` + + // A count of references to the software that resides on a disk image. + SoftwareReferenceCount *uint `json:"softwareReferenceCount,omitempty" xmlrpc:"softwareReferenceCount,omitempty"` + + // References to the software that resides on a disk image. + SoftwareReferences []Virtual_Disk_Image_Software `json:"softwareReferences,omitempty" xmlrpc:"softwareReferences,omitempty"` + + // The original disk image that the current disk image was cloned from. + SourceDiskImage *Virtual_Disk_Image `json:"sourceDiskImage,omitempty" xmlrpc:"sourceDiskImage,omitempty"` + + // The storage repository that a disk image resides in. + StorageRepository *Virtual_Storage_Repository `json:"storageRepository,omitempty" xmlrpc:"storageRepository,omitempty"` + + // The [[SoftLayer_Virtual_Storage_Repository|storage repository]] that a disk image is in. + StorageRepositoryId *int `json:"storageRepositoryId,omitempty" xmlrpc:"storageRepositoryId,omitempty"` + + // The type of storage repository that a disk image resides in. + StorageRepositoryType *Virtual_Storage_Repository_Type `json:"storageRepositoryType,omitempty" xmlrpc:"storageRepositoryType,omitempty"` + + // The template that attaches a disk image to a [[SoftLayer_Virtual_Guest_Block_Device_Template_Group|archive]]. + TemplateBlockDevice *Virtual_Guest_Block_Device_Template `json:"templateBlockDevice,omitempty" xmlrpc:"templateBlockDevice,omitempty"` + + // A virtual disk image's type. + Type *Virtual_Disk_Image_Type `json:"type,omitempty" xmlrpc:"type,omitempty"` + + // A disk image's [[SoftLayer_Virtual_Disk_Image_Type|type]] ID + TypeId *int `json:"typeId,omitempty" xmlrpc:"typeId,omitempty"` + + // The unit of storage in which the size of the image is measured. Defaults to "GB" for gigabytes. + Units *string `json:"units,omitempty" xmlrpc:"units,omitempty"` + + // A disk image's unique ID on a virtualization platform. + Uuid *string `json:"uuid,omitempty" xmlrpc:"uuid,omitempty"` +} + +// A SoftLayer_Virtual_Disk_Image_Software record connects a computing instance's virtual disk images with software records. This can be useful if a disk image is directly associated with software such as operating systems. +type Virtual_Disk_Image_Software struct { + Entity + + // The virtual disk image that is associated with software. + DiskImage *Virtual_Disk_Image `json:"diskImage,omitempty" xmlrpc:"diskImage,omitempty"` + + // The unique identifier of a virtual disk image to software relationship. + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // A count of username/Password pairs used for access to a Software Installation. + PasswordCount *uint `json:"passwordCount,omitempty" xmlrpc:"passwordCount,omitempty"` + + // Username/Password pairs used for access to a Software Installation. + Passwords []Virtual_Disk_Image_Software_Password `json:"passwords,omitempty" xmlrpc:"passwords,omitempty"` + + // The software associated with a virtual disk image. + SoftwareDescription *Software_Description `json:"softwareDescription,omitempty" xmlrpc:"softwareDescription,omitempty"` + + // The unique identifier of the software that a virtual disk image is associated with. + SoftwareDescriptionId *int `json:"softwareDescriptionId,omitempty" xmlrpc:"softwareDescriptionId,omitempty"` +} + +// This SoftLayer_Virtual_Disk_Image_Software_Password data type contains a password for a specific virtual disk image software instance. +type Virtual_Disk_Image_Software_Password struct { + Entity + + // A virtual disk images' password. + Password *string `json:"password,omitempty" xmlrpc:"password,omitempty"` + + // The instance that this username/password pair is valid for. + Software *Virtual_Disk_Image_Software `json:"software,omitempty" xmlrpc:"software,omitempty"` + + // A virtual disk images' username. + Username *string `json:"username,omitempty" xmlrpc:"username,omitempty"` +} + +// SoftLayer_Virtual_Disk_Image_Type models the types of virtual disk images available to CloudLayer Computing Instances. Virtual disk image types describe if an image's data is preservable when upgraded, whether a disk contains a suspended virtual image, or if a disk contains crash dump information. +type Virtual_Disk_Image_Type struct { + Entity + + // A brief description of a virtual disk image type's function. + Description *string `json:"description,omitempty" xmlrpc:"description,omitempty"` + + // A virtual disk image type's key name. + KeyName *string `json:"keyName,omitempty" xmlrpc:"keyName,omitempty"` + + // A virtual disk image type's name. + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` +} + +// The virtual guest data type presents the structure in which all virtual guests will be presented. Internally, the structure supports various virtualization platforms with no change to external interaction. +// +// A guest, also known as a virtual server, represents an allocation of resources on a virtual host. +type Virtual_Guest struct { + Entity + + // The account that a virtual guest belongs to. + Account *Account `json:"account,omitempty" xmlrpc:"account,omitempty"` + + // A computing instance's associated [[SoftLayer_Account|account]] id + AccountId *int `json:"accountId,omitempty" xmlrpc:"accountId,omitempty"` + + // no documentation yet + AccountOwnedPoolFlag *bool `json:"accountOwnedPoolFlag,omitempty" xmlrpc:"accountOwnedPoolFlag,omitempty"` + + // A virtual guest's currently active network monitoring incidents. + ActiveNetworkMonitorIncident []Network_Monitor_Version1_Incident `json:"activeNetworkMonitorIncident,omitempty" xmlrpc:"activeNetworkMonitorIncident,omitempty"` + + // A count of a virtual guest's currently active network monitoring incidents. + ActiveNetworkMonitorIncidentCount *uint `json:"activeNetworkMonitorIncidentCount,omitempty" xmlrpc:"activeNetworkMonitorIncidentCount,omitempty"` + + // A count of + ActiveTicketCount *uint `json:"activeTicketCount,omitempty" xmlrpc:"activeTicketCount,omitempty"` + + // no documentation yet + ActiveTickets []Ticket `json:"activeTickets,omitempty" xmlrpc:"activeTickets,omitempty"` + + // A transaction that is still be performed on a cloud server. + ActiveTransaction *Provisioning_Version1_Transaction `json:"activeTransaction,omitempty" xmlrpc:"activeTransaction,omitempty"` + + // A count of any active transaction(s) that are currently running for the server (example: os reload). + ActiveTransactionCount *uint `json:"activeTransactionCount,omitempty" xmlrpc:"activeTransactionCount,omitempty"` + + // Any active transaction(s) that are currently running for the server (example: os reload). + ActiveTransactions []Provisioning_Version1_Transaction `json:"activeTransactions,omitempty" xmlrpc:"activeTransactions,omitempty"` + + // The SoftLayer_Network_Storage_Allowed_Host information to connect this Virtual Guest to Network Storage volumes that require access control lists. + AllowedHost *Network_Storage_Allowed_Host `json:"allowedHost,omitempty" xmlrpc:"allowedHost,omitempty"` + + // The SoftLayer_Network_Storage objects that this SoftLayer_Virtual_Guest has access to. + AllowedNetworkStorage []Network_Storage `json:"allowedNetworkStorage,omitempty" xmlrpc:"allowedNetworkStorage,omitempty"` + + // A count of the SoftLayer_Network_Storage objects that this SoftLayer_Virtual_Guest has access to. + AllowedNetworkStorageCount *uint `json:"allowedNetworkStorageCount,omitempty" xmlrpc:"allowedNetworkStorageCount,omitempty"` + + // A count of the SoftLayer_Network_Storage objects whose Replica that this SoftLayer_Virtual_Guest has access to. + AllowedNetworkStorageReplicaCount *uint `json:"allowedNetworkStorageReplicaCount,omitempty" xmlrpc:"allowedNetworkStorageReplicaCount,omitempty"` + + // The SoftLayer_Network_Storage objects whose Replica that this SoftLayer_Virtual_Guest has access to. + AllowedNetworkStorageReplicas []Network_Storage `json:"allowedNetworkStorageReplicas,omitempty" xmlrpc:"allowedNetworkStorageReplicas,omitempty"` + + // A antivirus / spyware software component object. + AntivirusSpywareSoftwareComponent *Software_Component `json:"antivirusSpywareSoftwareComponent,omitempty" xmlrpc:"antivirusSpywareSoftwareComponent,omitempty"` + + // no documentation yet + ApplicationDeliveryController *Network_Application_Delivery_Controller `json:"applicationDeliveryController,omitempty" xmlrpc:"applicationDeliveryController,omitempty"` + + // A count of + AttributeCount *uint `json:"attributeCount,omitempty" xmlrpc:"attributeCount,omitempty"` + + // no documentation yet + Attributes []Virtual_Guest_Attribute `json:"attributes,omitempty" xmlrpc:"attributes,omitempty"` + + // An object that stores the maximum level for the monitoring query types and response types. + AvailableMonitoring []Network_Monitor_Version1_Query_Host_Stratum `json:"availableMonitoring,omitempty" xmlrpc:"availableMonitoring,omitempty"` + + // A count of an object that stores the maximum level for the monitoring query types and response types. + AvailableMonitoringCount *uint `json:"availableMonitoringCount,omitempty" xmlrpc:"availableMonitoringCount,omitempty"` + + // The average daily private bandwidth usage for the current billing cycle. + AverageDailyPrivateBandwidthUsage *Float64 `json:"averageDailyPrivateBandwidthUsage,omitempty" xmlrpc:"averageDailyPrivateBandwidthUsage,omitempty"` + + // The average daily public bandwidth usage for the current billing cycle. + AverageDailyPublicBandwidthUsage *Float64 `json:"averageDailyPublicBandwidthUsage,omitempty" xmlrpc:"averageDailyPublicBandwidthUsage,omitempty"` + + // A count of a guests's backend network components. + BackendNetworkComponentCount *uint `json:"backendNetworkComponentCount,omitempty" xmlrpc:"backendNetworkComponentCount,omitempty"` + + // A guests's backend network components. + BackendNetworkComponents []Virtual_Guest_Network_Component `json:"backendNetworkComponents,omitempty" xmlrpc:"backendNetworkComponents,omitempty"` + + // A count of a guest's backend or private router. + BackendRouterCount *uint `json:"backendRouterCount,omitempty" xmlrpc:"backendRouterCount,omitempty"` + + // A guest's backend or private router. + BackendRouters []Hardware `json:"backendRouters,omitempty" xmlrpc:"backendRouters,omitempty"` + + // A computing instance's allotted bandwidth (measured in GB). + BandwidthAllocation *Float64 `json:"bandwidthAllocation,omitempty" xmlrpc:"bandwidthAllocation,omitempty"` + + // A computing instance's allotted detail record. Allotment details link bandwidth allocation with allotments. + BandwidthAllotmentDetail *Network_Bandwidth_Version1_Allotment_Detail `json:"bandwidthAllotmentDetail,omitempty" xmlrpc:"bandwidthAllotmentDetail,omitempty"` + + // The raw bandwidth usage data for the current billing cycle. One object will be returned for each network this server is attached to. + BillingCycleBandwidthUsage []Network_Bandwidth_Usage `json:"billingCycleBandwidthUsage,omitempty" xmlrpc:"billingCycleBandwidthUsage,omitempty"` + + // A count of the raw bandwidth usage data for the current billing cycle. One object will be returned for each network this server is attached to. + BillingCycleBandwidthUsageCount *uint `json:"billingCycleBandwidthUsageCount,omitempty" xmlrpc:"billingCycleBandwidthUsageCount,omitempty"` + + // The raw private bandwidth usage data for the current billing cycle. + BillingCyclePrivateBandwidthUsage *Network_Bandwidth_Usage `json:"billingCyclePrivateBandwidthUsage,omitempty" xmlrpc:"billingCyclePrivateBandwidthUsage,omitempty"` + + // The raw public bandwidth usage data for the current billing cycle. + BillingCyclePublicBandwidthUsage *Network_Bandwidth_Usage `json:"billingCyclePublicBandwidthUsage,omitempty" xmlrpc:"billingCyclePublicBandwidthUsage,omitempty"` + + // The billing item for a CloudLayer Compute Instance. + BillingItem *Billing_Item_Virtual_Guest `json:"billingItem,omitempty" xmlrpc:"billingItem,omitempty"` + + // Determines whether the instance is ineligible for cancellation because it is disconnected. + BlockCancelBecauseDisconnectedFlag *bool `json:"blockCancelBecauseDisconnectedFlag,omitempty" xmlrpc:"blockCancelBecauseDisconnectedFlag,omitempty"` + + // A count of a computing instance's block devices. Block devices link [[SoftLayer_Virtual_Disk_Image|disk images]] to computing instances. + BlockDeviceCount *uint `json:"blockDeviceCount,omitempty" xmlrpc:"blockDeviceCount,omitempty"` + + // The global identifier for the image template that was used to provision or reload a guest. + BlockDeviceTemplateGroup *Virtual_Guest_Block_Device_Template_Group `json:"blockDeviceTemplateGroup,omitempty" xmlrpc:"blockDeviceTemplateGroup,omitempty"` + + // A computing instance's block devices. Block devices link [[SoftLayer_Virtual_Disk_Image|disk images]] to computing instances. + BlockDevices []Virtual_Guest_Block_Device `json:"blockDevices,omitempty" xmlrpc:"blockDevices,omitempty"` + + // A flag indicating a computing instance's console IP address is assigned. + ConsoleIpAddressFlag *bool `json:"consoleIpAddressFlag,omitempty" xmlrpc:"consoleIpAddressFlag,omitempty"` + + // A record containing information about a computing instance's console IP and port number. + ConsoleIpAddressRecord *Virtual_Guest_Network_Component_IpAddress `json:"consoleIpAddressRecord,omitempty" xmlrpc:"consoleIpAddressRecord,omitempty"` + + // A continuous data protection software component object. + ContinuousDataProtectionSoftwareComponent *Software_Component `json:"continuousDataProtectionSoftwareComponent,omitempty" xmlrpc:"continuousDataProtectionSoftwareComponent,omitempty"` + + // A guest's control panel. + ControlPanel *Software_Component `json:"controlPanel,omitempty" xmlrpc:"controlPanel,omitempty"` + + // The date a virtual computing instance was created. + CreateDate *Time `json:"createDate,omitempty" xmlrpc:"createDate,omitempty"` + + // An object that provides commonly used bandwidth summary components for the current billing cycle. + CurrentBandwidthSummary *Metric_Tracking_Object_Bandwidth_Summary `json:"currentBandwidthSummary,omitempty" xmlrpc:"currentBandwidthSummary,omitempty"` + + // The datacenter that a virtual guest resides in. + Datacenter *Location `json:"datacenter,omitempty" xmlrpc:"datacenter,omitempty"` + + // When true this flag specifies that a compute instance is to run on hosts that only have guests from the same account. + DedicatedAccountHostOnlyFlag *bool `json:"dedicatedAccountHostOnlyFlag,omitempty" xmlrpc:"dedicatedAccountHostOnlyFlag,omitempty"` + + // The dedicated host associated with this guest. + DedicatedHost *Virtual_DedicatedHost `json:"dedicatedHost,omitempty" xmlrpc:"dedicatedHost,omitempty"` + + // A computing instance's domain name + Domain *string `json:"domain,omitempty" xmlrpc:"domain,omitempty"` + + // A guest's associated EVault network storage service account. + EvaultNetworkStorage []Network_Storage `json:"evaultNetworkStorage,omitempty" xmlrpc:"evaultNetworkStorage,omitempty"` + + // A count of a guest's associated EVault network storage service account. + EvaultNetworkStorageCount *uint `json:"evaultNetworkStorageCount,omitempty" xmlrpc:"evaultNetworkStorageCount,omitempty"` + + // A computing instance's hardware firewall services. + FirewallServiceComponent *Network_Component_Firewall `json:"firewallServiceComponent,omitempty" xmlrpc:"firewallServiceComponent,omitempty"` + + // A count of a guest's frontend network components. + FrontendNetworkComponentCount *uint `json:"frontendNetworkComponentCount,omitempty" xmlrpc:"frontendNetworkComponentCount,omitempty"` + + // A guest's frontend network components. + FrontendNetworkComponents []Virtual_Guest_Network_Component `json:"frontendNetworkComponents,omitempty" xmlrpc:"frontendNetworkComponents,omitempty"` + + // A guest's frontend or public router. + FrontendRouters *Hardware `json:"frontendRouters,omitempty" xmlrpc:"frontendRouters,omitempty"` + + // A name reflecting the hostname and domain of the computing instance. + FullyQualifiedDomainName *string `json:"fullyQualifiedDomainName,omitempty" xmlrpc:"fullyQualifiedDomainName,omitempty"` + + // A guest's universally unique identifier. + GlobalIdentifier *string `json:"globalIdentifier,omitempty" xmlrpc:"globalIdentifier,omitempty"` + + // no documentation yet + GuestBootParameter *Virtual_Guest_Boot_Parameter `json:"guestBootParameter,omitempty" xmlrpc:"guestBootParameter,omitempty"` + + // The virtual host on which a virtual guest resides (available only on private clouds). + Host *Virtual_Host `json:"host,omitempty" xmlrpc:"host,omitempty"` + + // A host IPS software component object. + HostIpsSoftwareComponent *Software_Component `json:"hostIpsSoftwareComponent,omitempty" xmlrpc:"hostIpsSoftwareComponent,omitempty"` + + // A virtual computing instance's hostname + Hostname *string `json:"hostname,omitempty" xmlrpc:"hostname,omitempty"` + + // Whether or not a computing instance is billed hourly instead of monthly. + HourlyBillingFlag *bool `json:"hourlyBillingFlag,omitempty" xmlrpc:"hourlyBillingFlag,omitempty"` + + // Unique ID for a computing instance. + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // The total private inbound bandwidth for this computing instance for the current billing cycle. + InboundPrivateBandwidthUsage *Float64 `json:"inboundPrivateBandwidthUsage,omitempty" xmlrpc:"inboundPrivateBandwidthUsage,omitempty"` + + // The total public inbound bandwidth for this computing instance for the current billing cycle. + InboundPublicBandwidthUsage *Float64 `json:"inboundPublicBandwidthUsage,omitempty" xmlrpc:"inboundPublicBandwidthUsage,omitempty"` + + // A count of + InternalTagReferenceCount *uint `json:"internalTagReferenceCount,omitempty" xmlrpc:"internalTagReferenceCount,omitempty"` + + // no documentation yet + InternalTagReferences []Tag_Reference `json:"internalTagReferences,omitempty" xmlrpc:"internalTagReferences,omitempty"` + + // The last known power state of a virtual guest in the event the guest is turned off outside of IMS or has gone offline. + LastKnownPowerState *Virtual_Guest_Power_State `json:"lastKnownPowerState,omitempty" xmlrpc:"lastKnownPowerState,omitempty"` + + // The last transaction that a cloud server's operating system was loaded. + LastOperatingSystemReload *Provisioning_Version1_Transaction `json:"lastOperatingSystemReload,omitempty" xmlrpc:"lastOperatingSystemReload,omitempty"` + + // no documentation yet + LastPowerStateId *int `json:"lastPowerStateId,omitempty" xmlrpc:"lastPowerStateId,omitempty"` + + // The last transaction a cloud server had performed. + LastTransaction *Provisioning_Version1_Transaction `json:"lastTransaction,omitempty" xmlrpc:"lastTransaction,omitempty"` + + // The last timestamp of when the guest was verified as a resident virtual machine on the host's hypervisor platform. + LastVerifiedDate *Time `json:"lastVerifiedDate,omitempty" xmlrpc:"lastVerifiedDate,omitempty"` + + // A virtual guest's latest network monitoring incident. + LatestNetworkMonitorIncident *Network_Monitor_Version1_Incident `json:"latestNetworkMonitorIncident,omitempty" xmlrpc:"latestNetworkMonitorIncident,omitempty"` + + // A flag indicating that the virtual guest has at least one disk which is local to the host it runs on. This does not include a SWAP device. + LocalDiskFlag *bool `json:"localDiskFlag,omitempty" xmlrpc:"localDiskFlag,omitempty"` + + // Where guest is located within SoftLayer's location hierarchy. + Location *Location `json:"location,omitempty" xmlrpc:"location,omitempty"` + + // A flag indicating that the virtual guest is a managed resource. + ManagedResourceFlag *bool `json:"managedResourceFlag,omitempty" xmlrpc:"managedResourceFlag,omitempty"` + + // The maximum amount of CPU resources a computing instance may utilize. + MaxCpu *int `json:"maxCpu,omitempty" xmlrpc:"maxCpu,omitempty"` + + // The unit of the maximum amount of CPU resources a computing instance may utilize. + MaxCpuUnits *string `json:"maxCpuUnits,omitempty" xmlrpc:"maxCpuUnits,omitempty"` + + // The maximum amount of memory a computing instance may utilize. + MaxMemory *int `json:"maxMemory,omitempty" xmlrpc:"maxMemory,omitempty"` + + // The date of the most recent metric tracking poll performed. + MetricPollDate *Time `json:"metricPollDate,omitempty" xmlrpc:"metricPollDate,omitempty"` + + // A guest's metric tracking object. + MetricTrackingObject *Metric_Tracking_Object `json:"metricTrackingObject,omitempty" xmlrpc:"metricTrackingObject,omitempty"` + + // The metric tracking object id for this guest. + MetricTrackingObjectId *int `json:"metricTrackingObjectId,omitempty" xmlrpc:"metricTrackingObjectId,omitempty"` + + // The date a virtual computing instance was last modified. + ModifyDate *Time `json:"modifyDate,omitempty" xmlrpc:"modifyDate,omitempty"` + + // A count of + MonitoringAgentCount *uint `json:"monitoringAgentCount,omitempty" xmlrpc:"monitoringAgentCount,omitempty"` + + // no documentation yet + MonitoringAgents []Monitoring_Agent `json:"monitoringAgents,omitempty" xmlrpc:"monitoringAgents,omitempty"` + + // no documentation yet + MonitoringRobot *Monitoring_Robot `json:"monitoringRobot,omitempty" xmlrpc:"monitoringRobot,omitempty"` + + // A virtual guest's network monitoring services. + MonitoringServiceComponent *Network_Monitor_Version1_Query_Host_Stratum `json:"monitoringServiceComponent,omitempty" xmlrpc:"monitoringServiceComponent,omitempty"` + + // no documentation yet + MonitoringServiceEligibilityFlag *bool `json:"monitoringServiceEligibilityFlag,omitempty" xmlrpc:"monitoringServiceEligibilityFlag,omitempty"` + + // no documentation yet + MonitoringServiceFlag *bool `json:"monitoringServiceFlag,omitempty" xmlrpc:"monitoringServiceFlag,omitempty"` + + // The monitoring notification objects for this guest. Each object links this guest instance to a user account that will be notified if monitoring on this guest object fails + MonitoringUserNotification []User_Customer_Notification_Virtual_Guest `json:"monitoringUserNotification,omitempty" xmlrpc:"monitoringUserNotification,omitempty"` + + // A count of the monitoring notification objects for this guest. Each object links this guest instance to a user account that will be notified if monitoring on this guest object fails + MonitoringUserNotificationCount *uint `json:"monitoringUserNotificationCount,omitempty" xmlrpc:"monitoringUserNotificationCount,omitempty"` + + // A count of a guests's network components. + NetworkComponentCount *uint `json:"networkComponentCount,omitempty" xmlrpc:"networkComponentCount,omitempty"` + + // A guests's network components. + NetworkComponents []Virtual_Guest_Network_Component `json:"networkComponents,omitempty" xmlrpc:"networkComponents,omitempty"` + + // A count of a guests's network monitors. + NetworkMonitorCount *uint `json:"networkMonitorCount,omitempty" xmlrpc:"networkMonitorCount,omitempty"` + + // A count of all of a virtual guest's network monitoring incidents. + NetworkMonitorIncidentCount *uint `json:"networkMonitorIncidentCount,omitempty" xmlrpc:"networkMonitorIncidentCount,omitempty"` + + // All of a virtual guest's network monitoring incidents. + NetworkMonitorIncidents []Network_Monitor_Version1_Incident `json:"networkMonitorIncidents,omitempty" xmlrpc:"networkMonitorIncidents,omitempty"` + + // A guests's network monitors. + NetworkMonitors []Network_Monitor_Version1_Query_Host `json:"networkMonitors,omitempty" xmlrpc:"networkMonitors,omitempty"` + + // A guest's associated network storage accounts. + NetworkStorage []Network_Storage `json:"networkStorage,omitempty" xmlrpc:"networkStorage,omitempty"` + + // A count of a guest's associated network storage accounts. + NetworkStorageCount *uint `json:"networkStorageCount,omitempty" xmlrpc:"networkStorageCount,omitempty"` + + // A count of the network Vlans that a guest's network components are associated with. + NetworkVlanCount *uint `json:"networkVlanCount,omitempty" xmlrpc:"networkVlanCount,omitempty"` + + // The network Vlans that a guest's network components are associated with. + NetworkVlans []Network_Vlan `json:"networkVlans,omitempty" xmlrpc:"networkVlans,omitempty"` + + // A note of up to 1,000 characters about a virtual server. + Notes *string `json:"notes,omitempty" xmlrpc:"notes,omitempty"` + + // An open ticket requesting cancellation of this server, if one exists. + OpenCancellationTicket *Ticket `json:"openCancellationTicket,omitempty" xmlrpc:"openCancellationTicket,omitempty"` + + // A guest's operating system. + OperatingSystem *Software_Component_OperatingSystem `json:"operatingSystem,omitempty" xmlrpc:"operatingSystem,omitempty"` + + // A guest's operating system software description. + OperatingSystemReferenceCode *string `json:"operatingSystemReferenceCode,omitempty" xmlrpc:"operatingSystemReferenceCode,omitempty"` + + // The original package id provided with the order for a Cloud Computing Instance. + OrderedPackageId *string `json:"orderedPackageId,omitempty" xmlrpc:"orderedPackageId,omitempty"` + + // The total private outbound bandwidth for this computing instance for the current billing cycle. + OutboundPrivateBandwidthUsage *Float64 `json:"outboundPrivateBandwidthUsage,omitempty" xmlrpc:"outboundPrivateBandwidthUsage,omitempty"` + + // The total public outbound bandwidth for this computing instance for the current billing cycle. + OutboundPublicBandwidthUsage *Float64 `json:"outboundPublicBandwidthUsage,omitempty" xmlrpc:"outboundPublicBandwidthUsage,omitempty"` + + // Whether the bandwidth usage for this computing instance for the current billing cycle exceeds the allocation. + OverBandwidthAllocationFlag *int `json:"overBandwidthAllocationFlag,omitempty" xmlrpc:"overBandwidthAllocationFlag,omitempty"` + + // When true this virtual guest must be migrated using SoftLayer_Virtual_Guest::migrate. + PendingMigrationFlag *bool `json:"pendingMigrationFlag,omitempty" xmlrpc:"pendingMigrationFlag,omitempty"` + + // URI of the script to be downloaded and executed after installation is complete. This is deprecated in favor of supplementalCreateObjectOptions' postInstallScriptUri. + PostInstallScriptUri *string `json:"postInstallScriptUri,omitempty" xmlrpc:"postInstallScriptUri,omitempty"` + + // The current power state of a virtual guest. + PowerState *Virtual_Guest_Power_State `json:"powerState,omitempty" xmlrpc:"powerState,omitempty"` + + // A guest's primary private IP address. + PrimaryBackendIpAddress *string `json:"primaryBackendIpAddress,omitempty" xmlrpc:"primaryBackendIpAddress,omitempty"` + + // A guest's primary backend network component. + PrimaryBackendNetworkComponent *Virtual_Guest_Network_Component `json:"primaryBackendNetworkComponent,omitempty" xmlrpc:"primaryBackendNetworkComponent,omitempty"` + + // The guest's primary public IP address. + PrimaryIpAddress *string `json:"primaryIpAddress,omitempty" xmlrpc:"primaryIpAddress,omitempty"` + + // A guest's primary public network component. + PrimaryNetworkComponent *Virtual_Guest_Network_Component `json:"primaryNetworkComponent,omitempty" xmlrpc:"primaryNetworkComponent,omitempty"` + + // Whether the computing instance only has access to the private network. + PrivateNetworkOnlyFlag *bool `json:"privateNetworkOnlyFlag,omitempty" xmlrpc:"privateNetworkOnlyFlag,omitempty"` + + // Whether the bandwidth usage for this computing instance for the current billing cycle is projected to exceed the allocation. + ProjectedOverBandwidthAllocationFlag *int `json:"projectedOverBandwidthAllocationFlag,omitempty" xmlrpc:"projectedOverBandwidthAllocationFlag,omitempty"` + + // The projected public outbound bandwidth for this computing instance for the current billing cycle. + ProjectedPublicBandwidthUsage *Float64 `json:"projectedPublicBandwidthUsage,omitempty" xmlrpc:"projectedPublicBandwidthUsage,omitempty"` + + // no documentation yet + ProvisionDate *Time `json:"provisionDate,omitempty" xmlrpc:"provisionDate,omitempty"` + + // A count of recent events that impact this computing instance. + RecentEventCount *uint `json:"recentEventCount,omitempty" xmlrpc:"recentEventCount,omitempty"` + + // Recent events that impact this computing instance. + RecentEvents []Notification_Occurrence_Event `json:"recentEvents,omitempty" xmlrpc:"recentEvents,omitempty"` + + // The regional group this guest is in. + RegionalGroup *Location_Group_Regional `json:"regionalGroup,omitempty" xmlrpc:"regionalGroup,omitempty"` + + // no documentation yet + RegionalInternetRegistry *Network_Regional_Internet_Registry `json:"regionalInternetRegistry,omitempty" xmlrpc:"regionalInternetRegistry,omitempty"` + + // A count of collection of scale assets this guest corresponds to. + ScaleAssetCount *uint `json:"scaleAssetCount,omitempty" xmlrpc:"scaleAssetCount,omitempty"` + + // Collection of scale assets this guest corresponds to. + ScaleAssets []Scale_Asset `json:"scaleAssets,omitempty" xmlrpc:"scaleAssets,omitempty"` + + // The scale member for this guest, if applicable. + ScaleMember *Scale_Member_Virtual_Guest `json:"scaleMember,omitempty" xmlrpc:"scaleMember,omitempty"` + + // Whether or not this guest is a member of a scale group and was automatically created as part of a scale group action. + ScaledFlag *bool `json:"scaledFlag,omitempty" xmlrpc:"scaledFlag,omitempty"` + + // A count of a guest's vulnerability scan requests. + SecurityScanRequestCount *uint `json:"securityScanRequestCount,omitempty" xmlrpc:"securityScanRequestCount,omitempty"` + + // A guest's vulnerability scan requests. + SecurityScanRequests []Network_Security_Scanner_Request `json:"securityScanRequests,omitempty" xmlrpc:"securityScanRequests,omitempty"` + + // The server room that a guest is located at. There may be more than one server room for every data center. + ServerRoom *Location `json:"serverRoom,omitempty" xmlrpc:"serverRoom,omitempty"` + + // A count of a guest's installed software. + SoftwareComponentCount *uint `json:"softwareComponentCount,omitempty" xmlrpc:"softwareComponentCount,omitempty"` + + // A guest's installed software. + SoftwareComponents []Software_Component `json:"softwareComponents,omitempty" xmlrpc:"softwareComponents,omitempty"` + + // A count of sSH keys to be installed on the server during provisioning or an OS reload. + SshKeyCount *uint `json:"sshKeyCount,omitempty" xmlrpc:"sshKeyCount,omitempty"` + + // SSH keys to be installed on the server during provisioning or an OS reload. + SshKeys []Security_Ssh_Key `json:"sshKeys,omitempty" xmlrpc:"sshKeys,omitempty"` + + // The number of CPUs available to a computing instance upon startup. + StartCpus *int `json:"startCpus,omitempty" xmlrpc:"startCpus,omitempty"` + + // A computing instance's status. + Status *Virtual_Guest_Status `json:"status,omitempty" xmlrpc:"status,omitempty"` + + // A computing instances [[SoftLayer_Virtual_Guest_Status|status]] ID + StatusId *int `json:"statusId,omitempty" xmlrpc:"statusId,omitempty"` + + // Extra options needed for [[SoftLayer_Virtual_Guest/createObject|createObject]] and [[SoftLayer_Virtual_Guest/createObjects|createObjects]]. + SupplementalCreateObjectOptions *Virtual_Guest_SupplementalCreateObjectOptions `json:"supplementalCreateObjectOptions,omitempty" xmlrpc:"supplementalCreateObjectOptions,omitempty"` + + // A count of + TagReferenceCount *uint `json:"tagReferenceCount,omitempty" xmlrpc:"tagReferenceCount,omitempty"` + + // no documentation yet + TagReferences []Tag_Reference `json:"tagReferences,omitempty" xmlrpc:"tagReferences,omitempty"` + + // The type of this virtual guest. + Type *Virtual_Guest_Type `json:"type,omitempty" xmlrpc:"type,omitempty"` + + // Gives the type of guest categorized as PUBLIC, DEDICATED or PRIVATE. + TypeId *int `json:"typeId,omitempty" xmlrpc:"typeId,omitempty"` + + // A computing instance's associated upgrade request object if any. + UpgradeRequest *Product_Upgrade_Request `json:"upgradeRequest,omitempty" xmlrpc:"upgradeRequest,omitempty"` + + // A count of a list of users that have access to this computing instance. + UserCount *uint `json:"userCount,omitempty" xmlrpc:"userCount,omitempty"` + + // A base64 encoded string containing custom user data for a Cloud Computing Instance order. + UserData []Virtual_Guest_Attribute `json:"userData,omitempty" xmlrpc:"userData,omitempty"` + + // A count of a base64 encoded string containing custom user data for a Cloud Computing Instance order. + UserDataCount *uint `json:"userDataCount,omitempty" xmlrpc:"userDataCount,omitempty"` + + // A list of users that have access to this computing instance. + Users []User_Customer `json:"users,omitempty" xmlrpc:"users,omitempty"` + + // Unique ID for a computing instance's record on a virtualization platform. + Uuid *string `json:"uuid,omitempty" xmlrpc:"uuid,omitempty"` + + // The name of the bandwidth allotment that a hardware belongs too. + VirtualRack *Network_Bandwidth_Version1_Allotment `json:"virtualRack,omitempty" xmlrpc:"virtualRack,omitempty"` + + // The id of the bandwidth allotment that a computing instance belongs too. + VirtualRackId *int `json:"virtualRackId,omitempty" xmlrpc:"virtualRackId,omitempty"` + + // The name of the bandwidth allotment that a computing instance belongs too. + VirtualRackName *string `json:"virtualRackName,omitempty" xmlrpc:"virtualRackName,omitempty"` +} + +// no documentation yet +type Virtual_Guest_Attribute struct { + Entity + + // no documentation yet + Guest *Virtual_Guest `json:"guest,omitempty" xmlrpc:"guest,omitempty"` + + // no documentation yet + Type *Virtual_Guest_Attribute_Type `json:"type,omitempty" xmlrpc:"type,omitempty"` + + // A guest attribute's value. + Value *string `json:"value,omitempty" xmlrpc:"value,omitempty"` +} + +// no documentation yet +type Virtual_Guest_Attribute_Type struct { + Entity + + // no documentation yet + Keyname *string `json:"keyname,omitempty" xmlrpc:"keyname,omitempty"` + + // no documentation yet + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` +} + +// no documentation yet +type Virtual_Guest_Attribute_UserData struct { + Virtual_Guest_Attribute +} + +// The block device data type presents the structure in which all block devices will be presented. A block device attaches a disk image to a guest. Internally, the structure supports various virtualization platforms with no change to external interaction. +// +// A guest, also known as a virtual server, represents an allocation of resources on a virtual host. +type Virtual_Guest_Block_Device struct { + Entity + + // A flag indicating if a block device can be booted from. + BootableFlag *int `json:"bootableFlag,omitempty" xmlrpc:"bootableFlag,omitempty"` + + // The date a block device was created. + CreateDate *Time `json:"createDate,omitempty" xmlrpc:"createDate,omitempty"` + + // A name used to identify a block device. + Device *string `json:"device,omitempty" xmlrpc:"device,omitempty"` + + // The disk image that a block device connects to in a computing instance. + DiskImage *Virtual_Disk_Image `json:"diskImage,omitempty" xmlrpc:"diskImage,omitempty"` + + // A block device [[SoftLayer_Virtual_Disk_Image|disk image]]'s unique ID. + DiskImageId *int `json:"diskImageId,omitempty" xmlrpc:"diskImageId,omitempty"` + + // The computing instance that this block device is attached to. + Guest *Virtual_Guest `json:"guest,omitempty" xmlrpc:"guest,omitempty"` + + // The [[SoftLayer_Virtual_Guest|computing instance]] that a block device is associated with. + GuestId *int `json:"guestId,omitempty" xmlrpc:"guestId,omitempty"` + + // A flag indicating if a block device can be plugged into a computing instance without having to shut down the instance. + HotPlugFlag *int `json:"hotPlugFlag,omitempty" xmlrpc:"hotPlugFlag,omitempty"` + + // A computing instance block device's unique ID. + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // The data a block device was last modified. + ModifyDate *Time `json:"modifyDate,omitempty" xmlrpc:"modifyDate,omitempty"` + + // The writing mode that a virtual block device is mounted as, either "RO" for read-only mode or "RW" for read and write mode. + MountMode *string `json:"mountMode,omitempty" xmlrpc:"mountMode,omitempty"` + + // The type of device that a virtual block device is mounted as, either "Disk" for a directly connected storage disk or "CD" for devices that are mounted as optical drives.. + MountType *string `json:"mountType,omitempty" xmlrpc:"mountType,omitempty"` + + // no documentation yet + Status *Virtual_Guest_Block_Device_Status `json:"status,omitempty" xmlrpc:"status,omitempty"` + + // The status of the device, either disconnected or connected + StatusId *int `json:"statusId,omitempty" xmlrpc:"statusId,omitempty"` + + // A block device's unique ID on a virtualization platform. + Uuid *string `json:"uuid,omitempty" xmlrpc:"uuid,omitempty"` +} + +// no documentation yet +type Virtual_Guest_Block_Device_Status struct { + Entity + + // no documentation yet + KeyName *string `json:"keyName,omitempty" xmlrpc:"keyName,omitempty"` + + // no documentation yet + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` +} + +// The virtual block device template data type presents the structure in which all archived image templates are presented. +// +// A virtual block device template, also known as a image template, represents the image of a virtual guest instance. +type Virtual_Guest_Block_Device_Template struct { + Entity + + // A name that identifies a block device template. + Device *string `json:"device,omitempty" xmlrpc:"device,omitempty"` + + // A block device template's disk image. + DiskImage *Virtual_Disk_Image `json:"diskImage,omitempty" xmlrpc:"diskImage,omitempty"` + + // A block device template's [[SoftLayer_Virtual_Disk_Image|disk image]] ID. + DiskImageId *int `json:"diskImageId,omitempty" xmlrpc:"diskImageId,omitempty"` + + // The amount of disk space that a block device template is using. Use this number along with the units property to obtain the correct space used. + DiskSpace *Float64 `json:"diskSpace,omitempty" xmlrpc:"diskSpace,omitempty"` + + // A block device template's group. Several block device templates can be combined together into a group for archiving purposes. + Group *Virtual_Guest_Block_Device_Template_Group `json:"group,omitempty" xmlrpc:"group,omitempty"` + + // A block device template's [[SoftLayer_Virtual_Guest_Block_Device_Template_Group|group]] ID. + GroupId *int `json:"groupId,omitempty" xmlrpc:"groupId,omitempty"` + + // A block device template's unique ID. + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // The units that will be used with the disk space property to identify the amount of disk space used. + Units *string `json:"units,omitempty" xmlrpc:"units,omitempty"` +} + +// The virtual block device template group data type presents the structure in which a group of archived image templates will be presented. The structure consists of a parent template group which contain multiple child template group objects. Each child template group object represents the image template in a particular location. Unless editing/deleting a specific child template group object, it is best to use the parent object. +// +// A virtual block device template group, also known as an image template group, represents an image of a virtual guest instance. +type Virtual_Guest_Block_Device_Template_Group struct { + Entity + + // A block device template group's [[SoftLayer_Account|account]]. + Account *Account `json:"account,omitempty" xmlrpc:"account,omitempty"` + + // A count of + AccountContactCount *uint `json:"accountContactCount,omitempty" xmlrpc:"accountContactCount,omitempty"` + + // no documentation yet + AccountContacts []Account_Contact `json:"accountContacts,omitempty" xmlrpc:"accountContacts,omitempty"` + + // A block device template group's [[SoftLayer_Account|account]] ID + AccountId *int `json:"accountId,omitempty" xmlrpc:"accountId,omitempty"` + + // A count of the accounts which may have read-only access to an image template group. Will only be populated for parent template group objects. + AccountReferenceCount *uint `json:"accountReferenceCount,omitempty" xmlrpc:"accountReferenceCount,omitempty"` + + // The accounts which may have read-only access to an image template group. Will only be populated for parent template group objects. + AccountReferences []Virtual_Guest_Block_Device_Template_Group_Accounts `json:"accountReferences,omitempty" xmlrpc:"accountReferences,omitempty"` + + // A count of the block devices that are part of an image template group + BlockDeviceCount *uint `json:"blockDeviceCount,omitempty" xmlrpc:"blockDeviceCount,omitempty"` + + // The block devices that are part of an image template group + BlockDevices []Virtual_Guest_Block_Device_Template `json:"blockDevices,omitempty" xmlrpc:"blockDevices,omitempty"` + + // The total disk space of all images in a image template group. + BlockDevicesDiskSpaceTotal *Float64 `json:"blockDevicesDiskSpaceTotal,omitempty" xmlrpc:"blockDevicesDiskSpaceTotal,omitempty"` + + // The image template groups that are clones of an image template group. + Children []Virtual_Guest_Block_Device_Template_Group `json:"children,omitempty" xmlrpc:"children,omitempty"` + + // A count of the image template groups that are clones of an image template group. + ChildrenCount *uint `json:"childrenCount,omitempty" xmlrpc:"childrenCount,omitempty"` + + // The date a block device template group was created. + CreateDate *Time `json:"createDate,omitempty" xmlrpc:"createDate,omitempty"` + + // The location containing this image template group. Will only be populated for child template group objects. + Datacenter *Location `json:"datacenter,omitempty" xmlrpc:"datacenter,omitempty"` + + // A count of a collection of locations containing a copy of this image template group. Will only be populated for parent template group objects. + DatacenterCount *uint `json:"datacenterCount,omitempty" xmlrpc:"datacenterCount,omitempty"` + + // A collection of locations containing a copy of this image template group. Will only be populated for parent template group objects. + Datacenters []Location `json:"datacenters,omitempty" xmlrpc:"datacenters,omitempty"` + + // A flag indicating if this is a flex image. + FlexImageFlag *bool `json:"flexImageFlag,omitempty" xmlrpc:"flexImageFlag,omitempty"` + + // An image template's universally unique identifier. + GlobalIdentifier *string `json:"globalIdentifier,omitempty" xmlrpc:"globalIdentifier,omitempty"` + + // A block device template group's unique ID. + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // The virtual disk image type of this template. Value will be populated on parent and child, but only supports object filtering on the parent. + ImageType *Virtual_Disk_Image_Type `json:"imageType,omitempty" xmlrpc:"imageType,omitempty"` + + // The virtual disk image type keyname (e.g. SYSTEM, DISK_CAPTURE, ISO, etc) of this template. Value will be populated on parent and child, but only supports object filtering on the parent. + ImageTypeKeyName *string `json:"imageTypeKeyName,omitempty" xmlrpc:"imageTypeKeyName,omitempty"` + + // A user definable and optional name of a block device template group. + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` + + // A block device template group's user defined note. + Note *string `json:"note,omitempty" xmlrpc:"note,omitempty"` + + // The image template group that another image template group was cloned from. + Parent *Virtual_Guest_Block_Device_Template_Group `json:"parent,omitempty" xmlrpc:"parent,omitempty"` + + // A block device template group's [[SoftLayer_Virtual_Guest_Block_Device_Template_Group|parent]] ID. This will only be set when a template group is created from a previously existing template group + ParentId *int `json:"parentId,omitempty" xmlrpc:"parentId,omitempty"` + + // no documentation yet + PublicFlag *int `json:"publicFlag,omitempty" xmlrpc:"publicFlag,omitempty"` + + // A count of the ssh keys to be implemented on the server when provisioned or reloaded from an image template group. + SshKeyCount *uint `json:"sshKeyCount,omitempty" xmlrpc:"sshKeyCount,omitempty"` + + // The ssh keys to be implemented on the server when provisioned or reloaded from an image template group. + SshKeys []Security_Ssh_Key `json:"sshKeys,omitempty" xmlrpc:"sshKeys,omitempty"` + + // A template group's status. + Status *Virtual_Guest_Block_Device_Template_Group_Status `json:"status,omitempty" xmlrpc:"status,omitempty"` + + // A block device template group's [[SoftLayer_Virtual_Guest_Block_Device_Template_Group_Status|status]] ID + StatusId *int `json:"statusId,omitempty" xmlrpc:"statusId,omitempty"` + + // The storage repository that an image template group resides on. + StorageRepository *Virtual_Storage_Repository `json:"storageRepository,omitempty" xmlrpc:"storageRepository,omitempty"` + + // A block device template group's user defined summary. + Summary *string `json:"summary,omitempty" xmlrpc:"summary,omitempty"` + + // A count of the tags associated with this image template group. + TagReferenceCount *uint `json:"tagReferenceCount,omitempty" xmlrpc:"tagReferenceCount,omitempty"` + + // The tags associated with this image template group. + TagReferences []Tag_Reference `json:"tagReferences,omitempty" xmlrpc:"tagReferences,omitempty"` + + // A transaction that is being performed on a image template group. + Transaction *Provisioning_Version1_Transaction `json:"transaction,omitempty" xmlrpc:"transaction,omitempty"` + + // A block device template group's [[SoftLayer_Provisioning_Version1_Transaction|transaction]] ID. This will only be set when there is a transaction being performed on the block device template group. + TransactionId *int `json:"transactionId,omitempty" xmlrpc:"transactionId,omitempty"` + + // A block device template group's [[SoftLayer_User|user]] ID + UserRecordId *int `json:"userRecordId,omitempty" xmlrpc:"userRecordId,omitempty"` +} + +// The SoftLayer_Virtual_Guest_Block_Device_Template_Group_Accounts data type represents the SoftLayer customer accounts which have access to provision CloudLayer Computing Instances from an image template group. +// +// All accounts other than the image template group owner have read-only access to that image template group. +// +// It is important to note that this data type should only exist to give accounts access to the parent template group object, not the child. All image template sharing between accounts should occur on the parent object. +type Virtual_Guest_Block_Device_Template_Group_Accounts struct { + Entity + + // The [[SoftLayer_Account|account]] that an image template group is shared with. + Account *Account `json:"account,omitempty" xmlrpc:"account,omitempty"` + + // The [[SoftLayer_Account|account]] ID which will have access to an image. + AccountId *int `json:"accountId,omitempty" xmlrpc:"accountId,omitempty"` + + // The date access was granted to an account. + CreateDate *Time `json:"createDate,omitempty" xmlrpc:"createDate,omitempty"` + + // The [[SoftLayer_Virtual_Guest_Block_Device_Template_Group|image template group]] that is shared with an account. + Group *Virtual_Guest_Block_Device_Template_Group `json:"group,omitempty" xmlrpc:"group,omitempty"` + + // The [[SoftLayer_Virtual_Guest_Block_Device_Template_Group|group]] ID which access will be granted to. + GroupId *int `json:"groupId,omitempty" xmlrpc:"groupId,omitempty"` +} + +// The virtual block device template group status data type represents the current status of the image template. Depending upon the status, the image template can be used for provisioning or reloading. +// +// For an operating system reload, the image template will need to have a status of 'Active' or 'Deprecated'. For a provision, the image template will need to have a status of 'Active' +// +// +type Virtual_Guest_Block_Device_Template_Group_Status struct { + Entity + + // no documentation yet + Description *string `json:"description,omitempty" xmlrpc:"description,omitempty"` + + // no documentation yet + KeyName *string `json:"keyName,omitempty" xmlrpc:"keyName,omitempty"` + + // no documentation yet + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` +} + +// no documentation yet +type Virtual_Guest_Boot_Parameter struct { + Entity + + // no documentation yet + CreateDate *Time `json:"createDate,omitempty" xmlrpc:"createDate,omitempty"` + + // no documentation yet + Guest *Virtual_Guest `json:"guest,omitempty" xmlrpc:"guest,omitempty"` + + // no documentation yet + GuestBootParameterType *Virtual_Guest_Boot_Parameter_Type `json:"guestBootParameterType,omitempty" xmlrpc:"guestBootParameterType,omitempty"` + + // no documentation yet + GuestBootParameterTypeId *int `json:"guestBootParameterTypeId,omitempty" xmlrpc:"guestBootParameterTypeId,omitempty"` + + // no documentation yet + GuestId *int `json:"guestId,omitempty" xmlrpc:"guestId,omitempty"` + + // no documentation yet + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // no documentation yet + ModifyDate *Time `json:"modifyDate,omitempty" xmlrpc:"modifyDate,omitempty"` +} + +// Describes a virtual guest boot parameter. In this the word class is used in the context of arguments sent to cloud computing instances such as single user mode and boot into bash. +type Virtual_Guest_Boot_Parameter_Type struct { + Entity + + // Available boot options. + BootOption *string `json:"bootOption,omitempty" xmlrpc:"bootOption,omitempty"` + + // no documentation yet + CreateDate *Time `json:"createDate,omitempty" xmlrpc:"createDate,omitempty"` + + // A description of the boot parameter + Description *string `json:"description,omitempty" xmlrpc:"description,omitempty"` + + // Indentifier for record. + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // The key name of the boot parameter. + KeyName *string `json:"keyName,omitempty" xmlrpc:"keyName,omitempty"` + + // no documentation yet + ModifyDate *Time `json:"modifyDate,omitempty" xmlrpc:"modifyDate,omitempty"` + + // The common name of the boot parameter. + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` + + // The virtual machine arguments + Value *string `json:"value,omitempty" xmlrpc:"value,omitempty"` +} + +// The virtual guest network component data type presents the structure in which all computing instance network components are presented. Internally, the structure supports various virtualization platforms with no change to external interaction. +// +// A guest, also known as a virtual server, represents an allocation of resources on a virtual host. +type Virtual_Guest_Network_Component struct { + Entity + + // The date a computing instance's network component was created. + CreateDate *Time `json:"createDate,omitempty" xmlrpc:"createDate,omitempty"` + + // The computing instance that this network component exists on. + Guest *Virtual_Guest `json:"guest,omitempty" xmlrpc:"guest,omitempty"` + + // The unique ID of the [[SoftLayer_Virtual_Guest|computing instance]] that this network component belongs to. + GuestId *int `json:"guestId,omitempty" xmlrpc:"guestId,omitempty"` + + // no documentation yet + HighAvailabilityFirewallFlag *bool `json:"highAvailabilityFirewallFlag,omitempty" xmlrpc:"highAvailabilityFirewallFlag,omitempty"` + + // A computing instance's network component's unique ID. + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // A count of the records of all IP addresses bound to a computing instance's network component. + IpAddressBindingCount *uint `json:"ipAddressBindingCount,omitempty" xmlrpc:"ipAddressBindingCount,omitempty"` + + // The records of all IP addresses bound to a computing instance's network component. + IpAddressBindings []Virtual_Guest_Network_Component_IpAddress `json:"ipAddressBindings,omitempty" xmlrpc:"ipAddressBindings,omitempty"` + + // A computing instance network component's unique MAC address. + MacAddress *string `json:"macAddress,omitempty" xmlrpc:"macAddress,omitempty"` + + // A computing instance network component's maximum allowed speed, measured in Mbit per second. ''maxSpeed'' is determined by the capabilities of the network interface and the port speed purchased on your SoftLayer computing instance. + MaxSpeed *int `json:"maxSpeed,omitempty" xmlrpc:"maxSpeed,omitempty"` + + // The date a computing instance's network component was last modified. + ModifyDate *Time `json:"modifyDate,omitempty" xmlrpc:"modifyDate,omitempty"` + + // A computing instance network component's short name. This is usually ''eth''. Use this in conjunction with the ''port'' property to identify a network component. For instance, the "eth0" interface on a server has the network component name "eth" and port 0. + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` + + // The upstream network component firewall. + NetworkComponentFirewall *Network_Component_Firewall `json:"networkComponentFirewall,omitempty" xmlrpc:"networkComponentFirewall,omitempty"` + + // A computing instance's network component's [[SoftLayer_Virtual_Network|network]] ID + NetworkId *int `json:"networkId,omitempty" xmlrpc:"networkId,omitempty"` + + // The VLAN that a computing instance network component's subnet is associated with. + NetworkVlan *Network_Vlan `json:"networkVlan,omitempty" xmlrpc:"networkVlan,omitempty"` + + // A computing instance network component's port number. Most computing instances have more than one network interface. The port property separates these interfaces. Use this in conjunction with the ''name'' property to identify a network component. For instance, the "eth0" interface on a server has the network component name "eth" and port 0. + Port *int `json:"port,omitempty" xmlrpc:"port,omitempty"` + + // A computing instance network component's primary IP address. + PrimaryIpAddress *string `json:"primaryIpAddress,omitempty" xmlrpc:"primaryIpAddress,omitempty"` + + // no documentation yet + PrimaryIpAddressRecord *Network_Subnet_IpAddress `json:"primaryIpAddressRecord,omitempty" xmlrpc:"primaryIpAddressRecord,omitempty"` + + // A network component's subnet for its primary IP address + PrimarySubnet *Network_Subnet `json:"primarySubnet,omitempty" xmlrpc:"primarySubnet,omitempty"` + + // A network component's primary IPv6 IP address record. + PrimaryVersion6IpAddressRecord *Network_Subnet_IpAddress `json:"primaryVersion6IpAddressRecord,omitempty" xmlrpc:"primaryVersion6IpAddressRecord,omitempty"` + + // A network component's routers. + Router *Hardware_Router `json:"router,omitempty" xmlrpc:"router,omitempty"` + + // A count of the bindings associating security groups to this network component + SecurityGroupBindingCount *uint `json:"securityGroupBindingCount,omitempty" xmlrpc:"securityGroupBindingCount,omitempty"` + + // The bindings associating security groups to this network component + SecurityGroupBindings []Virtual_Network_SecurityGroup_NetworkComponentBinding `json:"securityGroupBindings,omitempty" xmlrpc:"securityGroupBindings,omitempty"` + + // A computing instance network component's speed, measured in Mbit per second. + Speed *int `json:"speed,omitempty" xmlrpc:"speed,omitempty"` + + // A computing instance network component's status. This can be one of four possible values: "ACTIVE", "DISABLED", "INACTIVE", or "ABUSE_DISCONNECT". "ACTIVE" network components are enabled and in use on a cloud instance. "ABUSE_DISCONNECT" status components have been administratively disabled by SoftLayer accounting or abuse. "DISABLED" components have been administratively disabled by you, the user. You should never see a network interface in MACWAIT state. If you happen to see one please contact SoftLayer support. + Status *string `json:"status,omitempty" xmlrpc:"status,omitempty"` + + // A count of a network component's subnets. A subnet is a group of IP addresses + SubnetCount *uint `json:"subnetCount,omitempty" xmlrpc:"subnetCount,omitempty"` + + // A network component's subnets. A subnet is a group of IP addresses + Subnets []Network_Subnet `json:"subnets,omitempty" xmlrpc:"subnets,omitempty"` + + // A computing instance's network component's unique ID on a virtualization platform. + Uuid *string `json:"uuid,omitempty" xmlrpc:"uuid,omitempty"` +} + +// The SoftLayer_Virtual_Guest_Network_Component_IpAddress data type contains general information relating to the binding of a single network component to a single SoftLayer IP address. +type Virtual_Guest_Network_Component_IpAddress struct { + Entity + + // The IP address associated with this object's network component. + IpAddress *Network_Subnet_IpAddress `json:"ipAddress,omitempty" xmlrpc:"ipAddress,omitempty"` + + // The unique ID of the [[SoftLayer_Network_Subnet_ipAddress|ip address]] this virtual IP address is associated with. + IpAddressId *int `json:"ipAddressId,omitempty" xmlrpc:"ipAddressId,omitempty"` + + // The network component associated with this object's IP address. + NetworkComponent *Virtual_Guest_Network_Component `json:"networkComponent,omitempty" xmlrpc:"networkComponent,omitempty"` + + // The port that a network component has reserved. This field is only required for some IP address types. + Port *int `json:"port,omitempty" xmlrpc:"port,omitempty"` + + // The type of IP that this IP address record references. Some examples are PRIMARY for the network component's primary IP address and CONSOLE_PROXY which represents the IP information for logging into a computing instance's console. + Type *string `json:"type,omitempty" xmlrpc:"type,omitempty"` +} + +// The power state class provides a common set of values for which a guest's power state will be presented in the SoftLayer API. +type Virtual_Guest_Power_State struct { + Entity + + // The description of a power state + Description *string `json:"description,omitempty" xmlrpc:"description,omitempty"` + + // The key name of a power state + KeyName *string `json:"keyName,omitempty" xmlrpc:"keyName,omitempty"` + + // The name of a power state + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` +} + +// no documentation yet +type Virtual_Guest_Status struct { + Entity + + // no documentation yet + KeyName *string `json:"keyName,omitempty" xmlrpc:"keyName,omitempty"` + + // no documentation yet + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` +} + +// no documentation yet +type Virtual_Guest_SupplementalCreateObjectOptions struct { + Entity + + // When explicitly set to true, createObject(s) will fail unless the order is started automatically. This can be used by automated systems to fail an order that might otherwise require manual approval. For multi-guest orders via [[SoftLayer_Virtual_Guest/createObjects|createObjects]], this value must be the exact same for every item. + ImmediateApprovalOnlyFlag *bool `json:"immediateApprovalOnlyFlag,omitempty" xmlrpc:"immediateApprovalOnlyFlag,omitempty"` + + // URI of the script to be downloaded and executed after installation is complete. This can be different for each virtual guest when multiple are sent to [[SoftLayer_Virtual_Guest/createObjects|createObjects]]. + PostInstallScriptUri *string `json:"postInstallScriptUri,omitempty" xmlrpc:"postInstallScriptUri,omitempty"` +} + +// SoftLayer_Virtual_Guest_Type models the type of a [[SoftLayer_Virtual_Guest]] (PUBLIC | DEDICATED | PRIVATE) +type Virtual_Guest_Type struct { + Entity + + // no documentation yet + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // no documentation yet + KeyName *string `json:"keyName,omitempty" xmlrpc:"keyName,omitempty"` + + // no documentation yet + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` +} + +// The virtual host represents the platform on which virtual guests reside. At times a virtual host has no allocations on the physical server, however with many modern platforms it is a virtual machine with small CPU and Memory allocations that runs in the Control Domain. +type Virtual_Host struct { + Entity + + // The account which a virtual host belongs to. + Account *Account `json:"account,omitempty" xmlrpc:"account,omitempty"` + + // A virtual host's associated account id + AccountId *int `json:"accountId,omitempty" xmlrpc:"accountId,omitempty"` + + // Boolean flag indicating whether this virtualization platform gets billed per guest rather than at a fixed rate. + BilledPerGuestFlag *bool `json:"billedPerGuestFlag,omitempty" xmlrpc:"billedPerGuestFlag,omitempty"` + + // Boolean flag indicating whether this virtualization platform gets billed per memory usage rather than at a fixed rate. + BilledPerMemoryUsageFlag *bool `json:"billedPerMemoryUsageFlag,omitempty" xmlrpc:"billedPerMemoryUsageFlag,omitempty"` + + // The date a virtual host was created. + CreateDate *Time `json:"createDate,omitempty" xmlrpc:"createDate,omitempty"` + + // A virtual host's description. + Description *string `json:"description,omitempty" xmlrpc:"description,omitempty"` + + // The enabled flag specifies whether a virtual host can run guests. + EnabledFlag *int `json:"enabledFlag,omitempty" xmlrpc:"enabledFlag,omitempty"` + + // A count of the guests associated with a virtual host. + GuestCount *uint `json:"guestCount,omitempty" xmlrpc:"guestCount,omitempty"` + + // The guests associated with a virtual host. + Guests []Virtual_Guest `json:"guests,omitempty" xmlrpc:"guests,omitempty"` + + // The hardware record which a virtual host resides on. + Hardware *Hardware_Server `json:"hardware,omitempty" xmlrpc:"hardware,omitempty"` + + // A hardware device which a virtual host resides. + HardwareId *int `json:"hardwareId,omitempty" xmlrpc:"hardwareId,omitempty"` + + // Unique ID for a virtual host. + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // The metric tracking object for this virtual host. + MetricTrackingObject *Metric_Tracking_Object `json:"metricTrackingObject,omitempty" xmlrpc:"metricTrackingObject,omitempty"` + + // The date a virtual host was last modified. + ModifyDate *Time `json:"modifyDate,omitempty" xmlrpc:"modifyDate,omitempty"` + + // A virtual host's name. + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` + + // The amount of memory physically available for a virtual host. + PhysicalMemoryCapacity *int `json:"physicalMemoryCapacity,omitempty" xmlrpc:"physicalMemoryCapacity,omitempty"` + + // Unique ID for a virtual host's record on a virtualization platform. + Uuid *string `json:"uuid,omitempty" xmlrpc:"uuid,omitempty"` +} + +// The SoftLayer_Virtual_Network_SecurityGroup_NetworkComponentBinding data type contains general information for a single binding. A binding associates a [[SoftLayer_Virtual_Guest_Network_Component]] with a [[SoftLayer_Network_SecurityGroup]]. +type Virtual_Network_SecurityGroup_NetworkComponentBinding struct { + Entity + + // The unique ID for a binding + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // no documentation yet + NetworkComponent *Virtual_Guest_Network_Component `json:"networkComponent,omitempty" xmlrpc:"networkComponent,omitempty"` + + // The ID of the network component + NetworkComponentId *int `json:"networkComponentId,omitempty" xmlrpc:"networkComponentId,omitempty"` + + // no documentation yet + SecurityGroup *Network_SecurityGroup `json:"securityGroup,omitempty" xmlrpc:"securityGroup,omitempty"` + + // The ID of the security group + SecurityGroupId *int `json:"securityGroupId,omitempty" xmlrpc:"securityGroupId,omitempty"` +} + +// The SoftLayer_Virtual_Storage_Repository represents a web based storage system that can be accessed through many types of devices, interfaces, and other resources. +type Virtual_Storage_Repository struct { + Entity + + // The [[SoftLayer_Account|account]] that a storage repository belongs to. + Account *Account `json:"account,omitempty" xmlrpc:"account,omitempty"` + + // The current billing item for a storage repository. + BillingItem *Billing_Item `json:"billingItem,omitempty" xmlrpc:"billingItem,omitempty"` + + // A storage repositories capacity measured in Giga-Bytes (GB) + Capacity *Float64 `json:"capacity,omitempty" xmlrpc:"capacity,omitempty"` + + // The datacenter that a virtual storage repository resides in. + Datacenter *Location `json:"datacenter,omitempty" xmlrpc:"datacenter,omitempty"` + + // A storage repositories description that describes its purpose or contents + Description *string `json:"description,omitempty" xmlrpc:"description,omitempty"` + + // A count of the [[SoftLayer_Virtual_Disk_Image|disk images]] that are in a storage repository. Disk images are the virtual hard drives for a virtual guest. + DiskImageCount *uint `json:"diskImageCount,omitempty" xmlrpc:"diskImageCount,omitempty"` + + // The [[SoftLayer_Virtual_Disk_Image|disk images]] that are in a storage repository. Disk images are the virtual hard drives for a virtual guest. + DiskImages []Virtual_Disk_Image `json:"diskImages,omitempty" xmlrpc:"diskImages,omitempty"` + + // A count of the computing instances that have disk images in a storage repository. + GuestCount *uint `json:"guestCount,omitempty" xmlrpc:"guestCount,omitempty"` + + // The computing instances that have disk images in a storage repository. + Guests []Virtual_Guest `json:"guests,omitempty" xmlrpc:"guests,omitempty"` + + // Unique ID for a storage repository. + Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"` + + // no documentation yet + MetricTrackingObject *Metric_Tracking_Object_Virtual_Storage_Repository `json:"metricTrackingObject,omitempty" xmlrpc:"metricTrackingObject,omitempty"` + + // A storage repositories name that describes its purpose or contents + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` + + // no documentation yet + PublicFlag *int `json:"publicFlag,omitempty" xmlrpc:"publicFlag,omitempty"` + + // The current billing item for a public storage repository. + PublicImageBillingItem *Billing_Item `json:"publicImageBillingItem,omitempty" xmlrpc:"publicImageBillingItem,omitempty"` + + // A storage repository's [[SoftLayer_Virtual_Storage_Repository_Type|type]]. + Type *Virtual_Storage_Repository_Type `json:"type,omitempty" xmlrpc:"type,omitempty"` + + // A storage repositories [[SoftLayer_Virtual_Storage_Repository_Type|type]] ID + TypeId *int `json:"typeId,omitempty" xmlrpc:"typeId,omitempty"` +} + +// SoftLayer employs many different types of repositories that computing instances use as their storage volume. SoftLayer_Virtual_Storage_Repository_Type models a single storage type. Common types of storage repositories include networked file systems, logical volume management, and local disk volumes for swap and page file management. +type Virtual_Storage_Repository_Type struct { + Entity + + // A brief description os a storage repository type. + Description *string `json:"description,omitempty" xmlrpc:"description,omitempty"` + + // A storage repository type's name. + Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"` + + // The storage repositories on a SoftLayer customer account that belong to this type. + StorageRepositories []Virtual_Storage_Repository `json:"storageRepositories,omitempty" xmlrpc:"storageRepositories,omitempty"` + + // A count of the storage repositories on a SoftLayer customer account that belong to this type. + StorageRepositoryCount *uint `json:"storageRepositoryCount,omitempty" xmlrpc:"storageRepositoryCount,omitempty"` +} diff --git a/vendor/github.com/softlayer/softlayer-go/filter/filters.go b/vendor/github.com/softlayer/softlayer-go/filter/filters.go new file mode 100644 index 000000000..5f7804014 --- /dev/null +++ b/vendor/github.com/softlayer/softlayer-go/filter/filters.go @@ -0,0 +1,305 @@ +/** + * Copyright 2016 IBM Corp. + * + * 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. + */ + +// See reference at https://sldn.softlayer.com/article/object-filters. +// Examples in the README.md file and in the examples directory. +package filter + +import ( + "encoding/json" + "fmt" + "strings" +) + +type Filter struct { + Path string + Op string + Opts map[string]interface{} + Val interface{} +} + +type Filters []Filter + +// Returns an array of Filters that you can later call .Build() on. +func New(args ...Filter) Filters { + return args +} + +// This is like calling New().Build(). +// Returns a JSON string that can be used as the object filter. +func Build(args ...Filter) string { + filters := Filters{} + + for _, arg := range args { + filters = append(filters, arg) + } + + return filters.Build() +} + +// This creates a new Filter. The path is a dot-delimited path down +// to the attribute this filter is for. The second value parameter +// is optional. +func Path(path string, val ...interface{}) Filter { + if len(val) > 0 { + return Filter{Path: path, Val: val[0]} + } + + return Filter{Path: path} +} + +// Builds the filter string in JSON format +func (fs Filters) Build() string { + // Loops around filters, + // splitting path on '.' and looping around path pieces. + // Idea is to create a map/tree like map[string]interface{}. + // Every component in the path is a node to create in the tree. + // Once we get to the leaf, we set the operation. + // map[string]interface{}{"operation": op+" "+value} + // If Op is "", then just map[string]interface{}{"operation": value}. + // Afterwards, the Opts are traversed; []map[string]interface{}{} + // For every entry in Opts, we create one map, and append it to an array of maps. + // At the end, json.Marshal the whole thing. + result := map[string]interface{}{} + for _, filter := range fs { + if filter.Path == "" { + continue + } + + cursor := result + nodes := strings.Split(filter.Path, ".") + for len(nodes) > 1 { + branch := nodes[0] + if _, ok := cursor[branch]; !ok { + cursor[branch] = map[string]interface{}{} + } + cursor = cursor[branch].(map[string]interface{}) + nodes = nodes[1:len(nodes)] + } + + leaf := nodes[0] + if filter.Val != nil { + operation := filter.Val + if filter.Op != "" { + var format string + switch filter.Val.(type) { + case int: + format = "%d" + default: + format = "%s" + } + operation = filter.Op + " " + fmt.Sprintf(format, filter.Val) + } + + cursor[leaf] = map[string]interface{}{ + "operation": operation, + } + } + + if filter.Opts == nil { + continue + } + + options := []map[string]interface{}{} + for name, value := range filter.Opts { + options = append(options, map[string]interface{}{ + "name": name, + "value": value, + }) + } + + cursor[leaf] = map[string]interface{}{ + "operation": filter.Op, + "options": options, + } + } + + jsonStr, _ := json.Marshal(result) + return string(jsonStr) +} + +// Builds the filter string in JSON format +func (f Filter) Build() string { + return Build(f) +} + +// Add options to the filter. Can be chained for multiple options. +func (f Filter) Opt(name string, value interface{}) Filter { + if f.Opts == nil { + f.Opts = map[string]interface{}{} + } + + f.Opts[name] = value + return f +} + +// Set this filter to test if property is equal to the value +func (f Filter) Eq(val interface{}) Filter { + f.Op = "" + f.Val = val + return f +} + +// Set this filter to test if property is not equal to the value +func (f Filter) NotEq(val interface{}) Filter { + f.Op = "!=" + f.Val = val + return f +} + +// Set this filter to test if property is like the value +func (f Filter) Like(val interface{}) Filter { + f.Op = "~" + f.Val = val + return f +} + +// Set this filter to test if property is unlike value +func (f Filter) NotLike(val interface{}) Filter { + f.Op = "!~" + f.Val = val + return f +} + +// Set this filter to test if property is less than value +func (f Filter) LessThan(val interface{}) Filter { + f.Op = "<" + f.Val = val + return f +} + +// Set this filter to test if property is less than or equal to the value +func (f Filter) LessThanOrEqual(val interface{}) Filter { + f.Op = "<=" + f.Val = val + return f +} + +// Set this filter to test if property is greater than value +func (f Filter) GreaterThan(val interface{}) Filter { + f.Op = ">" + f.Val = val + return f +} + +// Set this filter to test if property is greater than or equal to value +func (f Filter) GreaterThanOrEqual(val interface{}) Filter { + f.Op = ">=" + f.Val = val + return f +} + +// Set this filter to test if property is null +func (f Filter) IsNull() Filter { + f.Op = "" + f.Val = "is null" + return f +} + +// Set this filter to test if property is not null +func (f Filter) NotNull() Filter { + f.Op = "" + f.Val = "not null" + return f +} + +// Set this filter to test if property contains the value +func (f Filter) Contains(val interface{}) Filter { + f.Op = "*=" + f.Val = val + return f +} + +// Set this filter to test if property does not contain the value +func (f Filter) NotContains(val interface{}) Filter { + f.Op = "!*=" + f.Val = val + return f +} + +// Set this filter to test if property starts with the value +func (f Filter) StartsWith(val interface{}) Filter { + f.Op = "^=" + f.Val = val + return f +} + +// Set this filter to test if property does not start with the value +func (f Filter) NotStartsWith(val interface{}) Filter { + f.Op = "!^=" + f.Val = val + return f +} + +// Set this filter to test if property ends with the value +func (f Filter) EndsWith(val interface{}) Filter { + f.Op = "$=" + f.Val = val + return f +} + +// Set this filter to test if property does not end with the value +func (f Filter) NotEndsWith(val interface{}) Filter { + f.Op = "!$=" + f.Val = val + return f +} + +// Set this filter to test if property is one of the values in args. +func (f Filter) In(args ...interface{}) Filter { + f.Op = "in" + values := []interface{}{} + for _, arg := range args { + values = append(values, arg) + } + + return f.Opt("data", values) +} + +// Set this filter to test if property has a date older than the value in days. +func (f Filter) DaysPast(val interface{}) Filter { + f.Op = ">= currentDate -" + f.Val = val + return f +} + +// Set this filter to test if property has the exact date as the value. +func (f Filter) Date(date string) Filter { + f.Op = "isDate" + f.Val = nil + return f.Opt("date", []string{date}) +} + +// Set this filter to test if property has a date before the value. +func (f Filter) DateBefore(date string) Filter { + f.Op = "lessThanDate" + f.Val = nil + return f.Opt("date", []string{date}) +} + +// Set this filter to test if property has a date after the value. +func (f Filter) DateAfter(date string) Filter { + f.Op = "greaterThanDate" + f.Val = nil + return f.Opt("date", []string{date}) +} + +// Set this filter to test if property has a date between the values. +func (f Filter) DateBetween(start string, end string) Filter { + f.Op = "betweenDate" + f.Val = nil + return f.Opt("startDate", []string{start}).Opt("endDate", []string{end}) +} diff --git a/vendor/github.com/softlayer/softlayer-go/services/account.go b/vendor/github.com/softlayer/softlayer-go/services/account.go new file mode 100644 index 000000000..ff09b164e --- /dev/null +++ b/vendor/github.com/softlayer/softlayer-go/services/account.go @@ -0,0 +1,4602 @@ +/** + * Copyright 2016 IBM Corp. + * + * 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. + */ + +/** + * AUTOMATICALLY GENERATED CODE - DO NOT MODIFY + */ + +package services + +import ( + "fmt" + "strings" + + "github.com/softlayer/softlayer-go/datatypes" + "github.com/softlayer/softlayer-go/session" + "github.com/softlayer/softlayer-go/sl" +) + +// The SoftLayer_Account data type contains general information relating to a single SoftLayer customer account. Personal information in this type such as names, addresses, and phone numbers are assigned to the account only and not to users belonging to the account. The SoftLayer_Account data type contains a number of relational properties that are used by the SoftLayer customer portal to quickly present a variety of account related services to it's users. +// +// SoftLayer customers are unable to change their company account information in the portal or the API. If you need to change this information please open a sales ticket in our customer portal and our account management staff will assist you. +type Account struct { + Session *session.Session + Options sl.Options +} + +// GetAccountService returns an instance of the Account SoftLayer service +func GetAccountService(sess *session.Session) Account { + return Account{Session: sess} +} + +func (r Account) Id(id int) Account { + r.Options.Id = &id + return r +} + +func (r Account) Mask(mask string) Account { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Account) Filter(filter string) Account { + r.Options.Filter = filter + return r +} + +func (r Account) Limit(limit int) Account { + r.Options.Limit = &limit + return r +} + +func (r Account) Offset(offset int) Account { + r.Options.Offset = &offset + return r +} + +// no documentation yet +func (r Account) ActivatePartner(accountId *string, hashCode *string) (resp datatypes.Account, err error) { + params := []interface{}{ + accountId, + hashCode, + } + err = r.Session.DoRequest("SoftLayer_Account", "activatePartner", params, &r.Options, &resp) + return +} + +// no documentation yet +func (r Account) AddAchInformation(achInformation *datatypes.Container_Billing_Info_Ach) (resp bool, err error) { + params := []interface{}{ + achInformation, + } + err = r.Session.DoRequest("SoftLayer_Account", "addAchInformation", params, &r.Options, &resp) + return +} + +// no documentation yet +func (r Account) AddReferralPartnerPaymentOption(paymentOption *datatypes.Container_Referral_Partner_Payment_Option) (resp bool, err error) { + params := []interface{}{ + paymentOption, + } + err = r.Session.DoRequest("SoftLayer_Account", "addReferralPartnerPaymentOption", params, &r.Options, &resp) + return +} + +// This method indicates whether or not Bandwidth Pooling updates are blocked for the account so the billing cycle can run. Generally, accounts are restricted from moving servers in or out of Bandwidth Pools from 12:00 CST on the day prior to billing, until the billing batch completes, sometime after midnight the day of actual billing for the account. +func (r Account) AreVdrUpdatesBlockedForBilling() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "areVdrUpdatesBlockedForBilling", nil, &r.Options, &resp) + return +} + +// Cancel the PayPal Payment Request process. During the process of submitting a PayPal payment request, the customer is redirected to PayPal to confirm the request. If the customer elects to cancel the payment from PayPal, they are returned to SoftLayer where the manual payment record is updated to a status of canceled. +func (r Account) CancelPayPalTransaction(token *string, payerId *string) (resp bool, err error) { + params := []interface{}{ + token, + payerId, + } + err = r.Session.DoRequest("SoftLayer_Account", "cancelPayPalTransaction", params, &r.Options, &resp) + return +} + +// Complete the PayPal Payment Request process and receive confirmation message. During the process of submitting a PayPal payment request, the customer is redirected to PayPal to confirm the request. Once confirmed, PayPal returns the customer to SoftLayer where an attempt is made to finalize the transaction. A status message regarding the attempt is returned to the calling function. +func (r Account) CompletePayPalTransaction(token *string, payerId *string) (resp string, err error) { + params := []interface{}{ + token, + payerId, + } + err = r.Session.DoRequest("SoftLayer_Account", "completePayPalTransaction", params, &r.Options, &resp) + return +} + +// Retrieve the number of hourly services on an account that are active, plus any pending orders with hourly services attached. +func (r Account) CountHourlyInstances() (resp int, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "countHourlyInstances", nil, &r.Options, &resp) + return +} + +// Create a new Customer user record in the SoftLayer customer portal. This is a wrapper around the Customer::createObject call, please see the documentation of that API. This wrapper adds the feature of the "silentlyCreate" option, which bypasses the IBMid invitation email process. False (the default) goes through the IBMid invitation email process, which creates the IBMid/SoftLayer Single-Sign-On (SSO) user link when the invitation is accepted (meaning the email has been received, opened, and the link(s) inside the email have been clicked to complete the process). True will silently (no email) create the IBMid/SoftLayer user SSO link immediately. Either case will use the value in the template object 'email' field to indicate the IBMid to use. This can be the username or, if unique, the email address of an IBMid. In the silent case, the IBMid must already exist. In the non-silent invitation email case, the IBMid can be created during this flow, by specifying an email address to be used to create the IBMid.All the features and restrictions of createObject apply to this API as well. In addition, note that the "silentlyCreate" flag is ONLY valid for IBMid-authenticated accounts. +func (r Account) CreateUser(templateObject *datatypes.User_Customer, password *string, vpnPassword *string, silentlyCreateFlag *bool) (resp datatypes.User_Customer, err error) { + params := []interface{}{ + templateObject, + password, + vpnPassword, + silentlyCreateFlag, + } + err = r.Session.DoRequest("SoftLayer_Account", "createUser", params, &r.Options, &resp) + return +} + +// Retrieve An email address that is responsible for abuse and legal inquiries on behalf of an account. For instance, new legal and abuse tickets are sent to this address. +func (r Account) GetAbuseEmail() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getAbuseEmail", nil, &r.Options, &resp) + return +} + +// Retrieve Email addresses that are responsible for abuse and legal inquiries on behalf of an account. For instance, new legal and abuse tickets are sent to these addresses. +func (r Account) GetAbuseEmails() (resp []datatypes.Account_AbuseEmail, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getAbuseEmails", nil, &r.Options, &resp) + return +} + +// This method returns an array of SoftLayer_Container_Network_Storage_Evault_WebCc_JobDetails objects for the given start and end dates. Start and end dates should be be valid ISO 8601 dates. The backupStatus can be one of null, 'success', 'failed', or 'conflict'. The 'success' backupStatus returns jobs with a status of 'COMPLETED', the 'failed' backupStatus returns jobs with a status of 'FAILED', while the 'conflict' backupStatus will return jobs that are not 'COMPLETED' or 'FAILED'. +func (r Account) GetAccountBackupHistory(startDate *datatypes.Time, endDate *datatypes.Time, backupStatus *string) (resp []datatypes.Container_Network_Storage_Evault_WebCc_JobDetails, err error) { + params := []interface{}{ + startDate, + endDate, + backupStatus, + } + err = r.Session.DoRequest("SoftLayer_Account", "getAccountBackupHistory", params, &r.Options, &resp) + return +} + +// Retrieve The account contacts on an account. +func (r Account) GetAccountContacts() (resp []datatypes.Account_Contact, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getAccountContacts", nil, &r.Options, &resp) + return +} + +// Retrieve The account software licenses owned by an account +func (r Account) GetAccountLicenses() (resp []datatypes.Software_AccountLicense, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getAccountLicenses", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Account) GetAccountLinks() (resp []datatypes.Account_Link, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getAccountLinks", nil, &r.Options, &resp) + return +} + +// Retrieve An account's status presented in a more detailed data type. +func (r Account) GetAccountStatus() (resp datatypes.Account_Status, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getAccountStatus", nil, &r.Options, &resp) + return +} + +// This method pulls an account trait by its key. +func (r Account) GetAccountTraitValue(keyName *string) (resp string, err error) { + params := []interface{}{ + keyName, + } + err = r.Session.DoRequest("SoftLayer_Account", "getAccountTraitValue", params, &r.Options, &resp) + return +} + +// Retrieve The billing item associated with an account's monthly discount. +func (r Account) GetActiveAccountDiscountBillingItem() (resp datatypes.Billing_Item, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getActiveAccountDiscountBillingItem", nil, &r.Options, &resp) + return +} + +// Retrieve The active account software licenses owned by an account +func (r Account) GetActiveAccountLicenses() (resp []datatypes.Software_AccountLicense, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getActiveAccountLicenses", nil, &r.Options, &resp) + return +} + +// Retrieve The active address(es) that belong to an account. +func (r Account) GetActiveAddresses() (resp []datatypes.Account_Address, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getActiveAddresses", nil, &r.Options, &resp) + return +} + +// Return all currently active alarms on this account. Only alarms on hardware and virtual servers accessible to the current user will be returned. +func (r Account) GetActiveAlarms() (resp []datatypes.Container_Monitoring_Alarm_History, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getActiveAlarms", nil, &r.Options, &resp) + return +} + +// Retrieve All billing agreements for an account +func (r Account) GetActiveBillingAgreements() (resp []datatypes.Account_Agreement, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getActiveBillingAgreements", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Account) GetActiveCatalystEnrollment() (resp datatypes.Catalyst_Enrollment, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getActiveCatalystEnrollment", nil, &r.Options, &resp) + return +} + +// Retrieve The account's active top level colocation containers. +func (r Account) GetActiveColocationContainers() (resp []datatypes.Billing_Item, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getActiveColocationContainers", nil, &r.Options, &resp) + return +} + +// Retrieve Account's currently active Flexible Credit enrollment. +func (r Account) GetActiveFlexibleCreditEnrollment() (resp datatypes.FlexibleCredit_Enrollment, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getActiveFlexibleCreditEnrollment", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Account) GetActiveNotificationSubscribers() (resp []datatypes.Notification_Subscriber, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getActiveNotificationSubscribers", nil, &r.Options, &resp) + return +} + +// This method pulls all the active packages. This will give you a basic description of the packages within the SoftLayer Outlet store that are currently active and from which you can order a server or additional services. +func (r Account) GetActiveOutletPackages() (resp []datatypes.Product_Package, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getActiveOutletPackages", nil, &r.Options, &resp) + return +} + +// This method will return the [[SoftLayer_Product_Package]] objects from which you can order a bare metal server, virtual server, service (such as CDN or Object Storage) or other software. Once you have the package you want to order from, you may query one of various endpoints from that package to get specific information about its products and pricing. See [[SoftLayer_Product_Package/getCategories|getCategories]] or [[SoftLayer_Product_Package/getItems|getItems]] for more information. +// +// Packages that have been retired will not appear in this result set. +func (r Account) GetActivePackages() (resp []datatypes.Product_Package, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getActivePackages", nil, &r.Options, &resp) + return +} + +// This method is deprecated and should not be used in production code. +// +// This method will return the [[SoftLayer_Product_Package]] objects from which you can order a bare metal server, virtual server, service (such as CDN or Object Storage) or other software filtered by an attribute type associated with the package. Once you have the package you want to order from, you may query one of various endpoints from that package to get specific information about its products and pricing. See [[SoftLayer_Product_Package/getCategories|getCategories]] or [[SoftLayer_Product_Package/getItems|getItems]] for more information. +func (r Account) GetActivePackagesByAttribute(attributeKeyName *string) (resp []datatypes.Product_Package, err error) { + params := []interface{}{ + attributeKeyName, + } + err = r.Session.DoRequest("SoftLayer_Account", "getActivePackagesByAttribute", params, &r.Options, &resp) + return +} + +// This method pulls all the active private hosted cloud packages. This will give you a basic description of the packages that are currently active and from which you can order private hosted cloud configurations. +func (r Account) GetActivePrivateHostedCloudPackages() (resp []datatypes.Product_Package, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getActivePrivateHostedCloudPackages", nil, &r.Options, &resp) + return +} + +// Retrieve An account's non-expired quotes. +func (r Account) GetActiveQuotes() (resp []datatypes.Billing_Order_Quote, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getActiveQuotes", nil, &r.Options, &resp) + return +} + +// Retrieve The virtual software licenses controlled by an account +func (r Account) GetActiveVirtualLicenses() (resp []datatypes.Software_VirtualLicense, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getActiveVirtualLicenses", nil, &r.Options, &resp) + return +} + +// Retrieve An account's associated load balancers. +func (r Account) GetAdcLoadBalancers() (resp []datatypes.Network_Application_Delivery_Controller_LoadBalancer_VirtualIpAddress, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getAdcLoadBalancers", nil, &r.Options, &resp) + return +} + +// Retrieve All the address(es) that belong to an account. +func (r Account) GetAddresses() (resp []datatypes.Account_Address, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getAddresses", nil, &r.Options, &resp) + return +} + +// Retrieve An affiliate identifier associated with the customer account. +func (r Account) GetAffiliateId() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getAffiliateId", nil, &r.Options, &resp) + return +} + +// Returns URL uptime data for your account +func (r Account) GetAggregatedUptimeGraph(startDate *datatypes.Time, endDate *datatypes.Time) (resp datatypes.Container_Graph, err error) { + params := []interface{}{ + startDate, + endDate, + } + err = r.Session.DoRequest("SoftLayer_Account", "getAggregatedUptimeGraph", params, &r.Options, &resp) + return +} + +// Retrieve The billing items that will be on an account's next invoice. +func (r Account) GetAllBillingItems() (resp []datatypes.Billing_Item, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getAllBillingItems", nil, &r.Options, &resp) + return +} + +// Retrieve The billing items that will be on an account's next invoice. +func (r Account) GetAllCommissionBillingItems() (resp []datatypes.Billing_Item, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getAllCommissionBillingItems", nil, &r.Options, &resp) + return +} + +// Retrieve The billing items that will be on an account's next invoice. +func (r Account) GetAllRecurringTopLevelBillingItems() (resp []datatypes.Billing_Item, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getAllRecurringTopLevelBillingItems", nil, &r.Options, &resp) + return +} + +// Retrieve The billing items that will be on an account's next invoice. Does not consider associated items. +func (r Account) GetAllRecurringTopLevelBillingItemsUnfiltered() (resp []datatypes.Billing_Item, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getAllRecurringTopLevelBillingItemsUnfiltered", nil, &r.Options, &resp) + return +} + +// Retrieve The billing items that will be on an account's next invoice. +func (r Account) GetAllSubnetBillingItems() (resp []datatypes.Billing_Item, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getAllSubnetBillingItems", nil, &r.Options, &resp) + return +} + +// Retrieve All billing items of an account. +func (r Account) GetAllTopLevelBillingItems() (resp []datatypes.Billing_Item, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getAllTopLevelBillingItems", nil, &r.Options, &resp) + return +} + +// Retrieve The billing items that will be on an account's next invoice. Does not consider associated items. +func (r Account) GetAllTopLevelBillingItemsUnfiltered() (resp []datatypes.Billing_Item, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getAllTopLevelBillingItemsUnfiltered", nil, &r.Options, &resp) + return +} + +// Retrieve Indicates whether this account is allowed to silently migrate to use IBMid Authentication. +func (r Account) GetAllowIbmIdSilentMigrationFlag() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getAllowIbmIdSilentMigrationFlag", nil, &r.Options, &resp) + return +} + +// Retrieve Flag indicating if this account can be linked with Bluemix. +func (r Account) GetAllowsBluemixAccountLinkingFlag() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getAllowsBluemixAccountLinkingFlag", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Account) GetAlternateCreditCardData() (resp datatypes.Container_Account_Payment_Method_CreditCard, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getAlternateCreditCardData", nil, &r.Options, &resp) + return +} + +// Retrieve An account's associated application delivery controller records. +func (r Account) GetApplicationDeliveryControllers() (resp []datatypes.Network_Application_Delivery_Controller, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getApplicationDeliveryControllers", nil, &r.Options, &resp) + return +} + +// Retrieve a single [[SoftLayer_Account_Attribute]] record by its [[SoftLayer_Account_Attribute_Type|types's]] key name. +func (r Account) GetAttributeByType(attributeType *string) (resp datatypes.Account_Attribute, err error) { + params := []interface{}{ + attributeType, + } + err = r.Session.DoRequest("SoftLayer_Account", "getAttributeByType", params, &r.Options, &resp) + return +} + +// Retrieve The account attribute values for a SoftLayer customer account. +func (r Account) GetAttributes() (resp []datatypes.Account_Attribute, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getAttributes", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Account) GetAuxiliaryNotifications() (resp []datatypes.Container_Utility_Message, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getAuxiliaryNotifications", nil, &r.Options, &resp) + return +} + +// Retrieve The public network VLANs assigned to an account. +func (r Account) GetAvailablePublicNetworkVlans() (resp []datatypes.Network_Vlan, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getAvailablePublicNetworkVlans", nil, &r.Options, &resp) + return +} + +// Returns the average disk space usage for all archive repositories. +func (r Account) GetAverageArchiveUsageMetricDataByDate(startDateTime *datatypes.Time, endDateTime *datatypes.Time) (resp datatypes.Float64, err error) { + params := []interface{}{ + startDateTime, + endDateTime, + } + err = r.Session.DoRequest("SoftLayer_Account", "getAverageArchiveUsageMetricDataByDate", params, &r.Options, &resp) + return +} + +// Returns the average disk space usage for all public repositories. +func (r Account) GetAveragePublicUsageMetricDataByDate(startDateTime *datatypes.Time, endDateTime *datatypes.Time) (resp datatypes.Float64, err error) { + params := []interface{}{ + startDateTime, + endDateTime, + } + err = r.Session.DoRequest("SoftLayer_Account", "getAveragePublicUsageMetricDataByDate", params, &r.Options, &resp) + return +} + +// Retrieve The account balance of a SoftLayer customer account. An account's balance is the amount of money owed to SoftLayer by the account holder, returned as a floating point number with two decimal places, measured in US Dollars ($USD). A negative account balance means the account holder has overpaid and is owed money by SoftLayer. +func (r Account) GetBalance() (resp datatypes.Float64, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getBalance", nil, &r.Options, &resp) + return +} + +// Retrieve The bandwidth allotments for an account. +func (r Account) GetBandwidthAllotments() (resp []datatypes.Network_Bandwidth_Version1_Allotment, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getBandwidthAllotments", nil, &r.Options, &resp) + return +} + +// Retrieve The bandwidth allotments for an account currently over allocation. +func (r Account) GetBandwidthAllotmentsOverAllocation() (resp []datatypes.Network_Bandwidth_Version1_Allotment, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getBandwidthAllotmentsOverAllocation", nil, &r.Options, &resp) + return +} + +// Retrieve The bandwidth allotments for an account projected to go over allocation. +func (r Account) GetBandwidthAllotmentsProjectedOverAllocation() (resp []datatypes.Network_Bandwidth_Version1_Allotment, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getBandwidthAllotmentsProjectedOverAllocation", nil, &r.Options, &resp) + return +} + +// Retrieve An account's associated bare metal server objects. +func (r Account) GetBareMetalInstances() (resp []datatypes.Hardware, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getBareMetalInstances", nil, &r.Options, &resp) + return +} + +// Retrieve All billing agreements for an account +func (r Account) GetBillingAgreements() (resp []datatypes.Account_Agreement, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getBillingAgreements", nil, &r.Options, &resp) + return +} + +// Retrieve An account's billing information. +func (r Account) GetBillingInfo() (resp datatypes.Billing_Info, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getBillingInfo", nil, &r.Options, &resp) + return +} + +// Retrieve Private template group objects (parent and children) and the shared template group objects (parent only) for an account. +func (r Account) GetBlockDeviceTemplateGroups() (resp []datatypes.Virtual_Guest_Block_Device_Template_Group, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getBlockDeviceTemplateGroups", nil, &r.Options, &resp) + return +} + +// Retrieve Indicates whether this account requires blue id authentication. +func (r Account) GetBlueIdAuthenticationRequiredFlag() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getBlueIdAuthenticationRequiredFlag", nil, &r.Options, &resp) + return +} + +// Retrieve Returns true if this account is linked to IBM Bluemix, false if not. +func (r Account) GetBluemixLinkedFlag() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getBluemixLinkedFlag", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Account) GetBrand() (resp datatypes.Brand, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getBrand", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Account) GetBrandAccountFlag() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getBrandAccountFlag", nil, &r.Options, &resp) + return +} + +// Retrieve The brand keyName. +func (r Account) GetBrandKeyName() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getBrandKeyName", nil, &r.Options, &resp) + return +} + +// Retrieve Indicating whether this account can order additional Vlans. +func (r Account) GetCanOrderAdditionalVlansFlag() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getCanOrderAdditionalVlansFlag", nil, &r.Options, &resp) + return +} + +// Retrieve An account's active carts. +func (r Account) GetCarts() (resp []datatypes.Billing_Order_Quote, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getCarts", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Account) GetCatalystEnrollments() (resp []datatypes.Catalyst_Enrollment, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getCatalystEnrollments", nil, &r.Options, &resp) + return +} + +// Retrieve An account's associated CDN accounts. +func (r Account) GetCdnAccounts() (resp []datatypes.Network_ContentDelivery_Account, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getCdnAccounts", nil, &r.Options, &resp) + return +} + +// Retrieve All closed tickets associated with an account. +func (r Account) GetClosedTickets() (resp []datatypes.Ticket, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getClosedTickets", nil, &r.Options, &resp) + return +} + +// This method returns a SoftLayer_Container_Account_Graph_Outputs containing a base64 string PNG image. The optional parameter, detailedGraph, can be passed to get a more detailed graph. +func (r Account) GetCurrentBackupStatisticsGraph(detailedGraph *bool) (resp datatypes.Container_Account_Graph_Outputs, err error) { + params := []interface{}{ + detailedGraph, + } + err = r.Session.DoRequest("SoftLayer_Account", "getCurrentBackupStatisticsGraph", params, &r.Options, &resp) + return +} + +// no documentation yet +func (r Account) GetCurrentTicketStatisticsGraph(detailedGraph *bool) (resp datatypes.Container_Account_Graph_Outputs, err error) { + params := []interface{}{ + detailedGraph, + } + err = r.Session.DoRequest("SoftLayer_Account", "getCurrentTicketStatisticsGraph", params, &r.Options, &resp) + return +} + +// Retrieve the user record of the user calling the SoftLayer API. +func (r Account) GetCurrentUser() (resp datatypes.User_Customer, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getCurrentUser", nil, &r.Options, &resp) + return +} + +// Retrieve Datacenters which contain subnets that the account has access to route. +func (r Account) GetDatacentersWithSubnetAllocations() (resp []datatypes.Location, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getDatacentersWithSubnetAllocations", nil, &r.Options, &resp) + return +} + +// Retrieve An account's associated virtual dedicated host objects. +func (r Account) GetDedicatedHosts() (resp []datatypes.Virtual_DedicatedHost, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getDedicatedHosts", nil, &r.Options, &resp) + return +} + +// Retrieve A flag indicating whether payments are processed for this account. +func (r Account) GetDisablePaymentProcessingFlag() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getDisablePaymentProcessingFlag", nil, &r.Options, &resp) + return +} + +// Retrieve disk usage data on a [[SoftLayer_Virtual_Guest|Cloud Computing Instance]] image for the time range you provide from the Metric Tracking Object System and Legacy Data Warehouse. Each data entry objects contain ''dateTime'' and ''counter'' properties. ''dateTime'' property indicates the time that the disk usage data was measured and ''counter'' property holds the disk usage in bytes. +func (r Account) GetDiskUsageMetricDataByDate(startDateTime *datatypes.Time, endDateTime *datatypes.Time) (resp []datatypes.Metric_Tracking_Object_Data, err error) { + params := []interface{}{ + startDateTime, + endDateTime, + } + err = r.Session.DoRequest("SoftLayer_Account", "getDiskUsageMetricDataByDate", params, &r.Options, &resp) + return +} + +// Retrieve disk usage data on a [[SoftLayer_Virtual_Guest|Cloud Computing Instance]] image for the time range you provide from the Legacy Data Warehouse. Each data entry objects contain ''dateTime'' and ''counter'' properties. ''dateTime'' property indicates the time that the disk usage data was measured and ''counter'' property holds the disk usage in bytes. +func (r Account) GetDiskUsageMetricDataFromLegacyByDate(startDateTime *datatypes.Time, endDateTime *datatypes.Time) (resp []datatypes.Metric_Tracking_Object_Data, err error) { + params := []interface{}{ + startDateTime, + endDateTime, + } + err = r.Session.DoRequest("SoftLayer_Account", "getDiskUsageMetricDataFromLegacyByDate", params, &r.Options, &resp) + return +} + +// Retrieve disk usage data on a [[SoftLayer_Virtual_Guest|Cloud Computing Instance]] image for the time range you provide from the Metric Tracking Object System. Each data entry object contains ''dateTime'' and ''counter'' properties. ''dateTime'' property indicates the time that the disk usage data was measured and ''counter'' property holds the disk usage in bytes. +func (r Account) GetDiskUsageMetricDataFromMetricTrackingObjectSystemByDate(startDateTime *datatypes.Time, endDateTime *datatypes.Time) (resp []datatypes.Metric_Tracking_Object_Data, err error) { + params := []interface{}{ + startDateTime, + endDateTime, + } + err = r.Session.DoRequest("SoftLayer_Account", "getDiskUsageMetricDataFromMetricTrackingObjectSystemByDate", params, &r.Options, &resp) + return +} + +// Returns a disk usage image based on disk usage specified by the input parameters. +func (r Account) GetDiskUsageMetricImageByDate(startDateTime *datatypes.Time, endDateTime *datatypes.Time) (resp datatypes.Container_Account_Graph_Outputs, err error) { + params := []interface{}{ + startDateTime, + endDateTime, + } + err = r.Session.DoRequest("SoftLayer_Account", "getDiskUsageMetricImageByDate", params, &r.Options, &resp) + return +} + +// Retrieve The SoftLayer employees that an account is assigned to. +func (r Account) GetDisplaySupportRepresentativeAssignments() (resp []datatypes.Account_Attachment_Employee, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getDisplaySupportRepresentativeAssignments", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Account) GetDomainRegistrations() (resp []datatypes.Dns_Domain_Registration, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getDomainRegistrations", nil, &r.Options, &resp) + return +} + +// Retrieve The DNS domains associated with an account. +func (r Account) GetDomains() (resp []datatypes.Dns_Domain, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getDomains", nil, &r.Options, &resp) + return +} + +// Retrieve The DNS domains associated with an account that were not created as a result of a secondary DNS zone transfer. +func (r Account) GetDomainsWithoutSecondaryDnsRecords() (resp []datatypes.Dns_Domain, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getDomainsWithoutSecondaryDnsRecords", nil, &r.Options, &resp) + return +} + +// Retrieve The total capacity of Legacy EVault Volumes on an account, in GB. +func (r Account) GetEvaultCapacityGB() (resp uint, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getEvaultCapacityGB", nil, &r.Options, &resp) + return +} + +// Retrieve An account's master EVault user. This is only used when an account has EVault service. +func (r Account) GetEvaultMasterUsers() (resp []datatypes.Account_Password, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getEvaultMasterUsers", nil, &r.Options, &resp) + return +} + +// Retrieve An account's associated EVault storage volumes. +func (r Account) GetEvaultNetworkStorage() (resp []datatypes.Network_Storage, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getEvaultNetworkStorage", nil, &r.Options, &resp) + return +} + +// This method will return a PDF of the specified report, with the specified period within the start and end dates. The pdfType must be one of 'snapshot', or 'historical'. Possible historicalType parameters are 'monthly', 'yearly', and 'quarterly'. Start and end dates should be in ISO 8601 date format. +func (r Account) GetExecutiveSummaryPdf(pdfType *string, historicalType *string, startDate *string, endDate *string) (resp []byte, err error) { + params := []interface{}{ + pdfType, + historicalType, + startDate, + endDate, + } + err = r.Session.DoRequest("SoftLayer_Account", "getExecutiveSummaryPdf", params, &r.Options, &resp) + return +} + +// Retrieve Stored security certificates that are expired (ie. SSL) +func (r Account) GetExpiredSecurityCertificates() (resp []datatypes.Security_Certificate, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getExpiredSecurityCertificates", nil, &r.Options, &resp) + return +} + +// Retrieve Logs of who entered a colocation area which is assigned to this account, or when a user under this account enters a datacenter. +func (r Account) GetFacilityLogs() (resp []datatypes.User_Access_Facility_Log, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getFacilityLogs", nil, &r.Options, &resp) + return +} + +// Retrieve All of the account's current and former Flexible Credit enrollments. +func (r Account) GetFlexibleCreditEnrollments() (resp []datatypes.FlexibleCredit_Enrollment, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getFlexibleCreditEnrollments", nil, &r.Options, &resp) + return +} + +// This method will return a [[SoftLayer_Container_Account_Discount_Program]] object containing the Flexible Credit Program information for this account. To be considered an active participant, the account must have an enrollment record with a monthly credit amount set and the current date must be within the range defined by the enrollment and graduation date. The forNextBillCycle parameter can be set to true to return a SoftLayer_Container_Account_Discount_Program object with information with relation to the next bill cycle. The forNextBillCycle parameter defaults to false. Please note that all discount amount entries are reported as pre-tax amounts and the legacy tax fields in the [[SoftLayer_Container_Account_Discount_Program]] are deprecated. +func (r Account) GetFlexibleCreditProgramInfo(forNextBillCycle *bool) (resp datatypes.Container_Account_Discount_Program, err error) { + params := []interface{}{ + forNextBillCycle, + } + err = r.Session.DoRequest("SoftLayer_Account", "getFlexibleCreditProgramInfo", params, &r.Options, &resp) + return +} + +// Retrieve +func (r Account) GetGlobalIpRecords() (resp []datatypes.Network_Subnet_IpAddress_Global, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getGlobalIpRecords", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Account) GetGlobalIpv4Records() (resp []datatypes.Network_Subnet_IpAddress_Global, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getGlobalIpv4Records", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Account) GetGlobalIpv6Records() (resp []datatypes.Network_Subnet_IpAddress_Global, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getGlobalIpv6Records", nil, &r.Options, &resp) + return +} + +// Retrieve The global load balancer accounts for a softlayer customer account. +func (r Account) GetGlobalLoadBalancerAccounts() (resp []datatypes.Network_LoadBalancer_Global_Account, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getGlobalLoadBalancerAccounts", nil, &r.Options, &resp) + return +} + +// Retrieve An account's associated hardware objects. +func (r Account) GetHardware() (resp []datatypes.Hardware, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getHardware", nil, &r.Options, &resp) + return +} + +// Retrieve An account's associated hardware objects currently over bandwidth allocation. +func (r Account) GetHardwareOverBandwidthAllocation() (resp []datatypes.Hardware, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getHardwareOverBandwidthAllocation", nil, &r.Options, &resp) + return +} + +// Return a collection of managed hardware pools. +func (r Account) GetHardwarePools() (resp []datatypes.Container_Hardware_Pool_Details, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getHardwarePools", nil, &r.Options, &resp) + return +} + +// Retrieve An account's associated hardware objects projected to go over bandwidth allocation. +func (r Account) GetHardwareProjectedOverBandwidthAllocation() (resp []datatypes.Hardware, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getHardwareProjectedOverBandwidthAllocation", nil, &r.Options, &resp) + return +} + +// Retrieve All hardware associated with an account that has the cPanel web hosting control panel installed. +func (r Account) GetHardwareWithCpanel() (resp []datatypes.Hardware, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getHardwareWithCpanel", nil, &r.Options, &resp) + return +} + +// Retrieve All hardware associated with an account that has the Helm web hosting control panel installed. +func (r Account) GetHardwareWithHelm() (resp []datatypes.Hardware, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getHardwareWithHelm", nil, &r.Options, &resp) + return +} + +// Retrieve All hardware associated with an account that has McAfee Secure software components. +func (r Account) GetHardwareWithMcafee() (resp []datatypes.Hardware, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getHardwareWithMcafee", nil, &r.Options, &resp) + return +} + +// Retrieve All hardware associated with an account that has McAfee Secure AntiVirus for Redhat software components. +func (r Account) GetHardwareWithMcafeeAntivirusRedhat() (resp []datatypes.Hardware, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getHardwareWithMcafeeAntivirusRedhat", nil, &r.Options, &resp) + return +} + +// Retrieve All hardware associated with an account that has McAfee Secure AntiVirus for Windows software components. +func (r Account) GetHardwareWithMcafeeAntivirusWindows() (resp []datatypes.Hardware, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getHardwareWithMcafeeAntivirusWindows", nil, &r.Options, &resp) + return +} + +// Retrieve All hardware associated with an account that has McAfee Secure Intrusion Detection System software components. +func (r Account) GetHardwareWithMcafeeIntrusionDetectionSystem() (resp []datatypes.Hardware, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getHardwareWithMcafeeIntrusionDetectionSystem", nil, &r.Options, &resp) + return +} + +// Retrieve All hardware associated with an account that has the Plesk web hosting control panel installed. +func (r Account) GetHardwareWithPlesk() (resp []datatypes.Hardware, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getHardwareWithPlesk", nil, &r.Options, &resp) + return +} + +// Retrieve All hardware associated with an account that has the QuantaStor storage system installed. +func (r Account) GetHardwareWithQuantastor() (resp []datatypes.Hardware, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getHardwareWithQuantastor", nil, &r.Options, &resp) + return +} + +// Retrieve All hardware associated with an account that has the Urchin web traffic analytics package installed. +func (r Account) GetHardwareWithUrchin() (resp []datatypes.Hardware, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getHardwareWithUrchin", nil, &r.Options, &resp) + return +} + +// Retrieve All hardware associated with an account that is running a version of the Microsoft Windows operating system. +func (r Account) GetHardwareWithWindows() (resp []datatypes.Hardware, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getHardwareWithWindows", nil, &r.Options, &resp) + return +} + +// Retrieve Return 1 if one of the account's hardware has the EVault Bare Metal Server Restore Plugin otherwise 0. +func (r Account) GetHasEvaultBareMetalRestorePluginFlag() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getHasEvaultBareMetalRestorePluginFlag", nil, &r.Options, &resp) + return +} + +// Retrieve Return 1 if one of the account's hardware has an installation of Idera Server Backup otherwise 0. +func (r Account) GetHasIderaBareMetalRestorePluginFlag() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getHasIderaBareMetalRestorePluginFlag", nil, &r.Options, &resp) + return +} + +// Retrieve The number of orders in a PENDING status for a SoftLayer customer account. +func (r Account) GetHasPendingOrder() (resp uint, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getHasPendingOrder", nil, &r.Options, &resp) + return +} + +// Retrieve Return 1 if one of the account's hardware has an installation of R1Soft CDP otherwise 0. +func (r Account) GetHasR1softBareMetalRestorePluginFlag() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getHasR1softBareMetalRestorePluginFlag", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Account) GetHistoricalBackupGraph(startDate *datatypes.Time, endDate *datatypes.Time) (resp datatypes.Container_Account_Graph_Outputs, err error) { + params := []interface{}{ + startDate, + endDate, + } + err = r.Session.DoRequest("SoftLayer_Account", "getHistoricalBackupGraph", params, &r.Options, &resp) + return +} + +// This method will return a SoftLayer_Container_Account_Graph_Outputs object containing a base64 string PNG image of a line graph of bandwidth statistics given the start and end dates. The start and end dates should be valid ISO 8601 date formatted strings. +func (r Account) GetHistoricalBandwidthGraph(startDate *datatypes.Time, endDate *datatypes.Time) (resp datatypes.Container_Account_Graph_Outputs, err error) { + params := []interface{}{ + startDate, + endDate, + } + err = r.Session.DoRequest("SoftLayer_Account", "getHistoricalBandwidthGraph", params, &r.Options, &resp) + return +} + +// Given the start and end dates, this method will return a pie chart of ticket statistics in the form of SoftLayer_Container_Account_Graph_Outputs object with a base64 PNG string. If an error occurs the graphError parameter will be populated. Possible errors include: SoftLayer_Exception_Public Thrown if an invalid start or end date is provided. SoftLayer_Exception Thrown if there is an error connecting to HBase. SoftLayer_Exception Thrown if there is no data available for the specified date range. SoftLayer_Exception Thrown if there is an error retrieving data or generating the graph. +func (r Account) GetHistoricalTicketGraph(startDate *datatypes.Time, endDate *datatypes.Time) (resp datatypes.Container_Account_Graph_Outputs, err error) { + params := []interface{}{ + startDate, + endDate, + } + err = r.Session.DoRequest("SoftLayer_Account", "getHistoricalTicketGraph", params, &r.Options, &resp) + return +} + +// The graph image is returned as a base64 PNG string. Start and end dates should be formatted using the ISO 8601 date standard. If there is an error retrieving graph data or generating the graph string a graphError attribute will be returned. The graphError attribute may contain any of the following error messages: SoftLayer_Exception_Public Thrown if an invalid start or end date is provided. SoftLayer_Exception Thrown if there is an error connecting to HBase. SoftLayer_Exception Thrown if there is no data available for the specified date range. SoftLayer_Exception Thrown if there is an error retrieving data or generating the graph. +func (r Account) GetHistoricalUptimeGraph(startDate *datatypes.Time, endDate *datatypes.Time) (resp datatypes.Container_Account_Graph_Outputs, err error) { + params := []interface{}{ + startDate, + endDate, + } + err = r.Session.DoRequest("SoftLayer_Account", "getHistoricalUptimeGraph", params, &r.Options, &resp) + return +} + +// Retrieve An account's associated hourly bare metal server objects. +func (r Account) GetHourlyBareMetalInstances() (resp []datatypes.Hardware, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getHourlyBareMetalInstances", nil, &r.Options, &resp) + return +} + +// Retrieve Hourly service billing items that will be on an account's next invoice. +func (r Account) GetHourlyServiceBillingItems() (resp []datatypes.Billing_Item, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getHourlyServiceBillingItems", nil, &r.Options, &resp) + return +} + +// Retrieve An account's associated hourly virtual guest objects. +func (r Account) GetHourlyVirtualGuests() (resp []datatypes.Virtual_Guest, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getHourlyVirtualGuests", nil, &r.Options, &resp) + return +} + +// Retrieve An account's associated Virtual Storage volumes. +func (r Account) GetHubNetworkStorage() (resp []datatypes.Network_Storage, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getHubNetworkStorage", nil, &r.Options, &resp) + return +} + +// Retrieve Unique identifier for a customer used throughout IBM. +func (r Account) GetIbmCustomerNumber() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getIbmCustomerNumber", nil, &r.Options, &resp) + return +} + +// Retrieve Timestamp representing the point in time when an account is required to use IBMid authentication. +func (r Account) GetIbmIdMigrationExpirationTimestamp() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getIbmIdMigrationExpirationTimestamp", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Account) GetInternalNotes() (resp []datatypes.Account_Note, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getInternalNotes", nil, &r.Options, &resp) + return +} + +// Retrieve An account's associated billing invoices. +func (r Account) GetInvoices() (resp []datatypes.Billing_Invoice, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getInvoices", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Account) GetIpAddresses() (resp []datatypes.Network_Subnet_IpAddress, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getIpAddresses", nil, &r.Options, &resp) + return +} + +// Retrieve An account's associated iSCSI storage volumes. +func (r Account) GetIscsiNetworkStorage() (resp []datatypes.Network_Storage, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getIscsiNetworkStorage", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Account) GetLargestAllowedSubnetCidr(numberOfHosts *int, locationId *int) (resp int, err error) { + params := []interface{}{ + numberOfHosts, + locationId, + } + err = r.Session.DoRequest("SoftLayer_Account", "getLargestAllowedSubnetCidr", params, &r.Options, &resp) + return +} + +// Retrieve The most recently canceled billing item. +func (r Account) GetLastCanceledBillingItem() (resp datatypes.Billing_Item, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getLastCanceledBillingItem", nil, &r.Options, &resp) + return +} + +// Retrieve The most recent cancelled server billing item. +func (r Account) GetLastCancelledServerBillingItem() (resp datatypes.Billing_Item, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getLastCancelledServerBillingItem", nil, &r.Options, &resp) + return +} + +// Retrieve The five most recently closed abuse tickets associated with an account. +func (r Account) GetLastFiveClosedAbuseTickets() (resp []datatypes.Ticket, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getLastFiveClosedAbuseTickets", nil, &r.Options, &resp) + return +} + +// Retrieve The five most recently closed accounting tickets associated with an account. +func (r Account) GetLastFiveClosedAccountingTickets() (resp []datatypes.Ticket, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getLastFiveClosedAccountingTickets", nil, &r.Options, &resp) + return +} + +// Retrieve The five most recently closed tickets that do not belong to the abuse, accounting, sales, or support groups associated with an account. +func (r Account) GetLastFiveClosedOtherTickets() (resp []datatypes.Ticket, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getLastFiveClosedOtherTickets", nil, &r.Options, &resp) + return +} + +// Retrieve The five most recently closed sales tickets associated with an account. +func (r Account) GetLastFiveClosedSalesTickets() (resp []datatypes.Ticket, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getLastFiveClosedSalesTickets", nil, &r.Options, &resp) + return +} + +// Retrieve The five most recently closed support tickets associated with an account. +func (r Account) GetLastFiveClosedSupportTickets() (resp []datatypes.Ticket, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getLastFiveClosedSupportTickets", nil, &r.Options, &resp) + return +} + +// Retrieve The five most recently closed tickets associated with an account. +func (r Account) GetLastFiveClosedTickets() (resp []datatypes.Ticket, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getLastFiveClosedTickets", nil, &r.Options, &resp) + return +} + +// Retrieve An account's most recent billing date. +func (r Account) GetLatestBillDate() (resp datatypes.Time, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getLatestBillDate", nil, &r.Options, &resp) + return +} + +// Retrieve An account's latest recurring invoice. +func (r Account) GetLatestRecurringInvoice() (resp datatypes.Billing_Invoice, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getLatestRecurringInvoice", nil, &r.Options, &resp) + return +} + +// Retrieve An account's latest recurring pending invoice. +func (r Account) GetLatestRecurringPendingInvoice() (resp datatypes.Billing_Invoice, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getLatestRecurringPendingInvoice", nil, &r.Options, &resp) + return +} + +// Retrieve The legacy bandwidth allotments for an account. +func (r Account) GetLegacyBandwidthAllotments() (resp []datatypes.Network_Bandwidth_Version1_Allotment, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getLegacyBandwidthAllotments", nil, &r.Options, &resp) + return +} + +// Retrieve The total capacity of Legacy iSCSI Volumes on an account, in GB. +func (r Account) GetLegacyIscsiCapacityGB() (resp uint, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getLegacyIscsiCapacityGB", nil, &r.Options, &resp) + return +} + +// Retrieve An account's associated load balancers. +func (r Account) GetLoadBalancers() (resp []datatypes.Network_LoadBalancer_VirtualIpAddress, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getLoadBalancers", nil, &r.Options, &resp) + return +} + +// Retrieve The total capacity of Legacy lockbox Volumes on an account, in GB. +func (r Account) GetLockboxCapacityGB() (resp uint, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getLockboxCapacityGB", nil, &r.Options, &resp) + return +} + +// Retrieve An account's associated Lockbox storage volumes. +func (r Account) GetLockboxNetworkStorage() (resp []datatypes.Network_Storage, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getLockboxNetworkStorage", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Account) GetManualPaymentsUnderReview() (resp []datatypes.Billing_Payment_Card_ManualPayment, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getManualPaymentsUnderReview", nil, &r.Options, &resp) + return +} + +// Retrieve An account's master user. +func (r Account) GetMasterUser() (resp datatypes.User_Customer, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getMasterUser", nil, &r.Options, &resp) + return +} + +// Retrieve An account's media transfer service requests. +func (r Account) GetMediaDataTransferRequests() (resp []datatypes.Account_Media_Data_Transfer_Request, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getMediaDataTransferRequests", nil, &r.Options, &resp) + return +} + +// Retrieve An account's associated Message Queue accounts. +func (r Account) GetMessageQueueAccounts() (resp []datatypes.Network_Message_Queue, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getMessageQueueAccounts", nil, &r.Options, &resp) + return +} + +// Retrieve An account's associated monthly bare metal server objects. +func (r Account) GetMonthlyBareMetalInstances() (resp []datatypes.Hardware, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getMonthlyBareMetalInstances", nil, &r.Options, &resp) + return +} + +// Retrieve An account's associated monthly virtual guest objects. +func (r Account) GetMonthlyVirtualGuests() (resp []datatypes.Virtual_Guest, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getMonthlyVirtualGuests", nil, &r.Options, &resp) + return +} + +// Retrieve An account's associated NAS storage volumes. +func (r Account) GetNasNetworkStorage() (resp []datatypes.Network_Storage, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getNasNetworkStorage", nil, &r.Options, &resp) + return +} + +// Retrieve Whether or not this account can define their own networks. +func (r Account) GetNetworkCreationFlag() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getNetworkCreationFlag", nil, &r.Options, &resp) + return +} + +// Retrieve All network gateway devices on this account. +func (r Account) GetNetworkGateways() (resp []datatypes.Network_Gateway, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getNetworkGateways", nil, &r.Options, &resp) + return +} + +// Retrieve An account's associated network hardware. +func (r Account) GetNetworkHardware() (resp []datatypes.Hardware, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getNetworkHardware", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Account) GetNetworkMessageDeliveryAccounts() (resp []datatypes.Network_Message_Delivery, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getNetworkMessageDeliveryAccounts", nil, &r.Options, &resp) + return +} + +// Retrieve Hardware which is currently experiencing a service failure. +func (r Account) GetNetworkMonitorDownHardware() (resp []datatypes.Hardware, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getNetworkMonitorDownHardware", nil, &r.Options, &resp) + return +} + +// Retrieve Virtual guest which is currently experiencing a service failure. +func (r Account) GetNetworkMonitorDownVirtualGuests() (resp []datatypes.Virtual_Guest, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getNetworkMonitorDownVirtualGuests", nil, &r.Options, &resp) + return +} + +// Retrieve Hardware which is currently recovering from a service failure. +func (r Account) GetNetworkMonitorRecoveringHardware() (resp []datatypes.Hardware, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getNetworkMonitorRecoveringHardware", nil, &r.Options, &resp) + return +} + +// Retrieve Virtual guest which is currently recovering from a service failure. +func (r Account) GetNetworkMonitorRecoveringVirtualGuests() (resp []datatypes.Virtual_Guest, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getNetworkMonitorRecoveringVirtualGuests", nil, &r.Options, &resp) + return +} + +// Retrieve Hardware which is currently online. +func (r Account) GetNetworkMonitorUpHardware() (resp []datatypes.Hardware, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getNetworkMonitorUpHardware", nil, &r.Options, &resp) + return +} + +// Retrieve Virtual guest which is currently online. +func (r Account) GetNetworkMonitorUpVirtualGuests() (resp []datatypes.Virtual_Guest, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getNetworkMonitorUpVirtualGuests", nil, &r.Options, &resp) + return +} + +// Retrieve An account's associated storage volumes. This includes Lockbox, NAS, EVault, and iSCSI volumes. +func (r Account) GetNetworkStorage() (resp []datatypes.Network_Storage, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getNetworkStorage", nil, &r.Options, &resp) + return +} + +// Retrieve An account's Network Storage groups. +func (r Account) GetNetworkStorageGroups() (resp []datatypes.Network_Storage_Group, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getNetworkStorageGroups", nil, &r.Options, &resp) + return +} + +// Retrieve IPSec network tunnels for an account. +func (r Account) GetNetworkTunnelContexts() (resp []datatypes.Network_Tunnel_Module_Context, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getNetworkTunnelContexts", nil, &r.Options, &resp) + return +} + +// Retrieve Whether or not an account has automatic private VLAN spanning enabled. +func (r Account) GetNetworkVlanSpan() (resp datatypes.Account_Network_Vlan_Span, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getNetworkVlanSpan", nil, &r.Options, &resp) + return +} + +// Retrieve All network VLANs assigned to an account. +func (r Account) GetNetworkVlans() (resp []datatypes.Network_Vlan, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getNetworkVlans", nil, &r.Options, &resp) + return +} + +// Retrieve DEPRECATED - This information can be pulled directly through tapping keys now - DEPRECATED. The allotments for this account and their servers for the next billing cycle. The public inbound and outbound bandwidth is calculated for each server in addition to the daily average network traffic since the last billing date. +func (r Account) GetNextBillingPublicAllotmentHardwareBandwidthDetails() (resp []datatypes.Network_Bandwidth_Version1_Allotment, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getNextBillingPublicAllotmentHardwareBandwidthDetails", nil, &r.Options, &resp) + return +} + +// Return an account's next invoice in a Microsoft excel format. The "next invoice" is what a customer will be billed on their next invoice, assuming no changes are made. Currently this does not include Bandwidth Pooling charges. +func (r Account) GetNextInvoiceExcel(documentCreateDate *datatypes.Time) (resp []byte, err error) { + params := []interface{}{ + documentCreateDate, + } + err = r.Session.DoRequest("SoftLayer_Account", "getNextInvoiceExcel", params, &r.Options, &resp) + return +} + +// Retrieve The pre-tax total amount exempt from incubator credit for the account's next invoice. This field is now deprecated and will soon be removed. Please update all references to instead use nextInvoiceTotalAmount +func (r Account) GetNextInvoiceIncubatorExemptTotal() (resp datatypes.Float64, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getNextInvoiceIncubatorExemptTotal", nil, &r.Options, &resp) + return +} + +// Return an account's next invoice in PDF format. The "next invoice" is what a customer will be billed on their next invoice, assuming no changes are made. Currently this does not include Bandwidth Pooling charges. +func (r Account) GetNextInvoicePdf(documentCreateDate *datatypes.Time) (resp []byte, err error) { + params := []interface{}{ + documentCreateDate, + } + err = r.Session.DoRequest("SoftLayer_Account", "getNextInvoicePdf", params, &r.Options, &resp) + return +} + +// Return an account's next invoice detailed portion in PDF format. The "next invoice" is what a customer will be billed on their next invoice, assuming no changes are made. Currently this does not include Bandwidth Pooling charges. +func (r Account) GetNextInvoicePdfDetailed(documentCreateDate *datatypes.Time) (resp []byte, err error) { + params := []interface{}{ + documentCreateDate, + } + err = r.Session.DoRequest("SoftLayer_Account", "getNextInvoicePdfDetailed", params, &r.Options, &resp) + return +} + +// Retrieve The billing items that will be on an account's next invoice. +func (r Account) GetNextInvoiceTopLevelBillingItems() (resp []datatypes.Billing_Item, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getNextInvoiceTopLevelBillingItems", nil, &r.Options, &resp) + return +} + +// Retrieve The pre-tax total amount of an account's next invoice measured in US Dollars ($USD), assuming no changes or charges occur between now and time of billing. +func (r Account) GetNextInvoiceTotalAmount() (resp datatypes.Float64, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getNextInvoiceTotalAmount", nil, &r.Options, &resp) + return +} + +// Retrieve The total one-time charge amount of an account's next invoice measured in US Dollars ($USD), assuming no changes or charges occur between now and time of billing. +func (r Account) GetNextInvoiceTotalOneTimeAmount() (resp datatypes.Float64, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getNextInvoiceTotalOneTimeAmount", nil, &r.Options, &resp) + return +} + +// Retrieve The total one-time tax amount of an account's next invoice measured in US Dollars ($USD), assuming no changes or charges occur between now and time of billing. +func (r Account) GetNextInvoiceTotalOneTimeTaxAmount() (resp datatypes.Float64, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getNextInvoiceTotalOneTimeTaxAmount", nil, &r.Options, &resp) + return +} + +// Retrieve The total recurring charge amount of an account's next invoice measured in US Dollars ($USD), assuming no changes or charges occur between now and time of billing. +func (r Account) GetNextInvoiceTotalRecurringAmount() (resp datatypes.Float64, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getNextInvoiceTotalRecurringAmount", nil, &r.Options, &resp) + return +} + +// Retrieve The total recurring charge amount of an account's next invoice measured in US Dollars ($USD), assuming no changes or charges occur between now and time of billing. +func (r Account) GetNextInvoiceTotalRecurringAmountBeforeAccountDiscount() (resp datatypes.Float64, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getNextInvoiceTotalRecurringAmountBeforeAccountDiscount", nil, &r.Options, &resp) + return +} + +// Retrieve The total recurring tax amount of an account's next invoice measured in US Dollars ($USD), assuming no changes or charges occur between now and time of billing. +func (r Account) GetNextInvoiceTotalRecurringTaxAmount() (resp datatypes.Float64, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getNextInvoiceTotalRecurringTaxAmount", nil, &r.Options, &resp) + return +} + +// Retrieve The total recurring charge amount of an account's next invoice measured in US Dollars ($USD), assuming no changes or charges occur between now and time of billing. +func (r Account) GetNextInvoiceTotalTaxableRecurringAmount() (resp datatypes.Float64, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getNextInvoiceTotalTaxableRecurringAmount", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Account) GetNextInvoiceZeroFeeItemCounts() (resp []datatypes.Container_Product_Item_Category_ZeroFee_Count, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getNextInvoiceZeroFeeItemCounts", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Account) GetNotificationSubscribers() (resp []datatypes.Notification_Subscriber, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getNotificationSubscribers", nil, &r.Options, &resp) + return +} + +// getObject retrieves the SoftLayer_Account object whose ID number corresponds to the ID number of the init parameter passed to the SoftLayer_Account service. You can only retrieve the account that your portal user is assigned to. +func (r Account) GetObject() (resp datatypes.Account, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getObject", nil, &r.Options, &resp) + return +} + +// Retrieve The open abuse tickets associated with an account. +func (r Account) GetOpenAbuseTickets() (resp []datatypes.Ticket, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getOpenAbuseTickets", nil, &r.Options, &resp) + return +} + +// Retrieve The open accounting tickets associated with an account. +func (r Account) GetOpenAccountingTickets() (resp []datatypes.Ticket, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getOpenAccountingTickets", nil, &r.Options, &resp) + return +} + +// Retrieve The open billing tickets associated with an account. +func (r Account) GetOpenBillingTickets() (resp []datatypes.Ticket, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getOpenBillingTickets", nil, &r.Options, &resp) + return +} + +// Retrieve An open ticket requesting cancellation of this server, if one exists. +func (r Account) GetOpenCancellationRequests() (resp []datatypes.Billing_Item_Cancellation_Request, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getOpenCancellationRequests", nil, &r.Options, &resp) + return +} + +// Retrieve The open tickets that do not belong to the abuse, accounting, sales, or support groups associated with an account. +func (r Account) GetOpenOtherTickets() (resp []datatypes.Ticket, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getOpenOtherTickets", nil, &r.Options, &resp) + return +} + +// Retrieve An account's recurring invoices. +func (r Account) GetOpenRecurringInvoices() (resp []datatypes.Billing_Invoice, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getOpenRecurringInvoices", nil, &r.Options, &resp) + return +} + +// Retrieve The open sales tickets associated with an account. +func (r Account) GetOpenSalesTickets() (resp []datatypes.Ticket, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getOpenSalesTickets", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Account) GetOpenStackAccountLinks() (resp []datatypes.Account_Link, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getOpenStackAccountLinks", nil, &r.Options, &resp) + return +} + +// Retrieve An account's associated Openstack related Object Storage accounts. +func (r Account) GetOpenStackObjectStorage() (resp []datatypes.Network_Storage, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getOpenStackObjectStorage", nil, &r.Options, &resp) + return +} + +// Retrieve The open support tickets associated with an account. +func (r Account) GetOpenSupportTickets() (resp []datatypes.Ticket, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getOpenSupportTickets", nil, &r.Options, &resp) + return +} + +// Retrieve All open tickets associated with an account. +func (r Account) GetOpenTickets() (resp []datatypes.Ticket, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getOpenTickets", nil, &r.Options, &resp) + return +} + +// Retrieve All open tickets associated with an account last edited by an employee. +func (r Account) GetOpenTicketsWaitingOnCustomer() (resp []datatypes.Ticket, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getOpenTicketsWaitingOnCustomer", nil, &r.Options, &resp) + return +} + +// Retrieve An account's associated billing orders excluding upgrades. +func (r Account) GetOrders() (resp []datatypes.Billing_Order, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getOrders", nil, &r.Options, &resp) + return +} + +// Retrieve The billing items that have no parent billing item. These are items that don't necessarily belong to a single server. +func (r Account) GetOrphanBillingItems() (resp []datatypes.Billing_Item, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getOrphanBillingItems", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Account) GetOwnedBrands() (resp []datatypes.Brand, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getOwnedBrands", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Account) GetOwnedHardwareGenericComponentModels() (resp []datatypes.Hardware_Component_Model_Generic, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getOwnedHardwareGenericComponentModels", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Account) GetPaymentProcessors() (resp []datatypes.Billing_Payment_Processor, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getPaymentProcessors", nil, &r.Options, &resp) + return +} + +// Before being approved for general use, a credit card must be approved by a SoftLayer agent. Once a credit card change request has been either approved or denied, the change request will no longer appear in the list of pending change requests. This method will return a list of all pending change requests as well as a portion of the data from the original request. +func (r Account) GetPendingCreditCardChangeRequestData() (resp []datatypes.Container_Account_Payment_Method_CreditCard, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getPendingCreditCardChangeRequestData", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Account) GetPendingEvents() (resp []datatypes.Notification_Occurrence_Event, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getPendingEvents", nil, &r.Options, &resp) + return +} + +// Retrieve An account's latest open (pending) invoice. +func (r Account) GetPendingInvoice() (resp datatypes.Billing_Invoice, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getPendingInvoice", nil, &r.Options, &resp) + return +} + +// Retrieve A list of top-level invoice items that are on an account's currently pending invoice. +func (r Account) GetPendingInvoiceTopLevelItems() (resp []datatypes.Billing_Invoice_Item, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getPendingInvoiceTopLevelItems", nil, &r.Options, &resp) + return +} + +// Retrieve The total amount of an account's pending invoice, if one exists. +func (r Account) GetPendingInvoiceTotalAmount() (resp datatypes.Float64, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getPendingInvoiceTotalAmount", nil, &r.Options, &resp) + return +} + +// Retrieve The total one-time charges for an account's pending invoice, if one exists. In other words, it is the sum of one-time charges, setup fees, and labor fees. It does not include taxes. +func (r Account) GetPendingInvoiceTotalOneTimeAmount() (resp datatypes.Float64, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getPendingInvoiceTotalOneTimeAmount", nil, &r.Options, &resp) + return +} + +// Retrieve The sum of all the taxes related to one time charges for an account's pending invoice, if one exists. +func (r Account) GetPendingInvoiceTotalOneTimeTaxAmount() (resp datatypes.Float64, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getPendingInvoiceTotalOneTimeTaxAmount", nil, &r.Options, &resp) + return +} + +// Retrieve The total recurring amount of an account's pending invoice, if one exists. +func (r Account) GetPendingInvoiceTotalRecurringAmount() (resp datatypes.Float64, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getPendingInvoiceTotalRecurringAmount", nil, &r.Options, &resp) + return +} + +// Retrieve The total amount of the recurring taxes on an account's pending invoice, if one exists. +func (r Account) GetPendingInvoiceTotalRecurringTaxAmount() (resp datatypes.Float64, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getPendingInvoiceTotalRecurringTaxAmount", nil, &r.Options, &resp) + return +} + +// Retrieve An account's permission groups. +func (r Account) GetPermissionGroups() (resp []datatypes.User_Permission_Group, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getPermissionGroups", nil, &r.Options, &resp) + return +} + +// Retrieve An account's user roles. +func (r Account) GetPermissionRoles() (resp []datatypes.User_Permission_Role, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getPermissionRoles", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Account) GetPortableStorageVolumes() (resp []datatypes.Virtual_Disk_Image, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getPortableStorageVolumes", nil, &r.Options, &resp) + return +} + +// Retrieve Customer specified URIs that are downloaded onto a newly provisioned or reloaded server. If the URI is sent over https it will be executed directly on the server. +func (r Account) GetPostProvisioningHooks() (resp []datatypes.Provisioning_Hook, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getPostProvisioningHooks", nil, &r.Options, &resp) + return +} + +// Retrieve An account's associated portal users with PPTP VPN access. +func (r Account) GetPptpVpnUsers() (resp []datatypes.User_Customer, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getPptpVpnUsers", nil, &r.Options, &resp) + return +} + +// Retrieve The total recurring amount for an accounts previous revenue. +func (r Account) GetPreviousRecurringRevenue() (resp datatypes.Float64, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getPreviousRecurringRevenue", nil, &r.Options, &resp) + return +} + +// Retrieve The item price that an account is restricted to. +func (r Account) GetPriceRestrictions() (resp []datatypes.Product_Item_Price_Account_Restriction, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getPriceRestrictions", nil, &r.Options, &resp) + return +} + +// Retrieve All priority one tickets associated with an account. +func (r Account) GetPriorityOneTickets() (resp []datatypes.Ticket, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getPriorityOneTickets", nil, &r.Options, &resp) + return +} + +// Retrieve DEPRECATED - This information can be pulled directly through tapping keys now - DEPRECATED. The allotments for this account and their servers. The private inbound and outbound bandwidth is calculated for each server in addition to the daily average network traffic since the last billing date. +func (r Account) GetPrivateAllotmentHardwareBandwidthDetails() (resp []datatypes.Network_Bandwidth_Version1_Allotment, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getPrivateAllotmentHardwareBandwidthDetails", nil, &r.Options, &resp) + return +} + +// Retrieve Private and shared template group objects (parent only) for an account. +func (r Account) GetPrivateBlockDeviceTemplateGroups() (resp []datatypes.Virtual_Guest_Block_Device_Template_Group, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getPrivateBlockDeviceTemplateGroups", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Account) GetPrivateIpAddresses() (resp []datatypes.Network_Subnet_IpAddress, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getPrivateIpAddresses", nil, &r.Options, &resp) + return +} + +// Retrieve The private network VLANs assigned to an account. +func (r Account) GetPrivateNetworkVlans() (resp []datatypes.Network_Vlan, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getPrivateNetworkVlans", nil, &r.Options, &resp) + return +} + +// Retrieve All private subnets associated with an account. +func (r Account) GetPrivateSubnets() (resp []datatypes.Network_Subnet, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getPrivateSubnets", nil, &r.Options, &resp) + return +} + +// Retrieve DEPRECATED - This information can be pulled directly through tapping keys now - DEPRECATED. The allotments for this account and their servers. The public inbound and outbound bandwidth is calculated for each server in addition to the daily average network traffic since the last billing date. +func (r Account) GetPublicAllotmentHardwareBandwidthDetails() (resp []datatypes.Network_Bandwidth_Version1_Allotment, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getPublicAllotmentHardwareBandwidthDetails", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Account) GetPublicIpAddresses() (resp []datatypes.Network_Subnet_IpAddress, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getPublicIpAddresses", nil, &r.Options, &resp) + return +} + +// Retrieve The public network VLANs assigned to an account. +func (r Account) GetPublicNetworkVlans() (resp []datatypes.Network_Vlan, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getPublicNetworkVlans", nil, &r.Options, &resp) + return +} + +// Retrieve All public network subnets associated with an account. +func (r Account) GetPublicSubnets() (resp []datatypes.Network_Subnet, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getPublicSubnets", nil, &r.Options, &resp) + return +} + +// Retrieve An account's quotes. +func (r Account) GetQuotes() (resp []datatypes.Billing_Order_Quote, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getQuotes", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Account) GetRecentEvents() (resp []datatypes.Notification_Occurrence_Event, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getRecentEvents", nil, &r.Options, &resp) + return +} + +// Retrieve The Referral Partner for this account, if any. +func (r Account) GetReferralPartner() (resp datatypes.Account, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getReferralPartner", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Account) GetReferralPartnerCommissionForecast() (resp []datatypes.Container_Referral_Partner_Commission, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getReferralPartnerCommissionForecast", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Account) GetReferralPartnerCommissionHistory() (resp []datatypes.Container_Referral_Partner_Commission, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getReferralPartnerCommissionHistory", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Account) GetReferralPartnerCommissionPending() (resp []datatypes.Container_Referral_Partner_Commission, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getReferralPartnerCommissionPending", nil, &r.Options, &resp) + return +} + +// Retrieve If this is a account is a referral partner, the accounts this referral partner has referred +func (r Account) GetReferredAccounts() (resp []datatypes.Account, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getReferredAccounts", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Account) GetRegulatedWorkloads() (resp []datatypes.Legal_RegulatedWorkload, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getRegulatedWorkloads", nil, &r.Options, &resp) + return +} + +// Retrieve Remote management command requests for an account +func (r Account) GetRemoteManagementCommandRequests() (resp []datatypes.Hardware_Component_RemoteManagement_Command_Request, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getRemoteManagementCommandRequests", nil, &r.Options, &resp) + return +} + +// Retrieve The Replication events for all Network Storage volumes on an account. +func (r Account) GetReplicationEvents() (resp []datatypes.Network_Storage_Event, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getReplicationEvents", nil, &r.Options, &resp) + return +} + +// Retrieve Indicates whether newly created users under this account will be associated with IBMid via an email requiring a response, or not. +func (r Account) GetRequireSilentIBMidUserCreation() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getRequireSilentIBMidUserCreation", nil, &r.Options, &resp) + return +} + +// Retrieve An account's associated top-level resource groups. +func (r Account) GetResourceGroups() (resp []datatypes.Resource_Group, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getResourceGroups", nil, &r.Options, &resp) + return +} + +// Retrieve All Routers that an accounts VLANs reside on +func (r Account) GetRouters() (resp []datatypes.Hardware, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getRouters", nil, &r.Options, &resp) + return +} + +// Retrieve An account's reverse WHOIS data. This data is used when making SWIP requests. +func (r Account) GetRwhoisData() (resp datatypes.Network_Subnet_Rwhois_Data, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getRwhoisData", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Account) GetSalesforceAccountLink() (resp datatypes.Account_Link, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getSalesforceAccountLink", nil, &r.Options, &resp) + return +} + +// Retrieve The SAML configuration for this account. +func (r Account) GetSamlAuthentication() (resp datatypes.Account_Authentication_Saml, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getSamlAuthentication", nil, &r.Options, &resp) + return +} + +// Retrieve All scale groups on this account. +func (r Account) GetScaleGroups() (resp []datatypes.Scale_Group, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getScaleGroups", nil, &r.Options, &resp) + return +} + +// Retrieve The secondary DNS records for a SoftLayer customer account. +func (r Account) GetSecondaryDomains() (resp []datatypes.Dns_Secondary, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getSecondaryDomains", nil, &r.Options, &resp) + return +} + +// Retrieve Stored security certificates (ie. SSL) +func (r Account) GetSecurityCertificates() (resp []datatypes.Security_Certificate, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getSecurityCertificates", nil, &r.Options, &resp) + return +} + +// Retrieve The security groups belonging to this account. +func (r Account) GetSecurityGroups() (resp []datatypes.Network_SecurityGroup, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getSecurityGroups", nil, &r.Options, &resp) + return +} + +// Retrieve An account's vulnerability scan requests. +func (r Account) GetSecurityScanRequests() (resp []datatypes.Network_Security_Scanner_Request, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getSecurityScanRequests", nil, &r.Options, &resp) + return +} + +// Retrieve The service billing items that will be on an account's next invoice. +func (r Account) GetServiceBillingItems() (resp []datatypes.Billing_Item, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getServiceBillingItems", nil, &r.Options, &resp) + return +} + +// This method returns the [[SoftLayer_Virtual_Guest_Block_Device_Template_Group]] objects that have been shared with this account +func (r Account) GetSharedBlockDeviceTemplateGroups() (resp []datatypes.Virtual_Guest_Block_Device_Template_Group, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getSharedBlockDeviceTemplateGroups", nil, &r.Options, &resp) + return +} + +// Retrieve Shipments that belong to the customer's account. +func (r Account) GetShipments() (resp []datatypes.Account_Shipment, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getShipments", nil, &r.Options, &resp) + return +} + +// Retrieve Customer specified SSH keys that can be implemented onto a newly provisioned or reloaded server. +func (r Account) GetSshKeys() (resp []datatypes.Security_Ssh_Key, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getSshKeys", nil, &r.Options, &resp) + return +} + +// Retrieve An account's associated portal users with SSL VPN access. +func (r Account) GetSslVpnUsers() (resp []datatypes.User_Customer, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getSslVpnUsers", nil, &r.Options, &resp) + return +} + +// Retrieve An account's virtual guest objects that are hosted on a user provisioned hypervisor. +func (r Account) GetStandardPoolVirtualGuests() (resp []datatypes.Virtual_Guest, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getStandardPoolVirtualGuests", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Account) GetSubnetRegistrationDetails() (resp []datatypes.Account_Regional_Registry_Detail, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getSubnetRegistrationDetails", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Account) GetSubnetRegistrations() (resp []datatypes.Network_Subnet_Registration, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getSubnetRegistrations", nil, &r.Options, &resp) + return +} + +// Retrieve All network subnets associated with an account. +func (r Account) GetSubnets() (resp []datatypes.Network_Subnet, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getSubnets", nil, &r.Options, &resp) + return +} + +// Retrieve The SoftLayer employees that an account is assigned to. +func (r Account) GetSupportRepresentatives() (resp []datatypes.User_Employee, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getSupportRepresentatives", nil, &r.Options, &resp) + return +} + +// Retrieve The active support subscriptions for this account. +func (r Account) GetSupportSubscriptions() (resp []datatypes.Billing_Item, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getSupportSubscriptions", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Account) GetSupportTier() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getSupportTier", nil, &r.Options, &resp) + return +} + +// Retrieve A flag indicating to suppress invoices. +func (r Account) GetSuppressInvoicesFlag() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getSuppressInvoicesFlag", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Account) GetTags() (resp []datatypes.Tag, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getTags", nil, &r.Options, &resp) + return +} + +// This method will return a SoftLayer_Container_Account_Discount_Program object containing the Technology Incubator Program information for this account. To be considered an active participant, the account must have an enrollment record with a monthly credit amount set and the current date must be within the range defined by the enrollment and graduation date. The forNextBillCycle parameter can be set to true to return a SoftLayer_Container_Account_Discount_Program object with information with relation to the next bill cycle. The forNextBillCycle parameter defaults to false. +func (r Account) GetTechIncubatorProgramInfo(forNextBillCycle *bool) (resp datatypes.Container_Account_Discount_Program, err error) { + params := []interface{}{ + forNextBillCycle, + } + err = r.Session.DoRequest("SoftLayer_Account", "getTechIncubatorProgramInfo", params, &r.Options, &resp) + return +} + +// Returns multiple [[SoftLayer_Container_Policy_Acceptance]] that represent the acceptance status of the applicable third-party policies for this account. +func (r Account) GetThirdPartyPoliciesAcceptanceStatus() (resp []datatypes.Container_Policy_Acceptance, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getThirdPartyPoliciesAcceptanceStatus", nil, &r.Options, &resp) + return +} + +// Retrieve An account's associated tickets. +func (r Account) GetTickets() (resp []datatypes.Ticket, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getTickets", nil, &r.Options, &resp) + return +} + +// Retrieve Tickets closed within the last 72 hours or last 10 tickets, whichever is less, associated with an account. +func (r Account) GetTicketsClosedInTheLastThreeDays() (resp []datatypes.Ticket, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getTicketsClosedInTheLastThreeDays", nil, &r.Options, &resp) + return +} + +// Retrieve Tickets closed today associated with an account. +func (r Account) GetTicketsClosedToday() (resp []datatypes.Ticket, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getTicketsClosedToday", nil, &r.Options, &resp) + return +} + +// Retrieve An account's associated Transcode account. +func (r Account) GetTranscodeAccounts() (resp []datatypes.Network_Media_Transcode_Account, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getTranscodeAccounts", nil, &r.Options, &resp) + return +} + +// Retrieve An account's associated upgrade requests. +func (r Account) GetUpgradeRequests() (resp []datatypes.Product_Upgrade_Request, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getUpgradeRequests", nil, &r.Options, &resp) + return +} + +// Retrieve An account's portal users. +func (r Account) GetUsers() (resp []datatypes.User_Customer, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getUsers", nil, &r.Options, &resp) + return +} + +// Retrieve a list of valid (non-expired) security certificates without the sensitive certificate information. This allows non-privileged users to view and select security certificates when configuring associated services. +func (r Account) GetValidSecurityCertificateEntries() (resp []datatypes.Security_Certificate_Entry, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getValidSecurityCertificateEntries", nil, &r.Options, &resp) + return +} + +// Retrieve Stored security certificates that are not expired (ie. SSL) +func (r Account) GetValidSecurityCertificates() (resp []datatypes.Security_Certificate, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getValidSecurityCertificates", nil, &r.Options, &resp) + return +} + +// Retrieve Return 0 if vpn updates are currently in progress on this account otherwise 1. +func (r Account) GetVdrUpdatesInProgressFlag() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getVdrUpdatesInProgressFlag", nil, &r.Options, &resp) + return +} + +// Retrieve The bandwidth pooling for this account. +func (r Account) GetVirtualDedicatedRacks() (resp []datatypes.Network_Bandwidth_Version1_Allotment, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getVirtualDedicatedRacks", nil, &r.Options, &resp) + return +} + +// Retrieve An account's associated virtual server virtual disk images. +func (r Account) GetVirtualDiskImages() (resp []datatypes.Virtual_Disk_Image, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getVirtualDiskImages", nil, &r.Options, &resp) + return +} + +// Retrieve An account's associated virtual guest objects. +func (r Account) GetVirtualGuests() (resp []datatypes.Virtual_Guest, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getVirtualGuests", nil, &r.Options, &resp) + return +} + +// Retrieve An account's associated virtual guest objects currently over bandwidth allocation. +func (r Account) GetVirtualGuestsOverBandwidthAllocation() (resp []datatypes.Virtual_Guest, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getVirtualGuestsOverBandwidthAllocation", nil, &r.Options, &resp) + return +} + +// Retrieve An account's associated virtual guest objects currently over bandwidth allocation. +func (r Account) GetVirtualGuestsProjectedOverBandwidthAllocation() (resp []datatypes.Virtual_Guest, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getVirtualGuestsProjectedOverBandwidthAllocation", nil, &r.Options, &resp) + return +} + +// Retrieve All virtual guests associated with an account that has the cPanel web hosting control panel installed. +func (r Account) GetVirtualGuestsWithCpanel() (resp []datatypes.Virtual_Guest, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getVirtualGuestsWithCpanel", nil, &r.Options, &resp) + return +} + +// Retrieve All virtual guests associated with an account that have McAfee Secure software components. +func (r Account) GetVirtualGuestsWithMcafee() (resp []datatypes.Virtual_Guest, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getVirtualGuestsWithMcafee", nil, &r.Options, &resp) + return +} + +// Retrieve All virtual guests associated with an account that have McAfee Secure AntiVirus for Redhat software components. +func (r Account) GetVirtualGuestsWithMcafeeAntivirusRedhat() (resp []datatypes.Virtual_Guest, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getVirtualGuestsWithMcafeeAntivirusRedhat", nil, &r.Options, &resp) + return +} + +// Retrieve All virtual guests associated with an account that has McAfee Secure AntiVirus for Windows software components. +func (r Account) GetVirtualGuestsWithMcafeeAntivirusWindows() (resp []datatypes.Virtual_Guest, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getVirtualGuestsWithMcafeeAntivirusWindows", nil, &r.Options, &resp) + return +} + +// Retrieve All virtual guests associated with an account that has McAfee Secure Intrusion Detection System software components. +func (r Account) GetVirtualGuestsWithMcafeeIntrusionDetectionSystem() (resp []datatypes.Virtual_Guest, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getVirtualGuestsWithMcafeeIntrusionDetectionSystem", nil, &r.Options, &resp) + return +} + +// Retrieve All virtual guests associated with an account that has the Plesk web hosting control panel installed. +func (r Account) GetVirtualGuestsWithPlesk() (resp []datatypes.Virtual_Guest, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getVirtualGuestsWithPlesk", nil, &r.Options, &resp) + return +} + +// Retrieve All virtual guests associated with an account that have the QuantaStor storage system installed. +func (r Account) GetVirtualGuestsWithQuantastor() (resp []datatypes.Virtual_Guest, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getVirtualGuestsWithQuantastor", nil, &r.Options, &resp) + return +} + +// Retrieve All virtual guests associated with an account that has the Urchin web traffic analytics package installed. +func (r Account) GetVirtualGuestsWithUrchin() (resp []datatypes.Virtual_Guest, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getVirtualGuestsWithUrchin", nil, &r.Options, &resp) + return +} + +// Retrieve The bandwidth pooling for this account. +func (r Account) GetVirtualPrivateRack() (resp datatypes.Network_Bandwidth_Version1_Allotment, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getVirtualPrivateRack", nil, &r.Options, &resp) + return +} + +// Retrieve An account's associated virtual server archived storage repositories. +func (r Account) GetVirtualStorageArchiveRepositories() (resp []datatypes.Virtual_Storage_Repository, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getVirtualStorageArchiveRepositories", nil, &r.Options, &resp) + return +} + +// Retrieve An account's associated virtual server public storage repositories. +func (r Account) GetVirtualStoragePublicRepositories() (resp []datatypes.Virtual_Storage_Repository, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getVirtualStoragePublicRepositories", nil, &r.Options, &resp) + return +} + +// This returns a collection of active VMware software account license keys. +func (r Account) GetVmWareActiveAccountLicenseKeys() (resp []string, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getVmWareActiveAccountLicenseKeys", nil, &r.Options, &resp) + return +} + +// Retrieve a list of an account's hardware's Windows Update status. This list includes which servers have available updates, which servers require rebooting due to updates, which servers have failed retrieving updates, and which servers have failed to communicate with the SoftLayer private Windows Software Update Services server. +func (r Account) GetWindowsUpdateStatus() (resp []datatypes.Container_Utility_Microsoft_Windows_UpdateServices_Status, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "getWindowsUpdateStatus", nil, &r.Options, &resp) + return +} + +// Determine if an account has an [[SoftLayer_Account_Attribute|attribute]] associated with it. hasAttribute() returns false if the attribute does not exist or if it does not have a value. +func (r Account) HasAttribute(attributeType *string) (resp bool, err error) { + params := []interface{}{ + attributeType, + } + err = r.Session.DoRequest("SoftLayer_Account", "hasAttribute", params, &r.Options, &resp) + return +} + +// This method will return the limit (number) of hourly services the account is allowed to have. +func (r Account) HourlyInstanceLimit() (resp int, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "hourlyInstanceLimit", nil, &r.Options, &resp) + return +} + +// This method will return the limit (number) of hourly bare metal servers the account is allowed to have. +func (r Account) HourlyServerLimit() (resp int, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "hourlyServerLimit", nil, &r.Options, &resp) + return +} + +// Returns true if this account is eligible for the local currency program, false otherwise. +func (r Account) IsEligibleForLocalCurrencyProgram() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "isEligibleForLocalCurrencyProgram", nil, &r.Options, &resp) + return +} + +// This method will link this SoftLayer account with the provided external account. +func (r Account) LinkExternalAccount(externalAccountId *string, authorizationToken *string, externalServiceProviderKey *string) (err error) { + var resp datatypes.Void + params := []interface{}{ + externalAccountId, + authorizationToken, + externalServiceProviderKey, + } + err = r.Session.DoRequest("SoftLayer_Account", "linkExternalAccount", params, &r.Options, &resp) + return +} + +// no documentation yet +func (r Account) RemoveAlternateCreditCard() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "removeAlternateCreditCard", nil, &r.Options, &resp) + return +} + +// Retrieve the record data associated with the submission of a Credit Card Change Request. Softlayer customers are permitted to request a change in Credit Card information. Part of the process calls for an attempt by SoftLayer to submit at $1.00 charge to the financial institution backing the credit card as a means of verifying that the information provided in the change request is valid. The data associated with this change request returned to the calling function. +// +// If the onlyChangeNicknameFlag parameter is set to true, the nickname of the credit card will be changed immediately without requiring approval by an agent. To change the nickname of the active payment method, pass the empty string for paymentRoleName. To change the nickname for the alternate credit card, pass ALTERNATE_CREDIT_CARD as the paymentRoleName. vatId must be set, but the value will not be used and the empty string is acceptable. +func (r Account) RequestCreditCardChange(request *datatypes.Billing_Payment_Card_ChangeRequest, vatId *string, paymentRoleName *string, onlyChangeNicknameFlag *bool) (resp datatypes.Billing_Payment_Card_ChangeRequest, err error) { + params := []interface{}{ + request, + vatId, + paymentRoleName, + onlyChangeNicknameFlag, + } + err = r.Session.DoRequest("SoftLayer_Account", "requestCreditCardChange", params, &r.Options, &resp) + return +} + +// Retrieve the record data associated with the submission of a Manual Payment Request. Softlayer customers are permitted to request a manual one-time payment at a minimum amount of $2.00. Customers may submit a Credit Card Payment (Mastercard, Visa, American Express) or a PayPal payment. For Credit Card Payments, SoftLayer engages the credit card financial institution to submit the payment request. The financial institution's response and other data associated with the transaction are returned to the calling function. In the case of PayPal Payments, SoftLayer engages the PayPal system to initiate the PayPal payment sequence. The applicable data generated during the request is returned to the calling function. +func (r Account) RequestManualPayment(request *datatypes.Billing_Payment_Card_ManualPayment) (resp datatypes.Billing_Payment_Card_ManualPayment, err error) { + params := []interface{}{ + request, + } + err = r.Session.DoRequest("SoftLayer_Account", "requestManualPayment", params, &r.Options, &resp) + return +} + +// Retrieve the record data associated with the submission of a Manual Payment Request for a manual payment using a credit card which is on file and does not require an approval process. Softlayer customers are permitted to request a manual one-time payment at a minimum amount of $2.00. Customers may use an existing Credit Card on file (Mastercard, Visa, American Express). SoftLayer engages the credit card financial institution to submit the payment request. The financial institution's response and other data associated with the transaction are returned to the calling function. The applicable data generated during the request is returned to the calling function. +func (r Account) RequestManualPaymentUsingCreditCardOnFile(amount *string, payWithAlternateCardFlag *bool, note *string) (resp datatypes.Billing_Payment_Card_ManualPayment, err error) { + params := []interface{}{ + amount, + payWithAlternateCardFlag, + note, + } + err = r.Session.DoRequest("SoftLayer_Account", "requestManualPaymentUsingCreditCardOnFile", params, &r.Options, &resp) + return +} + +// Set this account's abuse emails. Takes an array of email addresses as strings. +func (r Account) SetAbuseEmails(emails []string) (resp bool, err error) { + params := []interface{}{ + emails, + } + err = r.Session.DoRequest("SoftLayer_Account", "setAbuseEmails", params, &r.Options, &resp) + return +} + +// Set the flag that enables or disables automatic private network VLAN spanning for a SoftLayer customer account. Enabling VLAN spanning allows an account's servers to talk on the same broadcast domain even if they reside within different private vlans. +func (r Account) SetVlanSpan(enabled *bool) (resp bool, err error) { + params := []interface{}{ + enabled, + } + err = r.Session.DoRequest("SoftLayer_Account", "setVlanSpan", params, &r.Options, &resp) + return +} + +// no documentation yet +func (r Account) SwapCreditCards() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Account", "swapCreditCards", nil, &r.Options, &resp) + return +} + +// Some larger SoftLayer customer accounts may have servers and virtual servers on more subnets than SoftLayer's private network VPN devices can assign routes for. In those cases routes for individual servers and virtual servers may be assigned individually to an account's servers via this method. +// +// Always call this method to enable changes when manually configuring VPN subnet access. +func (r Account) UpdateVpnUsersForResource(objectId *int, objectType *string) (resp bool, err error) { + params := []interface{}{ + objectId, + objectType, + } + err = r.Session.DoRequest("SoftLayer_Account", "updateVpnUsersForResource", params, &r.Options, &resp) + return +} + +// This method will validate the following account fields. Included are the allowed characters for each field. Email Address*: letters, numbers, space, period, dash, parenthesis, exclamation point, at sign, ampersand, colon, comma, underscore, apostrophe, octothorpe. Company Name*: alphabet, numbers, space, period, dash, octothorpe, forward slash, backward slash, comma, colon, at sign, ampersand, underscore, apostrophe, parenthesis, exclamation point. (Note: may not contain an email address) First Name*: alphabet, space, period, dash, comma, apostrophe. Last Name*: alphabet, space, period, dash, comma, apostrophe. Address 1*: alphabet, numbers, space, period, dash, octothorpe, forward slash, backward slash, comma, colon, at sign, ampersand, underscore, apostrophe. Address 2: alphabet, numbers, space, period, dash, octothorpe, forward slash, backward slash, comma, colon, at sign, ampersand, underscore, apostrophe. City*: alphabet, space, period, dash, apostrophe. State*: Required if country is US or Canada. Must be valid two-letter state code for that country. Postal Code*: alphabet, numbers, dash, space. Country*: alphabet, numbers. Office Phone*: alphabet, numbers, space, period, dash, parenthesis, plus sign. Alternate Phone: alphabet, numbers, space, period, dash, parenthesis, plus sign. Fax Phone: alphabet, numbers, space, period, dash, parenthesis, plus sign. +// * denotes a required field. +func (r Account) Validate(account *datatypes.Account) (resp []string, err error) { + params := []interface{}{ + account, + } + err = r.Session.DoRequest("SoftLayer_Account", "validate", params, &r.Options, &resp) + return +} + +// This method checks global and account specific requirements and returns true if the dollar amount entered is acceptable for this account and false otherwise. Please note the dollar amount is in USD. +func (r Account) ValidateManualPaymentAmount(amount *string) (resp bool, err error) { + params := []interface{}{ + amount, + } + err = r.Session.DoRequest("SoftLayer_Account", "validateManualPaymentAmount", params, &r.Options, &resp) + return +} + +// The SoftLayer_Account_Address data type contains information on an address associated with a SoftLayer account. +type Account_Address struct { + Session *session.Session + Options sl.Options +} + +// GetAccountAddressService returns an instance of the Account_Address SoftLayer service +func GetAccountAddressService(sess *session.Session) Account_Address { + return Account_Address{Session: sess} +} + +func (r Account_Address) Id(id int) Account_Address { + r.Options.Id = &id + return r +} + +func (r Account_Address) Mask(mask string) Account_Address { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Account_Address) Filter(filter string) Account_Address { + r.Options.Filter = filter + return r +} + +func (r Account_Address) Limit(limit int) Account_Address { + r.Options.Limit = &limit + return r +} + +func (r Account_Address) Offset(offset int) Account_Address { + r.Options.Offset = &offset + return r +} + +// Create a new address record. The ''typeId'', ''accountId'', ''description'', ''address1'', ''city'', ''state'', ''country'', and ''postalCode'' properties in the templateObject parameter are required properties and may not be null or empty. Users will be restricted to creating addresses for their account. +func (r Account_Address) CreateObject(templateObject *datatypes.Account_Address) (resp datatypes.Account_Address, err error) { + params := []interface{}{ + templateObject, + } + err = r.Session.DoRequest("SoftLayer_Account_Address", "createObject", params, &r.Options, &resp) + return +} + +// Edit the properties of an address record by passing in a modified instance of a SoftLayer_Account_Address object. Users will be restricted to modifying addresses for their account. +func (r Account_Address) EditObject(templateObject *datatypes.Account_Address) (resp bool, err error) { + params := []interface{}{ + templateObject, + } + err = r.Session.DoRequest("SoftLayer_Account_Address", "editObject", params, &r.Options, &resp) + return +} + +// Retrieve The account to which this address belongs. +func (r Account_Address) GetAccount() (resp datatypes.Account, err error) { + err = r.Session.DoRequest("SoftLayer_Account_Address", "getAccount", nil, &r.Options, &resp) + return +} + +// Retrieve a list of SoftLayer datacenter addresses. +func (r Account_Address) GetAllDataCenters() (resp []datatypes.Account_Address, err error) { + err = r.Session.DoRequest("SoftLayer_Account_Address", "getAllDataCenters", nil, &r.Options, &resp) + return +} + +// Retrieve The customer user who created this address. +func (r Account_Address) GetCreateUser() (resp datatypes.User_Customer, err error) { + err = r.Session.DoRequest("SoftLayer_Account_Address", "getCreateUser", nil, &r.Options, &resp) + return +} + +// Retrieve The location of this address. +func (r Account_Address) GetLocation() (resp datatypes.Location, err error) { + err = r.Session.DoRequest("SoftLayer_Account_Address", "getLocation", nil, &r.Options, &resp) + return +} + +// Retrieve The employee who last modified this address. +func (r Account_Address) GetModifyEmployee() (resp datatypes.User_Employee, err error) { + err = r.Session.DoRequest("SoftLayer_Account_Address", "getModifyEmployee", nil, &r.Options, &resp) + return +} + +// Retrieve The customer user who last modified this address. +func (r Account_Address) GetModifyUser() (resp datatypes.User_Customer, err error) { + err = r.Session.DoRequest("SoftLayer_Account_Address", "getModifyUser", nil, &r.Options, &resp) + return +} + +// Retrieve a list of SoftLayer datacenter addresses. +func (r Account_Address) GetNetworkAddress(name *string) (resp []datatypes.Account_Address, err error) { + params := []interface{}{ + name, + } + err = r.Session.DoRequest("SoftLayer_Account_Address", "getNetworkAddress", params, &r.Options, &resp) + return +} + +// no documentation yet +func (r Account_Address) GetObject() (resp datatypes.Account_Address, err error) { + err = r.Session.DoRequest("SoftLayer_Account_Address", "getObject", nil, &r.Options, &resp) + return +} + +// Retrieve An account address' type. +func (r Account_Address) GetType() (resp datatypes.Account_Address_Type, err error) { + err = r.Session.DoRequest("SoftLayer_Account_Address", "getType", nil, &r.Options, &resp) + return +} + +// no documentation yet +type Account_Address_Type struct { + Session *session.Session + Options sl.Options +} + +// GetAccountAddressTypeService returns an instance of the Account_Address_Type SoftLayer service +func GetAccountAddressTypeService(sess *session.Session) Account_Address_Type { + return Account_Address_Type{Session: sess} +} + +func (r Account_Address_Type) Id(id int) Account_Address_Type { + r.Options.Id = &id + return r +} + +func (r Account_Address_Type) Mask(mask string) Account_Address_Type { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Account_Address_Type) Filter(filter string) Account_Address_Type { + r.Options.Filter = filter + return r +} + +func (r Account_Address_Type) Limit(limit int) Account_Address_Type { + r.Options.Limit = &limit + return r +} + +func (r Account_Address_Type) Offset(offset int) Account_Address_Type { + r.Options.Offset = &offset + return r +} + +// no documentation yet +func (r Account_Address_Type) GetObject() (resp datatypes.Account_Address_Type, err error) { + err = r.Session.DoRequest("SoftLayer_Account_Address_Type", "getObject", nil, &r.Options, &resp) + return +} + +// This service allows for a unique identifier to be associated to an existing customer account. +type Account_Affiliation struct { + Session *session.Session + Options sl.Options +} + +// GetAccountAffiliationService returns an instance of the Account_Affiliation SoftLayer service +func GetAccountAffiliationService(sess *session.Session) Account_Affiliation { + return Account_Affiliation{Session: sess} +} + +func (r Account_Affiliation) Id(id int) Account_Affiliation { + r.Options.Id = &id + return r +} + +func (r Account_Affiliation) Mask(mask string) Account_Affiliation { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Account_Affiliation) Filter(filter string) Account_Affiliation { + r.Options.Filter = filter + return r +} + +func (r Account_Affiliation) Limit(limit int) Account_Affiliation { + r.Options.Limit = &limit + return r +} + +func (r Account_Affiliation) Offset(offset int) Account_Affiliation { + r.Options.Offset = &offset + return r +} + +// Create a new affiliation to associate with an existing account. +func (r Account_Affiliation) CreateObject(templateObject *datatypes.Account_Affiliation) (resp datatypes.Account_Affiliation, err error) { + params := []interface{}{ + templateObject, + } + err = r.Session.DoRequest("SoftLayer_Account_Affiliation", "createObject", params, &r.Options, &resp) + return +} + +// deleteObject permanently removes an account affiliation +func (r Account_Affiliation) DeleteObject() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Account_Affiliation", "deleteObject", nil, &r.Options, &resp) + return +} + +// Edit an affiliation that is associated to an existing account. +func (r Account_Affiliation) EditObject(templateObject *datatypes.Account_Affiliation) (resp bool, err error) { + params := []interface{}{ + templateObject, + } + err = r.Session.DoRequest("SoftLayer_Account_Affiliation", "editObject", params, &r.Options, &resp) + return +} + +// Retrieve The account that an affiliation belongs to. +func (r Account_Affiliation) GetAccount() (resp datatypes.Account, err error) { + err = r.Session.DoRequest("SoftLayer_Account_Affiliation", "getAccount", nil, &r.Options, &resp) + return +} + +// Get account affiliation information associated with affiliate id. +func (r Account_Affiliation) GetAccountAffiliationsByAffiliateId(affiliateId *string) (resp []datatypes.Account_Affiliation, err error) { + params := []interface{}{ + affiliateId, + } + err = r.Session.DoRequest("SoftLayer_Account_Affiliation", "getAccountAffiliationsByAffiliateId", params, &r.Options, &resp) + return +} + +// no documentation yet +func (r Account_Affiliation) GetObject() (resp datatypes.Account_Affiliation, err error) { + err = r.Session.DoRequest("SoftLayer_Account_Affiliation", "getObject", nil, &r.Options, &resp) + return +} + +// no documentation yet +type Account_Agreement struct { + Session *session.Session + Options sl.Options +} + +// GetAccountAgreementService returns an instance of the Account_Agreement SoftLayer service +func GetAccountAgreementService(sess *session.Session) Account_Agreement { + return Account_Agreement{Session: sess} +} + +func (r Account_Agreement) Id(id int) Account_Agreement { + r.Options.Id = &id + return r +} + +func (r Account_Agreement) Mask(mask string) Account_Agreement { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Account_Agreement) Filter(filter string) Account_Agreement { + r.Options.Filter = filter + return r +} + +func (r Account_Agreement) Limit(limit int) Account_Agreement { + r.Options.Limit = &limit + return r +} + +func (r Account_Agreement) Offset(offset int) Account_Agreement { + r.Options.Offset = &offset + return r +} + +// Retrieve +func (r Account_Agreement) GetAccount() (resp datatypes.Account, err error) { + err = r.Session.DoRequest("SoftLayer_Account_Agreement", "getAccount", nil, &r.Options, &resp) + return +} + +// Retrieve The type of agreement. +func (r Account_Agreement) GetAgreementType() (resp datatypes.Account_Agreement_Type, err error) { + err = r.Session.DoRequest("SoftLayer_Account_Agreement", "getAgreementType", nil, &r.Options, &resp) + return +} + +// Retrieve The files attached to an agreement. +func (r Account_Agreement) GetAttachedBillingAgreementFiles() (resp []datatypes.Account_MasterServiceAgreement, err error) { + err = r.Session.DoRequest("SoftLayer_Account_Agreement", "getAttachedBillingAgreementFiles", nil, &r.Options, &resp) + return +} + +// Retrieve The billing items associated with an agreement. +func (r Account_Agreement) GetBillingItems() (resp []datatypes.Billing_Item, err error) { + err = r.Session.DoRequest("SoftLayer_Account_Agreement", "getBillingItems", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Account_Agreement) GetObject() (resp datatypes.Account_Agreement, err error) { + err = r.Session.DoRequest("SoftLayer_Account_Agreement", "getObject", nil, &r.Options, &resp) + return +} + +// Retrieve The status of the agreement. +func (r Account_Agreement) GetStatus() (resp datatypes.Account_Agreement_Status, err error) { + err = r.Session.DoRequest("SoftLayer_Account_Agreement", "getStatus", nil, &r.Options, &resp) + return +} + +// Retrieve The top level billing item associated with an agreement. +func (r Account_Agreement) GetTopLevelBillingItems() (resp []datatypes.Billing_Item, err error) { + err = r.Session.DoRequest("SoftLayer_Account_Agreement", "getTopLevelBillingItems", nil, &r.Options, &resp) + return +} + +// Account authentication has many different settings that can be set. This class allows the customer or employee to set these settigns. +type Account_Authentication_Attribute struct { + Session *session.Session + Options sl.Options +} + +// GetAccountAuthenticationAttributeService returns an instance of the Account_Authentication_Attribute SoftLayer service +func GetAccountAuthenticationAttributeService(sess *session.Session) Account_Authentication_Attribute { + return Account_Authentication_Attribute{Session: sess} +} + +func (r Account_Authentication_Attribute) Id(id int) Account_Authentication_Attribute { + r.Options.Id = &id + return r +} + +func (r Account_Authentication_Attribute) Mask(mask string) Account_Authentication_Attribute { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Account_Authentication_Attribute) Filter(filter string) Account_Authentication_Attribute { + r.Options.Filter = filter + return r +} + +func (r Account_Authentication_Attribute) Limit(limit int) Account_Authentication_Attribute { + r.Options.Limit = &limit + return r +} + +func (r Account_Authentication_Attribute) Offset(offset int) Account_Authentication_Attribute { + r.Options.Offset = &offset + return r +} + +// Retrieve The SoftLayer customer account. +func (r Account_Authentication_Attribute) GetAccount() (resp datatypes.Account, err error) { + err = r.Session.DoRequest("SoftLayer_Account_Authentication_Attribute", "getAccount", nil, &r.Options, &resp) + return +} + +// Retrieve The SoftLayer account authentication that has an attribute. +func (r Account_Authentication_Attribute) GetAuthenticationRecord() (resp datatypes.Account_Authentication_Saml, err error) { + err = r.Session.DoRequest("SoftLayer_Account_Authentication_Attribute", "getAuthenticationRecord", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Account_Authentication_Attribute) GetObject() (resp datatypes.Account_Authentication_Attribute, err error) { + err = r.Session.DoRequest("SoftLayer_Account_Authentication_Attribute", "getObject", nil, &r.Options, &resp) + return +} + +// Retrieve The type of attribute assigned to a SoftLayer account authentication. +func (r Account_Authentication_Attribute) GetType() (resp datatypes.Account_Authentication_Attribute_Type, err error) { + err = r.Session.DoRequest("SoftLayer_Account_Authentication_Attribute", "getType", nil, &r.Options, &resp) + return +} + +// SoftLayer_Account_Authentication_Attribute_Type models the type of attribute that can be assigned to a SoftLayer customer account authentication. +type Account_Authentication_Attribute_Type struct { + Session *session.Session + Options sl.Options +} + +// GetAccountAuthenticationAttributeTypeService returns an instance of the Account_Authentication_Attribute_Type SoftLayer service +func GetAccountAuthenticationAttributeTypeService(sess *session.Session) Account_Authentication_Attribute_Type { + return Account_Authentication_Attribute_Type{Session: sess} +} + +func (r Account_Authentication_Attribute_Type) Id(id int) Account_Authentication_Attribute_Type { + r.Options.Id = &id + return r +} + +func (r Account_Authentication_Attribute_Type) Mask(mask string) Account_Authentication_Attribute_Type { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Account_Authentication_Attribute_Type) Filter(filter string) Account_Authentication_Attribute_Type { + r.Options.Filter = filter + return r +} + +func (r Account_Authentication_Attribute_Type) Limit(limit int) Account_Authentication_Attribute_Type { + r.Options.Limit = &limit + return r +} + +func (r Account_Authentication_Attribute_Type) Offset(offset int) Account_Authentication_Attribute_Type { + r.Options.Offset = &offset + return r +} + +// no documentation yet +func (r Account_Authentication_Attribute_Type) GetAllObjects() (resp []datatypes.Account_Attribute_Type, err error) { + err = r.Session.DoRequest("SoftLayer_Account_Authentication_Attribute_Type", "getAllObjects", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Account_Authentication_Attribute_Type) GetObject() (resp datatypes.Account_Authentication_Attribute_Type, err error) { + err = r.Session.DoRequest("SoftLayer_Account_Authentication_Attribute_Type", "getObject", nil, &r.Options, &resp) + return +} + +// no documentation yet +type Account_Authentication_Saml struct { + Session *session.Session + Options sl.Options +} + +// GetAccountAuthenticationSamlService returns an instance of the Account_Authentication_Saml SoftLayer service +func GetAccountAuthenticationSamlService(sess *session.Session) Account_Authentication_Saml { + return Account_Authentication_Saml{Session: sess} +} + +func (r Account_Authentication_Saml) Id(id int) Account_Authentication_Saml { + r.Options.Id = &id + return r +} + +func (r Account_Authentication_Saml) Mask(mask string) Account_Authentication_Saml { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Account_Authentication_Saml) Filter(filter string) Account_Authentication_Saml { + r.Options.Filter = filter + return r +} + +func (r Account_Authentication_Saml) Limit(limit int) Account_Authentication_Saml { + r.Options.Limit = &limit + return r +} + +func (r Account_Authentication_Saml) Offset(offset int) Account_Authentication_Saml { + r.Options.Offset = &offset + return r +} + +// no documentation yet +func (r Account_Authentication_Saml) CreateObject(templateObject *datatypes.Account_Authentication_Saml) (resp datatypes.Account_Authentication_Saml, err error) { + params := []interface{}{ + templateObject, + } + err = r.Session.DoRequest("SoftLayer_Account_Authentication_Saml", "createObject", params, &r.Options, &resp) + return +} + +// no documentation yet +func (r Account_Authentication_Saml) DeleteObject() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Account_Authentication_Saml", "deleteObject", nil, &r.Options, &resp) + return +} + +// Edit the object by passing in a modified instance of the object +func (r Account_Authentication_Saml) EditObject(templateObject *datatypes.Account_Authentication_Saml) (resp bool, err error) { + params := []interface{}{ + templateObject, + } + err = r.Session.DoRequest("SoftLayer_Account_Authentication_Saml", "editObject", params, &r.Options, &resp) + return +} + +// Retrieve The account associated with this saml configuration. +func (r Account_Authentication_Saml) GetAccount() (resp datatypes.Account, err error) { + err = r.Session.DoRequest("SoftLayer_Account_Authentication_Saml", "getAccount", nil, &r.Options, &resp) + return +} + +// Retrieve The saml attribute values for a SoftLayer customer account. +func (r Account_Authentication_Saml) GetAttributes() (resp []datatypes.Account_Authentication_Attribute, err error) { + err = r.Session.DoRequest("SoftLayer_Account_Authentication_Saml", "getAttributes", nil, &r.Options, &resp) + return +} + +// This method will return the service provider metadata in XML format. +func (r Account_Authentication_Saml) GetMetadata() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_Account_Authentication_Saml", "getMetadata", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Account_Authentication_Saml) GetObject() (resp datatypes.Account_Authentication_Saml, err error) { + err = r.Session.DoRequest("SoftLayer_Account_Authentication_Saml", "getObject", nil, &r.Options, &resp) + return +} + +// no documentation yet +type Account_Contact struct { + Session *session.Session + Options sl.Options +} + +// GetAccountContactService returns an instance of the Account_Contact SoftLayer service +func GetAccountContactService(sess *session.Session) Account_Contact { + return Account_Contact{Session: sess} +} + +func (r Account_Contact) Id(id int) Account_Contact { + r.Options.Id = &id + return r +} + +func (r Account_Contact) Mask(mask string) Account_Contact { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Account_Contact) Filter(filter string) Account_Contact { + r.Options.Filter = filter + return r +} + +func (r Account_Contact) Limit(limit int) Account_Contact { + r.Options.Limit = &limit + return r +} + +func (r Account_Contact) Offset(offset int) Account_Contact { + r.Options.Offset = &offset + return r +} + +// This method creates an account contact. The accountId is fixed, other properties can be set during creation. The typeId indicates the SoftLayer_Account_Contact_Type for the contact. This method returns the SoftLayer_Account_Contact object that is created. +func (r Account_Contact) CreateObject(templateObject *datatypes.Account_Contact) (resp datatypes.Account_Contact, err error) { + params := []interface{}{ + templateObject, + } + err = r.Session.DoRequest("SoftLayer_Account_Contact", "createObject", params, &r.Options, &resp) + return +} + +// deleteObject permanently removes an account contact +func (r Account_Contact) DeleteObject() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Account_Contact", "deleteObject", nil, &r.Options, &resp) + return +} + +// This method allows you to modify an account contact. Only master users are permitted to modify an account contact. +func (r Account_Contact) EditObject(templateObject *datatypes.Account_Contact) (resp bool, err error) { + params := []interface{}{ + templateObject, + } + err = r.Session.DoRequest("SoftLayer_Account_Contact", "editObject", params, &r.Options, &resp) + return +} + +// Retrieve +func (r Account_Contact) GetAccount() (resp datatypes.Account, err error) { + err = r.Session.DoRequest("SoftLayer_Account_Contact", "getAccount", nil, &r.Options, &resp) + return +} + +// This method will return an array of SoftLayer_Account_Contact_Type objects which can be used when creating or editing an account contact. +func (r Account_Contact) GetAllContactTypes() (resp []datatypes.Account_Contact_Type, err error) { + err = r.Session.DoRequest("SoftLayer_Account_Contact", "getAllContactTypes", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Account_Contact) GetObject() (resp datatypes.Account_Contact, err error) { + err = r.Session.DoRequest("SoftLayer_Account_Contact", "getObject", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Account_Contact) GetType() (resp datatypes.Account_Contact_Type, err error) { + err = r.Session.DoRequest("SoftLayer_Account_Contact", "getType", nil, &r.Options, &resp) + return +} + +// no documentation yet +type Account_Historical_Report struct { + Session *session.Session + Options sl.Options +} + +// GetAccountHistoricalReportService returns an instance of the Account_Historical_Report SoftLayer service +func GetAccountHistoricalReportService(sess *session.Session) Account_Historical_Report { + return Account_Historical_Report{Session: sess} +} + +func (r Account_Historical_Report) Id(id int) Account_Historical_Report { + r.Options.Id = &id + return r +} + +func (r Account_Historical_Report) Mask(mask string) Account_Historical_Report { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Account_Historical_Report) Filter(filter string) Account_Historical_Report { + r.Options.Filter = filter + return r +} + +func (r Account_Historical_Report) Limit(limit int) Account_Historical_Report { + r.Options.Limit = &limit + return r +} + +func (r Account_Historical_Report) Offset(offset int) Account_Historical_Report { + r.Options.Offset = &offset + return r +} + +// no documentation yet +func (r Account_Historical_Report) GetAccountHostUptimeGraphData(startDate *string, endDate *string) (resp datatypes.Container_Graph, err error) { + params := []interface{}{ + startDate, + endDate, + } + err = r.Session.DoRequest("SoftLayer_Account_Historical_Report", "getAccountHostUptimeGraphData", params, &r.Options, &resp) + return +} + +// no documentation yet +func (r Account_Historical_Report) GetAccountHostUptimeSummary(startDateTime *string, endDateTime *string) (resp datatypes.Container_Account_Historical_Summary, err error) { + params := []interface{}{ + startDateTime, + endDateTime, + } + err = r.Session.DoRequest("SoftLayer_Account_Historical_Report", "getAccountHostUptimeSummary", params, &r.Options, &resp) + return +} + +// no documentation yet +func (r Account_Historical_Report) GetAccountUrlUptimeGraphData(startDate *string, endDate *string) (resp datatypes.Container_Graph, err error) { + params := []interface{}{ + startDate, + endDate, + } + err = r.Session.DoRequest("SoftLayer_Account_Historical_Report", "getAccountUrlUptimeGraphData", params, &r.Options, &resp) + return +} + +// no documentation yet +func (r Account_Historical_Report) GetAccountUrlUptimeSummary(startDateTime *string, endDateTime *string) (resp datatypes.Container_Account_Historical_Summary, err error) { + params := []interface{}{ + startDateTime, + endDateTime, + } + err = r.Session.DoRequest("SoftLayer_Account_Historical_Report", "getAccountUrlUptimeSummary", params, &r.Options, &resp) + return +} + +// no documentation yet +func (r Account_Historical_Report) GetHostUptimeDetail(configurationValueId *int, startDateTime *string, endDateTime *string) (resp datatypes.Container_Account_Historical_Summary_Detail, err error) { + params := []interface{}{ + configurationValueId, + startDateTime, + endDateTime, + } + err = r.Session.DoRequest("SoftLayer_Account_Historical_Report", "getHostUptimeDetail", params, &r.Options, &resp) + return +} + +// no documentation yet +func (r Account_Historical_Report) GetHostUptimeGraphData(configurationValueId *int, startDate *string, endDate *string) (resp datatypes.Container_Graph, err error) { + params := []interface{}{ + configurationValueId, + startDate, + endDate, + } + err = r.Session.DoRequest("SoftLayer_Account_Historical_Report", "getHostUptimeGraphData", params, &r.Options, &resp) + return +} + +// no documentation yet +func (r Account_Historical_Report) GetUrlUptimeDetail(configurationValueId *int, startDateTime *string, endDateTime *string) (resp datatypes.Container_Account_Historical_Summary_Detail, err error) { + params := []interface{}{ + configurationValueId, + startDateTime, + endDateTime, + } + err = r.Session.DoRequest("SoftLayer_Account_Historical_Report", "getUrlUptimeDetail", params, &r.Options, &resp) + return +} + +// no documentation yet +func (r Account_Historical_Report) GetUrlUptimeGraphData(configurationValueId *int, startDate *string, endDate *string) (resp datatypes.Container_Graph, err error) { + params := []interface{}{ + configurationValueId, + startDate, + endDate, + } + err = r.Session.DoRequest("SoftLayer_Account_Historical_Report", "getUrlUptimeGraphData", params, &r.Options, &resp) + return +} + +// no documentation yet +type Account_Link_Bluemix struct { + Session *session.Session + Options sl.Options +} + +// GetAccountLinkBluemixService returns an instance of the Account_Link_Bluemix SoftLayer service +func GetAccountLinkBluemixService(sess *session.Session) Account_Link_Bluemix { + return Account_Link_Bluemix{Session: sess} +} + +func (r Account_Link_Bluemix) Id(id int) Account_Link_Bluemix { + r.Options.Id = &id + return r +} + +func (r Account_Link_Bluemix) Mask(mask string) Account_Link_Bluemix { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Account_Link_Bluemix) Filter(filter string) Account_Link_Bluemix { + r.Options.Filter = filter + return r +} + +func (r Account_Link_Bluemix) Limit(limit int) Account_Link_Bluemix { + r.Options.Limit = &limit + return r +} + +func (r Account_Link_Bluemix) Offset(offset int) Account_Link_Bluemix { + r.Options.Offset = &offset + return r +} + +// no documentation yet +func (r Account_Link_Bluemix) GetObject() (resp datatypes.Account_Link_Bluemix, err error) { + err = r.Session.DoRequest("SoftLayer_Account_Link_Bluemix", "getObject", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Account_Link_Bluemix) GetSupportTierType() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_Account_Link_Bluemix", "getSupportTierType", nil, &r.Options, &resp) + return +} + +// no documentation yet +type Account_Link_OpenStack struct { + Session *session.Session + Options sl.Options +} + +// GetAccountLinkOpenStackService returns an instance of the Account_Link_OpenStack SoftLayer service +func GetAccountLinkOpenStackService(sess *session.Session) Account_Link_OpenStack { + return Account_Link_OpenStack{Session: sess} +} + +func (r Account_Link_OpenStack) Id(id int) Account_Link_OpenStack { + r.Options.Id = &id + return r +} + +func (r Account_Link_OpenStack) Mask(mask string) Account_Link_OpenStack { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Account_Link_OpenStack) Filter(filter string) Account_Link_OpenStack { + r.Options.Filter = filter + return r +} + +func (r Account_Link_OpenStack) Limit(limit int) Account_Link_OpenStack { + r.Options.Limit = &limit + return r +} + +func (r Account_Link_OpenStack) Offset(offset int) Account_Link_OpenStack { + r.Options.Offset = &offset + return r +} + +// no documentation yet +func (r Account_Link_OpenStack) CreateOSDomain(request *datatypes.Account_Link_OpenStack_LinkRequest) (resp datatypes.Account_Link_OpenStack_DomainCreationDetails, err error) { + params := []interface{}{ + request, + } + err = r.Session.DoRequest("SoftLayer_Account_Link_OpenStack", "createOSDomain", params, &r.Options, &resp) + return +} + +// no documentation yet +func (r Account_Link_OpenStack) CreateOSProject(request *datatypes.Account_Link_OpenStack_LinkRequest) (resp datatypes.Account_Link_OpenStack_ProjectCreationDetails, err error) { + params := []interface{}{ + request, + } + err = r.Session.DoRequest("SoftLayer_Account_Link_OpenStack", "createOSProject", params, &r.Options, &resp) + return +} + +// no documentation yet +func (r Account_Link_OpenStack) DeleteOSDomain(domainId *string) (resp bool, err error) { + params := []interface{}{ + domainId, + } + err = r.Session.DoRequest("SoftLayer_Account_Link_OpenStack", "deleteOSDomain", params, &r.Options, &resp) + return +} + +// no documentation yet +func (r Account_Link_OpenStack) DeleteOSProject(projectId *string) (resp bool, err error) { + params := []interface{}{ + projectId, + } + err = r.Session.DoRequest("SoftLayer_Account_Link_OpenStack", "deleteOSProject", params, &r.Options, &resp) + return +} + +// deleteObject permanently removes an account link and all of it's associated keystone data (including users for the associated project). '''This cannot be undone.''' Be wary of running this method. If you remove an account link in error you will need to re-create it by creating a new SoftLayer_Account_Link_OpenStack object. +func (r Account_Link_OpenStack) DeleteObject() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Account_Link_OpenStack", "deleteObject", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Account_Link_OpenStack) GetOSProject(projectId *string) (resp datatypes.Account_Link_OpenStack_ProjectDetails, err error) { + params := []interface{}{ + projectId, + } + err = r.Session.DoRequest("SoftLayer_Account_Link_OpenStack", "getOSProject", params, &r.Options, &resp) + return +} + +// no documentation yet +func (r Account_Link_OpenStack) GetObject() (resp datatypes.Account_Link_OpenStack, err error) { + err = r.Session.DoRequest("SoftLayer_Account_Link_OpenStack", "getObject", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Account_Link_OpenStack) ListOSProjects() (resp []datatypes.Account_Link_OpenStack_ProjectDetails, err error) { + err = r.Session.DoRequest("SoftLayer_Account_Link_OpenStack", "listOSProjects", nil, &r.Options, &resp) + return +} + +// The SoftLayer_Account_Lockdown_Request data type holds information on API requests from brand customers. +type Account_Lockdown_Request struct { + Session *session.Session + Options sl.Options +} + +// GetAccountLockdownRequestService returns an instance of the Account_Lockdown_Request SoftLayer service +func GetAccountLockdownRequestService(sess *session.Session) Account_Lockdown_Request { + return Account_Lockdown_Request{Session: sess} +} + +func (r Account_Lockdown_Request) Id(id int) Account_Lockdown_Request { + r.Options.Id = &id + return r +} + +func (r Account_Lockdown_Request) Mask(mask string) Account_Lockdown_Request { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Account_Lockdown_Request) Filter(filter string) Account_Lockdown_Request { + r.Options.Filter = filter + return r +} + +func (r Account_Lockdown_Request) Limit(limit int) Account_Lockdown_Request { + r.Options.Limit = &limit + return r +} + +func (r Account_Lockdown_Request) Offset(offset int) Account_Lockdown_Request { + r.Options.Offset = &offset + return r +} + +// Will cancel a lockdown request scheduled in the future. Once canceled, the lockdown request cannot be reconciled and new requests must be made for subsequent actions on the account. +func (r Account_Lockdown_Request) CancelRequest() (err error) { + var resp datatypes.Void + err = r.Session.DoRequest("SoftLayer_Account_Lockdown_Request", "cancelRequest", nil, &r.Options, &resp) + return +} + +// Takes the original lockdown request ID, and an optional disable date. If no date is passed with the API call, the account will be disabled immediately. Otherwise, the account will be disabled on the date given. All hardware will be reclaimed and all accounts permanently disabled. +func (r Account_Lockdown_Request) DisableLockedAccount(disableDate *string) (resp int, err error) { + params := []interface{}{ + disableDate, + } + err = r.Session.DoRequest("SoftLayer_Account_Lockdown_Request", "disableLockedAccount", params, &r.Options, &resp) + return +} + +// Takes an account ID and an optional disconnect date. If no disconnect date is passed into the API call, the account disconnection will happen immediately. Otherwise, the account disconnection will happen on the date given. A brand account request ID will be returned and will then be updated when the disconnection occurs. +func (r Account_Lockdown_Request) DisconnectCompute(accountId *int, disconnectDate *string) (resp int, err error) { + params := []interface{}{ + accountId, + disconnectDate, + } + err = r.Session.DoRequest("SoftLayer_Account_Lockdown_Request", "disconnectCompute", params, &r.Options, &resp) + return +} + +// Provides a history of an account's lockdown requests and their status. +func (r Account_Lockdown_Request) GetAccountHistory(accountId *int) (resp []datatypes.Account_Lockdown_Request, err error) { + params := []interface{}{ + accountId, + } + err = r.Session.DoRequest("SoftLayer_Account_Lockdown_Request", "getAccountHistory", params, &r.Options, &resp) + return +} + +// no documentation yet +func (r Account_Lockdown_Request) GetObject() (resp datatypes.Account_Lockdown_Request, err error) { + err = r.Session.DoRequest("SoftLayer_Account_Lockdown_Request", "getObject", nil, &r.Options, &resp) + return +} + +// Takes the original disconnected lockdown event ID, and an optional reconnect date. If no reconnect date is passed with the API call, the account reconnection will happen immediately. Otherwise, the account reconnection will happen on the date given. The associated lockdown event will be unlocked and closed at that time. +func (r Account_Lockdown_Request) ReconnectCompute(reconnectDate *string) (resp int, err error) { + params := []interface{}{ + reconnectDate, + } + err = r.Session.DoRequest("SoftLayer_Account_Lockdown_Request", "reconnectCompute", params, &r.Options, &resp) + return +} + +// no documentation yet +type Account_MasterServiceAgreement struct { + Session *session.Session + Options sl.Options +} + +// GetAccountMasterServiceAgreementService returns an instance of the Account_MasterServiceAgreement SoftLayer service +func GetAccountMasterServiceAgreementService(sess *session.Session) Account_MasterServiceAgreement { + return Account_MasterServiceAgreement{Session: sess} +} + +func (r Account_MasterServiceAgreement) Id(id int) Account_MasterServiceAgreement { + r.Options.Id = &id + return r +} + +func (r Account_MasterServiceAgreement) Mask(mask string) Account_MasterServiceAgreement { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Account_MasterServiceAgreement) Filter(filter string) Account_MasterServiceAgreement { + r.Options.Filter = filter + return r +} + +func (r Account_MasterServiceAgreement) Limit(limit int) Account_MasterServiceAgreement { + r.Options.Limit = &limit + return r +} + +func (r Account_MasterServiceAgreement) Offset(offset int) Account_MasterServiceAgreement { + r.Options.Offset = &offset + return r +} + +// Retrieve +func (r Account_MasterServiceAgreement) GetAccount() (resp datatypes.Account, err error) { + err = r.Session.DoRequest("SoftLayer_Account_MasterServiceAgreement", "getAccount", nil, &r.Options, &resp) + return +} + +// Gets a File Entity container with the user's account's current MSA PDF. Gets a translation if one is available. Otherwise, gets the master document. +func (r Account_MasterServiceAgreement) GetFile() (resp datatypes.Container_Utility_File_Entity, err error) { + err = r.Session.DoRequest("SoftLayer_Account_MasterServiceAgreement", "getFile", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Account_MasterServiceAgreement) GetObject() (resp datatypes.Account_MasterServiceAgreement, err error) { + err = r.Session.DoRequest("SoftLayer_Account_MasterServiceAgreement", "getObject", nil, &r.Options, &resp) + return +} + +// The SoftLayer_Account_Media data type contains information on a single piece of media associated with a Data Transfer Service request. +type Account_Media struct { + Session *session.Session + Options sl.Options +} + +// GetAccountMediaService returns an instance of the Account_Media SoftLayer service +func GetAccountMediaService(sess *session.Session) Account_Media { + return Account_Media{Session: sess} +} + +func (r Account_Media) Id(id int) Account_Media { + r.Options.Id = &id + return r +} + +func (r Account_Media) Mask(mask string) Account_Media { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Account_Media) Filter(filter string) Account_Media { + r.Options.Filter = filter + return r +} + +func (r Account_Media) Limit(limit int) Account_Media { + r.Options.Limit = &limit + return r +} + +func (r Account_Media) Offset(offset int) Account_Media { + r.Options.Offset = &offset + return r +} + +// Edit the properties of a media record by passing in a modified instance of a SoftLayer_Account_Media object. +func (r Account_Media) EditObject(templateObject *datatypes.Account_Media) (resp bool, err error) { + params := []interface{}{ + templateObject, + } + err = r.Session.DoRequest("SoftLayer_Account_Media", "editObject", params, &r.Options, &resp) + return +} + +// Retrieve The account to which the media belongs. +func (r Account_Media) GetAccount() (resp datatypes.Account, err error) { + err = r.Session.DoRequest("SoftLayer_Account_Media", "getAccount", nil, &r.Options, &resp) + return +} + +// Retrieve a list supported media types for SoftLayer's Data Transfer Service. +func (r Account_Media) GetAllMediaTypes() (resp []datatypes.Account_Media_Type, err error) { + err = r.Session.DoRequest("SoftLayer_Account_Media", "getAllMediaTypes", nil, &r.Options, &resp) + return +} + +// Retrieve The customer user who created the media object. +func (r Account_Media) GetCreateUser() (resp datatypes.User_Customer, err error) { + err = r.Session.DoRequest("SoftLayer_Account_Media", "getCreateUser", nil, &r.Options, &resp) + return +} + +// Retrieve The datacenter where the media resides. +func (r Account_Media) GetDatacenter() (resp datatypes.Location, err error) { + err = r.Session.DoRequest("SoftLayer_Account_Media", "getDatacenter", nil, &r.Options, &resp) + return +} + +// Retrieve The employee who last modified the media. +func (r Account_Media) GetModifyEmployee() (resp datatypes.User_Employee, err error) { + err = r.Session.DoRequest("SoftLayer_Account_Media", "getModifyEmployee", nil, &r.Options, &resp) + return +} + +// Retrieve The customer user who last modified the media. +func (r Account_Media) GetModifyUser() (resp datatypes.User_Customer, err error) { + err = r.Session.DoRequest("SoftLayer_Account_Media", "getModifyUser", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Account_Media) GetObject() (resp datatypes.Account_Media, err error) { + err = r.Session.DoRequest("SoftLayer_Account_Media", "getObject", nil, &r.Options, &resp) + return +} + +// Retrieve The request to which the media belongs. +func (r Account_Media) GetRequest() (resp datatypes.Account_Media_Data_Transfer_Request, err error) { + err = r.Session.DoRequest("SoftLayer_Account_Media", "getRequest", nil, &r.Options, &resp) + return +} + +// Retrieve The media's type. +func (r Account_Media) GetType() (resp datatypes.Account_Media_Type, err error) { + err = r.Session.DoRequest("SoftLayer_Account_Media", "getType", nil, &r.Options, &resp) + return +} + +// Retrieve A guest's associated EVault network storage service account. +func (r Account_Media) GetVolume() (resp datatypes.Network_Storage, err error) { + err = r.Session.DoRequest("SoftLayer_Account_Media", "getVolume", nil, &r.Options, &resp) + return +} + +// Remove a media from a SoftLayer account's list of media. The media record is not deleted. +func (r Account_Media) RemoveMediaFromList(mediaTemplate *datatypes.Account_Media) (resp int, err error) { + params := []interface{}{ + mediaTemplate, + } + err = r.Session.DoRequest("SoftLayer_Account_Media", "removeMediaFromList", params, &r.Options, &resp) + return +} + +// The SoftLayer_Account_Media_Data_Transfer_Request data type contains information on a single Data Transfer Service request. Creation of these requests is limited to SoftLayer customers through the SoftLayer Customer Portal. +type Account_Media_Data_Transfer_Request struct { + Session *session.Session + Options sl.Options +} + +// GetAccountMediaDataTransferRequestService returns an instance of the Account_Media_Data_Transfer_Request SoftLayer service +func GetAccountMediaDataTransferRequestService(sess *session.Session) Account_Media_Data_Transfer_Request { + return Account_Media_Data_Transfer_Request{Session: sess} +} + +func (r Account_Media_Data_Transfer_Request) Id(id int) Account_Media_Data_Transfer_Request { + r.Options.Id = &id + return r +} + +func (r Account_Media_Data_Transfer_Request) Mask(mask string) Account_Media_Data_Transfer_Request { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Account_Media_Data_Transfer_Request) Filter(filter string) Account_Media_Data_Transfer_Request { + r.Options.Filter = filter + return r +} + +func (r Account_Media_Data_Transfer_Request) Limit(limit int) Account_Media_Data_Transfer_Request { + r.Options.Limit = &limit + return r +} + +func (r Account_Media_Data_Transfer_Request) Offset(offset int) Account_Media_Data_Transfer_Request { + r.Options.Offset = &offset + return r +} + +// Edit the properties of a data transfer request record by passing in a modified instance of a SoftLayer_Account_Media_Data_Transfer_Request object. +func (r Account_Media_Data_Transfer_Request) EditObject(templateObject *datatypes.Account_Media_Data_Transfer_Request) (resp bool, err error) { + params := []interface{}{ + templateObject, + } + err = r.Session.DoRequest("SoftLayer_Account_Media_Data_Transfer_Request", "editObject", params, &r.Options, &resp) + return +} + +// Retrieve The account to which the request belongs. +func (r Account_Media_Data_Transfer_Request) GetAccount() (resp datatypes.Account, err error) { + err = r.Session.DoRequest("SoftLayer_Account_Media_Data_Transfer_Request", "getAccount", nil, &r.Options, &resp) + return +} + +// Retrieve The active tickets that are attached to the data transfer request. +func (r Account_Media_Data_Transfer_Request) GetActiveTickets() (resp []datatypes.Ticket, err error) { + err = r.Session.DoRequest("SoftLayer_Account_Media_Data_Transfer_Request", "getActiveTickets", nil, &r.Options, &resp) + return +} + +// Retrieves a list of all the possible statuses to which a request may be set. +func (r Account_Media_Data_Transfer_Request) GetAllRequestStatuses() (resp []datatypes.Account_Media_Data_Transfer_Request_Status, err error) { + err = r.Session.DoRequest("SoftLayer_Account_Media_Data_Transfer_Request", "getAllRequestStatuses", nil, &r.Options, &resp) + return +} + +// Retrieve The billing item for the original request. +func (r Account_Media_Data_Transfer_Request) GetBillingItem() (resp datatypes.Billing_Item, err error) { + err = r.Session.DoRequest("SoftLayer_Account_Media_Data_Transfer_Request", "getBillingItem", nil, &r.Options, &resp) + return +} + +// Retrieve The customer user who created the request. +func (r Account_Media_Data_Transfer_Request) GetCreateUser() (resp datatypes.User_Customer, err error) { + err = r.Session.DoRequest("SoftLayer_Account_Media_Data_Transfer_Request", "getCreateUser", nil, &r.Options, &resp) + return +} + +// Retrieve The media of the request. +func (r Account_Media_Data_Transfer_Request) GetMedia() (resp datatypes.Account_Media, err error) { + err = r.Session.DoRequest("SoftLayer_Account_Media_Data_Transfer_Request", "getMedia", nil, &r.Options, &resp) + return +} + +// Retrieve The employee who last modified the request. +func (r Account_Media_Data_Transfer_Request) GetModifyEmployee() (resp datatypes.User_Employee, err error) { + err = r.Session.DoRequest("SoftLayer_Account_Media_Data_Transfer_Request", "getModifyEmployee", nil, &r.Options, &resp) + return +} + +// Retrieve The customer user who last modified the request. +func (r Account_Media_Data_Transfer_Request) GetModifyUser() (resp datatypes.User_Customer, err error) { + err = r.Session.DoRequest("SoftLayer_Account_Media_Data_Transfer_Request", "getModifyUser", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Account_Media_Data_Transfer_Request) GetObject() (resp datatypes.Account_Media_Data_Transfer_Request, err error) { + err = r.Session.DoRequest("SoftLayer_Account_Media_Data_Transfer_Request", "getObject", nil, &r.Options, &resp) + return +} + +// Retrieve The shipments of the request. +func (r Account_Media_Data_Transfer_Request) GetShipments() (resp []datatypes.Account_Shipment, err error) { + err = r.Session.DoRequest("SoftLayer_Account_Media_Data_Transfer_Request", "getShipments", nil, &r.Options, &resp) + return +} + +// Retrieve The status of the request. +func (r Account_Media_Data_Transfer_Request) GetStatus() (resp datatypes.Account_Media_Data_Transfer_Request_Status, err error) { + err = r.Session.DoRequest("SoftLayer_Account_Media_Data_Transfer_Request", "getStatus", nil, &r.Options, &resp) + return +} + +// Retrieve All tickets that are attached to the data transfer request. +func (r Account_Media_Data_Transfer_Request) GetTickets() (resp []datatypes.Ticket, err error) { + err = r.Session.DoRequest("SoftLayer_Account_Media_Data_Transfer_Request", "getTickets", nil, &r.Options, &resp) + return +} + +// no documentation yet +type Account_Note struct { + Session *session.Session + Options sl.Options +} + +// GetAccountNoteService returns an instance of the Account_Note SoftLayer service +func GetAccountNoteService(sess *session.Session) Account_Note { + return Account_Note{Session: sess} +} + +func (r Account_Note) Id(id int) Account_Note { + r.Options.Id = &id + return r +} + +func (r Account_Note) Mask(mask string) Account_Note { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Account_Note) Filter(filter string) Account_Note { + r.Options.Filter = filter + return r +} + +func (r Account_Note) Limit(limit int) Account_Note { + r.Options.Limit = &limit + return r +} + +func (r Account_Note) Offset(offset int) Account_Note { + r.Options.Offset = &offset + return r +} + +// no documentation yet +func (r Account_Note) CreateObject(templateObject *datatypes.Account_Note) (resp datatypes.Account_Note, err error) { + params := []interface{}{ + templateObject, + } + err = r.Session.DoRequest("SoftLayer_Account_Note", "createObject", params, &r.Options, &resp) + return +} + +// no documentation yet +func (r Account_Note) DeleteObject() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Account_Note", "deleteObject", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Account_Note) EditObject(templateObject *datatypes.Account_Note) (resp bool, err error) { + params := []interface{}{ + templateObject, + } + err = r.Session.DoRequest("SoftLayer_Account_Note", "editObject", params, &r.Options, &resp) + return +} + +// Retrieve +func (r Account_Note) GetAccount() (resp datatypes.Account, err error) { + err = r.Session.DoRequest("SoftLayer_Account_Note", "getAccount", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Account_Note) GetCustomer() (resp datatypes.User_Customer, err error) { + err = r.Session.DoRequest("SoftLayer_Account_Note", "getCustomer", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Account_Note) GetNoteHistory() (resp []datatypes.Account_Note_History, err error) { + err = r.Session.DoRequest("SoftLayer_Account_Note", "getNoteHistory", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Account_Note) GetNoteType() (resp datatypes.Account_Note_Type, err error) { + err = r.Session.DoRequest("SoftLayer_Account_Note", "getNoteType", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Account_Note) GetObject() (resp datatypes.Account_Note, err error) { + err = r.Session.DoRequest("SoftLayer_Account_Note", "getObject", nil, &r.Options, &resp) + return +} + +// no documentation yet +type Account_Note_Type struct { + Session *session.Session + Options sl.Options +} + +// GetAccountNoteTypeService returns an instance of the Account_Note_Type SoftLayer service +func GetAccountNoteTypeService(sess *session.Session) Account_Note_Type { + return Account_Note_Type{Session: sess} +} + +func (r Account_Note_Type) Id(id int) Account_Note_Type { + r.Options.Id = &id + return r +} + +func (r Account_Note_Type) Mask(mask string) Account_Note_Type { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Account_Note_Type) Filter(filter string) Account_Note_Type { + r.Options.Filter = filter + return r +} + +func (r Account_Note_Type) Limit(limit int) Account_Note_Type { + r.Options.Limit = &limit + return r +} + +func (r Account_Note_Type) Offset(offset int) Account_Note_Type { + r.Options.Offset = &offset + return r +} + +// no documentation yet +func (r Account_Note_Type) CreateObject(templateObject *datatypes.Account_Note_Type) (resp datatypes.Account_Note_Type, err error) { + params := []interface{}{ + templateObject, + } + err = r.Session.DoRequest("SoftLayer_Account_Note_Type", "createObject", params, &r.Options, &resp) + return +} + +// no documentation yet +func (r Account_Note_Type) DeleteObject() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Account_Note_Type", "deleteObject", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Account_Note_Type) EditObject(templateObject *datatypes.Account_Note_Type) (resp bool, err error) { + params := []interface{}{ + templateObject, + } + err = r.Session.DoRequest("SoftLayer_Account_Note_Type", "editObject", params, &r.Options, &resp) + return +} + +// no documentation yet +func (r Account_Note_Type) GetAllObjects() (resp []datatypes.Account_Note_Type, err error) { + err = r.Session.DoRequest("SoftLayer_Account_Note_Type", "getAllObjects", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Account_Note_Type) GetObject() (resp datatypes.Account_Note_Type, err error) { + err = r.Session.DoRequest("SoftLayer_Account_Note_Type", "getObject", nil, &r.Options, &resp) + return +} + +// no documentation yet +type Account_Partner_Referral_Prospect struct { + Session *session.Session + Options sl.Options +} + +// GetAccountPartnerReferralProspectService returns an instance of the Account_Partner_Referral_Prospect SoftLayer service +func GetAccountPartnerReferralProspectService(sess *session.Session) Account_Partner_Referral_Prospect { + return Account_Partner_Referral_Prospect{Session: sess} +} + +func (r Account_Partner_Referral_Prospect) Id(id int) Account_Partner_Referral_Prospect { + r.Options.Id = &id + return r +} + +func (r Account_Partner_Referral_Prospect) Mask(mask string) Account_Partner_Referral_Prospect { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Account_Partner_Referral_Prospect) Filter(filter string) Account_Partner_Referral_Prospect { + r.Options.Filter = filter + return r +} + +func (r Account_Partner_Referral_Prospect) Limit(limit int) Account_Partner_Referral_Prospect { + r.Options.Limit = &limit + return r +} + +func (r Account_Partner_Referral_Prospect) Offset(offset int) Account_Partner_Referral_Prospect { + r.Options.Offset = &offset + return r +} + +// Create a new Referral Partner Prospect +func (r Account_Partner_Referral_Prospect) CreateProspect(templateObject *datatypes.Container_Referral_Partner_Prospect, commit *bool) (resp datatypes.Account_Partner_Referral_Prospect, err error) { + params := []interface{}{ + templateObject, + commit, + } + err = r.Session.DoRequest("SoftLayer_Account_Partner_Referral_Prospect", "createProspect", params, &r.Options, &resp) + return +} + +// no documentation yet +func (r Account_Partner_Referral_Prospect) GetObject() (resp datatypes.Account_Partner_Referral_Prospect, err error) { + err = r.Session.DoRequest("SoftLayer_Account_Partner_Referral_Prospect", "getObject", nil, &r.Options, &resp) + return +} + +// Retrieves Questions for a Referral Partner Survey +func (r Account_Partner_Referral_Prospect) GetSurveyQuestions() (resp []datatypes.Survey_Question, err error) { + err = r.Session.DoRequest("SoftLayer_Account_Partner_Referral_Prospect", "getSurveyQuestions", nil, &r.Options, &resp) + return +} + +// The SoftLayer_Account_Password contains username, passwords and notes for services that may require for external applications such the Webcc interface for the EVault Storage service. +type Account_Password struct { + Session *session.Session + Options sl.Options +} + +// GetAccountPasswordService returns an instance of the Account_Password SoftLayer service +func GetAccountPasswordService(sess *session.Session) Account_Password { + return Account_Password{Session: sess} +} + +func (r Account_Password) Id(id int) Account_Password { + r.Options.Id = &id + return r +} + +func (r Account_Password) Mask(mask string) Account_Password { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Account_Password) Filter(filter string) Account_Password { + r.Options.Filter = filter + return r +} + +func (r Account_Password) Limit(limit int) Account_Password { + r.Options.Limit = &limit + return r +} + +func (r Account_Password) Offset(offset int) Account_Password { + r.Options.Offset = &offset + return r +} + +// The password and/or notes may be modified. Modifying the EVault passwords here will also update the password the Webcc interface will use. +func (r Account_Password) EditObject(templateObject *datatypes.Account_Password) (resp bool, err error) { + params := []interface{}{ + templateObject, + } + err = r.Session.DoRequest("SoftLayer_Account_Password", "editObject", params, &r.Options, &resp) + return +} + +// Retrieve +func (r Account_Password) GetAccount() (resp datatypes.Account, err error) { + err = r.Session.DoRequest("SoftLayer_Account_Password", "getAccount", nil, &r.Options, &resp) + return +} + +// getObject retrieves the SoftLayer_Account_Password object whose ID corresponds to the ID number of the init parameter passed to the SoftLayer_Account_Password service. +func (r Account_Password) GetObject() (resp datatypes.Account_Password, err error) { + err = r.Session.DoRequest("SoftLayer_Account_Password", "getObject", nil, &r.Options, &resp) + return +} + +// Retrieve The service that an account/password combination is tied to. +func (r Account_Password) GetType() (resp datatypes.Account_Password_Type, err error) { + err = r.Session.DoRequest("SoftLayer_Account_Password", "getType", nil, &r.Options, &resp) + return +} + +// +// +// +// +// +type Account_Regional_Registry_Detail struct { + Session *session.Session + Options sl.Options +} + +// GetAccountRegionalRegistryDetailService returns an instance of the Account_Regional_Registry_Detail SoftLayer service +func GetAccountRegionalRegistryDetailService(sess *session.Session) Account_Regional_Registry_Detail { + return Account_Regional_Registry_Detail{Session: sess} +} + +func (r Account_Regional_Registry_Detail) Id(id int) Account_Regional_Registry_Detail { + r.Options.Id = &id + return r +} + +func (r Account_Regional_Registry_Detail) Mask(mask string) Account_Regional_Registry_Detail { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Account_Regional_Registry_Detail) Filter(filter string) Account_Regional_Registry_Detail { + r.Options.Filter = filter + return r +} + +func (r Account_Regional_Registry_Detail) Limit(limit int) Account_Regional_Registry_Detail { + r.Options.Limit = &limit + return r +} + +func (r Account_Regional_Registry_Detail) Offset(offset int) Account_Regional_Registry_Detail { + r.Options.Offset = &offset + return r +} + +// This method will create a new SoftLayer_Account_Regional_Registry_Detail object. +// +// Input - [[SoftLayer_Account_Regional_Registry_Detail (type)|SoftLayer_Account_Regional_Registry_Detail]]
    • detailTypeId
      The [[SoftLayer_Account_Regional_Registry_Detail_Type|type id]] of this detail object
      • Required
      • Type - integer
    • regionalInternetRegistryHandleId
      The id of the [[SoftLayer_Account_Rwhois_Handle|RWhois handle]] object. This is only to be used for detailed registrations, where a subnet is registered to an organization. The associated handle will be required to be a valid organization object id at the relevant registry. In this case, the detail object will only be valid for the registry the organization belongs to.
      • Optional
      • Type - integer
    +func (r Account_Regional_Registry_Detail) CreateObject(templateObject *datatypes.Account_Regional_Registry_Detail) (resp datatypes.Account_Regional_Registry_Detail, err error) { + params := []interface{}{ + templateObject, + } + err = r.Session.DoRequest("SoftLayer_Account_Regional_Registry_Detail", "createObject", params, &r.Options, &resp) + return +} + +// This method will delete an existing SoftLayer_Account_Regional_Registry_Detail object. +func (r Account_Regional_Registry_Detail) DeleteObject() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Account_Regional_Registry_Detail", "deleteObject", nil, &r.Options, &resp) + return +} + +// This method will edit an existing SoftLayer_Account_Regional_Registry_Detail object. For more detail, see [[SoftLayer_Account_Regional_Registry_Detail::createObject|createObject]]. +func (r Account_Regional_Registry_Detail) EditObject(templateObject *datatypes.Account_Regional_Registry_Detail) (resp bool, err error) { + params := []interface{}{ + templateObject, + } + err = r.Session.DoRequest("SoftLayer_Account_Regional_Registry_Detail", "editObject", params, &r.Options, &resp) + return +} + +// Retrieve The account that this detail object belongs to. +func (r Account_Regional_Registry_Detail) GetAccount() (resp datatypes.Account, err error) { + err = r.Session.DoRequest("SoftLayer_Account_Regional_Registry_Detail", "getAccount", nil, &r.Options, &resp) + return +} + +// Retrieve The associated type of this detail object. +func (r Account_Regional_Registry_Detail) GetDetailType() (resp datatypes.Account_Regional_Registry_Detail_Type, err error) { + err = r.Session.DoRequest("SoftLayer_Account_Regional_Registry_Detail", "getDetailType", nil, &r.Options, &resp) + return +} + +// Retrieve References to the [[SoftLayer_Network_Subnet_Registration|registration objects]] that consume this detail object. +func (r Account_Regional_Registry_Detail) GetDetails() (resp []datatypes.Network_Subnet_Registration_Details, err error) { + err = r.Session.DoRequest("SoftLayer_Account_Regional_Registry_Detail", "getDetails", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Account_Regional_Registry_Detail) GetObject() (resp datatypes.Account_Regional_Registry_Detail, err error) { + err = r.Session.DoRequest("SoftLayer_Account_Regional_Registry_Detail", "getObject", nil, &r.Options, &resp) + return +} + +// Retrieve The individual properties that define this detail object's values. +func (r Account_Regional_Registry_Detail) GetProperties() (resp []datatypes.Account_Regional_Registry_Detail_Property, err error) { + err = r.Session.DoRequest("SoftLayer_Account_Regional_Registry_Detail", "getProperties", nil, &r.Options, &resp) + return +} + +// Retrieve The associated RWhois handle of this detail object. Used only when detailed reassignments are necessary. +func (r Account_Regional_Registry_Detail) GetRegionalInternetRegistryHandle() (resp datatypes.Account_Rwhois_Handle, err error) { + err = r.Session.DoRequest("SoftLayer_Account_Regional_Registry_Detail", "getRegionalInternetRegistryHandle", nil, &r.Options, &resp) + return +} + +// This method will create a bulk transaction to update any registrations that reference this detail object. It should only be called from a child class such as [[SoftLayer_Account_Regional_Registry_Detail_Person]] or [[SoftLayer_Account_Regional_Registry_Detail_Network]]. The registrations should be in the Open or Registration_Complete status. +func (r Account_Regional_Registry_Detail) UpdateReferencedRegistrations() (resp datatypes.Container_Network_Subnet_Registration_TransactionDetails, err error) { + err = r.Session.DoRequest("SoftLayer_Account_Regional_Registry_Detail", "updateReferencedRegistrations", nil, &r.Options, &resp) + return +} + +// Subnet registration properties are used to define various attributes of the [[SoftLayer_Account_Regional_Registry_Detail|detail objects]]. These properties are defined by the [[SoftLayer_Account_Regional_Registry_Detail_Property_Type]] objects, which describe the available value formats. +type Account_Regional_Registry_Detail_Property struct { + Session *session.Session + Options sl.Options +} + +// GetAccountRegionalRegistryDetailPropertyService returns an instance of the Account_Regional_Registry_Detail_Property SoftLayer service +func GetAccountRegionalRegistryDetailPropertyService(sess *session.Session) Account_Regional_Registry_Detail_Property { + return Account_Regional_Registry_Detail_Property{Session: sess} +} + +func (r Account_Regional_Registry_Detail_Property) Id(id int) Account_Regional_Registry_Detail_Property { + r.Options.Id = &id + return r +} + +func (r Account_Regional_Registry_Detail_Property) Mask(mask string) Account_Regional_Registry_Detail_Property { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Account_Regional_Registry_Detail_Property) Filter(filter string) Account_Regional_Registry_Detail_Property { + r.Options.Filter = filter + return r +} + +func (r Account_Regional_Registry_Detail_Property) Limit(limit int) Account_Regional_Registry_Detail_Property { + r.Options.Limit = &limit + return r +} + +func (r Account_Regional_Registry_Detail_Property) Offset(offset int) Account_Regional_Registry_Detail_Property { + r.Options.Offset = &offset + return r +} + +// This method will create a new SoftLayer_Account_Regional_Registry_Detail_Property object. +// +// Input - [[SoftLayer_Account_Regional_Registry_Detail_Property (type)|SoftLayer_Account_Regional_Registry_Detail_Property]]
    • registrationDetailId
      The numeric ID of the [[SoftLayer_Account_Regional_Registry_Detail|detail object]] this property belongs to
      • Required
      • Type - integer
    • propertyTypeId
      The numeric ID of the associated [[SoftLayer_Account_Regional_Registry_Detail_Property_Type]] object
      • Required
      • Type - integer
    • sequencePosition
      When more than one property of the same type exists on a detail object, this value determines the position in that collection. This can be thought of more as a sort order.
      • Required
      • Type - integer
    • value
      The actual value of the property.
      • Required
      • Type - string
    +func (r Account_Regional_Registry_Detail_Property) CreateObject(templateObject *datatypes.Account_Regional_Registry_Detail_Property) (resp datatypes.Account_Regional_Registry_Detail_Property, err error) { + params := []interface{}{ + templateObject, + } + err = r.Session.DoRequest("SoftLayer_Account_Regional_Registry_Detail_Property", "createObject", params, &r.Options, &resp) + return +} + +// Edit multiple [[SoftLayer_Account_Regional_Registry_Detail_Property]] objects. +func (r Account_Regional_Registry_Detail_Property) CreateObjects(templateObjects []datatypes.Account_Regional_Registry_Detail_Property) (resp []datatypes.Account_Regional_Registry_Detail_Property, err error) { + params := []interface{}{ + templateObjects, + } + err = r.Session.DoRequest("SoftLayer_Account_Regional_Registry_Detail_Property", "createObjects", params, &r.Options, &resp) + return +} + +// This method will delete an existing SoftLayer_Account_Regional_Registry_Detail_Property object. +func (r Account_Regional_Registry_Detail_Property) DeleteObject() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Account_Regional_Registry_Detail_Property", "deleteObject", nil, &r.Options, &resp) + return +} + +// This method will edit an existing SoftLayer_Account_Regional_Registry_Detail_Property object. For more detail, see [[SoftLayer_Account_Regional_Registry_Detail_Property::createObject|createObject]]. +func (r Account_Regional_Registry_Detail_Property) EditObject(templateObject *datatypes.Account_Regional_Registry_Detail_Property) (resp bool, err error) { + params := []interface{}{ + templateObject, + } + err = r.Session.DoRequest("SoftLayer_Account_Regional_Registry_Detail_Property", "editObject", params, &r.Options, &resp) + return +} + +// Edit multiple [[SoftLayer_Account_Regional_Registry_Detail_Property]] objects. +func (r Account_Regional_Registry_Detail_Property) EditObjects(templateObjects []datatypes.Account_Regional_Registry_Detail_Property) (resp bool, err error) { + params := []interface{}{ + templateObjects, + } + err = r.Session.DoRequest("SoftLayer_Account_Regional_Registry_Detail_Property", "editObjects", params, &r.Options, &resp) + return +} + +// Retrieve The [[SoftLayer_Account_Regional_Registry_Detail]] object this property belongs to +func (r Account_Regional_Registry_Detail_Property) GetDetail() (resp datatypes.Account_Regional_Registry_Detail, err error) { + err = r.Session.DoRequest("SoftLayer_Account_Regional_Registry_Detail_Property", "getDetail", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Account_Regional_Registry_Detail_Property) GetObject() (resp datatypes.Account_Regional_Registry_Detail_Property, err error) { + err = r.Session.DoRequest("SoftLayer_Account_Regional_Registry_Detail_Property", "getObject", nil, &r.Options, &resp) + return +} + +// Retrieve The [[SoftLayer_Account_Regional_Registry_Detail_Property_Type]] object this property belongs to +func (r Account_Regional_Registry_Detail_Property) GetPropertyType() (resp datatypes.Account_Regional_Registry_Detail_Property_Type, err error) { + err = r.Session.DoRequest("SoftLayer_Account_Regional_Registry_Detail_Property", "getPropertyType", nil, &r.Options, &resp) + return +} + +// Subnet Registration Detail Property Type objects describe the nature of a [[SoftLayer_Account_Regional_Registry_Detail_Property]] object. These types use [http://php.net/pcre.pattern.php Perl-Compatible Regular Expressions] to validate the value of a property object. +type Account_Regional_Registry_Detail_Property_Type struct { + Session *session.Session + Options sl.Options +} + +// GetAccountRegionalRegistryDetailPropertyTypeService returns an instance of the Account_Regional_Registry_Detail_Property_Type SoftLayer service +func GetAccountRegionalRegistryDetailPropertyTypeService(sess *session.Session) Account_Regional_Registry_Detail_Property_Type { + return Account_Regional_Registry_Detail_Property_Type{Session: sess} +} + +func (r Account_Regional_Registry_Detail_Property_Type) Id(id int) Account_Regional_Registry_Detail_Property_Type { + r.Options.Id = &id + return r +} + +func (r Account_Regional_Registry_Detail_Property_Type) Mask(mask string) Account_Regional_Registry_Detail_Property_Type { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Account_Regional_Registry_Detail_Property_Type) Filter(filter string) Account_Regional_Registry_Detail_Property_Type { + r.Options.Filter = filter + return r +} + +func (r Account_Regional_Registry_Detail_Property_Type) Limit(limit int) Account_Regional_Registry_Detail_Property_Type { + r.Options.Limit = &limit + return r +} + +func (r Account_Regional_Registry_Detail_Property_Type) Offset(offset int) Account_Regional_Registry_Detail_Property_Type { + r.Options.Offset = &offset + return r +} + +// no documentation yet +func (r Account_Regional_Registry_Detail_Property_Type) GetAllObjects() (resp []datatypes.Account_Regional_Registry_Detail_Property_Type, err error) { + err = r.Session.DoRequest("SoftLayer_Account_Regional_Registry_Detail_Property_Type", "getAllObjects", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Account_Regional_Registry_Detail_Property_Type) GetObject() (resp datatypes.Account_Regional_Registry_Detail_Property_Type, err error) { + err = r.Session.DoRequest("SoftLayer_Account_Regional_Registry_Detail_Property_Type", "getObject", nil, &r.Options, &resp) + return +} + +// Subnet Registration Detail Type objects describe the nature of a [[SoftLayer_Account_Regional_Registry_Detail]] object. +// +// The standard values for these objects are as follows:
    • NETWORK - The detail object represents the information for a [[SoftLayer_Network_Subnet|subnet]]
    • NETWORK6 - The detail object represents the information for an [[SoftLayer_Network_Subnet_Version6|IPv6 subnet]]
    • PERSON - The detail object represents the information for a customer with the RIR
    +type Account_Regional_Registry_Detail_Type struct { + Session *session.Session + Options sl.Options +} + +// GetAccountRegionalRegistryDetailTypeService returns an instance of the Account_Regional_Registry_Detail_Type SoftLayer service +func GetAccountRegionalRegistryDetailTypeService(sess *session.Session) Account_Regional_Registry_Detail_Type { + return Account_Regional_Registry_Detail_Type{Session: sess} +} + +func (r Account_Regional_Registry_Detail_Type) Id(id int) Account_Regional_Registry_Detail_Type { + r.Options.Id = &id + return r +} + +func (r Account_Regional_Registry_Detail_Type) Mask(mask string) Account_Regional_Registry_Detail_Type { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Account_Regional_Registry_Detail_Type) Filter(filter string) Account_Regional_Registry_Detail_Type { + r.Options.Filter = filter + return r +} + +func (r Account_Regional_Registry_Detail_Type) Limit(limit int) Account_Regional_Registry_Detail_Type { + r.Options.Limit = &limit + return r +} + +func (r Account_Regional_Registry_Detail_Type) Offset(offset int) Account_Regional_Registry_Detail_Type { + r.Options.Offset = &offset + return r +} + +// no documentation yet +func (r Account_Regional_Registry_Detail_Type) GetAllObjects() (resp []datatypes.Account_Regional_Registry_Detail_Type, err error) { + err = r.Session.DoRequest("SoftLayer_Account_Regional_Registry_Detail_Type", "getAllObjects", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Account_Regional_Registry_Detail_Type) GetObject() (resp datatypes.Account_Regional_Registry_Detail_Type, err error) { + err = r.Session.DoRequest("SoftLayer_Account_Regional_Registry_Detail_Type", "getObject", nil, &r.Options, &resp) + return +} + +// no documentation yet +type Account_Reports_Request struct { + Session *session.Session + Options sl.Options +} + +// GetAccountReportsRequestService returns an instance of the Account_Reports_Request SoftLayer service +func GetAccountReportsRequestService(sess *session.Session) Account_Reports_Request { + return Account_Reports_Request{Session: sess} +} + +func (r Account_Reports_Request) Id(id int) Account_Reports_Request { + r.Options.Id = &id + return r +} + +func (r Account_Reports_Request) Mask(mask string) Account_Reports_Request { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Account_Reports_Request) Filter(filter string) Account_Reports_Request { + r.Options.Filter = filter + return r +} + +func (r Account_Reports_Request) Limit(limit int) Account_Reports_Request { + r.Options.Limit = &limit + return r +} + +func (r Account_Reports_Request) Offset(offset int) Account_Reports_Request { + r.Options.Offset = &offset + return r +} + +// no documentation yet +func (r Account_Reports_Request) CreateRequest(contact *datatypes.Account_Contact, reason *string, reportType *string) (resp datatypes.Account_Reports_Request, err error) { + params := []interface{}{ + contact, + reason, + reportType, + } + err = r.Session.DoRequest("SoftLayer_Account_Reports_Request", "createRequest", params, &r.Options, &resp) + return +} + +// Retrieve +func (r Account_Reports_Request) GetAccount() (resp datatypes.Account, err error) { + err = r.Session.DoRequest("SoftLayer_Account_Reports_Request", "getAccount", nil, &r.Options, &resp) + return +} + +// Retrieve A request's corresponding external contact, if one exists. +func (r Account_Reports_Request) GetAccountContact() (resp datatypes.Account_Contact, err error) { + err = r.Session.DoRequest("SoftLayer_Account_Reports_Request", "getAccountContact", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Account_Reports_Request) GetAllObjects() (resp datatypes.Account_Reports_Request, err error) { + err = r.Session.DoRequest("SoftLayer_Account_Reports_Request", "getAllObjects", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Account_Reports_Request) GetObject() (resp datatypes.Account_Reports_Request, err error) { + err = r.Session.DoRequest("SoftLayer_Account_Reports_Request", "getObject", nil, &r.Options, &resp) + return +} + +// Retrieve Type of the report customer is requesting for. +func (r Account_Reports_Request) GetReportType() (resp datatypes.Compliance_Report_Type, err error) { + err = r.Session.DoRequest("SoftLayer_Account_Reports_Request", "getReportType", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Account_Reports_Request) GetRequestByRequestKey(requestKey *string) (resp datatypes.Account_Reports_Request, err error) { + params := []interface{}{ + requestKey, + } + err = r.Session.DoRequest("SoftLayer_Account_Reports_Request", "getRequestByRequestKey", params, &r.Options, &resp) + return +} + +// Retrieve +func (r Account_Reports_Request) GetTicket() (resp datatypes.Ticket, err error) { + err = r.Session.DoRequest("SoftLayer_Account_Reports_Request", "getTicket", nil, &r.Options, &resp) + return +} + +// Retrieve The customer user that initiated a report request. +func (r Account_Reports_Request) GetUser() (resp datatypes.User_Customer, err error) { + err = r.Session.DoRequest("SoftLayer_Account_Reports_Request", "getUser", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Account_Reports_Request) SendReportEmail(request *datatypes.Account_Reports_Request) (resp bool, err error) { + params := []interface{}{ + request, + } + err = r.Session.DoRequest("SoftLayer_Account_Reports_Request", "sendReportEmail", params, &r.Options, &resp) + return +} + +// no documentation yet +func (r Account_Reports_Request) UpdateTicketOnDecline(request *datatypes.Account_Reports_Request) (resp bool, err error) { + params := []interface{}{ + request, + } + err = r.Session.DoRequest("SoftLayer_Account_Reports_Request", "updateTicketOnDecline", params, &r.Options, &resp) + return +} + +// The SoftLayer_Account_Shipment data type contains information relating to a shipment. Basic information such as addresses, the shipment courier, and any tracking information for as shipment is accessible with this data type. +type Account_Shipment struct { + Session *session.Session + Options sl.Options +} + +// GetAccountShipmentService returns an instance of the Account_Shipment SoftLayer service +func GetAccountShipmentService(sess *session.Session) Account_Shipment { + return Account_Shipment{Session: sess} +} + +func (r Account_Shipment) Id(id int) Account_Shipment { + r.Options.Id = &id + return r +} + +func (r Account_Shipment) Mask(mask string) Account_Shipment { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Account_Shipment) Filter(filter string) Account_Shipment { + r.Options.Filter = filter + return r +} + +func (r Account_Shipment) Limit(limit int) Account_Shipment { + r.Options.Limit = &limit + return r +} + +func (r Account_Shipment) Offset(offset int) Account_Shipment { + r.Options.Offset = &offset + return r +} + +// Edit the properties of a shipment record by passing in a modified instance of a SoftLayer_Account_Shipment object. +func (r Account_Shipment) EditObject(templateObject *datatypes.Account_Shipment) (resp bool, err error) { + params := []interface{}{ + templateObject, + } + err = r.Session.DoRequest("SoftLayer_Account_Shipment", "editObject", params, &r.Options, &resp) + return +} + +// Retrieve The account to which the shipment belongs. +func (r Account_Shipment) GetAccount() (resp datatypes.Account, err error) { + err = r.Session.DoRequest("SoftLayer_Account_Shipment", "getAccount", nil, &r.Options, &resp) + return +} + +// Retrieve a list of available shipping couriers. +func (r Account_Shipment) GetAllCouriers() (resp []datatypes.Auxiliary_Shipping_Courier, err error) { + err = r.Session.DoRequest("SoftLayer_Account_Shipment", "getAllCouriers", nil, &r.Options, &resp) + return +} + +// Retrieve a list of available shipping couriers. +func (r Account_Shipment) GetAllCouriersByType(courierTypeKeyName *string) (resp []datatypes.Auxiliary_Shipping_Courier, err error) { + params := []interface{}{ + courierTypeKeyName, + } + err = r.Session.DoRequest("SoftLayer_Account_Shipment", "getAllCouriersByType", params, &r.Options, &resp) + return +} + +// Retrieve a a list of shipment statuses. +func (r Account_Shipment) GetAllShipmentStatuses() (resp []datatypes.Account_Shipment_Status, err error) { + err = r.Session.DoRequest("SoftLayer_Account_Shipment", "getAllShipmentStatuses", nil, &r.Options, &resp) + return +} + +// Retrieve a a list of shipment types. +func (r Account_Shipment) GetAllShipmentTypes() (resp []datatypes.Account_Shipment_Type, err error) { + err = r.Session.DoRequest("SoftLayer_Account_Shipment", "getAllShipmentTypes", nil, &r.Options, &resp) + return +} + +// Retrieve The courier handling the shipment. +func (r Account_Shipment) GetCourier() (resp datatypes.Auxiliary_Shipping_Courier, err error) { + err = r.Session.DoRequest("SoftLayer_Account_Shipment", "getCourier", nil, &r.Options, &resp) + return +} + +// Retrieve The employee who created the shipment. +func (r Account_Shipment) GetCreateEmployee() (resp datatypes.User_Employee, err error) { + err = r.Session.DoRequest("SoftLayer_Account_Shipment", "getCreateEmployee", nil, &r.Options, &resp) + return +} + +// Retrieve The customer user who created the shipment. +func (r Account_Shipment) GetCreateUser() (resp datatypes.User_Customer, err error) { + err = r.Session.DoRequest("SoftLayer_Account_Shipment", "getCreateUser", nil, &r.Options, &resp) + return +} + +// Retrieve The address at which the shipment is received. +func (r Account_Shipment) GetDestinationAddress() (resp datatypes.Account_Address, err error) { + err = r.Session.DoRequest("SoftLayer_Account_Shipment", "getDestinationAddress", nil, &r.Options, &resp) + return +} + +// Retrieve The employee who last modified the shipment. +func (r Account_Shipment) GetModifyEmployee() (resp datatypes.User_Employee, err error) { + err = r.Session.DoRequest("SoftLayer_Account_Shipment", "getModifyEmployee", nil, &r.Options, &resp) + return +} + +// Retrieve The customer user who last modified the shipment. +func (r Account_Shipment) GetModifyUser() (resp datatypes.User_Customer, err error) { + err = r.Session.DoRequest("SoftLayer_Account_Shipment", "getModifyUser", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Account_Shipment) GetObject() (resp datatypes.Account_Shipment, err error) { + err = r.Session.DoRequest("SoftLayer_Account_Shipment", "getObject", nil, &r.Options, &resp) + return +} + +// Retrieve The address from which the shipment is sent. +func (r Account_Shipment) GetOriginationAddress() (resp datatypes.Account_Address, err error) { + err = r.Session.DoRequest("SoftLayer_Account_Shipment", "getOriginationAddress", nil, &r.Options, &resp) + return +} + +// Retrieve The items in the shipment. +func (r Account_Shipment) GetShipmentItems() (resp []datatypes.Account_Shipment_Item, err error) { + err = r.Session.DoRequest("SoftLayer_Account_Shipment", "getShipmentItems", nil, &r.Options, &resp) + return +} + +// Retrieve The status of the shipment. +func (r Account_Shipment) GetStatus() (resp datatypes.Account_Shipment_Status, err error) { + err = r.Session.DoRequest("SoftLayer_Account_Shipment", "getStatus", nil, &r.Options, &resp) + return +} + +// Retrieve The tracking data for the shipment. +func (r Account_Shipment) GetTrackingData() (resp []datatypes.Account_Shipment_Tracking_Data, err error) { + err = r.Session.DoRequest("SoftLayer_Account_Shipment", "getTrackingData", nil, &r.Options, &resp) + return +} + +// Retrieve The type of shipment (e.g. for Data Transfer Service or Colocation Service). +func (r Account_Shipment) GetType() (resp datatypes.Account_Shipment_Type, err error) { + err = r.Session.DoRequest("SoftLayer_Account_Shipment", "getType", nil, &r.Options, &resp) + return +} + +// The SoftLayer_Account_Shipment_Item data type contains information relating to a shipment's item. Basic information such as addresses, the shipment courier, and any tracking information for as shipment is accessible with this data type. +type Account_Shipment_Item struct { + Session *session.Session + Options sl.Options +} + +// GetAccountShipmentItemService returns an instance of the Account_Shipment_Item SoftLayer service +func GetAccountShipmentItemService(sess *session.Session) Account_Shipment_Item { + return Account_Shipment_Item{Session: sess} +} + +func (r Account_Shipment_Item) Id(id int) Account_Shipment_Item { + r.Options.Id = &id + return r +} + +func (r Account_Shipment_Item) Mask(mask string) Account_Shipment_Item { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Account_Shipment_Item) Filter(filter string) Account_Shipment_Item { + r.Options.Filter = filter + return r +} + +func (r Account_Shipment_Item) Limit(limit int) Account_Shipment_Item { + r.Options.Limit = &limit + return r +} + +func (r Account_Shipment_Item) Offset(offset int) Account_Shipment_Item { + r.Options.Offset = &offset + return r +} + +// Edit the properties of a shipment record by passing in a modified instance of a SoftLayer_Account_Shipment_Item object. +func (r Account_Shipment_Item) EditObject(templateObject *datatypes.Account_Shipment_Item) (resp bool, err error) { + params := []interface{}{ + templateObject, + } + err = r.Session.DoRequest("SoftLayer_Account_Shipment_Item", "editObject", params, &r.Options, &resp) + return +} + +// no documentation yet +func (r Account_Shipment_Item) GetObject() (resp datatypes.Account_Shipment_Item, err error) { + err = r.Session.DoRequest("SoftLayer_Account_Shipment_Item", "getObject", nil, &r.Options, &resp) + return +} + +// Retrieve The shipment to which this item belongs. +func (r Account_Shipment_Item) GetShipment() (resp datatypes.Account_Shipment, err error) { + err = r.Session.DoRequest("SoftLayer_Account_Shipment_Item", "getShipment", nil, &r.Options, &resp) + return +} + +// Retrieve The type of this shipment item. +func (r Account_Shipment_Item) GetShipmentItemType() (resp datatypes.Account_Shipment_Item_Type, err error) { + err = r.Session.DoRequest("SoftLayer_Account_Shipment_Item", "getShipmentItemType", nil, &r.Options, &resp) + return +} + +// no documentation yet +type Account_Shipment_Item_Type struct { + Session *session.Session + Options sl.Options +} + +// GetAccountShipmentItemTypeService returns an instance of the Account_Shipment_Item_Type SoftLayer service +func GetAccountShipmentItemTypeService(sess *session.Session) Account_Shipment_Item_Type { + return Account_Shipment_Item_Type{Session: sess} +} + +func (r Account_Shipment_Item_Type) Id(id int) Account_Shipment_Item_Type { + r.Options.Id = &id + return r +} + +func (r Account_Shipment_Item_Type) Mask(mask string) Account_Shipment_Item_Type { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Account_Shipment_Item_Type) Filter(filter string) Account_Shipment_Item_Type { + r.Options.Filter = filter + return r +} + +func (r Account_Shipment_Item_Type) Limit(limit int) Account_Shipment_Item_Type { + r.Options.Limit = &limit + return r +} + +func (r Account_Shipment_Item_Type) Offset(offset int) Account_Shipment_Item_Type { + r.Options.Offset = &offset + return r +} + +// no documentation yet +func (r Account_Shipment_Item_Type) GetObject() (resp datatypes.Account_Shipment_Item_Type, err error) { + err = r.Session.DoRequest("SoftLayer_Account_Shipment_Item_Type", "getObject", nil, &r.Options, &resp) + return +} + +// no documentation yet +type Account_Shipment_Resource_Type struct { + Session *session.Session + Options sl.Options +} + +// GetAccountShipmentResourceTypeService returns an instance of the Account_Shipment_Resource_Type SoftLayer service +func GetAccountShipmentResourceTypeService(sess *session.Session) Account_Shipment_Resource_Type { + return Account_Shipment_Resource_Type{Session: sess} +} + +func (r Account_Shipment_Resource_Type) Id(id int) Account_Shipment_Resource_Type { + r.Options.Id = &id + return r +} + +func (r Account_Shipment_Resource_Type) Mask(mask string) Account_Shipment_Resource_Type { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Account_Shipment_Resource_Type) Filter(filter string) Account_Shipment_Resource_Type { + r.Options.Filter = filter + return r +} + +func (r Account_Shipment_Resource_Type) Limit(limit int) Account_Shipment_Resource_Type { + r.Options.Limit = &limit + return r +} + +func (r Account_Shipment_Resource_Type) Offset(offset int) Account_Shipment_Resource_Type { + r.Options.Offset = &offset + return r +} + +// no documentation yet +func (r Account_Shipment_Resource_Type) GetObject() (resp datatypes.Account_Shipment_Resource_Type, err error) { + err = r.Session.DoRequest("SoftLayer_Account_Shipment_Resource_Type", "getObject", nil, &r.Options, &resp) + return +} + +// no documentation yet +type Account_Shipment_Status struct { + Session *session.Session + Options sl.Options +} + +// GetAccountShipmentStatusService returns an instance of the Account_Shipment_Status SoftLayer service +func GetAccountShipmentStatusService(sess *session.Session) Account_Shipment_Status { + return Account_Shipment_Status{Session: sess} +} + +func (r Account_Shipment_Status) Id(id int) Account_Shipment_Status { + r.Options.Id = &id + return r +} + +func (r Account_Shipment_Status) Mask(mask string) Account_Shipment_Status { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Account_Shipment_Status) Filter(filter string) Account_Shipment_Status { + r.Options.Filter = filter + return r +} + +func (r Account_Shipment_Status) Limit(limit int) Account_Shipment_Status { + r.Options.Limit = &limit + return r +} + +func (r Account_Shipment_Status) Offset(offset int) Account_Shipment_Status { + r.Options.Offset = &offset + return r +} + +// no documentation yet +func (r Account_Shipment_Status) GetObject() (resp datatypes.Account_Shipment_Status, err error) { + err = r.Session.DoRequest("SoftLayer_Account_Shipment_Status", "getObject", nil, &r.Options, &resp) + return +} + +// The SoftLayer_Account_Shipment_Tracking_Data data type contains information on a single piece of tracking information pertaining to a shipment. This tracking information tracking numbers by which the shipment may be tracked through the shipping courier. +type Account_Shipment_Tracking_Data struct { + Session *session.Session + Options sl.Options +} + +// GetAccountShipmentTrackingDataService returns an instance of the Account_Shipment_Tracking_Data SoftLayer service +func GetAccountShipmentTrackingDataService(sess *session.Session) Account_Shipment_Tracking_Data { + return Account_Shipment_Tracking_Data{Session: sess} +} + +func (r Account_Shipment_Tracking_Data) Id(id int) Account_Shipment_Tracking_Data { + r.Options.Id = &id + return r +} + +func (r Account_Shipment_Tracking_Data) Mask(mask string) Account_Shipment_Tracking_Data { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Account_Shipment_Tracking_Data) Filter(filter string) Account_Shipment_Tracking_Data { + r.Options.Filter = filter + return r +} + +func (r Account_Shipment_Tracking_Data) Limit(limit int) Account_Shipment_Tracking_Data { + r.Options.Limit = &limit + return r +} + +func (r Account_Shipment_Tracking_Data) Offset(offset int) Account_Shipment_Tracking_Data { + r.Options.Offset = &offset + return r +} + +// Create a new shipment tracking data. The ''shipmentId'', ''sequence'', and ''trackingData'' properties in the templateObject parameter are required parameters to create a tracking data record. +func (r Account_Shipment_Tracking_Data) CreateObject(templateObject *datatypes.Account_Shipment_Tracking_Data) (resp datatypes.Account_Shipment_Tracking_Data, err error) { + params := []interface{}{ + templateObject, + } + err = r.Session.DoRequest("SoftLayer_Account_Shipment_Tracking_Data", "createObject", params, &r.Options, &resp) + return +} + +// Create a new shipment tracking data. The ''shipmentId'', ''sequence'', and ''trackingData'' properties of each templateObject in the templateObjects array are required parameters to create a tracking data record. +func (r Account_Shipment_Tracking_Data) CreateObjects(templateObjects []datatypes.Account_Shipment_Tracking_Data) (resp []datatypes.Account_Shipment_Tracking_Data, err error) { + params := []interface{}{ + templateObjects, + } + err = r.Session.DoRequest("SoftLayer_Account_Shipment_Tracking_Data", "createObjects", params, &r.Options, &resp) + return +} + +// deleteObject permanently removes a shipment tracking datum (number) +func (r Account_Shipment_Tracking_Data) DeleteObject() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Account_Shipment_Tracking_Data", "deleteObject", nil, &r.Options, &resp) + return +} + +// Edit the properties of a tracking data record by passing in a modified instance of a SoftLayer_Account_Shipment_Tracking_Data object. +func (r Account_Shipment_Tracking_Data) EditObject(templateObject *datatypes.Account_Shipment_Tracking_Data) (resp bool, err error) { + params := []interface{}{ + templateObject, + } + err = r.Session.DoRequest("SoftLayer_Account_Shipment_Tracking_Data", "editObject", params, &r.Options, &resp) + return +} + +// Retrieve The employee who created the tracking datum. +func (r Account_Shipment_Tracking_Data) GetCreateEmployee() (resp datatypes.User_Employee, err error) { + err = r.Session.DoRequest("SoftLayer_Account_Shipment_Tracking_Data", "getCreateEmployee", nil, &r.Options, &resp) + return +} + +// Retrieve The customer user who created the tracking datum. +func (r Account_Shipment_Tracking_Data) GetCreateUser() (resp datatypes.User_Customer, err error) { + err = r.Session.DoRequest("SoftLayer_Account_Shipment_Tracking_Data", "getCreateUser", nil, &r.Options, &resp) + return +} + +// Retrieve The employee who last modified the tracking datum. +func (r Account_Shipment_Tracking_Data) GetModifyEmployee() (resp datatypes.User_Employee, err error) { + err = r.Session.DoRequest("SoftLayer_Account_Shipment_Tracking_Data", "getModifyEmployee", nil, &r.Options, &resp) + return +} + +// Retrieve The customer user who last modified the tracking datum. +func (r Account_Shipment_Tracking_Data) GetModifyUser() (resp datatypes.User_Customer, err error) { + err = r.Session.DoRequest("SoftLayer_Account_Shipment_Tracking_Data", "getModifyUser", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Account_Shipment_Tracking_Data) GetObject() (resp datatypes.Account_Shipment_Tracking_Data, err error) { + err = r.Session.DoRequest("SoftLayer_Account_Shipment_Tracking_Data", "getObject", nil, &r.Options, &resp) + return +} + +// Retrieve The shipment of the tracking datum. +func (r Account_Shipment_Tracking_Data) GetShipment() (resp datatypes.Account_Shipment, err error) { + err = r.Session.DoRequest("SoftLayer_Account_Shipment_Tracking_Data", "getShipment", nil, &r.Options, &resp) + return +} + +// no documentation yet +type Account_Shipment_Type struct { + Session *session.Session + Options sl.Options +} + +// GetAccountShipmentTypeService returns an instance of the Account_Shipment_Type SoftLayer service +func GetAccountShipmentTypeService(sess *session.Session) Account_Shipment_Type { + return Account_Shipment_Type{Session: sess} +} + +func (r Account_Shipment_Type) Id(id int) Account_Shipment_Type { + r.Options.Id = &id + return r +} + +func (r Account_Shipment_Type) Mask(mask string) Account_Shipment_Type { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Account_Shipment_Type) Filter(filter string) Account_Shipment_Type { + r.Options.Filter = filter + return r +} + +func (r Account_Shipment_Type) Limit(limit int) Account_Shipment_Type { + r.Options.Limit = &limit + return r +} + +func (r Account_Shipment_Type) Offset(offset int) Account_Shipment_Type { + r.Options.Offset = &offset + return r +} + +// no documentation yet +func (r Account_Shipment_Type) GetObject() (resp datatypes.Account_Shipment_Type, err error) { + err = r.Session.DoRequest("SoftLayer_Account_Shipment_Type", "getObject", nil, &r.Options, &resp) + return +} diff --git a/vendor/github.com/softlayer/softlayer-go/services/auxiliary.go b/vendor/github.com/softlayer/softlayer-go/services/auxiliary.go new file mode 100644 index 000000000..59c183e90 --- /dev/null +++ b/vendor/github.com/softlayer/softlayer-go/services/auxiliary.go @@ -0,0 +1,729 @@ +/** + * Copyright 2016 IBM Corp. + * + * 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. + */ + +/** + * AUTOMATICALLY GENERATED CODE - DO NOT MODIFY + */ + +package services + +import ( + "fmt" + "strings" + + "github.com/softlayer/softlayer-go/datatypes" + "github.com/softlayer/softlayer-go/session" + "github.com/softlayer/softlayer-go/sl" +) + +// no documentation yet +type Auxiliary_Marketing_Event struct { + Session *session.Session + Options sl.Options +} + +// GetAuxiliaryMarketingEventService returns an instance of the Auxiliary_Marketing_Event SoftLayer service +func GetAuxiliaryMarketingEventService(sess *session.Session) Auxiliary_Marketing_Event { + return Auxiliary_Marketing_Event{Session: sess} +} + +func (r Auxiliary_Marketing_Event) Id(id int) Auxiliary_Marketing_Event { + r.Options.Id = &id + return r +} + +func (r Auxiliary_Marketing_Event) Mask(mask string) Auxiliary_Marketing_Event { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Auxiliary_Marketing_Event) Filter(filter string) Auxiliary_Marketing_Event { + r.Options.Filter = filter + return r +} + +func (r Auxiliary_Marketing_Event) Limit(limit int) Auxiliary_Marketing_Event { + r.Options.Limit = &limit + return r +} + +func (r Auxiliary_Marketing_Event) Offset(offset int) Auxiliary_Marketing_Event { + r.Options.Offset = &offset + return r +} + +// This method will return a collection of SoftLayer_Auxiliary_Marketing_Event objects ordered in ascending order by start date. +func (r Auxiliary_Marketing_Event) GetMarketingEvents() (resp []datatypes.Auxiliary_Marketing_Event, err error) { + err = r.Session.DoRequest("SoftLayer_Auxiliary_Marketing_Event", "getMarketingEvents", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Auxiliary_Marketing_Event) GetObject() (resp datatypes.Auxiliary_Marketing_Event, err error) { + err = r.Session.DoRequest("SoftLayer_Auxiliary_Marketing_Event", "getObject", nil, &r.Options, &resp) + return +} + +// no documentation yet +type Auxiliary_Network_Status struct { + Session *session.Session + Options sl.Options +} + +// GetAuxiliaryNetworkStatusService returns an instance of the Auxiliary_Network_Status SoftLayer service +func GetAuxiliaryNetworkStatusService(sess *session.Session) Auxiliary_Network_Status { + return Auxiliary_Network_Status{Session: sess} +} + +func (r Auxiliary_Network_Status) Id(id int) Auxiliary_Network_Status { + r.Options.Id = &id + return r +} + +func (r Auxiliary_Network_Status) Mask(mask string) Auxiliary_Network_Status { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Auxiliary_Network_Status) Filter(filter string) Auxiliary_Network_Status { + r.Options.Filter = filter + return r +} + +func (r Auxiliary_Network_Status) Limit(limit int) Auxiliary_Network_Status { + r.Options.Limit = &limit + return r +} + +func (r Auxiliary_Network_Status) Offset(offset int) Auxiliary_Network_Status { + r.Options.Offset = &offset + return r +} + +// Return the current network status of and latency information for a given target from numerous points around the world. Valid Targets: +// * ALL +// * NETWORK_DALLAS +// * NETWORK_SEATTLE +// * NETWORK_PUBLIC +// * NETWORK_PUBLIC_DALLAS +// * NETWORK_PUBLIC_SEATTLE +// * NETWORK_PUBLIC_WDC +// * NETWORK_PRIVATE +// * NETWORK_PRIVATE_DALLAS +// * NETWORK_PRIVATE_SEATTLE +// * NETWORK_PRIVATE_WDC +func (r Auxiliary_Network_Status) GetNetworkStatus(target *string) (resp []datatypes.Container_Auxiliary_Network_Status_Reading, err error) { + params := []interface{}{ + target, + } + err = r.Session.DoRequest("SoftLayer_Auxiliary_Network_Status", "getNetworkStatus", params, &r.Options, &resp) + return +} + +// A SoftLayer_Auxiliary_Notification_Emergency data object represents a notification event being broadcast to the SoftLayer customer base. It is used to provide information regarding outages or current known issues. +type Auxiliary_Notification_Emergency struct { + Session *session.Session + Options sl.Options +} + +// GetAuxiliaryNotificationEmergencyService returns an instance of the Auxiliary_Notification_Emergency SoftLayer service +func GetAuxiliaryNotificationEmergencyService(sess *session.Session) Auxiliary_Notification_Emergency { + return Auxiliary_Notification_Emergency{Session: sess} +} + +func (r Auxiliary_Notification_Emergency) Id(id int) Auxiliary_Notification_Emergency { + r.Options.Id = &id + return r +} + +func (r Auxiliary_Notification_Emergency) Mask(mask string) Auxiliary_Notification_Emergency { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Auxiliary_Notification_Emergency) Filter(filter string) Auxiliary_Notification_Emergency { + r.Options.Filter = filter + return r +} + +func (r Auxiliary_Notification_Emergency) Limit(limit int) Auxiliary_Notification_Emergency { + r.Options.Limit = &limit + return r +} + +func (r Auxiliary_Notification_Emergency) Offset(offset int) Auxiliary_Notification_Emergency { + r.Options.Offset = &offset + return r +} + +// Retrieve an array of SoftLayer_Auxiliary_Notification_Emergency data types, which contain all notification events regardless of status. +func (r Auxiliary_Notification_Emergency) GetAllObjects() (resp []datatypes.Auxiliary_Notification_Emergency, err error) { + err = r.Session.DoRequest("SoftLayer_Auxiliary_Notification_Emergency", "getAllObjects", nil, &r.Options, &resp) + return +} + +// Retrieve an array of SoftLayer_Auxiliary_Notification_Emergency data types, which contain all current notification events. +func (r Auxiliary_Notification_Emergency) GetCurrentNotifications() (resp []datatypes.Auxiliary_Notification_Emergency, err error) { + err = r.Session.DoRequest("SoftLayer_Auxiliary_Notification_Emergency", "getCurrentNotifications", nil, &r.Options, &resp) + return +} + +// getObject retrieves the SoftLayer_Auxiliary_Notification_Emergency object, it can be used to check for current notifications being broadcast by SoftLayer. +func (r Auxiliary_Notification_Emergency) GetObject() (resp datatypes.Auxiliary_Notification_Emergency, err error) { + err = r.Session.DoRequest("SoftLayer_Auxiliary_Notification_Emergency", "getObject", nil, &r.Options, &resp) + return +} + +// Retrieve The signature of the SoftLayer employee department associated with this notification. +func (r Auxiliary_Notification_Emergency) GetSignature() (resp datatypes.Auxiliary_Notification_Emergency_Signature, err error) { + err = r.Session.DoRequest("SoftLayer_Auxiliary_Notification_Emergency", "getSignature", nil, &r.Options, &resp) + return +} + +// Retrieve The status of this notification. +func (r Auxiliary_Notification_Emergency) GetStatus() (resp datatypes.Auxiliary_Notification_Emergency_Status, err error) { + err = r.Session.DoRequest("SoftLayer_Auxiliary_Notification_Emergency", "getStatus", nil, &r.Options, &resp) + return +} + +// no documentation yet +type Auxiliary_Press_Release struct { + Session *session.Session + Options sl.Options +} + +// GetAuxiliaryPressReleaseService returns an instance of the Auxiliary_Press_Release SoftLayer service +func GetAuxiliaryPressReleaseService(sess *session.Session) Auxiliary_Press_Release { + return Auxiliary_Press_Release{Session: sess} +} + +func (r Auxiliary_Press_Release) Id(id int) Auxiliary_Press_Release { + r.Options.Id = &id + return r +} + +func (r Auxiliary_Press_Release) Mask(mask string) Auxiliary_Press_Release { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Auxiliary_Press_Release) Filter(filter string) Auxiliary_Press_Release { + r.Options.Filter = filter + return r +} + +func (r Auxiliary_Press_Release) Limit(limit int) Auxiliary_Press_Release { + r.Options.Limit = &limit + return r +} + +func (r Auxiliary_Press_Release) Offset(offset int) Auxiliary_Press_Release { + r.Options.Offset = &offset + return r +} + +// Retrieve +func (r Auxiliary_Press_Release) GetAbout() (resp []datatypes.Auxiliary_Press_Release_About_Press_Release, err error) { + err = r.Session.DoRequest("SoftLayer_Auxiliary_Press_Release", "getAbout", nil, &r.Options, &resp) + return +} + +// Retrieve an array of SoftLayer_Auxiliary_Press_Release data types, which contain all press releases. +func (r Auxiliary_Press_Release) GetAllObjects() (resp []datatypes.Auxiliary_Press_Release, err error) { + err = r.Session.DoRequest("SoftLayer_Auxiliary_Press_Release", "getAllObjects", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Auxiliary_Press_Release) GetContacts() (resp []datatypes.Auxiliary_Press_Release_Contact_Press_Release, err error) { + err = r.Session.DoRequest("SoftLayer_Auxiliary_Press_Release", "getContacts", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Auxiliary_Press_Release) GetMediaPartners() (resp []datatypes.Auxiliary_Press_Release_Media_Partner_Press_Release, err error) { + err = r.Session.DoRequest("SoftLayer_Auxiliary_Press_Release", "getMediaPartners", nil, &r.Options, &resp) + return +} + +// getObject retrieves the SoftLayer_Auxiliary_Press_Release object whose ID number corresponds to the ID number of the init parameter passed to the SoftLayer_Auxiliary_Press_Release service. +func (r Auxiliary_Press_Release) GetObject() (resp datatypes.Auxiliary_Press_Release, err error) { + err = r.Session.DoRequest("SoftLayer_Auxiliary_Press_Release", "getObject", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Auxiliary_Press_Release) GetPressReleaseContent() (resp datatypes.Auxiliary_Press_Release_Content, err error) { + err = r.Session.DoRequest("SoftLayer_Auxiliary_Press_Release", "getPressReleaseContent", nil, &r.Options, &resp) + return +} + +// Retrieve an array of SoftLayer_Auxiliary_Press_Release data types, which contain all press releases. +func (r Auxiliary_Press_Release) GetRenderedPressRelease() (resp []datatypes.Auxiliary_Press_Release, err error) { + err = r.Session.DoRequest("SoftLayer_Auxiliary_Press_Release", "getRenderedPressRelease", nil, &r.Options, &resp) + return +} + +// Retrieve an array of SoftLayer_Auxiliary_Press_Release data types, which contain all press releases for a given year and or result limit. +func (r Auxiliary_Press_Release) GetRenderedPressReleases(resultLimit *string, year *string) (resp []datatypes.Auxiliary_Press_Release, err error) { + params := []interface{}{ + resultLimit, + year, + } + err = r.Session.DoRequest("SoftLayer_Auxiliary_Press_Release", "getRenderedPressReleases", params, &r.Options, &resp) + return +} + +// Retrieve an array of SoftLayer_Auxiliary_Press_Release data types, which have the website highlight flag set. +func (r Auxiliary_Press_Release) GetWebsiteHighlightPressReleases() (resp []datatypes.Auxiliary_Press_Release, err error) { + err = r.Session.DoRequest("SoftLayer_Auxiliary_Press_Release", "getWebsiteHighlightPressReleases", nil, &r.Options, &resp) + return +} + +// no documentation yet +type Auxiliary_Press_Release_About struct { + Session *session.Session + Options sl.Options +} + +// GetAuxiliaryPressReleaseAboutService returns an instance of the Auxiliary_Press_Release_About SoftLayer service +func GetAuxiliaryPressReleaseAboutService(sess *session.Session) Auxiliary_Press_Release_About { + return Auxiliary_Press_Release_About{Session: sess} +} + +func (r Auxiliary_Press_Release_About) Id(id int) Auxiliary_Press_Release_About { + r.Options.Id = &id + return r +} + +func (r Auxiliary_Press_Release_About) Mask(mask string) Auxiliary_Press_Release_About { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Auxiliary_Press_Release_About) Filter(filter string) Auxiliary_Press_Release_About { + r.Options.Filter = filter + return r +} + +func (r Auxiliary_Press_Release_About) Limit(limit int) Auxiliary_Press_Release_About { + r.Options.Limit = &limit + return r +} + +func (r Auxiliary_Press_Release_About) Offset(offset int) Auxiliary_Press_Release_About { + r.Options.Offset = &offset + return r +} + +// getObject retrieves the SoftLayer_Auxiliary_Press_Release_About object whose about id number corresponds to the ID number of the init parameter passed to the SoftLayer_Auxiliary_Press_Release service. +func (r Auxiliary_Press_Release_About) GetObject() (resp datatypes.Auxiliary_Press_Release_About, err error) { + err = r.Session.DoRequest("SoftLayer_Auxiliary_Press_Release_About", "getObject", nil, &r.Options, &resp) + return +} + +// no documentation yet +type Auxiliary_Press_Release_About_Press_Release struct { + Session *session.Session + Options sl.Options +} + +// GetAuxiliaryPressReleaseAboutPressReleaseService returns an instance of the Auxiliary_Press_Release_About_Press_Release SoftLayer service +func GetAuxiliaryPressReleaseAboutPressReleaseService(sess *session.Session) Auxiliary_Press_Release_About_Press_Release { + return Auxiliary_Press_Release_About_Press_Release{Session: sess} +} + +func (r Auxiliary_Press_Release_About_Press_Release) Id(id int) Auxiliary_Press_Release_About_Press_Release { + r.Options.Id = &id + return r +} + +func (r Auxiliary_Press_Release_About_Press_Release) Mask(mask string) Auxiliary_Press_Release_About_Press_Release { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Auxiliary_Press_Release_About_Press_Release) Filter(filter string) Auxiliary_Press_Release_About_Press_Release { + r.Options.Filter = filter + return r +} + +func (r Auxiliary_Press_Release_About_Press_Release) Limit(limit int) Auxiliary_Press_Release_About_Press_Release { + r.Options.Limit = &limit + return r +} + +func (r Auxiliary_Press_Release_About_Press_Release) Offset(offset int) Auxiliary_Press_Release_About_Press_Release { + r.Options.Offset = &offset + return r +} + +// Retrieve +func (r Auxiliary_Press_Release_About_Press_Release) GetAboutParagraphs() (resp []datatypes.Auxiliary_Press_Release_About, err error) { + err = r.Session.DoRequest("SoftLayer_Auxiliary_Press_Release_About_Press_Release", "getAboutParagraphs", nil, &r.Options, &resp) + return +} + +// getObject retrieves the SoftLayer_Auxiliary_Press_Release_About_Press_Release object whose contact id number corresponds to the ID number of the init parameter passed to the SoftLayer_Auxiliary_Press_Release service. +func (r Auxiliary_Press_Release_About_Press_Release) GetObject() (resp datatypes.Auxiliary_Press_Release_About_Press_Release, err error) { + err = r.Session.DoRequest("SoftLayer_Auxiliary_Press_Release_About_Press_Release", "getObject", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Auxiliary_Press_Release_About_Press_Release) GetPressReleases() (resp []datatypes.Auxiliary_Press_Release, err error) { + err = r.Session.DoRequest("SoftLayer_Auxiliary_Press_Release_About_Press_Release", "getPressReleases", nil, &r.Options, &resp) + return +} + +// no documentation yet +type Auxiliary_Press_Release_Contact struct { + Session *session.Session + Options sl.Options +} + +// GetAuxiliaryPressReleaseContactService returns an instance of the Auxiliary_Press_Release_Contact SoftLayer service +func GetAuxiliaryPressReleaseContactService(sess *session.Session) Auxiliary_Press_Release_Contact { + return Auxiliary_Press_Release_Contact{Session: sess} +} + +func (r Auxiliary_Press_Release_Contact) Id(id int) Auxiliary_Press_Release_Contact { + r.Options.Id = &id + return r +} + +func (r Auxiliary_Press_Release_Contact) Mask(mask string) Auxiliary_Press_Release_Contact { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Auxiliary_Press_Release_Contact) Filter(filter string) Auxiliary_Press_Release_Contact { + r.Options.Filter = filter + return r +} + +func (r Auxiliary_Press_Release_Contact) Limit(limit int) Auxiliary_Press_Release_Contact { + r.Options.Limit = &limit + return r +} + +func (r Auxiliary_Press_Release_Contact) Offset(offset int) Auxiliary_Press_Release_Contact { + r.Options.Offset = &offset + return r +} + +// getObject retrieves the SoftLayer_Auxiliary_Press_Release_Contact object whose contact id number corresponds to the ID number of the init parameter passed to the SoftLayer_Auxiliary_Press_Release service. +func (r Auxiliary_Press_Release_Contact) GetObject() (resp datatypes.Auxiliary_Press_Release_Contact, err error) { + err = r.Session.DoRequest("SoftLayer_Auxiliary_Press_Release_Contact", "getObject", nil, &r.Options, &resp) + return +} + +// no documentation yet +type Auxiliary_Press_Release_Contact_Press_Release struct { + Session *session.Session + Options sl.Options +} + +// GetAuxiliaryPressReleaseContactPressReleaseService returns an instance of the Auxiliary_Press_Release_Contact_Press_Release SoftLayer service +func GetAuxiliaryPressReleaseContactPressReleaseService(sess *session.Session) Auxiliary_Press_Release_Contact_Press_Release { + return Auxiliary_Press_Release_Contact_Press_Release{Session: sess} +} + +func (r Auxiliary_Press_Release_Contact_Press_Release) Id(id int) Auxiliary_Press_Release_Contact_Press_Release { + r.Options.Id = &id + return r +} + +func (r Auxiliary_Press_Release_Contact_Press_Release) Mask(mask string) Auxiliary_Press_Release_Contact_Press_Release { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Auxiliary_Press_Release_Contact_Press_Release) Filter(filter string) Auxiliary_Press_Release_Contact_Press_Release { + r.Options.Filter = filter + return r +} + +func (r Auxiliary_Press_Release_Contact_Press_Release) Limit(limit int) Auxiliary_Press_Release_Contact_Press_Release { + r.Options.Limit = &limit + return r +} + +func (r Auxiliary_Press_Release_Contact_Press_Release) Offset(offset int) Auxiliary_Press_Release_Contact_Press_Release { + r.Options.Offset = &offset + return r +} + +// Retrieve +func (r Auxiliary_Press_Release_Contact_Press_Release) GetContacts() (resp []datatypes.Auxiliary_Press_Release_Contact, err error) { + err = r.Session.DoRequest("SoftLayer_Auxiliary_Press_Release_Contact_Press_Release", "getContacts", nil, &r.Options, &resp) + return +} + +// getObject retrieves the SoftLayer_Auxiliary_Press_Release_Contact object whose contact id number corresponds to the ID number of the init parameter passed to the SoftLayer_Auxiliary_Press_Release service. +func (r Auxiliary_Press_Release_Contact_Press_Release) GetObject() (resp datatypes.Auxiliary_Press_Release_Contact_Press_Release, err error) { + err = r.Session.DoRequest("SoftLayer_Auxiliary_Press_Release_Contact_Press_Release", "getObject", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Auxiliary_Press_Release_Contact_Press_Release) GetPressReleases() (resp []datatypes.Auxiliary_Press_Release, err error) { + err = r.Session.DoRequest("SoftLayer_Auxiliary_Press_Release_Contact_Press_Release", "getPressReleases", nil, &r.Options, &resp) + return +} + +// no documentation yet +type Auxiliary_Press_Release_Content struct { + Session *session.Session + Options sl.Options +} + +// GetAuxiliaryPressReleaseContentService returns an instance of the Auxiliary_Press_Release_Content SoftLayer service +func GetAuxiliaryPressReleaseContentService(sess *session.Session) Auxiliary_Press_Release_Content { + return Auxiliary_Press_Release_Content{Session: sess} +} + +func (r Auxiliary_Press_Release_Content) Id(id int) Auxiliary_Press_Release_Content { + r.Options.Id = &id + return r +} + +func (r Auxiliary_Press_Release_Content) Mask(mask string) Auxiliary_Press_Release_Content { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Auxiliary_Press_Release_Content) Filter(filter string) Auxiliary_Press_Release_Content { + r.Options.Filter = filter + return r +} + +func (r Auxiliary_Press_Release_Content) Limit(limit int) Auxiliary_Press_Release_Content { + r.Options.Limit = &limit + return r +} + +func (r Auxiliary_Press_Release_Content) Offset(offset int) Auxiliary_Press_Release_Content { + r.Options.Offset = &offset + return r +} + +// getObject retrieves the SoftLayer_Auxiliary_Press_Release_Content object whose ID number corresponds to the ID number of the init parameter passed to the SoftLayer_Auxiliary_Press_Release service. +func (r Auxiliary_Press_Release_Content) GetObject() (resp datatypes.Auxiliary_Press_Release_Content, err error) { + err = r.Session.DoRequest("SoftLayer_Auxiliary_Press_Release_Content", "getObject", nil, &r.Options, &resp) + return +} + +// no documentation yet +type Auxiliary_Press_Release_Media_Partner struct { + Session *session.Session + Options sl.Options +} + +// GetAuxiliaryPressReleaseMediaPartnerService returns an instance of the Auxiliary_Press_Release_Media_Partner SoftLayer service +func GetAuxiliaryPressReleaseMediaPartnerService(sess *session.Session) Auxiliary_Press_Release_Media_Partner { + return Auxiliary_Press_Release_Media_Partner{Session: sess} +} + +func (r Auxiliary_Press_Release_Media_Partner) Id(id int) Auxiliary_Press_Release_Media_Partner { + r.Options.Id = &id + return r +} + +func (r Auxiliary_Press_Release_Media_Partner) Mask(mask string) Auxiliary_Press_Release_Media_Partner { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Auxiliary_Press_Release_Media_Partner) Filter(filter string) Auxiliary_Press_Release_Media_Partner { + r.Options.Filter = filter + return r +} + +func (r Auxiliary_Press_Release_Media_Partner) Limit(limit int) Auxiliary_Press_Release_Media_Partner { + r.Options.Limit = &limit + return r +} + +func (r Auxiliary_Press_Release_Media_Partner) Offset(offset int) Auxiliary_Press_Release_Media_Partner { + r.Options.Offset = &offset + return r +} + +// getObject retrieves the SoftLayer_Auxiliary_Press_Release_Contact object whose contact id number corresponds to the ID number of the init parameter passed to the SoftLayer_Auxiliary_Press_Release service. +func (r Auxiliary_Press_Release_Media_Partner) GetObject() (resp datatypes.Auxiliary_Press_Release_Media_Partner, err error) { + err = r.Session.DoRequest("SoftLayer_Auxiliary_Press_Release_Media_Partner", "getObject", nil, &r.Options, &resp) + return +} + +// no documentation yet +type Auxiliary_Press_Release_Media_Partner_Press_Release struct { + Session *session.Session + Options sl.Options +} + +// GetAuxiliaryPressReleaseMediaPartnerPressReleaseService returns an instance of the Auxiliary_Press_Release_Media_Partner_Press_Release SoftLayer service +func GetAuxiliaryPressReleaseMediaPartnerPressReleaseService(sess *session.Session) Auxiliary_Press_Release_Media_Partner_Press_Release { + return Auxiliary_Press_Release_Media_Partner_Press_Release{Session: sess} +} + +func (r Auxiliary_Press_Release_Media_Partner_Press_Release) Id(id int) Auxiliary_Press_Release_Media_Partner_Press_Release { + r.Options.Id = &id + return r +} + +func (r Auxiliary_Press_Release_Media_Partner_Press_Release) Mask(mask string) Auxiliary_Press_Release_Media_Partner_Press_Release { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Auxiliary_Press_Release_Media_Partner_Press_Release) Filter(filter string) Auxiliary_Press_Release_Media_Partner_Press_Release { + r.Options.Filter = filter + return r +} + +func (r Auxiliary_Press_Release_Media_Partner_Press_Release) Limit(limit int) Auxiliary_Press_Release_Media_Partner_Press_Release { + r.Options.Limit = &limit + return r +} + +func (r Auxiliary_Press_Release_Media_Partner_Press_Release) Offset(offset int) Auxiliary_Press_Release_Media_Partner_Press_Release { + r.Options.Offset = &offset + return r +} + +// Retrieve +func (r Auxiliary_Press_Release_Media_Partner_Press_Release) GetMediaPartners() (resp []datatypes.Auxiliary_Press_Release_Media_Partner, err error) { + err = r.Session.DoRequest("SoftLayer_Auxiliary_Press_Release_Media_Partner_Press_Release", "getMediaPartners", nil, &r.Options, &resp) + return +} + +// getObject retrieves the SoftLayer_Auxiliary_Press_Release_Media_Partner_Press_Release object whose media partner id number corresponds to the ID number of the init parameter passed to the SoftLayer_Auxiliary_Press_Release service. +func (r Auxiliary_Press_Release_Media_Partner_Press_Release) GetObject() (resp datatypes.Auxiliary_Press_Release_Media_Partner_Press_Release, err error) { + err = r.Session.DoRequest("SoftLayer_Auxiliary_Press_Release_Media_Partner_Press_Release", "getObject", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Auxiliary_Press_Release_Media_Partner_Press_Release) GetPressReleases() (resp []datatypes.Auxiliary_Press_Release, err error) { + err = r.Session.DoRequest("SoftLayer_Auxiliary_Press_Release_Media_Partner_Press_Release", "getPressReleases", nil, &r.Options, &resp) + return +} + +// no documentation yet +type Auxiliary_Shipping_Courier_Type struct { + Session *session.Session + Options sl.Options +} + +// GetAuxiliaryShippingCourierTypeService returns an instance of the Auxiliary_Shipping_Courier_Type SoftLayer service +func GetAuxiliaryShippingCourierTypeService(sess *session.Session) Auxiliary_Shipping_Courier_Type { + return Auxiliary_Shipping_Courier_Type{Session: sess} +} + +func (r Auxiliary_Shipping_Courier_Type) Id(id int) Auxiliary_Shipping_Courier_Type { + r.Options.Id = &id + return r +} + +func (r Auxiliary_Shipping_Courier_Type) Mask(mask string) Auxiliary_Shipping_Courier_Type { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Auxiliary_Shipping_Courier_Type) Filter(filter string) Auxiliary_Shipping_Courier_Type { + r.Options.Filter = filter + return r +} + +func (r Auxiliary_Shipping_Courier_Type) Limit(limit int) Auxiliary_Shipping_Courier_Type { + r.Options.Limit = &limit + return r +} + +func (r Auxiliary_Shipping_Courier_Type) Offset(offset int) Auxiliary_Shipping_Courier_Type { + r.Options.Offset = &offset + return r +} + +// Retrieve +func (r Auxiliary_Shipping_Courier_Type) GetCourier() (resp []datatypes.Auxiliary_Shipping_Courier, err error) { + err = r.Session.DoRequest("SoftLayer_Auxiliary_Shipping_Courier_Type", "getCourier", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Auxiliary_Shipping_Courier_Type) GetObject() (resp datatypes.Auxiliary_Shipping_Courier_Type, err error) { + err = r.Session.DoRequest("SoftLayer_Auxiliary_Shipping_Courier_Type", "getObject", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Auxiliary_Shipping_Courier_Type) GetTypeByKeyName(keyName *string) (resp datatypes.Auxiliary_Shipping_Courier_Type, err error) { + params := []interface{}{ + keyName, + } + err = r.Session.DoRequest("SoftLayer_Auxiliary_Shipping_Courier_Type", "getTypeByKeyName", params, &r.Options, &resp) + return +} diff --git a/vendor/github.com/softlayer/softlayer-go/services/billing.go b/vendor/github.com/softlayer/softlayer-go/services/billing.go new file mode 100644 index 000000000..7f1fa03f6 --- /dev/null +++ b/vendor/github.com/softlayer/softlayer-go/services/billing.go @@ -0,0 +1,2744 @@ +/** + * Copyright 2016 IBM Corp. + * + * 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. + */ + +/** + * AUTOMATICALLY GENERATED CODE - DO NOT MODIFY + */ + +package services + +import ( + "fmt" + "strings" + + "github.com/softlayer/softlayer-go/datatypes" + "github.com/softlayer/softlayer-go/session" + "github.com/softlayer/softlayer-go/sl" +) + +// no documentation yet +type Billing_Currency struct { + Session *session.Session + Options sl.Options +} + +// GetBillingCurrencyService returns an instance of the Billing_Currency SoftLayer service +func GetBillingCurrencyService(sess *session.Session) Billing_Currency { + return Billing_Currency{Session: sess} +} + +func (r Billing_Currency) Id(id int) Billing_Currency { + r.Options.Id = &id + return r +} + +func (r Billing_Currency) Mask(mask string) Billing_Currency { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Billing_Currency) Filter(filter string) Billing_Currency { + r.Options.Filter = filter + return r +} + +func (r Billing_Currency) Limit(limit int) Billing_Currency { + r.Options.Limit = &limit + return r +} + +func (r Billing_Currency) Offset(offset int) Billing_Currency { + r.Options.Offset = &offset + return r +} + +// no documentation yet +func (r Billing_Currency) GetAllObjects() (resp []datatypes.Billing_Currency, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Currency", "getAllObjects", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Billing_Currency) GetObject() (resp datatypes.Billing_Currency, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Currency", "getObject", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Billing_Currency) GetPrice(price *datatypes.Float64, formatOptions *datatypes.Container_Billing_Currency_Format) (resp string, err error) { + params := []interface{}{ + price, + formatOptions, + } + err = r.Session.DoRequest("SoftLayer_Billing_Currency", "getPrice", params, &r.Options, &resp) + return +} + +// The SoftLayer_Billing_Currency_Country data type maps what currencies are valid for specific countries. US Dollars are valid from any country, but other currencies are only available to customers in certain countries. +type Billing_Currency_Country struct { + Session *session.Session + Options sl.Options +} + +// GetBillingCurrencyCountryService returns an instance of the Billing_Currency_Country SoftLayer service +func GetBillingCurrencyCountryService(sess *session.Session) Billing_Currency_Country { + return Billing_Currency_Country{Session: sess} +} + +func (r Billing_Currency_Country) Id(id int) Billing_Currency_Country { + r.Options.Id = &id + return r +} + +func (r Billing_Currency_Country) Mask(mask string) Billing_Currency_Country { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Billing_Currency_Country) Filter(filter string) Billing_Currency_Country { + r.Options.Filter = filter + return r +} + +func (r Billing_Currency_Country) Limit(limit int) Billing_Currency_Country { + r.Options.Limit = &limit + return r +} + +func (r Billing_Currency_Country) Offset(offset int) Billing_Currency_Country { + r.Options.Offset = &offset + return r +} + +// no documentation yet +func (r Billing_Currency_Country) GetCountriesWithListOfEligibleCurrencies() (resp []datatypes.Container_Billing_Currency_Country, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Currency_Country", "getCountriesWithListOfEligibleCurrencies", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Billing_Currency_Country) GetObject() (resp datatypes.Billing_Currency_Country, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Currency_Country", "getObject", nil, &r.Options, &resp) + return +} + +// no documentation yet +type Billing_Currency_ExchangeRate struct { + Session *session.Session + Options sl.Options +} + +// GetBillingCurrencyExchangeRateService returns an instance of the Billing_Currency_ExchangeRate SoftLayer service +func GetBillingCurrencyExchangeRateService(sess *session.Session) Billing_Currency_ExchangeRate { + return Billing_Currency_ExchangeRate{Session: sess} +} + +func (r Billing_Currency_ExchangeRate) Id(id int) Billing_Currency_ExchangeRate { + r.Options.Id = &id + return r +} + +func (r Billing_Currency_ExchangeRate) Mask(mask string) Billing_Currency_ExchangeRate { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Billing_Currency_ExchangeRate) Filter(filter string) Billing_Currency_ExchangeRate { + r.Options.Filter = filter + return r +} + +func (r Billing_Currency_ExchangeRate) Limit(limit int) Billing_Currency_ExchangeRate { + r.Options.Limit = &limit + return r +} + +func (r Billing_Currency_ExchangeRate) Offset(offset int) Billing_Currency_ExchangeRate { + r.Options.Offset = &offset + return r +} + +// no documentation yet +func (r Billing_Currency_ExchangeRate) GetAllCurrencyExchangeRates(stringDate *string) (resp []datatypes.Billing_Currency_ExchangeRate, err error) { + params := []interface{}{ + stringDate, + } + err = r.Session.DoRequest("SoftLayer_Billing_Currency_ExchangeRate", "getAllCurrencyExchangeRates", params, &r.Options, &resp) + return +} + +// no documentation yet +func (r Billing_Currency_ExchangeRate) GetCurrencies() (resp []datatypes.Billing_Currency, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Currency_ExchangeRate", "getCurrencies", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Billing_Currency_ExchangeRate) GetExchangeRate(to *string, from *string, effectiveDate *datatypes.Time) (resp datatypes.Billing_Currency_ExchangeRate, err error) { + params := []interface{}{ + to, + from, + effectiveDate, + } + err = r.Session.DoRequest("SoftLayer_Billing_Currency_ExchangeRate", "getExchangeRate", params, &r.Options, &resp) + return +} + +// Retrieve +func (r Billing_Currency_ExchangeRate) GetFundingCurrency() (resp datatypes.Billing_Currency, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Currency_ExchangeRate", "getFundingCurrency", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Billing_Currency_ExchangeRate) GetLocalCurrency() (resp datatypes.Billing_Currency, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Currency_ExchangeRate", "getLocalCurrency", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Billing_Currency_ExchangeRate) GetObject() (resp datatypes.Billing_Currency_ExchangeRate, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Currency_ExchangeRate", "getObject", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Billing_Currency_ExchangeRate) GetPrice(price *datatypes.Float64, formatOptions *datatypes.Container_Billing_Currency_Format) (resp string, err error) { + params := []interface{}{ + price, + formatOptions, + } + err = r.Session.DoRequest("SoftLayer_Billing_Currency_ExchangeRate", "getPrice", params, &r.Options, &resp) + return +} + +// Every SoftLayer customer account has billing specific information which is kept in the SoftLayer_Billing_Info data type. This information is used by the SoftLayer accounting group when sending invoices and making billing inquiries. +type Billing_Info struct { + Session *session.Session + Options sl.Options +} + +// GetBillingInfoService returns an instance of the Billing_Info SoftLayer service +func GetBillingInfoService(sess *session.Session) Billing_Info { + return Billing_Info{Session: sess} +} + +func (r Billing_Info) Id(id int) Billing_Info { + r.Options.Id = &id + return r +} + +func (r Billing_Info) Mask(mask string) Billing_Info { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Billing_Info) Filter(filter string) Billing_Info { + r.Options.Filter = filter + return r +} + +func (r Billing_Info) Limit(limit int) Billing_Info { + r.Options.Limit = &limit + return r +} + +func (r Billing_Info) Offset(offset int) Billing_Info { + r.Options.Offset = &offset + return r +} + +// Retrieve The SoftLayer customer account associated with this billing information. +func (r Billing_Info) GetAccount() (resp datatypes.Account, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Info", "getAccount", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Billing_Info) GetAchInformation() (resp []datatypes.Billing_Info_Ach, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Info", "getAchInformation", nil, &r.Options, &resp) + return +} + +// Retrieve Currency to be used by this customer account. +func (r Billing_Info) GetCurrency() (resp datatypes.Billing_Currency, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Info", "getCurrency", nil, &r.Options, &resp) + return +} + +// Retrieve Information related to an account's current and previous billing cycles. +func (r Billing_Info) GetCurrentBillingCycle() (resp datatypes.Billing_Info_Cycle, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Info", "getCurrentBillingCycle", nil, &r.Options, &resp) + return +} + +// Retrieve The date on which an account was last billed. +func (r Billing_Info) GetLastBillDate() (resp datatypes.Time, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Info", "getLastBillDate", nil, &r.Options, &resp) + return +} + +// Retrieve The date on which an account will be billed next. +func (r Billing_Info) GetNextBillDate() (resp datatypes.Time, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Info", "getNextBillDate", nil, &r.Options, &resp) + return +} + +// getObject retrieves the SoftLayer_Billing_Info object whose data corresponds to the account to which your portal user is tied. +func (r Billing_Info) GetObject() (resp datatypes.Billing_Info, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Info", "getObject", nil, &r.Options, &resp) + return +} + +// The SoftLayer_Billing_Invoice data type contains general information relating to an individual invoice applied to a SoftLayer customer account. Personal information in this type such as names, addresses, and phone numbers are taken from the account's contact information at the time the invoice is generated. +type Billing_Invoice struct { + Session *session.Session + Options sl.Options +} + +// GetBillingInvoiceService returns an instance of the Billing_Invoice SoftLayer service +func GetBillingInvoiceService(sess *session.Session) Billing_Invoice { + return Billing_Invoice{Session: sess} +} + +func (r Billing_Invoice) Id(id int) Billing_Invoice { + r.Options.Id = &id + return r +} + +func (r Billing_Invoice) Mask(mask string) Billing_Invoice { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Billing_Invoice) Filter(filter string) Billing_Invoice { + r.Options.Filter = filter + return r +} + +func (r Billing_Invoice) Limit(limit int) Billing_Invoice { + r.Options.Limit = &limit + return r +} + +func (r Billing_Invoice) Offset(offset int) Billing_Invoice { + r.Options.Offset = &offset + return r +} + +// Create a transaction to email PDF and/or Excel invoice links to the requesting user's email address. You must have a PDF reader installed in order to view these files. +func (r Billing_Invoice) EmailInvoices(options *datatypes.Container_Billing_Invoice_Email) (err error) { + var resp datatypes.Void + params := []interface{}{ + options, + } + err = r.Session.DoRequest("SoftLayer_Billing_Invoice", "emailInvoices", params, &r.Options, &resp) + return +} + +// Retrieve The account that an invoice belongs to. +func (r Billing_Invoice) GetAccount() (resp datatypes.Account, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Invoice", "getAccount", nil, &r.Options, &resp) + return +} + +// Retrieve This is the amount of this invoice. +func (r Billing_Invoice) GetAmount() (resp datatypes.Float64, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Invoice", "getAmount", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Billing_Invoice) GetBrandAtInvoiceCreation() (resp datatypes.Brand, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Invoice", "getBrandAtInvoiceCreation", nil, &r.Options, &resp) + return +} + +// Retrieve A flag that will reflect whether the detailed version of the pdf has been generated. +func (r Billing_Invoice) GetDetailedPdfGeneratedFlag() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Invoice", "getDetailedPdfGeneratedFlag", nil, &r.Options, &resp) + return +} + +// Retrieve a Microsoft Excel spreadsheet of a SoftLayer invoice. You must have a Microsoft Excel reader installed in order to view these invoice files. +func (r Billing_Invoice) GetExcel() (resp []byte, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Invoice", "getExcel", nil, &r.Options, &resp) + return +} + +// Retrieve A list of top-level invoice items that are on the currently pending invoice. +func (r Billing_Invoice) GetInvoiceTopLevelItems() (resp []datatypes.Billing_Invoice_Item, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Invoice", "getInvoiceTopLevelItems", nil, &r.Options, &resp) + return +} + +// Retrieve The total amount of this invoice. +func (r Billing_Invoice) GetInvoiceTotalAmount() (resp datatypes.Float64, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Invoice", "getInvoiceTotalAmount", nil, &r.Options, &resp) + return +} + +// Retrieve The total one-time charges for this invoice. This is the sum of one-time charges + setup fees + labor fees. This does not include taxes. +func (r Billing_Invoice) GetInvoiceTotalOneTimeAmount() (resp datatypes.Float64, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Invoice", "getInvoiceTotalOneTimeAmount", nil, &r.Options, &resp) + return +} + +// Retrieve A sum of all the taxes related to one time charges for this invoice. +func (r Billing_Invoice) GetInvoiceTotalOneTimeTaxAmount() (resp datatypes.Float64, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Invoice", "getInvoiceTotalOneTimeTaxAmount", nil, &r.Options, &resp) + return +} + +// Retrieve The total amount of this invoice. This does not include taxes. +func (r Billing_Invoice) GetInvoiceTotalPreTaxAmount() (resp datatypes.Float64, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Invoice", "getInvoiceTotalPreTaxAmount", nil, &r.Options, &resp) + return +} + +// Retrieve The total Recurring amount of this invoice. This amount does not include taxes or one time charges. +func (r Billing_Invoice) GetInvoiceTotalRecurringAmount() (resp datatypes.Float64, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Invoice", "getInvoiceTotalRecurringAmount", nil, &r.Options, &resp) + return +} + +// Retrieve The total amount of the recurring taxes on this invoice. +func (r Billing_Invoice) GetInvoiceTotalRecurringTaxAmount() (resp datatypes.Float64, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Invoice", "getInvoiceTotalRecurringTaxAmount", nil, &r.Options, &resp) + return +} + +// Retrieve The items that belong to this invoice. +func (r Billing_Invoice) GetItems() (resp []datatypes.Billing_Invoice_Item, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Invoice", "getItems", nil, &r.Options, &resp) + return +} + +// getObject retrieves the SoftLayer_Billing_Invoice object whose ID number corresponds to the ID number of the init parameter passed to the SoftLayer_Billing_Invoice service. You can only retrieve invoices that are assigned to your portal user's account. +func (r Billing_Invoice) GetObject() (resp datatypes.Billing_Invoice, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Invoice", "getObject", nil, &r.Options, &resp) + return +} + +// Retrieve This is the total payment made on this invoice. +func (r Billing_Invoice) GetPayment() (resp datatypes.Float64, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Invoice", "getPayment", nil, &r.Options, &resp) + return +} + +// Retrieve The payments for the invoice. +func (r Billing_Invoice) GetPayments() (resp []datatypes.Billing_Invoice_Receivable_Payment, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Invoice", "getPayments", nil, &r.Options, &resp) + return +} + +// Retrieve a PDF record of a SoftLayer invoice. SoftLayer keeps PDF records of all closed invoices for customer retrieval from the portal and API. You must have a PDF reader installed in order to view these invoice files. +func (r Billing_Invoice) GetPdf() (resp []byte, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Invoice", "getPdf", nil, &r.Options, &resp) + return +} + +// Retrieve a PDF record of a SoftLayer detailed invoice summary. SoftLayer keeps PDF records of all closed invoices for customer retrieval from the portal and API. You must have a PDF reader installed in order to view these files. +func (r Billing_Invoice) GetPdfDetailed() (resp []byte, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Invoice", "getPdfDetailed", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Billing_Invoice) GetPdfDetailedFilename() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Invoice", "getPdfDetailedFilename", nil, &r.Options, &resp) + return +} + +// Retrieve the size of a PDF record of a SoftLayer invoice. SoftLayer keeps PDF records of all closed invoices for customer retrieval from the portal and API. +func (r Billing_Invoice) GetPdfFileSize() (resp int, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Invoice", "getPdfFileSize", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Billing_Invoice) GetPdfFilename() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Invoice", "getPdfFilename", nil, &r.Options, &resp) + return +} + +// Retrieve a Microsoft Excel record of a SoftLayer invoice. SoftLayer generates Microsoft Excel records of all closed invoices for customer retrieval from the portal and API. You must have a Microsoft Excel reader installed in order to view these invoice files. +func (r Billing_Invoice) GetPreliminaryExcel() (resp []byte, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Invoice", "getPreliminaryExcel", nil, &r.Options, &resp) + return +} + +// Retrieve a PDF record of a SoftLayer invoice. SoftLayer keeps PDF records of all closed invoices for customer retrieval from the portal and API. You must have a PDF reader installed in order to view these invoice files. +func (r Billing_Invoice) GetPreliminaryPdf() (resp []byte, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Invoice", "getPreliminaryPdf", nil, &r.Options, &resp) + return +} + +// Retrieve a PDF record of the detailed version of a SoftLayer invoice. SoftLayer keeps PDF records of all closed invoices for customer retrieval from the portal and API. +func (r Billing_Invoice) GetPreliminaryPdfDetailed() (resp []byte, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Invoice", "getPreliminaryPdfDetailed", nil, &r.Options, &resp) + return +} + +// Retrieve This is the seller's tax registration. +func (r Billing_Invoice) GetSellerRegistration() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Invoice", "getSellerRegistration", nil, &r.Options, &resp) + return +} + +// Retrieve This is the tax information that applies to tax auditing. This is the official tax record for this invoice. +func (r Billing_Invoice) GetTaxInfo() (resp datatypes.Billing_Invoice_Tax_Info, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Invoice", "getTaxInfo", nil, &r.Options, &resp) + return +} + +// Retrieve This is the set of tax information for any tax calculation for this invoice. Note that not all of these are necessarily official, so use the taxInfo key to get the final information. +func (r Billing_Invoice) GetTaxInfoHistory() (resp []datatypes.Billing_Invoice_Tax_Info, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Invoice", "getTaxInfoHistory", nil, &r.Options, &resp) + return +} + +// Retrieve This is a message explaining the tax treatment for this invoice. +func (r Billing_Invoice) GetTaxMessage() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Invoice", "getTaxMessage", nil, &r.Options, &resp) + return +} + +// Retrieve This is the strategy used to calculate tax on this invoice. +func (r Billing_Invoice) GetTaxType() (resp datatypes.Billing_Invoice_Tax_Type, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Invoice", "getTaxType", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Billing_Invoice) GetXlsFilename() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Invoice", "getXlsFilename", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Billing_Invoice) GetZeroFeeItemCounts() (resp []datatypes.Container_Product_Item_Category_ZeroFee_Count, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Invoice", "getZeroFeeItemCounts", nil, &r.Options, &resp) + return +} + +// Each billing invoice item makes up a record within an invoice. This provides you with a detailed record of everything related to an invoice item. When you are billed, our system takes active billing items and creates an invoice. These invoice items are a copy of your active billing items, and make up the contents of your invoice. +type Billing_Invoice_Item struct { + Session *session.Session + Options sl.Options +} + +// GetBillingInvoiceItemService returns an instance of the Billing_Invoice_Item SoftLayer service +func GetBillingInvoiceItemService(sess *session.Session) Billing_Invoice_Item { + return Billing_Invoice_Item{Session: sess} +} + +func (r Billing_Invoice_Item) Id(id int) Billing_Invoice_Item { + r.Options.Id = &id + return r +} + +func (r Billing_Invoice_Item) Mask(mask string) Billing_Invoice_Item { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Billing_Invoice_Item) Filter(filter string) Billing_Invoice_Item { + r.Options.Filter = filter + return r +} + +func (r Billing_Invoice_Item) Limit(limit int) Billing_Invoice_Item { + r.Options.Limit = &limit + return r +} + +func (r Billing_Invoice_Item) Offset(offset int) Billing_Invoice_Item { + r.Options.Offset = &offset + return r +} + +// Retrieve An Invoice Item's associated child invoice items. Only parent invoice items have associated children. For instance, a server invoice item may have associated children. +func (r Billing_Invoice_Item) GetAssociatedChildren() (resp []datatypes.Billing_Invoice_Item, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Invoice_Item", "getAssociatedChildren", nil, &r.Options, &resp) + return +} + +// Retrieve An Invoice Item's associated invoice item. If this is populated, it means this is an orphaned invoice item, but logically belongs to the associated invoice item. +func (r Billing_Invoice_Item) GetAssociatedInvoiceItem() (resp datatypes.Billing_Invoice_Item, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Invoice_Item", "getAssociatedInvoiceItem", nil, &r.Options, &resp) + return +} + +// Retrieve An Invoice Item's billing item, from which this item was generated. +func (r Billing_Invoice_Item) GetBillingItem() (resp datatypes.Billing_Item, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Invoice_Item", "getBillingItem", nil, &r.Options, &resp) + return +} + +// Retrieve This invoice item's "item category". +func (r Billing_Invoice_Item) GetCategory() (resp datatypes.Product_Item_Category, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Invoice_Item", "getCategory", nil, &r.Options, &resp) + return +} + +// Retrieve An Invoice Item's child invoice items. Only parent invoice items have children. For instance, a server invoice item will have children. +func (r Billing_Invoice_Item) GetChildren() (resp []datatypes.Billing_Invoice_Item, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Invoice_Item", "getChildren", nil, &r.Options, &resp) + return +} + +// Retrieve An Invoice Item's associated child invoice items, excluding some items with a $0.00 recurring fee. Only parent invoice items have associated children. For instance, a server invoice item may have associated children. +func (r Billing_Invoice_Item) GetFilteredAssociatedChildren() (resp []datatypes.Billing_Invoice_Item, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Invoice_Item", "getFilteredAssociatedChildren", nil, &r.Options, &resp) + return +} + +// Retrieve Indicating whether this invoice item is billed on an hourly basis. +func (r Billing_Invoice_Item) GetHourlyFlag() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Invoice_Item", "getHourlyFlag", nil, &r.Options, &resp) + return +} + +// Retrieve The invoice to which this item belongs. +func (r Billing_Invoice_Item) GetInvoice() (resp datatypes.Billing_Invoice, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Invoice_Item", "getInvoice", nil, &r.Options, &resp) + return +} + +// Retrieve An invoice item's location, if one exists.' +func (r Billing_Invoice_Item) GetLocation() (resp datatypes.Location, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Invoice_Item", "getLocation", nil, &r.Options, &resp) + return +} + +// Retrieve An Invoice Item's associated child invoice items, excluding ALL items with a $0.00 recurring fee. Only parent invoice items have associated children. For instance, a server invoice item may have associated children. +func (r Billing_Invoice_Item) GetNonZeroAssociatedChildren() (resp []datatypes.Billing_Invoice_Item, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Invoice_Item", "getNonZeroAssociatedChildren", nil, &r.Options, &resp) + return +} + +// getObject retrieves the SoftLayer_Billing_Invoice_Item object whose ID number corresponds to the ID number of the init parameter passed to the SoftLayer_Billing_Invoice_Item service. You can only retrieve the items tied to the account that your portal user is assigned to. +func (r Billing_Invoice_Item) GetObject() (resp datatypes.Billing_Invoice_Item, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Invoice_Item", "getObject", nil, &r.Options, &resp) + return +} + +// Retrieve Every item tied to a server should have a parent invoice item which is the server line item. This is how we associate items to a server. +func (r Billing_Invoice_Item) GetParent() (resp datatypes.Billing_Invoice_Item, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Invoice_Item", "getParent", nil, &r.Options, &resp) + return +} + +// Retrieve The entry in the product catalog that a invoice item is based upon. +func (r Billing_Invoice_Item) GetProduct() (resp datatypes.Product_Item, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Invoice_Item", "getProduct", nil, &r.Options, &resp) + return +} + +// Retrieve A string representing the name of parent level product group of an invoice item. +func (r Billing_Invoice_Item) GetTopLevelProductGroupName() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Invoice_Item", "getTopLevelProductGroupName", nil, &r.Options, &resp) + return +} + +// Retrieve An invoice Item's total, including any child invoice items if they exist. +func (r Billing_Invoice_Item) GetTotalOneTimeAmount() (resp datatypes.Float64, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Invoice_Item", "getTotalOneTimeAmount", nil, &r.Options, &resp) + return +} + +// Retrieve An invoice Item's total, including any child invoice items if they exist. +func (r Billing_Invoice_Item) GetTotalOneTimeTaxAmount() (resp datatypes.Float64, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Invoice_Item", "getTotalOneTimeTaxAmount", nil, &r.Options, &resp) + return +} + +// Retrieve An invoice Item's total, including any child invoice items if they exist. +func (r Billing_Invoice_Item) GetTotalRecurringAmount() (resp datatypes.Float64, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Invoice_Item", "getTotalRecurringAmount", nil, &r.Options, &resp) + return +} + +// Retrieve A Billing Item's total, including any child billing items if they exist.' +func (r Billing_Invoice_Item) GetTotalRecurringTaxAmount() (resp datatypes.Float64, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Invoice_Item", "getTotalRecurringTaxAmount", nil, &r.Options, &resp) + return +} + +// no documentation yet +type Billing_Invoice_Next struct { + Session *session.Session + Options sl.Options +} + +// GetBillingInvoiceNextService returns an instance of the Billing_Invoice_Next SoftLayer service +func GetBillingInvoiceNextService(sess *session.Session) Billing_Invoice_Next { + return Billing_Invoice_Next{Session: sess} +} + +func (r Billing_Invoice_Next) Id(id int) Billing_Invoice_Next { + r.Options.Id = &id + return r +} + +func (r Billing_Invoice_Next) Mask(mask string) Billing_Invoice_Next { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Billing_Invoice_Next) Filter(filter string) Billing_Invoice_Next { + r.Options.Filter = filter + return r +} + +func (r Billing_Invoice_Next) Limit(limit int) Billing_Invoice_Next { + r.Options.Limit = &limit + return r +} + +func (r Billing_Invoice_Next) Offset(offset int) Billing_Invoice_Next { + r.Options.Offset = &offset + return r +} + +// Return an account's next invoice in a Microsoft excel format. +func (r Billing_Invoice_Next) GetExcel(documentCreateDate *datatypes.Time) (resp []byte, err error) { + params := []interface{}{ + documentCreateDate, + } + err = r.Session.DoRequest("SoftLayer_Billing_Invoice_Next", "getExcel", params, &r.Options, &resp) + return +} + +// Return an account's next invoice in PDF format. +func (r Billing_Invoice_Next) GetPdf(documentCreateDate *datatypes.Time) (resp []byte, err error) { + params := []interface{}{ + documentCreateDate, + } + err = r.Session.DoRequest("SoftLayer_Billing_Invoice_Next", "getPdf", params, &r.Options, &resp) + return +} + +// Return an account's next invoice detailed portion in PDF format. +func (r Billing_Invoice_Next) GetPdfDetailed(documentCreateDate *datatypes.Time) (resp []byte, err error) { + params := []interface{}{ + documentCreateDate, + } + err = r.Session.DoRequest("SoftLayer_Billing_Invoice_Next", "getPdfDetailed", params, &r.Options, &resp) + return +} + +// The invoice tax status data type models a single status or state that an invoice can reflect in regard to an integration with a third-party tax calculation service. +type Billing_Invoice_Tax_Status struct { + Session *session.Session + Options sl.Options +} + +// GetBillingInvoiceTaxStatusService returns an instance of the Billing_Invoice_Tax_Status SoftLayer service +func GetBillingInvoiceTaxStatusService(sess *session.Session) Billing_Invoice_Tax_Status { + return Billing_Invoice_Tax_Status{Session: sess} +} + +func (r Billing_Invoice_Tax_Status) Id(id int) Billing_Invoice_Tax_Status { + r.Options.Id = &id + return r +} + +func (r Billing_Invoice_Tax_Status) Mask(mask string) Billing_Invoice_Tax_Status { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Billing_Invoice_Tax_Status) Filter(filter string) Billing_Invoice_Tax_Status { + r.Options.Filter = filter + return r +} + +func (r Billing_Invoice_Tax_Status) Limit(limit int) Billing_Invoice_Tax_Status { + r.Options.Limit = &limit + return r +} + +func (r Billing_Invoice_Tax_Status) Offset(offset int) Billing_Invoice_Tax_Status { + r.Options.Offset = &offset + return r +} + +// no documentation yet +func (r Billing_Invoice_Tax_Status) GetAllObjects() (resp []datatypes.Billing_Invoice_Tax_Status, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Invoice_Tax_Status", "getAllObjects", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Billing_Invoice_Tax_Status) GetObject() (resp datatypes.Billing_Invoice_Tax_Status, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Invoice_Tax_Status", "getObject", nil, &r.Options, &resp) + return +} + +// The invoice tax type data type models a single strategy for handling tax calculations. +type Billing_Invoice_Tax_Type struct { + Session *session.Session + Options sl.Options +} + +// GetBillingInvoiceTaxTypeService returns an instance of the Billing_Invoice_Tax_Type SoftLayer service +func GetBillingInvoiceTaxTypeService(sess *session.Session) Billing_Invoice_Tax_Type { + return Billing_Invoice_Tax_Type{Session: sess} +} + +func (r Billing_Invoice_Tax_Type) Id(id int) Billing_Invoice_Tax_Type { + r.Options.Id = &id + return r +} + +func (r Billing_Invoice_Tax_Type) Mask(mask string) Billing_Invoice_Tax_Type { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Billing_Invoice_Tax_Type) Filter(filter string) Billing_Invoice_Tax_Type { + r.Options.Filter = filter + return r +} + +func (r Billing_Invoice_Tax_Type) Limit(limit int) Billing_Invoice_Tax_Type { + r.Options.Limit = &limit + return r +} + +func (r Billing_Invoice_Tax_Type) Offset(offset int) Billing_Invoice_Tax_Type { + r.Options.Offset = &offset + return r +} + +// no documentation yet +func (r Billing_Invoice_Tax_Type) GetAllObjects() (resp []datatypes.Billing_Invoice_Tax_Type, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Invoice_Tax_Type", "getAllObjects", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Billing_Invoice_Tax_Type) GetObject() (resp datatypes.Billing_Invoice_Tax_Type, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Invoice_Tax_Type", "getObject", nil, &r.Options, &resp) + return +} + +// Every individual item that a SoftLayer customer is billed for is recorded in the SoftLayer_Billing_Item data type. Billing items range from server chassis to hard drives to control panels, bandwidth quota upgrades and port upgrade charges. Softlayer [[SoftLayer_Billing_Invoice|invoices]] are generated from the cost of a customer's billing items. Billing items are copied from the product catalog as they're ordered by customers to create a reference between an account and the billable items they own. +// +// Billing items exist in a tree relationship. Items are associated with each other by parent/child relationships. Component items such as CPU's, RAM, and software each have a parent billing item for the server chassis they're associated with. Billing Items with a null parent item do not have an associated parent item. +type Billing_Item struct { + Session *session.Session + Options sl.Options +} + +// GetBillingItemService returns an instance of the Billing_Item SoftLayer service +func GetBillingItemService(sess *session.Session) Billing_Item { + return Billing_Item{Session: sess} +} + +func (r Billing_Item) Id(id int) Billing_Item { + r.Options.Id = &id + return r +} + +func (r Billing_Item) Mask(mask string) Billing_Item { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Billing_Item) Filter(filter string) Billing_Item { + r.Options.Filter = filter + return r +} + +func (r Billing_Item) Limit(limit int) Billing_Item { + r.Options.Limit = &limit + return r +} + +func (r Billing_Item) Offset(offset int) Billing_Item { + r.Options.Offset = &offset + return r +} + +// Cancel the resource or service for a billing Item. By default the billing item will be cancelled immediately and reclaim of the resource will begin shortly. Setting the "cancelImmediately" property to false will delay the cancellation until the next bill date. +// +// +// * The reason parameter could be from the list below: +// * "No longer needed" +// * "Business closing down" +// * "Server / Upgrade Costs" +// * "Migrating to larger server" +// * "Migrating to smaller server" +// * "Migrating to a different SoftLayer datacenter" +// * "Network performance / latency" +// * "Support response / timing" +// * "Sales process / upgrades" +// * "Moving to competitor" +func (r Billing_Item) CancelItem(cancelImmediately *bool, cancelAssociatedBillingItems *bool, reason *string, customerNote *string) (resp bool, err error) { + params := []interface{}{ + cancelImmediately, + cancelAssociatedBillingItems, + reason, + customerNote, + } + err = r.Session.DoRequest("SoftLayer_Billing_Item", "cancelItem", params, &r.Options, &resp) + return +} + +// Cancel the resource or service (excluding bare metal servers) for a billing Item. The billing item will be cancelled immediately and reclaim of the resource will begin shortly. +func (r Billing_Item) CancelService() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Item", "cancelService", nil, &r.Options, &resp) + return +} + +// Cancel the resource or service for a billing Item +func (r Billing_Item) CancelServiceOnAnniversaryDate() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Item", "cancelServiceOnAnniversaryDate", nil, &r.Options, &resp) + return +} + +// Retrieve The account that a billing item belongs to. +func (r Billing_Item) GetAccount() (resp datatypes.Account, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Item", "getAccount", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Billing_Item) GetActiveAgreement() (resp datatypes.Account_Agreement, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Item", "getActiveAgreement", nil, &r.Options, &resp) + return +} + +// Retrieve A flag indicating that the billing item is under an active agreement. +func (r Billing_Item) GetActiveAgreementFlag() (resp datatypes.Account_Agreement, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Item", "getActiveAgreementFlag", nil, &r.Options, &resp) + return +} + +// Retrieve A billing item's active associated child billing items. This includes "floating" items that are not necessarily child items of this billing item. +func (r Billing_Item) GetActiveAssociatedChildren() (resp []datatypes.Billing_Item, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Item", "getActiveAssociatedChildren", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Billing_Item) GetActiveAssociatedGuestDiskBillingItems() (resp []datatypes.Billing_Item, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Item", "getActiveAssociatedGuestDiskBillingItems", nil, &r.Options, &resp) + return +} + +// Retrieve A Billing Item's active bundled billing items. +func (r Billing_Item) GetActiveBundledItems() (resp []datatypes.Billing_Item, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Item", "getActiveBundledItems", nil, &r.Options, &resp) + return +} + +// Retrieve A service cancellation request item that corresponds to the billing item. +func (r Billing_Item) GetActiveCancellationItem() (resp datatypes.Billing_Item_Cancellation_Request_Item, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Item", "getActiveCancellationItem", nil, &r.Options, &resp) + return +} + +// Retrieve A Billing Item's active child billing items. +func (r Billing_Item) GetActiveChildren() (resp []datatypes.Billing_Item, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Item", "getActiveChildren", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Billing_Item) GetActiveFlag() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Item", "getActiveFlag", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Billing_Item) GetActiveSparePoolAssociatedGuestDiskBillingItems() (resp []datatypes.Billing_Item, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Item", "getActiveSparePoolAssociatedGuestDiskBillingItems", nil, &r.Options, &resp) + return +} + +// Retrieve A Billing Item's spare pool bundled billing items. +func (r Billing_Item) GetActiveSparePoolBundledItems() (resp []datatypes.Billing_Item, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Item", "getActiveSparePoolBundledItems", nil, &r.Options, &resp) + return +} + +// Retrieve A billing item's associated parent. This is to be used for billing items that are "floating", and therefore are not child items of any parent billing item. If it is desired to associate an item to another, populate this with the SoftLayer_Billing_Item ID of that associated parent item. +func (r Billing_Item) GetAssociatedBillingItem() (resp datatypes.Billing_Item, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Item", "getAssociatedBillingItem", nil, &r.Options, &resp) + return +} + +// Retrieve A history of billing items which a billing item has been associated with. +func (r Billing_Item) GetAssociatedBillingItemHistory() (resp []datatypes.Billing_Item_Association_History, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Item", "getAssociatedBillingItemHistory", nil, &r.Options, &resp) + return +} + +// Retrieve A Billing Item's associated child billing items. This includes "floating" items that are not necessarily child billing items of this billing item. +func (r Billing_Item) GetAssociatedChildren() (resp []datatypes.Billing_Item, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Item", "getAssociatedChildren", nil, &r.Options, &resp) + return +} + +// Retrieve A billing item's associated parent billing item. This object will be the same as the parent billing item if parentId is set. +func (r Billing_Item) GetAssociatedParent() (resp []datatypes.Billing_Item, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Item", "getAssociatedParent", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Billing_Item) GetAvailableMatchingVlans() (resp []datatypes.Network_Vlan, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Item", "getAvailableMatchingVlans", nil, &r.Options, &resp) + return +} + +// Retrieve The bandwidth allocation for a billing item. +func (r Billing_Item) GetBandwidthAllocation() (resp datatypes.Network_Bandwidth_Version1_Allocation, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Item", "getBandwidthAllocation", nil, &r.Options, &resp) + return +} + +// Retrieve A billing item's recurring child items that have once been billed and are scheduled to be billed in the future. +func (r Billing_Item) GetBillableChildren() (resp []datatypes.Billing_Item, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Item", "getBillableChildren", nil, &r.Options, &resp) + return +} + +// Retrieve A Billing Item's bundled billing items +func (r Billing_Item) GetBundleItems() (resp []datatypes.Product_Item_Bundles, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Item", "getBundleItems", nil, &r.Options, &resp) + return +} + +// Retrieve A Billing Item's bundled billing items' +func (r Billing_Item) GetBundledItems() (resp []datatypes.Billing_Item, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Item", "getBundledItems", nil, &r.Options, &resp) + return +} + +// Retrieve A Billing Item's active child billing items. +func (r Billing_Item) GetCanceledChildren() (resp []datatypes.Billing_Item, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Item", "getCanceledChildren", nil, &r.Options, &resp) + return +} + +// Retrieve The billing item's cancellation reason. +func (r Billing_Item) GetCancellationReason() (resp datatypes.Billing_Item_Cancellation_Reason, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Item", "getCancellationReason", nil, &r.Options, &resp) + return +} + +// Retrieve This will return any cancellation requests that are associated with this billing item. +func (r Billing_Item) GetCancellationRequests() (resp []datatypes.Billing_Item_Cancellation_Request, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Item", "getCancellationRequests", nil, &r.Options, &resp) + return +} + +// Retrieve The item category to which the billing item's item belongs. +func (r Billing_Item) GetCategory() (resp datatypes.Product_Item_Category, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Item", "getCategory", nil, &r.Options, &resp) + return +} + +// Retrieve A Billing Item's child billing items' +func (r Billing_Item) GetChildren() (resp []datatypes.Billing_Item, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Item", "getChildren", nil, &r.Options, &resp) + return +} + +// Retrieve A Billing Item's active child billing items. +func (r Billing_Item) GetChildrenWithActiveAgreement() (resp []datatypes.Billing_Item, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Item", "getChildrenWithActiveAgreement", nil, &r.Options, &resp) + return +} + +// Retrieve For product items which have a downgrade path defined, this will return those product items. +func (r Billing_Item) GetDowngradeItems() (resp []datatypes.Product_Item, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Item", "getDowngradeItems", nil, &r.Options, &resp) + return +} + +// Retrieve A Billing Item's associated child billing items, excluding some items with a $0.00 recurring fee. +func (r Billing_Item) GetFilteredNextInvoiceChildren() (resp []datatypes.Billing_Item, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Item", "getFilteredNextInvoiceChildren", nil, &r.Options, &resp) + return +} + +// Retrieve A flag that will reflect whether this billing item is billed on an hourly basis or not. +func (r Billing_Item) GetHourlyFlag() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Item", "getHourlyFlag", nil, &r.Options, &resp) + return +} + +// Retrieve Invoice items associated with this billing item +func (r Billing_Item) GetInvoiceItem() (resp datatypes.Billing_Invoice_Item, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Item", "getInvoiceItem", nil, &r.Options, &resp) + return +} + +// Retrieve All invoice items associated with the billing item +func (r Billing_Item) GetInvoiceItems() (resp []datatypes.Billing_Invoice_Item, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Item", "getInvoiceItems", nil, &r.Options, &resp) + return +} + +// Retrieve The entry in the SoftLayer product catalog that a billing item is based upon. +func (r Billing_Item) GetItem() (resp datatypes.Product_Item, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Item", "getItem", nil, &r.Options, &resp) + return +} + +// Retrieve The location of the billing item. Some billing items have physical properties such as the server itself. For items such as these, we provide location information. +func (r Billing_Item) GetLocation() (resp datatypes.Location, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Item", "getLocation", nil, &r.Options, &resp) + return +} + +// Retrieve A Billing Item's child billing items and associated items' +func (r Billing_Item) GetNextInvoiceChildren() (resp []datatypes.Billing_Item, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Item", "getNextInvoiceChildren", nil, &r.Options, &resp) + return +} + +// Retrieve A Billing Item's total, including any child billing items if they exist.' +func (r Billing_Item) GetNextInvoiceTotalOneTimeAmount() (resp datatypes.Float64, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Item", "getNextInvoiceTotalOneTimeAmount", nil, &r.Options, &resp) + return +} + +// Retrieve A Billing Item's total, including any child billing items if they exist.' +func (r Billing_Item) GetNextInvoiceTotalOneTimeTaxAmount() (resp datatypes.Float64, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Item", "getNextInvoiceTotalOneTimeTaxAmount", nil, &r.Options, &resp) + return +} + +// Retrieve A Billing Item's total, including any child billing items and associated billing items if they exist.' +func (r Billing_Item) GetNextInvoiceTotalRecurringAmount() (resp datatypes.Float64, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Item", "getNextInvoiceTotalRecurringAmount", nil, &r.Options, &resp) + return +} + +// Retrieve This is deprecated and will always be zero. Because tax is calculated in real-time, previewing the next recurring invoice is pre-tax only. +func (r Billing_Item) GetNextInvoiceTotalRecurringTaxAmount() (resp datatypes.Float64, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Item", "getNextInvoiceTotalRecurringTaxAmount", nil, &r.Options, &resp) + return +} + +// Retrieve A Billing Item's associated child billing items, excluding ALL items with a $0.00 recurring fee. +func (r Billing_Item) GetNonZeroNextInvoiceChildren() (resp []datatypes.Billing_Item, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Item", "getNonZeroNextInvoiceChildren", nil, &r.Options, &resp) + return +} + +// getObject retrieves the SoftLayer_Billing_Item object whose ID number corresponds to the ID number of the init parameter passed to the SoftLayer_Billing_Item service. You can only retrieve billing items tied to the account that your portal user is assigned to. Billing items are an account's items of billable items. There are "parent" billing items and "child" billing items. The server billing item is generally referred to as a parent billing item. The items tied to a server, such as ram, harddrives, and operating systems are considered "child" billing items. +func (r Billing_Item) GetObject() (resp datatypes.Billing_Item, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Item", "getObject", nil, &r.Options, &resp) + return +} + +// Retrieve A billing item's original order item. Simply a reference to the original order from which this billing item was created. +func (r Billing_Item) GetOrderItem() (resp datatypes.Billing_Order_Item, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Item", "getOrderItem", nil, &r.Options, &resp) + return +} + +// Retrieve The original physical location for this billing item--may differ from current. +func (r Billing_Item) GetOriginalLocation() (resp datatypes.Location, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Item", "getOriginalLocation", nil, &r.Options, &resp) + return +} + +// Retrieve The package under which this billing item was sold. A Package is the general grouping of products as seen on our order forms. +func (r Billing_Item) GetPackage() (resp datatypes.Product_Package, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Item", "getPackage", nil, &r.Options, &resp) + return +} + +// Retrieve A billing item's parent item. If a billing item has no parent item then this value is null. +func (r Billing_Item) GetParent() (resp datatypes.Billing_Item, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Item", "getParent", nil, &r.Options, &resp) + return +} + +// Retrieve A billing item's parent item. If a billing item has no parent item then this value is null. +func (r Billing_Item) GetParentVirtualGuestBillingItem() (resp datatypes.Billing_Item_Virtual_Guest, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Item", "getParentVirtualGuestBillingItem", nil, &r.Options, &resp) + return +} + +// Retrieve This flag indicates whether a billing item is scheduled to be canceled or not. +func (r Billing_Item) GetPendingCancellationFlag() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Item", "getPendingCancellationFlag", nil, &r.Options, &resp) + return +} + +// Retrieve The new order item that will replace this billing item. +func (r Billing_Item) GetPendingOrderItem() (resp datatypes.Billing_Order_Item, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Item", "getPendingOrderItem", nil, &r.Options, &resp) + return +} + +// Retrieve Provisioning transaction for this billing item +func (r Billing_Item) GetProvisionTransaction() (resp datatypes.Provisioning_Version1_Transaction, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Item", "getProvisionTransaction", nil, &r.Options, &resp) + return +} + +// This service returns billing items of a specified category code. This service should be used to retrieve billing items that you wish to cancel. Some billing items can be canceled via [[SoftLayer_Security_Certificate_Request|service cancellation]] service. +// +// In order to find billing items for cancellation, use [[SoftLayer_Product_Item_Category::getValidCancelableServiceItemCategories|product categories]] service to retrieve category codes that are eligible for cancellation. +func (r Billing_Item) GetServiceBillingItemsByCategory(categoryCode *string, includeZeroRecurringFee *bool) (resp []datatypes.Billing_Item, err error) { + params := []interface{}{ + categoryCode, + includeZeroRecurringFee, + } + err = r.Session.DoRequest("SoftLayer_Billing_Item", "getServiceBillingItemsByCategory", params, &r.Options, &resp) + return +} + +// Retrieve A friendly description of software component +func (r Billing_Item) GetSoftwareDescription() (resp datatypes.Software_Description, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Item", "getSoftwareDescription", nil, &r.Options, &resp) + return +} + +// Retrieve Billing items whose product item has an upgrade path defined in our system will return the next product item in the upgrade path. +func (r Billing_Item) GetUpgradeItem() (resp datatypes.Product_Item, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Item", "getUpgradeItem", nil, &r.Options, &resp) + return +} + +// Retrieve Billing items whose product item has an upgrade path defined in our system will return all the product items in the upgrade path. +func (r Billing_Item) GetUpgradeItems() (resp []datatypes.Product_Item, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Item", "getUpgradeItems", nil, &r.Options, &resp) + return +} + +// Remove the association from a billing item. +func (r Billing_Item) RemoveAssociationId() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Item", "removeAssociationId", nil, &r.Options, &resp) + return +} + +// Set an associated billing item to an orphan billing item. Associations allow you to tie an "orphaned" billing item, any non-server billing item that doesn't have a parent item such as secondary IP subnets or StorageLayer accounts, to a server billing item. You may only set an association for an orphan to a server. You cannot associate a server to an orphan if the either the server or orphan billing items have a cancellation date set. +func (r Billing_Item) SetAssociationId(associatedId *int) (resp bool, err error) { + params := []interface{}{ + associatedId, + } + err = r.Session.DoRequest("SoftLayer_Billing_Item", "setAssociationId", params, &r.Options, &resp) + return +} + +// Void a previously made cancellation for a service +func (r Billing_Item) VoidCancelService() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Item", "voidCancelService", nil, &r.Options, &resp) + return +} + +// The SoftLayer_Billing_Item_Cancellation_Reason data type contains cancellation reasons. +type Billing_Item_Cancellation_Reason struct { + Session *session.Session + Options sl.Options +} + +// GetBillingItemCancellationReasonService returns an instance of the Billing_Item_Cancellation_Reason SoftLayer service +func GetBillingItemCancellationReasonService(sess *session.Session) Billing_Item_Cancellation_Reason { + return Billing_Item_Cancellation_Reason{Session: sess} +} + +func (r Billing_Item_Cancellation_Reason) Id(id int) Billing_Item_Cancellation_Reason { + r.Options.Id = &id + return r +} + +func (r Billing_Item_Cancellation_Reason) Mask(mask string) Billing_Item_Cancellation_Reason { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Billing_Item_Cancellation_Reason) Filter(filter string) Billing_Item_Cancellation_Reason { + r.Options.Filter = filter + return r +} + +func (r Billing_Item_Cancellation_Reason) Limit(limit int) Billing_Item_Cancellation_Reason { + r.Options.Limit = &limit + return r +} + +func (r Billing_Item_Cancellation_Reason) Offset(offset int) Billing_Item_Cancellation_Reason { + r.Options.Offset = &offset + return r +} + +// getAllCancellationReasons() retrieves a list of all cancellation reasons that a server/service may be assigned to. +func (r Billing_Item_Cancellation_Reason) GetAllCancellationReasons() (resp []datatypes.Billing_Item_Cancellation_Reason, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Item_Cancellation_Reason", "getAllCancellationReasons", nil, &r.Options, &resp) + return +} + +// Retrieve An billing cancellation reason category. +func (r Billing_Item_Cancellation_Reason) GetBillingCancellationReasonCategory() (resp datatypes.Billing_Item_Cancellation_Reason_Category, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Item_Cancellation_Reason", "getBillingCancellationReasonCategory", nil, &r.Options, &resp) + return +} + +// Retrieve The corresponding billing items having the specific cancellation reason. +func (r Billing_Item_Cancellation_Reason) GetBillingItems() (resp []datatypes.Billing_Item, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Item_Cancellation_Reason", "getBillingItems", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Billing_Item_Cancellation_Reason) GetObject() (resp datatypes.Billing_Item_Cancellation_Reason, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Item_Cancellation_Reason", "getObject", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Billing_Item_Cancellation_Reason) GetTranslatedReason() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Item_Cancellation_Reason", "getTranslatedReason", nil, &r.Options, &resp) + return +} + +// The SoftLayer_Billing_Item_Cancellation_Reason_Category data type contains cancellation reason categories. +type Billing_Item_Cancellation_Reason_Category struct { + Session *session.Session + Options sl.Options +} + +// GetBillingItemCancellationReasonCategoryService returns an instance of the Billing_Item_Cancellation_Reason_Category SoftLayer service +func GetBillingItemCancellationReasonCategoryService(sess *session.Session) Billing_Item_Cancellation_Reason_Category { + return Billing_Item_Cancellation_Reason_Category{Session: sess} +} + +func (r Billing_Item_Cancellation_Reason_Category) Id(id int) Billing_Item_Cancellation_Reason_Category { + r.Options.Id = &id + return r +} + +func (r Billing_Item_Cancellation_Reason_Category) Mask(mask string) Billing_Item_Cancellation_Reason_Category { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Billing_Item_Cancellation_Reason_Category) Filter(filter string) Billing_Item_Cancellation_Reason_Category { + r.Options.Filter = filter + return r +} + +func (r Billing_Item_Cancellation_Reason_Category) Limit(limit int) Billing_Item_Cancellation_Reason_Category { + r.Options.Limit = &limit + return r +} + +func (r Billing_Item_Cancellation_Reason_Category) Offset(offset int) Billing_Item_Cancellation_Reason_Category { + r.Options.Offset = &offset + return r +} + +// getAllCancellationReasonCategories() retrieves a list of all cancellation reason categories +func (r Billing_Item_Cancellation_Reason_Category) GetAllCancellationReasonCategories() (resp []datatypes.Billing_Item_Cancellation_Reason_Category, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Item_Cancellation_Reason_Category", "getAllCancellationReasonCategories", nil, &r.Options, &resp) + return +} + +// Retrieve The corresponding billing cancellation reasons having the specific billing cancellation reason category. +func (r Billing_Item_Cancellation_Reason_Category) GetBillingCancellationReasons() (resp []datatypes.Billing_Item_Cancellation_Reason, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Item_Cancellation_Reason_Category", "getBillingCancellationReasons", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Billing_Item_Cancellation_Reason_Category) GetObject() (resp datatypes.Billing_Item_Cancellation_Reason_Category, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Item_Cancellation_Reason_Category", "getObject", nil, &r.Options, &resp) + return +} + +// SoftLayer_Billing_Item_Cancellation_Request data type is used to cancel service billing items. +type Billing_Item_Cancellation_Request struct { + Session *session.Session + Options sl.Options +} + +// GetBillingItemCancellationRequestService returns an instance of the Billing_Item_Cancellation_Request SoftLayer service +func GetBillingItemCancellationRequestService(sess *session.Session) Billing_Item_Cancellation_Request { + return Billing_Item_Cancellation_Request{Session: sess} +} + +func (r Billing_Item_Cancellation_Request) Id(id int) Billing_Item_Cancellation_Request { + r.Options.Id = &id + return r +} + +func (r Billing_Item_Cancellation_Request) Mask(mask string) Billing_Item_Cancellation_Request { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Billing_Item_Cancellation_Request) Filter(filter string) Billing_Item_Cancellation_Request { + r.Options.Filter = filter + return r +} + +func (r Billing_Item_Cancellation_Request) Limit(limit int) Billing_Item_Cancellation_Request { + r.Options.Limit = &limit + return r +} + +func (r Billing_Item_Cancellation_Request) Offset(offset int) Billing_Item_Cancellation_Request { + r.Options.Offset = &offset + return r +} + +// This method creates a service cancellation request. +// +// You need to have "Cancel Services" privilege to create a cancellation request. You have to provide at least one SoftLayer_Billing_Item_Cancellation_Request_Item in the "items" property. Make sure billing item's category code belongs to the cancelable product codes. You can retrieve the cancelable product category by the [[SoftLayer_Product_Item_Category::getValidCancelableServiceItemCategories|product category]] service. +func (r Billing_Item_Cancellation_Request) CreateObject(templateObject *datatypes.Billing_Item_Cancellation_Request) (resp datatypes.Billing_Item_Cancellation_Request, err error) { + params := []interface{}{ + templateObject, + } + err = r.Session.DoRequest("SoftLayer_Billing_Item_Cancellation_Request", "createObject", params, &r.Options, &resp) + return +} + +// Retrieve The SoftLayer account that a service cancellation request belongs to. +func (r Billing_Item_Cancellation_Request) GetAccount() (resp datatypes.Account, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Item_Cancellation_Request", "getAccount", nil, &r.Options, &resp) + return +} + +// This method returns all service cancellation requests. +// +// Make sure to include the "resultLimit" in the SOAP request header for quicker response. If there is no result limit header is passed, it will return the latest 25 results by default. +func (r Billing_Item_Cancellation_Request) GetAllCancellationRequests() (resp []datatypes.Billing_Item_Cancellation_Request, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Item_Cancellation_Request", "getAllCancellationRequests", nil, &r.Options, &resp) + return +} + +// Services can be canceled 2 or 3 days prior to your next bill date. This service returns the time by which a cancellation request submission is permitted in the current billing cycle. If the current time falls into the cut off date, this will return next earliest cancellation cut off date. +// +// Available category codes are: service, server +func (r Billing_Item_Cancellation_Request) GetCancellationCutoffDate(accountId *int, categoryCode *string) (resp datatypes.Time, err error) { + params := []interface{}{ + accountId, + categoryCode, + } + err = r.Session.DoRequest("SoftLayer_Billing_Item_Cancellation_Request", "getCancellationCutoffDate", params, &r.Options, &resp) + return +} + +// Retrieve A collection of service cancellation items. +func (r Billing_Item_Cancellation_Request) GetItems() (resp []datatypes.Billing_Item_Cancellation_Request_Item, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Item_Cancellation_Request", "getItems", nil, &r.Options, &resp) + return +} + +// getObject retrieves the SoftLayer_Billing_Item_Cancellation_Request object whose ID number corresponds to the ID number of the init parameter passed to the SoftLayer_Billing_Item_Cancellation_Request service. You can only retrieve cancellation request records that are assigned to your SoftLayer account. +func (r Billing_Item_Cancellation_Request) GetObject() (resp datatypes.Billing_Item_Cancellation_Request, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Item_Cancellation_Request", "getObject", nil, &r.Options, &resp) + return +} + +// Retrieve The status of a service cancellation request. +func (r Billing_Item_Cancellation_Request) GetStatus() (resp datatypes.Billing_Item_Cancellation_Request_Status, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Item_Cancellation_Request", "getStatus", nil, &r.Options, &resp) + return +} + +// Retrieve The ticket that is associated with the service cancellation request. +func (r Billing_Item_Cancellation_Request) GetTicket() (resp datatypes.Ticket, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Item_Cancellation_Request", "getTicket", nil, &r.Options, &resp) + return +} + +// Retrieve The user that initiated a service cancellation request. +func (r Billing_Item_Cancellation_Request) GetUser() (resp datatypes.User_Customer, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Item_Cancellation_Request", "getUser", nil, &r.Options, &resp) + return +} + +// This method removes a cancellation item from a cancellation request that is in "Pending" or "Approved" status. +func (r Billing_Item_Cancellation_Request) RemoveCancellationItem(itemId *int) (resp bool, err error) { + params := []interface{}{ + itemId, + } + err = r.Session.DoRequest("SoftLayer_Billing_Item_Cancellation_Request", "removeCancellationItem", params, &r.Options, &resp) + return +} + +// This method examined if a billing item is eligible for cancellation. It checks if the billing item you provided is already in your existing cancellation request. +func (r Billing_Item_Cancellation_Request) ValidateBillingItemForCancellation(billingItemId *int) (resp bool, err error) { + params := []interface{}{ + billingItemId, + } + err = r.Session.DoRequest("SoftLayer_Billing_Item_Cancellation_Request", "validateBillingItemForCancellation", params, &r.Options, &resp) + return +} + +// This method voids a service cancellation request in "Pending" or "Approved" status. +func (r Billing_Item_Cancellation_Request) Void(closeRelatedTicketFlag *bool) (resp bool, err error) { + params := []interface{}{ + closeRelatedTicketFlag, + } + err = r.Session.DoRequest("SoftLayer_Billing_Item_Cancellation_Request", "void", params, &r.Options, &resp) + return +} + +// no documentation yet +type Billing_Item_Virtual_DedicatedHost struct { + Session *session.Session + Options sl.Options +} + +// GetBillingItemVirtualDedicatedHostService returns an instance of the Billing_Item_Virtual_DedicatedHost SoftLayer service +func GetBillingItemVirtualDedicatedHostService(sess *session.Session) Billing_Item_Virtual_DedicatedHost { + return Billing_Item_Virtual_DedicatedHost{Session: sess} +} + +func (r Billing_Item_Virtual_DedicatedHost) Id(id int) Billing_Item_Virtual_DedicatedHost { + r.Options.Id = &id + return r +} + +func (r Billing_Item_Virtual_DedicatedHost) Mask(mask string) Billing_Item_Virtual_DedicatedHost { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Billing_Item_Virtual_DedicatedHost) Filter(filter string) Billing_Item_Virtual_DedicatedHost { + r.Options.Filter = filter + return r +} + +func (r Billing_Item_Virtual_DedicatedHost) Limit(limit int) Billing_Item_Virtual_DedicatedHost { + r.Options.Limit = &limit + return r +} + +func (r Billing_Item_Virtual_DedicatedHost) Offset(offset int) Billing_Item_Virtual_DedicatedHost { + r.Options.Offset = &offset + return r +} + +// Cancel the resource or service for a billing Item. By default the billing item will be cancelled immediately and reclaim of the resource will begin shortly. Setting the "cancelImmediately" property to false will delay the cancellation until the next bill date. +// +// +// * The reason parameter could be from the list below: +// * "No longer needed" +// * "Business closing down" +// * "Server / Upgrade Costs" +// * "Migrating to larger server" +// * "Migrating to smaller server" +// * "Migrating to a different SoftLayer datacenter" +// * "Network performance / latency" +// * "Support response / timing" +// * "Sales process / upgrades" +// * "Moving to competitor" +func (r Billing_Item_Virtual_DedicatedHost) CancelItem(cancelImmediately *bool, cancelAssociatedBillingItems *bool, reason *string, customerNote *string) (resp bool, err error) { + params := []interface{}{ + cancelImmediately, + cancelAssociatedBillingItems, + reason, + customerNote, + } + err = r.Session.DoRequest("SoftLayer_Billing_Item_Virtual_DedicatedHost", "cancelItem", params, &r.Options, &resp) + return +} + +// Cancel the resource or service (excluding bare metal servers) for a billing Item. The billing item will be cancelled immediately and reclaim of the resource will begin shortly. +func (r Billing_Item_Virtual_DedicatedHost) CancelService() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Item_Virtual_DedicatedHost", "cancelService", nil, &r.Options, &resp) + return +} + +// Cancel the resource or service for a billing Item +func (r Billing_Item_Virtual_DedicatedHost) CancelServiceOnAnniversaryDate() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Item_Virtual_DedicatedHost", "cancelServiceOnAnniversaryDate", nil, &r.Options, &resp) + return +} + +// Retrieve The account that a billing item belongs to. +func (r Billing_Item_Virtual_DedicatedHost) GetAccount() (resp datatypes.Account, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Item_Virtual_DedicatedHost", "getAccount", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Billing_Item_Virtual_DedicatedHost) GetActiveAgreement() (resp datatypes.Account_Agreement, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Item_Virtual_DedicatedHost", "getActiveAgreement", nil, &r.Options, &resp) + return +} + +// Retrieve A flag indicating that the billing item is under an active agreement. +func (r Billing_Item_Virtual_DedicatedHost) GetActiveAgreementFlag() (resp datatypes.Account_Agreement, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Item_Virtual_DedicatedHost", "getActiveAgreementFlag", nil, &r.Options, &resp) + return +} + +// Retrieve A billing item's active associated child billing items. This includes "floating" items that are not necessarily child items of this billing item. +func (r Billing_Item_Virtual_DedicatedHost) GetActiveAssociatedChildren() (resp []datatypes.Billing_Item, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Item_Virtual_DedicatedHost", "getActiveAssociatedChildren", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Billing_Item_Virtual_DedicatedHost) GetActiveAssociatedGuestDiskBillingItems() (resp []datatypes.Billing_Item, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Item_Virtual_DedicatedHost", "getActiveAssociatedGuestDiskBillingItems", nil, &r.Options, &resp) + return +} + +// Retrieve A Billing Item's active bundled billing items. +func (r Billing_Item_Virtual_DedicatedHost) GetActiveBundledItems() (resp []datatypes.Billing_Item, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Item_Virtual_DedicatedHost", "getActiveBundledItems", nil, &r.Options, &resp) + return +} + +// Retrieve A service cancellation request item that corresponds to the billing item. +func (r Billing_Item_Virtual_DedicatedHost) GetActiveCancellationItem() (resp datatypes.Billing_Item_Cancellation_Request_Item, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Item_Virtual_DedicatedHost", "getActiveCancellationItem", nil, &r.Options, &resp) + return +} + +// Retrieve A Billing Item's active child billing items. +func (r Billing_Item_Virtual_DedicatedHost) GetActiveChildren() (resp []datatypes.Billing_Item, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Item_Virtual_DedicatedHost", "getActiveChildren", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Billing_Item_Virtual_DedicatedHost) GetActiveFlag() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Item_Virtual_DedicatedHost", "getActiveFlag", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Billing_Item_Virtual_DedicatedHost) GetActiveSparePoolAssociatedGuestDiskBillingItems() (resp []datatypes.Billing_Item, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Item_Virtual_DedicatedHost", "getActiveSparePoolAssociatedGuestDiskBillingItems", nil, &r.Options, &resp) + return +} + +// Retrieve A Billing Item's spare pool bundled billing items. +func (r Billing_Item_Virtual_DedicatedHost) GetActiveSparePoolBundledItems() (resp []datatypes.Billing_Item, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Item_Virtual_DedicatedHost", "getActiveSparePoolBundledItems", nil, &r.Options, &resp) + return +} + +// Retrieve A billing item's associated parent. This is to be used for billing items that are "floating", and therefore are not child items of any parent billing item. If it is desired to associate an item to another, populate this with the SoftLayer_Billing_Item ID of that associated parent item. +func (r Billing_Item_Virtual_DedicatedHost) GetAssociatedBillingItem() (resp datatypes.Billing_Item, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Item_Virtual_DedicatedHost", "getAssociatedBillingItem", nil, &r.Options, &resp) + return +} + +// Retrieve A history of billing items which a billing item has been associated with. +func (r Billing_Item_Virtual_DedicatedHost) GetAssociatedBillingItemHistory() (resp []datatypes.Billing_Item_Association_History, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Item_Virtual_DedicatedHost", "getAssociatedBillingItemHistory", nil, &r.Options, &resp) + return +} + +// Retrieve A Billing Item's associated child billing items. This includes "floating" items that are not necessarily child billing items of this billing item. +func (r Billing_Item_Virtual_DedicatedHost) GetAssociatedChildren() (resp []datatypes.Billing_Item, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Item_Virtual_DedicatedHost", "getAssociatedChildren", nil, &r.Options, &resp) + return +} + +// Retrieve A billing item's associated parent billing item. This object will be the same as the parent billing item if parentId is set. +func (r Billing_Item_Virtual_DedicatedHost) GetAssociatedParent() (resp []datatypes.Billing_Item, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Item_Virtual_DedicatedHost", "getAssociatedParent", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Billing_Item_Virtual_DedicatedHost) GetAvailableMatchingVlans() (resp []datatypes.Network_Vlan, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Item_Virtual_DedicatedHost", "getAvailableMatchingVlans", nil, &r.Options, &resp) + return +} + +// Retrieve The bandwidth allocation for a billing item. +func (r Billing_Item_Virtual_DedicatedHost) GetBandwidthAllocation() (resp datatypes.Network_Bandwidth_Version1_Allocation, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Item_Virtual_DedicatedHost", "getBandwidthAllocation", nil, &r.Options, &resp) + return +} + +// Retrieve A billing item's recurring child items that have once been billed and are scheduled to be billed in the future. +func (r Billing_Item_Virtual_DedicatedHost) GetBillableChildren() (resp []datatypes.Billing_Item, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Item_Virtual_DedicatedHost", "getBillableChildren", nil, &r.Options, &resp) + return +} + +// Retrieve A Billing Item's bundled billing items +func (r Billing_Item_Virtual_DedicatedHost) GetBundleItems() (resp []datatypes.Product_Item_Bundles, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Item_Virtual_DedicatedHost", "getBundleItems", nil, &r.Options, &resp) + return +} + +// Retrieve A Billing Item's bundled billing items' +func (r Billing_Item_Virtual_DedicatedHost) GetBundledItems() (resp []datatypes.Billing_Item, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Item_Virtual_DedicatedHost", "getBundledItems", nil, &r.Options, &resp) + return +} + +// Retrieve A Billing Item's active child billing items. +func (r Billing_Item_Virtual_DedicatedHost) GetCanceledChildren() (resp []datatypes.Billing_Item, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Item_Virtual_DedicatedHost", "getCanceledChildren", nil, &r.Options, &resp) + return +} + +// Retrieve The billing item's cancellation reason. +func (r Billing_Item_Virtual_DedicatedHost) GetCancellationReason() (resp datatypes.Billing_Item_Cancellation_Reason, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Item_Virtual_DedicatedHost", "getCancellationReason", nil, &r.Options, &resp) + return +} + +// Retrieve This will return any cancellation requests that are associated with this billing item. +func (r Billing_Item_Virtual_DedicatedHost) GetCancellationRequests() (resp []datatypes.Billing_Item_Cancellation_Request, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Item_Virtual_DedicatedHost", "getCancellationRequests", nil, &r.Options, &resp) + return +} + +// Retrieve The item category to which the billing item's item belongs. +func (r Billing_Item_Virtual_DedicatedHost) GetCategory() (resp datatypes.Product_Item_Category, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Item_Virtual_DedicatedHost", "getCategory", nil, &r.Options, &resp) + return +} + +// Retrieve A Billing Item's child billing items' +func (r Billing_Item_Virtual_DedicatedHost) GetChildren() (resp []datatypes.Billing_Item, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Item_Virtual_DedicatedHost", "getChildren", nil, &r.Options, &resp) + return +} + +// Retrieve A Billing Item's active child billing items. +func (r Billing_Item_Virtual_DedicatedHost) GetChildrenWithActiveAgreement() (resp []datatypes.Billing_Item, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Item_Virtual_DedicatedHost", "getChildrenWithActiveAgreement", nil, &r.Options, &resp) + return +} + +// Retrieve For product items which have a downgrade path defined, this will return those product items. +func (r Billing_Item_Virtual_DedicatedHost) GetDowngradeItems() (resp []datatypes.Product_Item, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Item_Virtual_DedicatedHost", "getDowngradeItems", nil, &r.Options, &resp) + return +} + +// Retrieve A Billing Item's associated child billing items, excluding some items with a $0.00 recurring fee. +func (r Billing_Item_Virtual_DedicatedHost) GetFilteredNextInvoiceChildren() (resp []datatypes.Billing_Item, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Item_Virtual_DedicatedHost", "getFilteredNextInvoiceChildren", nil, &r.Options, &resp) + return +} + +// Retrieve A flag that will reflect whether this billing item is billed on an hourly basis or not. +func (r Billing_Item_Virtual_DedicatedHost) GetHourlyFlag() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Item_Virtual_DedicatedHost", "getHourlyFlag", nil, &r.Options, &resp) + return +} + +// Retrieve Invoice items associated with this billing item +func (r Billing_Item_Virtual_DedicatedHost) GetInvoiceItem() (resp datatypes.Billing_Invoice_Item, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Item_Virtual_DedicatedHost", "getInvoiceItem", nil, &r.Options, &resp) + return +} + +// Retrieve All invoice items associated with the billing item +func (r Billing_Item_Virtual_DedicatedHost) GetInvoiceItems() (resp []datatypes.Billing_Invoice_Item, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Item_Virtual_DedicatedHost", "getInvoiceItems", nil, &r.Options, &resp) + return +} + +// Retrieve The entry in the SoftLayer product catalog that a billing item is based upon. +func (r Billing_Item_Virtual_DedicatedHost) GetItem() (resp datatypes.Product_Item, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Item_Virtual_DedicatedHost", "getItem", nil, &r.Options, &resp) + return +} + +// Retrieve The location of the billing item. Some billing items have physical properties such as the server itself. For items such as these, we provide location information. +func (r Billing_Item_Virtual_DedicatedHost) GetLocation() (resp datatypes.Location, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Item_Virtual_DedicatedHost", "getLocation", nil, &r.Options, &resp) + return +} + +// Retrieve A Billing Item's child billing items and associated items' +func (r Billing_Item_Virtual_DedicatedHost) GetNextInvoiceChildren() (resp []datatypes.Billing_Item, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Item_Virtual_DedicatedHost", "getNextInvoiceChildren", nil, &r.Options, &resp) + return +} + +// Retrieve A Billing Item's total, including any child billing items if they exist.' +func (r Billing_Item_Virtual_DedicatedHost) GetNextInvoiceTotalOneTimeAmount() (resp datatypes.Float64, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Item_Virtual_DedicatedHost", "getNextInvoiceTotalOneTimeAmount", nil, &r.Options, &resp) + return +} + +// Retrieve A Billing Item's total, including any child billing items if they exist.' +func (r Billing_Item_Virtual_DedicatedHost) GetNextInvoiceTotalOneTimeTaxAmount() (resp datatypes.Float64, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Item_Virtual_DedicatedHost", "getNextInvoiceTotalOneTimeTaxAmount", nil, &r.Options, &resp) + return +} + +// Retrieve A Billing Item's total, including any child billing items and associated billing items if they exist.' +func (r Billing_Item_Virtual_DedicatedHost) GetNextInvoiceTotalRecurringAmount() (resp datatypes.Float64, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Item_Virtual_DedicatedHost", "getNextInvoiceTotalRecurringAmount", nil, &r.Options, &resp) + return +} + +// Retrieve This is deprecated and will always be zero. Because tax is calculated in real-time, previewing the next recurring invoice is pre-tax only. +func (r Billing_Item_Virtual_DedicatedHost) GetNextInvoiceTotalRecurringTaxAmount() (resp datatypes.Float64, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Item_Virtual_DedicatedHost", "getNextInvoiceTotalRecurringTaxAmount", nil, &r.Options, &resp) + return +} + +// Retrieve A Billing Item's associated child billing items, excluding ALL items with a $0.00 recurring fee. +func (r Billing_Item_Virtual_DedicatedHost) GetNonZeroNextInvoiceChildren() (resp []datatypes.Billing_Item, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Item_Virtual_DedicatedHost", "getNonZeroNextInvoiceChildren", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Billing_Item_Virtual_DedicatedHost) GetObject() (resp datatypes.Billing_Item_Virtual_DedicatedHost, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Item_Virtual_DedicatedHost", "getObject", nil, &r.Options, &resp) + return +} + +// Retrieve A billing item's original order item. Simply a reference to the original order from which this billing item was created. +func (r Billing_Item_Virtual_DedicatedHost) GetOrderItem() (resp datatypes.Billing_Order_Item, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Item_Virtual_DedicatedHost", "getOrderItem", nil, &r.Options, &resp) + return +} + +// Retrieve The original physical location for this billing item--may differ from current. +func (r Billing_Item_Virtual_DedicatedHost) GetOriginalLocation() (resp datatypes.Location, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Item_Virtual_DedicatedHost", "getOriginalLocation", nil, &r.Options, &resp) + return +} + +// Retrieve The package under which this billing item was sold. A Package is the general grouping of products as seen on our order forms. +func (r Billing_Item_Virtual_DedicatedHost) GetPackage() (resp datatypes.Product_Package, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Item_Virtual_DedicatedHost", "getPackage", nil, &r.Options, &resp) + return +} + +// Retrieve A billing item's parent item. If a billing item has no parent item then this value is null. +func (r Billing_Item_Virtual_DedicatedHost) GetParent() (resp datatypes.Billing_Item, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Item_Virtual_DedicatedHost", "getParent", nil, &r.Options, &resp) + return +} + +// Retrieve A billing item's parent item. If a billing item has no parent item then this value is null. +func (r Billing_Item_Virtual_DedicatedHost) GetParentVirtualGuestBillingItem() (resp datatypes.Billing_Item_Virtual_Guest, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Item_Virtual_DedicatedHost", "getParentVirtualGuestBillingItem", nil, &r.Options, &resp) + return +} + +// Retrieve This flag indicates whether a billing item is scheduled to be canceled or not. +func (r Billing_Item_Virtual_DedicatedHost) GetPendingCancellationFlag() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Item_Virtual_DedicatedHost", "getPendingCancellationFlag", nil, &r.Options, &resp) + return +} + +// Retrieve The new order item that will replace this billing item. +func (r Billing_Item_Virtual_DedicatedHost) GetPendingOrderItem() (resp datatypes.Billing_Order_Item, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Item_Virtual_DedicatedHost", "getPendingOrderItem", nil, &r.Options, &resp) + return +} + +// Retrieve Provisioning transaction for this billing item +func (r Billing_Item_Virtual_DedicatedHost) GetProvisionTransaction() (resp datatypes.Provisioning_Version1_Transaction, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Item_Virtual_DedicatedHost", "getProvisionTransaction", nil, &r.Options, &resp) + return +} + +// Retrieve The resource for a virtual dedicated host billing item. +func (r Billing_Item_Virtual_DedicatedHost) GetResource() (resp datatypes.Virtual_DedicatedHost, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Item_Virtual_DedicatedHost", "getResource", nil, &r.Options, &resp) + return +} + +// This service returns billing items of a specified category code. This service should be used to retrieve billing items that you wish to cancel. Some billing items can be canceled via [[SoftLayer_Security_Certificate_Request|service cancellation]] service. +// +// In order to find billing items for cancellation, use [[SoftLayer_Product_Item_Category::getValidCancelableServiceItemCategories|product categories]] service to retrieve category codes that are eligible for cancellation. +func (r Billing_Item_Virtual_DedicatedHost) GetServiceBillingItemsByCategory(categoryCode *string, includeZeroRecurringFee *bool) (resp []datatypes.Billing_Item, err error) { + params := []interface{}{ + categoryCode, + includeZeroRecurringFee, + } + err = r.Session.DoRequest("SoftLayer_Billing_Item_Virtual_DedicatedHost", "getServiceBillingItemsByCategory", params, &r.Options, &resp) + return +} + +// Retrieve A friendly description of software component +func (r Billing_Item_Virtual_DedicatedHost) GetSoftwareDescription() (resp datatypes.Software_Description, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Item_Virtual_DedicatedHost", "getSoftwareDescription", nil, &r.Options, &resp) + return +} + +// Retrieve Billing items whose product item has an upgrade path defined in our system will return the next product item in the upgrade path. +func (r Billing_Item_Virtual_DedicatedHost) GetUpgradeItem() (resp datatypes.Product_Item, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Item_Virtual_DedicatedHost", "getUpgradeItem", nil, &r.Options, &resp) + return +} + +// Retrieve Billing items whose product item has an upgrade path defined in our system will return all the product items in the upgrade path. +func (r Billing_Item_Virtual_DedicatedHost) GetUpgradeItems() (resp []datatypes.Product_Item, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Item_Virtual_DedicatedHost", "getUpgradeItems", nil, &r.Options, &resp) + return +} + +// Remove the association from a billing item. +func (r Billing_Item_Virtual_DedicatedHost) RemoveAssociationId() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Item_Virtual_DedicatedHost", "removeAssociationId", nil, &r.Options, &resp) + return +} + +// Set an associated billing item to an orphan billing item. Associations allow you to tie an "orphaned" billing item, any non-server billing item that doesn't have a parent item such as secondary IP subnets or StorageLayer accounts, to a server billing item. You may only set an association for an orphan to a server. You cannot associate a server to an orphan if the either the server or orphan billing items have a cancellation date set. +func (r Billing_Item_Virtual_DedicatedHost) SetAssociationId(associatedId *int) (resp bool, err error) { + params := []interface{}{ + associatedId, + } + err = r.Session.DoRequest("SoftLayer_Billing_Item_Virtual_DedicatedHost", "setAssociationId", params, &r.Options, &resp) + return +} + +// Void a previously made cancellation for a service +func (r Billing_Item_Virtual_DedicatedHost) VoidCancelService() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Item_Virtual_DedicatedHost", "voidCancelService", nil, &r.Options, &resp) + return +} + +// The SoftLayer_Billing_Order data type contains general information relating to an individual order applied to a SoftLayer customer account or to a new customer. Personal information in this type such as names, addresses, and phone numbers are taken from the account's contact information at the time the order is generated for existing SoftLayer customer. +type Billing_Order struct { + Session *session.Session + Options sl.Options +} + +// GetBillingOrderService returns an instance of the Billing_Order SoftLayer service +func GetBillingOrderService(sess *session.Session) Billing_Order { + return Billing_Order{Session: sess} +} + +func (r Billing_Order) Id(id int) Billing_Order { + r.Options.Id = &id + return r +} + +func (r Billing_Order) Mask(mask string) Billing_Order { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Billing_Order) Filter(filter string) Billing_Order { + r.Options.Filter = filter + return r +} + +func (r Billing_Order) Limit(limit int) Billing_Order { + r.Options.Limit = &limit + return r +} + +func (r Billing_Order) Offset(offset int) Billing_Order { + r.Options.Offset = &offset + return r +} + +// When an order has been modified, the customer will need to approve the changes. This method will allow the customer to approve the changes. +func (r Billing_Order) ApproveModifiedOrder() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Order", "approveModifiedOrder", nil, &r.Options, &resp) + return +} + +// Retrieve The [[SoftLayer_Account|account]] to which an order belongs. +func (r Billing_Order) GetAccount() (resp datatypes.Account, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Order", "getAccount", nil, &r.Options, &resp) + return +} + +// This will get all billing orders for your account. +func (r Billing_Order) GetAllObjects() (resp []datatypes.Billing_Order, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Order", "getAllObjects", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Billing_Order) GetBrand() (resp datatypes.Brand, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Order", "getBrand", nil, &r.Options, &resp) + return +} + +// Retrieve A cart is similar to a quote, except that it can be continually modified by the customer and does not have locked-in prices. Not all orders will have a cart associated with them. See [[SoftLayer_Billing_Order_Cart]] for more information. +func (r Billing_Order) GetCart() (resp datatypes.Billing_Order_Cart, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Order", "getCart", nil, &r.Options, &resp) + return +} + +// Retrieve The [[SoftLayer_Billing_Order_Item (type)|order items]] that are core restricted +func (r Billing_Order) GetCoreRestrictedItems() (resp []datatypes.Billing_Order_Item, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Order", "getCoreRestrictedItems", nil, &r.Options, &resp) + return +} + +// Retrieve All credit card transactions associated with this order. If this order was not placed with a credit card, this will be empty. +func (r Billing_Order) GetCreditCardTransactions() (resp []datatypes.Billing_Payment_Card_Transaction, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Order", "getCreditCardTransactions", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Billing_Order) GetExchangeRate() (resp datatypes.Billing_Currency_ExchangeRate, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Order", "getExchangeRate", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Billing_Order) GetInitialInvoice() (resp datatypes.Billing_Invoice, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Order", "getInitialInvoice", nil, &r.Options, &resp) + return +} + +// Retrieve The SoftLayer_Billing_Order_items included in an order. +func (r Billing_Order) GetItems() (resp []datatypes.Billing_Order_Item, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Order", "getItems", nil, &r.Options, &resp) + return +} + +// getObject retrieves the SoftLayer_Billing_Order object whose ID number corresponds to the ID number of the init parameter passed to the SoftLayer_Billing_Order service. You can only retrieve orders that are assigned to your portal user's account. +func (r Billing_Order) GetObject() (resp datatypes.Billing_Order, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Order", "getObject", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Billing_Order) GetOrderApprovalDate() (resp datatypes.Time, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Order", "getOrderApprovalDate", nil, &r.Options, &resp) + return +} + +// Retrieve An order's non-server items total monthly fee. +func (r Billing_Order) GetOrderNonServerMonthlyAmount() (resp datatypes.Float64, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Order", "getOrderNonServerMonthlyAmount", nil, &r.Options, &resp) + return +} + +// Retrieve An order's server items total monthly fee. +func (r Billing_Order) GetOrderServerMonthlyAmount() (resp datatypes.Float64, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Order", "getOrderServerMonthlyAmount", nil, &r.Options, &resp) + return +} + +// Get a list of [[SoftLayer_Container_Billing_Order_Status]] objects. +func (r Billing_Order) GetOrderStatuses() (resp []datatypes.Container_Billing_Order_Status, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Order", "getOrderStatuses", nil, &r.Options, &resp) + return +} + +// Retrieve An order's top level items. This normally includes the server line item and any non-server additional services such as NAS or ISCSI. +func (r Billing_Order) GetOrderTopLevelItems() (resp []datatypes.Billing_Order_Item, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Order", "getOrderTopLevelItems", nil, &r.Options, &resp) + return +} + +// Retrieve This amount represents the order's initial charge including set up fee and taxes. +func (r Billing_Order) GetOrderTotalAmount() (resp datatypes.Float64, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Order", "getOrderTotalAmount", nil, &r.Options, &resp) + return +} + +// Retrieve An order's total one time amount summing all the set up fees, the labor fees and the one time fees. Taxes will be applied for non-tax-exempt. This amount represents the initial fees that will be charged. +func (r Billing_Order) GetOrderTotalOneTime() (resp datatypes.Float64, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Order", "getOrderTotalOneTime", nil, &r.Options, &resp) + return +} + +// Retrieve An order's total one time amount. This amount represents the initial fees before tax. +func (r Billing_Order) GetOrderTotalOneTimeAmount() (resp datatypes.Float64, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Order", "getOrderTotalOneTimeAmount", nil, &r.Options, &resp) + return +} + +// Retrieve An order's total one time tax amount. This amount represents the tax that will be applied to the total charge, if the SoftLayer_Account tied to a SoftLayer_Billing_Order is a taxable account. +func (r Billing_Order) GetOrderTotalOneTimeTaxAmount() (resp datatypes.Float64, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Order", "getOrderTotalOneTimeTaxAmount", nil, &r.Options, &resp) + return +} + +// Retrieve An order's total recurring amount. Taxes will be applied for non-tax-exempt. This amount represents the fees that will be charged on a recurring (usually monthly) basis. +func (r Billing_Order) GetOrderTotalRecurring() (resp datatypes.Float64, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Order", "getOrderTotalRecurring", nil, &r.Options, &resp) + return +} + +// Retrieve An order's total recurring amount. This amount represents the fees that will be charged on a recurring (usually monthly) basis. +func (r Billing_Order) GetOrderTotalRecurringAmount() (resp datatypes.Float64, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Order", "getOrderTotalRecurringAmount", nil, &r.Options, &resp) + return +} + +// Retrieve The total tax amount of the recurring fees, if the SoftLayer_Account tied to a SoftLayer_Billing_Order is a taxable account. +func (r Billing_Order) GetOrderTotalRecurringTaxAmount() (resp datatypes.Float64, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Order", "getOrderTotalRecurringTaxAmount", nil, &r.Options, &resp) + return +} + +// Retrieve An order's total setup fee. +func (r Billing_Order) GetOrderTotalSetupAmount() (resp datatypes.Float64, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Order", "getOrderTotalSetupAmount", nil, &r.Options, &resp) + return +} + +// Retrieve The type of an order. This lets you know where this order was generated from. +func (r Billing_Order) GetOrderType() (resp datatypes.Billing_Order_Type, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Order", "getOrderType", nil, &r.Options, &resp) + return +} + +// Retrieve All PayPal transactions associated with this order. If this order was not placed with PayPal, this will be empty. +func (r Billing_Order) GetPaypalTransactions() (resp []datatypes.Billing_Payment_PayPal_Transaction, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Order", "getPaypalTransactions", nil, &r.Options, &resp) + return +} + +// Retrieve a PDF record of a SoftLayer quote. If the order is not a quote, an error will be thrown. +func (r Billing_Order) GetPdf() (resp []byte, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Order", "getPdf", nil, &r.Options, &resp) + return +} + +// Retrieve the default filename of an order PDF. +func (r Billing_Order) GetPdfFilename() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Order", "getPdfFilename", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Billing_Order) GetPresaleEvent() (resp datatypes.Sales_Presale_Event, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Order", "getPresaleEvent", nil, &r.Options, &resp) + return +} + +// Retrieve The quote of an order. This quote holds information about its expiration date, creation date, name and status. This information is tied to an order having the status 'QUOTE' +func (r Billing_Order) GetQuote() (resp datatypes.Billing_Order_Quote, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Order", "getQuote", nil, &r.Options, &resp) + return +} + +// Generate an [[SoftLayer_Container_Product_Order|order container]] from a billing order. This will take into account promotions, reseller status, estimated taxes and all other standard order verification processes. +func (r Billing_Order) GetRecalculatedOrderContainer(message *string, ignoreDiscountsFlag *bool) (resp datatypes.Container_Product_Order, err error) { + params := []interface{}{ + message, + ignoreDiscountsFlag, + } + err = r.Session.DoRequest("SoftLayer_Billing_Order", "getRecalculatedOrderContainer", params, &r.Options, &resp) + return +} + +// Generate a [[SoftLayer_Container_Product_Order_Receipt]] object with all the order information. +func (r Billing_Order) GetReceipt() (resp datatypes.Container_Product_Order_Receipt, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Order", "getReceipt", nil, &r.Options, &resp) + return +} + +// Retrieve The Referral Partner who referred this order. (Only necessary for new customer orders) +func (r Billing_Order) GetReferralPartner() (resp datatypes.Account, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Order", "getReferralPartner", nil, &r.Options, &resp) + return +} + +// Retrieve This flag indicates an order is an upgrade. +func (r Billing_Order) GetUpgradeRequestFlag() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Order", "getUpgradeRequestFlag", nil, &r.Options, &resp) + return +} + +// Retrieve The SoftLayer_User_Customer object tied to an order. +func (r Billing_Order) GetUserRecord() (resp datatypes.User_Customer, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Order", "getUserRecord", nil, &r.Options, &resp) + return +} + +// When an order has been modified, it will contain a status indicating so. This method checks that status and also verifies that the active user's account is the same as the account on the order. +func (r Billing_Order) IsPendingEditApproval() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Order", "isPendingEditApproval", nil, &r.Options, &resp) + return +} + +// no documentation yet +type Billing_Order_Cart struct { + Session *session.Session + Options sl.Options +} + +// GetBillingOrderCartService returns an instance of the Billing_Order_Cart SoftLayer service +func GetBillingOrderCartService(sess *session.Session) Billing_Order_Cart { + return Billing_Order_Cart{Session: sess} +} + +func (r Billing_Order_Cart) Id(id int) Billing_Order_Cart { + r.Options.Id = &id + return r +} + +func (r Billing_Order_Cart) Mask(mask string) Billing_Order_Cart { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Billing_Order_Cart) Filter(filter string) Billing_Order_Cart { + r.Options.Filter = filter + return r +} + +func (r Billing_Order_Cart) Limit(limit int) Billing_Order_Cart { + r.Options.Limit = &limit + return r +} + +func (r Billing_Order_Cart) Offset(offset int) Billing_Order_Cart { + r.Options.Offset = &offset + return r +} + +// This method is used to transfer an anonymous quote to the active user and associated account. An anonymous quote is one that was created by a user without being authenticated. If a quote was created anonymously and then the customer attempts to access that anonymous quote via the API (which requires authentication), the customer will be unable to retrieve the quote due to the security restrictions in place. By providing the ability for a customer to claim a quote, s/he will be able to pull the anonymous quote onto his/her account and successfully view the quote. +// +// To claim a quote, both the quote id and the quote key (the 32-character random string) must be provided. +func (r Billing_Order_Cart) Claim(quoteKey *string, quoteId *int) (resp datatypes.Billing_Order_Quote, err error) { + params := []interface{}{ + quoteKey, + quoteId, + } + err = r.Session.DoRequest("SoftLayer_Billing_Order_Cart", "claim", params, &r.Options, &resp) + return +} + +// When creating a new cart, the order data is sent through SoftLayer_Product_Order::verifyOrder to make sure that the cart contains valid data. If an issue is found with the order, an exception will be thrown and you will receive the same response as if SoftLayer_Product_Order::verifyOrder were called directly. Once the order verification is complete, the cart will be created. +// +// The response is the new cart id. +func (r Billing_Order_Cart) CreateCart(orderData *datatypes.Container_Product_Order) (resp int, err error) { + params := []interface{}{ + orderData, + } + err = r.Session.DoRequest("SoftLayer_Billing_Order_Cart", "createCart", params, &r.Options, &resp) + return +} + +// If a cart is no longer needed, it can be deleted using this service. Once a cart has been deleted, it cannot be retrieved again. +func (r Billing_Order_Cart) DeleteCart() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Order_Cart", "deleteCart", nil, &r.Options, &resp) + return +} + +// Account master users and sub-users in the SoftLayer customer portal can delete the quote of an order. +func (r Billing_Order_Cart) DeleteQuote() (resp datatypes.Billing_Order_Quote, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Order_Cart", "deleteQuote", nil, &r.Options, &resp) + return +} + +// Retrieve A quote's corresponding account. +func (r Billing_Order_Cart) GetAccount() (resp datatypes.Account, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Order_Cart", "getAccount", nil, &r.Options, &resp) + return +} + +// Retrieve a valid cart record of a SoftLayer order. +func (r Billing_Order_Cart) GetCartByCartKey(cartKey *string) (resp datatypes.Billing_Order_Cart, err error) { + params := []interface{}{ + cartKey, + } + err = r.Session.DoRequest("SoftLayer_Billing_Order_Cart", "getCartByCartKey", params, &r.Options, &resp) + return +} + +// no documentation yet +func (r Billing_Order_Cart) GetObject() (resp datatypes.Billing_Order_Cart, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Order_Cart", "getObject", nil, &r.Options, &resp) + return +} + +// Retrieve This order contains the records for which products were selected for this quote. +func (r Billing_Order_Cart) GetOrder() (resp datatypes.Billing_Order, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Order_Cart", "getOrder", nil, &r.Options, &resp) + return +} + +// Retrieve These are all the orders that were created from this quote. +func (r Billing_Order_Cart) GetOrdersFromQuote() (resp []datatypes.Billing_Order, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Order_Cart", "getOrdersFromQuote", nil, &r.Options, &resp) + return +} + +// Retrieve a PDF copy of the cart. +func (r Billing_Order_Cart) GetPdf() (resp []byte, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Order_Cart", "getPdf", nil, &r.Options, &resp) + return +} + +// This method will return a [[SoftLayer_Billing_Order_Quote]] that is identified by the quote key specified. If you do not have access to the quote or it does not exist, an exception will be thrown indicating so. +func (r Billing_Order_Cart) GetQuoteByQuoteKey(quoteKey *string) (resp datatypes.Billing_Order_Quote, err error) { + params := []interface{}{ + quoteKey, + } + err = r.Session.DoRequest("SoftLayer_Billing_Order_Cart", "getQuoteByQuoteKey", params, &r.Options, &resp) + return +} + +// This method allows the customer to retrieve a saved cart and put it in a format that's suitable to be sent to SoftLayer_Billing_Order_Cart::createCart to create a new cart or to SoftLayer_Billing_Order_Cart::updateCart to update an existing cart. +func (r Billing_Order_Cart) GetRecalculatedOrderContainer(orderData *datatypes.Container_Product_Order, orderBeingPlacedFlag *bool) (resp datatypes.Container_Product_Order, err error) { + params := []interface{}{ + orderData, + orderBeingPlacedFlag, + } + err = r.Session.DoRequest("SoftLayer_Billing_Order_Cart", "getRecalculatedOrderContainer", params, &r.Options, &resp) + return +} + +// Use this method for placing server orders and additional services orders. The same applies for this as with verifyOrder. Send in the SoftLayer_Container_Product_Order_Hardware_Server for server orders. In addition to verifying the order, placeOrder() also makes an initial authorization on the SoftLayer_Account tied to this order, if a credit card is on file. If the account tied to this order is a paypal customer, an URL will also be returned to the customer. After placing the order, you must go to this URL to finish the authorization process. This tells paypal that you indeed want to place the order. After going to this URL, it will direct you back to a SoftLayer webpage that tells us you have finished the process. After this, it will go to sales for final approval. +func (r Billing_Order_Cart) PlaceOrder(orderData interface{}) (resp datatypes.Container_Product_Order_Receipt, err error) { + err = datatypes.SetComplexType(orderData) + if err != nil { + return + } + params := []interface{}{ + orderData, + } + err = r.Session.DoRequest("SoftLayer_Billing_Order_Cart", "placeOrder", params, &r.Options, &resp) + return +} + +// Use this method for placing server quotes and additional services quotes. The same applies for this as with verifyOrder. Send in the SoftLayer_Container_Product_Order_Hardware_Server for server quotes. In addition to verifying the quote, placeQuote() also makes an initial authorization on the SoftLayer_Account tied to this order, if a credit card is on file. If the account tied to this order is a paypal customer, an URL will also be returned to the customer. After placing the order, you must go to this URL to finish the authorization process. This tells paypal that you indeed want to place the order. After going to this URL, it will direct you back to a SoftLayer webpage that tells us you have finished the process. +func (r Billing_Order_Cart) PlaceQuote(orderData *datatypes.Container_Product_Order) (resp datatypes.Container_Product_Order, err error) { + params := []interface{}{ + orderData, + } + err = r.Session.DoRequest("SoftLayer_Billing_Order_Cart", "placeQuote", params, &r.Options, &resp) + return +} + +// Account master users and sub-users in the SoftLayer customer portal can save the quote of an order to avoid its deletion after 5 days or its expiration after 2 days. +func (r Billing_Order_Cart) SaveQuote() (resp datatypes.Billing_Order_Quote, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Order_Cart", "saveQuote", nil, &r.Options, &resp) + return +} + +// Like SoftLayer_Billing_Order_Cart::createCart, the order data will be sent through SoftLayer_Product_Order::verifyOrder to make sure that the updated cart information is valid. Once it has been verified, the new order data will be saved. +// +// This will return the cart id. +func (r Billing_Order_Cart) UpdateCart(orderData *datatypes.Container_Product_Order) (resp int, err error) { + params := []interface{}{ + orderData, + } + err = r.Session.DoRequest("SoftLayer_Billing_Order_Cart", "updateCart", params, &r.Options, &resp) + return +} + +// Use this method for placing server orders and additional services orders. The same applies for this as with verifyOrder. Send in the SoftLayer_Container_Product_Order_Hardware_Server for server orders. In addition to verifying the order, placeOrder() also makes an initial authorization on the SoftLayer_Account tied to this order, if a credit card is on file. If the account tied to this order is a paypal customer, an URL will also be returned to the customer. After placing the order, you must go to this URL to finish the authorization process. This tells paypal that you indeed want to place the order. After going to this URL, it will direct you back to a SoftLayer webpage that tells us you have finished the process. After this, it will go to sales for final approval. +func (r Billing_Order_Cart) VerifyOrder(orderData interface{}) (resp datatypes.Container_Product_Order, err error) { + err = datatypes.SetComplexType(orderData) + if err != nil { + return + } + params := []interface{}{ + orderData, + } + err = r.Session.DoRequest("SoftLayer_Billing_Order_Cart", "verifyOrder", params, &r.Options, &resp) + return +} + +// Every individual item that a SoftLayer customer is billed for is recorded in the SoftLayer_Billing_Item data type. Billing items range from server chassis to hard drives to control panels, bandwidth quota upgrades and port upgrade charges. Softlayer [[SoftLayer_Billing_Invoice|invoices]] are generated from the cost of a customer's billing items. Billing items are copied from the product catalog as they're ordered by customers to create a reference between an account and the billable items they own. +// +// Billing items exist in a tree relationship. Items are associated with each other by parent/child relationships. Component items such as CPU's, RAM, and software each have a parent billing item for the server chassis they're associated with. Billing Items with a null parent item do not have an associated parent item. +type Billing_Order_Item struct { + Session *session.Session + Options sl.Options +} + +// GetBillingOrderItemService returns an instance of the Billing_Order_Item SoftLayer service +func GetBillingOrderItemService(sess *session.Session) Billing_Order_Item { + return Billing_Order_Item{Session: sess} +} + +func (r Billing_Order_Item) Id(id int) Billing_Order_Item { + r.Options.Id = &id + return r +} + +func (r Billing_Order_Item) Mask(mask string) Billing_Order_Item { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Billing_Order_Item) Filter(filter string) Billing_Order_Item { + r.Options.Filter = filter + return r +} + +func (r Billing_Order_Item) Limit(limit int) Billing_Order_Item { + r.Options.Limit = &limit + return r +} + +func (r Billing_Order_Item) Offset(offset int) Billing_Order_Item { + r.Options.Offset = &offset + return r +} + +// Retrieve The SoftLayer_Billing_Item tied to the order item. +func (r Billing_Order_Item) GetBillingItem() (resp datatypes.Billing_Item, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Order_Item", "getBillingItem", nil, &r.Options, &resp) + return +} + +// Retrieve The other items included with an ordered item. +func (r Billing_Order_Item) GetBundledItems() (resp []datatypes.Billing_Order_Item, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Order_Item", "getBundledItems", nil, &r.Options, &resp) + return +} + +// Retrieve The item category tied to an order item. +func (r Billing_Order_Item) GetCategory() (resp datatypes.Product_Item_Category, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Order_Item", "getCategory", nil, &r.Options, &resp) + return +} + +// Retrieve The child order items for an order item. All server order items should have children. These children are considered a part of the server. +func (r Billing_Order_Item) GetChildren() (resp []datatypes.Billing_Order_Item, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Order_Item", "getChildren", nil, &r.Options, &resp) + return +} + +// Retrieve A hardware's universally unique identifier. +func (r Billing_Order_Item) GetGlobalIdentifier() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Order_Item", "getGlobalIdentifier", nil, &r.Options, &resp) + return +} + +// Retrieve The component type tied to an order item. All hardware-specific items should have a generic hardware component. +func (r Billing_Order_Item) GetHardwareGenericComponent() (resp datatypes.Hardware_Component_Model_Generic, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Order_Item", "getHardwareGenericComponent", nil, &r.Options, &resp) + return +} + +// Retrieve The SoftLayer_Product_Item tied to an order item. The item is the actual definition of the product being sold. +func (r Billing_Order_Item) GetItem() (resp datatypes.Product_Item, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Order_Item", "getItem", nil, &r.Options, &resp) + return +} + +// Retrieve This is an item's category answers. +func (r Billing_Order_Item) GetItemCategoryAnswers() (resp []datatypes.Billing_Order_Item_Category_Answer, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Order_Item", "getItemCategoryAnswers", nil, &r.Options, &resp) + return +} + +// Retrieve The SoftLayer_Product_Item_Price tied to an order item. The item price object describes the cost of an item. +func (r Billing_Order_Item) GetItemPrice() (resp datatypes.Product_Item_Price, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Order_Item", "getItemPrice", nil, &r.Options, &resp) + return +} + +// Retrieve The location of an ordered item. This is usually the same as the server it is being ordered with. Otherwise it describes the location of the additional service being ordered. +func (r Billing_Order_Item) GetLocation() (resp datatypes.Location, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Order_Item", "getLocation", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Billing_Order_Item) GetNextOrderChildren() (resp []datatypes.Billing_Order_Item, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Order_Item", "getNextOrderChildren", nil, &r.Options, &resp) + return +} + +// getObject retrieves the SoftLayer_Billing_Item object whose ID number corresponds to the ID number of the init parameter passed to the SoftLayer_Billing_Item service. You can only retrieve billing items tied to the account that your portal user is assigned to. Billing items are an account's items of billable items. There are "parent" billing items and "child" billing items. The server billing item is generally referred to as a parent billing item. The items tied to a server, such as ram, harddrives, and operating systems are considered "child" billing items. +func (r Billing_Order_Item) GetObject() (resp datatypes.Billing_Order_Item, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Order_Item", "getObject", nil, &r.Options, &resp) + return +} + +// Retrieve This is only populated when an upgrade order is placed. The old billing item represents what the billing was before the upgrade happened. +func (r Billing_Order_Item) GetOldBillingItem() (resp datatypes.Billing_Item, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Order_Item", "getOldBillingItem", nil, &r.Options, &resp) + return +} + +// Retrieve The order to which this item belongs. The order contains all the information related to the items included in an order +func (r Billing_Order_Item) GetOrder() (resp datatypes.Billing_Order, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Order_Item", "getOrder", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Billing_Order_Item) GetOrderApprovalDate() (resp datatypes.Time, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Order_Item", "getOrderApprovalDate", nil, &r.Options, &resp) + return +} + +// Retrieve The SoftLayer_Product_Package an order item is a part of. +func (r Billing_Order_Item) GetPackage() (resp datatypes.Product_Package, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Order_Item", "getPackage", nil, &r.Options, &resp) + return +} + +// Retrieve The parent order item ID for an item. Items that are associated with a server will have a parent. The parent will be the server item itself. +func (r Billing_Order_Item) GetParent() (resp datatypes.Billing_Order_Item, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Order_Item", "getParent", nil, &r.Options, &resp) + return +} + +// Retrieve A count of power supplies contained within this SoftLayer_Billing_Order +func (r Billing_Order_Item) GetRedundantPowerSupplyCount() (resp uint, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Order_Item", "getRedundantPowerSupplyCount", nil, &r.Options, &resp) + return +} + +// Retrieve For ordered items that are software items, a full description of that software can be found with this property. +func (r Billing_Order_Item) GetSoftwareDescription() (resp datatypes.Software_Description, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Order_Item", "getSoftwareDescription", nil, &r.Options, &resp) + return +} + +// Retrieve The drive storage groups that are attached to this billing order item. +func (r Billing_Order_Item) GetStorageGroups() (resp []datatypes.Configuration_Storage_Group_Order, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Order_Item", "getStorageGroups", nil, &r.Options, &resp) + return +} + +// Retrieve The recurring fee of an ordered item. This amount represents the fees that will be charged on a recurring (usually monthly) basis. +func (r Billing_Order_Item) GetTotalRecurringAmount() (resp datatypes.Float64, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Order_Item", "getTotalRecurringAmount", nil, &r.Options, &resp) + return +} + +// Retrieve The next SoftLayer_Product_Item in the upgrade path for this order item. +func (r Billing_Order_Item) GetUpgradeItem() (resp datatypes.Product_Item, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Order_Item", "getUpgradeItem", nil, &r.Options, &resp) + return +} + +// The SoftLayer_Billing_Oder_Quote data type contains general information relating to an individual order applied to a SoftLayer customer account or to a new customer. Personal information in this type such as names, addresses, and phone numbers are taken from the account's contact information at the time the quote is generated for existing SoftLayer customer. +type Billing_Order_Quote struct { + Session *session.Session + Options sl.Options +} + +// GetBillingOrderQuoteService returns an instance of the Billing_Order_Quote SoftLayer service +func GetBillingOrderQuoteService(sess *session.Session) Billing_Order_Quote { + return Billing_Order_Quote{Session: sess} +} + +func (r Billing_Order_Quote) Id(id int) Billing_Order_Quote { + r.Options.Id = &id + return r +} + +func (r Billing_Order_Quote) Mask(mask string) Billing_Order_Quote { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Billing_Order_Quote) Filter(filter string) Billing_Order_Quote { + r.Options.Filter = filter + return r +} + +func (r Billing_Order_Quote) Limit(limit int) Billing_Order_Quote { + r.Options.Limit = &limit + return r +} + +func (r Billing_Order_Quote) Offset(offset int) Billing_Order_Quote { + r.Options.Offset = &offset + return r +} + +// This method is used to transfer an anonymous quote to the active user and associated account. An anonymous quote is one that was created by a user without being authenticated. If a quote was created anonymously and then the customer attempts to access that anonymous quote via the API (which requires authentication), the customer will be unable to retrieve the quote due to the security restrictions in place. By providing the ability for a customer to claim a quote, s/he will be able to pull the anonymous quote onto his/her account and successfully view the quote. +// +// To claim a quote, both the quote id and the quote key (the 32-character random string) must be provided. +func (r Billing_Order_Quote) Claim(quoteKey *string, quoteId *int) (resp datatypes.Billing_Order_Quote, err error) { + params := []interface{}{ + quoteKey, + quoteId, + } + err = r.Session.DoRequest("SoftLayer_Billing_Order_Quote", "claim", params, &r.Options, &resp) + return +} + +// Account master users and sub-users in the SoftLayer customer portal can delete the quote of an order. +func (r Billing_Order_Quote) DeleteQuote() (resp datatypes.Billing_Order_Quote, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Order_Quote", "deleteQuote", nil, &r.Options, &resp) + return +} + +// Retrieve A quote's corresponding account. +func (r Billing_Order_Quote) GetAccount() (resp datatypes.Account, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Order_Quote", "getAccount", nil, &r.Options, &resp) + return +} + +// getObject retrieves the SoftLayer_Billing_Order_Quote object whose ID number corresponds to the ID number of the init parameter passed to the SoftLayer_Billing_Order_Quote service. You can only retrieve quotes that are assigned to your portal user's account. +func (r Billing_Order_Quote) GetObject() (resp datatypes.Billing_Order_Quote, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Order_Quote", "getObject", nil, &r.Options, &resp) + return +} + +// Retrieve This order contains the records for which products were selected for this quote. +func (r Billing_Order_Quote) GetOrder() (resp datatypes.Billing_Order, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Order_Quote", "getOrder", nil, &r.Options, &resp) + return +} + +// Retrieve These are all the orders that were created from this quote. +func (r Billing_Order_Quote) GetOrdersFromQuote() (resp []datatypes.Billing_Order, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Order_Quote", "getOrdersFromQuote", nil, &r.Options, &resp) + return +} + +// Retrieve a PDF record of a SoftLayer quoted order. SoftLayer keeps PDF records of all quoted orders for customer retrieval from the portal and API. You must have a PDF reader installed in order to view these quoted order files. +func (r Billing_Order_Quote) GetPdf() (resp []byte, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Order_Quote", "getPdf", nil, &r.Options, &resp) + return +} + +// This method will return a [[SoftLayer_Billing_Order_Quote]] that is identified by the quote key specified. If you do not have access to the quote or it does not exist, an exception will be thrown indicating so. +func (r Billing_Order_Quote) GetQuoteByQuoteKey(quoteKey *string) (resp datatypes.Billing_Order_Quote, err error) { + params := []interface{}{ + quoteKey, + } + err = r.Session.DoRequest("SoftLayer_Billing_Order_Quote", "getQuoteByQuoteKey", params, &r.Options, &resp) + return +} + +// Generate an [[SoftLayer_Container_Product_Order|order container]] from the previously-created quote. This will take into account promotions, reseller status, estimated taxes and all other standard order verification processes. +func (r Billing_Order_Quote) GetRecalculatedOrderContainer(userOrderData *datatypes.Container_Product_Order, orderBeingPlacedFlag *bool) (resp datatypes.Container_Product_Order, err error) { + params := []interface{}{ + userOrderData, + orderBeingPlacedFlag, + } + err = r.Session.DoRequest("SoftLayer_Billing_Order_Quote", "getRecalculatedOrderContainer", params, &r.Options, &resp) + return +} + +// Use this method for placing server orders and additional services orders. The same applies for this as with verifyOrder. Send in the SoftLayer_Container_Product_Order_Hardware_Server for server orders. In addition to verifying the order, placeOrder() also makes an initial authorization on the SoftLayer_Account tied to this order, if a credit card is on file. If the account tied to this order is a paypal customer, an URL will also be returned to the customer. After placing the order, you must go to this URL to finish the authorization process. This tells paypal that you indeed want to place the order. After going to this URL, it will direct you back to a SoftLayer webpage that tells us you have finished the process. After this, it will go to sales for final approval. +func (r Billing_Order_Quote) PlaceOrder(orderData interface{}) (resp datatypes.Container_Product_Order_Receipt, err error) { + err = datatypes.SetComplexType(orderData) + if err != nil { + return + } + params := []interface{}{ + orderData, + } + err = r.Session.DoRequest("SoftLayer_Billing_Order_Quote", "placeOrder", params, &r.Options, &resp) + return +} + +// Use this method for placing server quotes and additional services quotes. The same applies for this as with verifyOrder. Send in the SoftLayer_Container_Product_Order_Hardware_Server for server quotes. In addition to verifying the quote, placeQuote() also makes an initial authorization on the SoftLayer_Account tied to this order, if a credit card is on file. If the account tied to this order is a paypal customer, an URL will also be returned to the customer. After placing the order, you must go to this URL to finish the authorization process. This tells paypal that you indeed want to place the order. After going to this URL, it will direct you back to a SoftLayer webpage that tells us you have finished the process. +func (r Billing_Order_Quote) PlaceQuote(orderData *datatypes.Container_Product_Order) (resp datatypes.Container_Product_Order, err error) { + params := []interface{}{ + orderData, + } + err = r.Session.DoRequest("SoftLayer_Billing_Order_Quote", "placeQuote", params, &r.Options, &resp) + return +} + +// Account master users and sub-users in the SoftLayer customer portal can save the quote of an order to avoid its deletion after 5 days or its expiration after 2 days. +func (r Billing_Order_Quote) SaveQuote() (resp datatypes.Billing_Order_Quote, err error) { + err = r.Session.DoRequest("SoftLayer_Billing_Order_Quote", "saveQuote", nil, &r.Options, &resp) + return +} + +// Use this method for placing server orders and additional services orders. The same applies for this as with verifyOrder. Send in the SoftLayer_Container_Product_Order_Hardware_Server for server orders. In addition to verifying the order, placeOrder() also makes an initial authorization on the SoftLayer_Account tied to this order, if a credit card is on file. If the account tied to this order is a paypal customer, an URL will also be returned to the customer. After placing the order, you must go to this URL to finish the authorization process. This tells paypal that you indeed want to place the order. After going to this URL, it will direct you back to a SoftLayer webpage that tells us you have finished the process. After this, it will go to sales for final approval. +func (r Billing_Order_Quote) VerifyOrder(orderData interface{}) (resp datatypes.Container_Product_Order, err error) { + err = datatypes.SetComplexType(orderData) + if err != nil { + return + } + params := []interface{}{ + orderData, + } + err = r.Session.DoRequest("SoftLayer_Billing_Order_Quote", "verifyOrder", params, &r.Options, &resp) + return +} diff --git a/vendor/github.com/softlayer/softlayer-go/services/brand.go b/vendor/github.com/softlayer/softlayer-go/services/brand.go new file mode 100644 index 000000000..96272d152 --- /dev/null +++ b/vendor/github.com/softlayer/softlayer-go/services/brand.go @@ -0,0 +1,293 @@ +/** + * Copyright 2016 IBM Corp. + * + * 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. + */ + +/** + * AUTOMATICALLY GENERATED CODE - DO NOT MODIFY + */ + +package services + +import ( + "fmt" + "strings" + + "github.com/softlayer/softlayer-go/datatypes" + "github.com/softlayer/softlayer-go/session" + "github.com/softlayer/softlayer-go/sl" +) + +// The SoftLayer_Brand data type contains brand information relating to the single SoftLayer customer account. +// +// SoftLayer customers are unable to change their brand information in the portal or the API. +type Brand struct { + Session *session.Session + Options sl.Options +} + +// GetBrandService returns an instance of the Brand SoftLayer service +func GetBrandService(sess *session.Session) Brand { + return Brand{Session: sess} +} + +func (r Brand) Id(id int) Brand { + r.Options.Id = &id + return r +} + +func (r Brand) Mask(mask string) Brand { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Brand) Filter(filter string) Brand { + r.Options.Filter = filter + return r +} + +func (r Brand) Limit(limit int) Brand { + r.Options.Limit = &limit + return r +} + +func (r Brand) Offset(offset int) Brand { + r.Options.Offset = &offset + return r +} + +// Create a new customer account record. +func (r Brand) CreateCustomerAccount(account *datatypes.Account, bypassDuplicateAccountCheck *bool) (resp datatypes.Account, err error) { + params := []interface{}{ + account, + bypassDuplicateAccountCheck, + } + err = r.Session.DoRequest("SoftLayer_Brand", "createCustomerAccount", params, &r.Options, &resp) + return +} + +// Create a new brand record. +func (r Brand) CreateObject(templateObject *datatypes.Brand) (resp datatypes.Brand, err error) { + params := []interface{}{ + templateObject, + } + err = r.Session.DoRequest("SoftLayer_Brand", "createObject", params, &r.Options, &resp) + return +} + +// Retrieve +func (r Brand) GetAccount() (resp datatypes.Account, err error) { + err = r.Session.DoRequest("SoftLayer_Brand", "getAccount", nil, &r.Options, &resp) + return +} + +// Retrieve All accounts owned by the brand. +func (r Brand) GetAllOwnedAccounts() (resp []datatypes.Account, err error) { + err = r.Session.DoRequest("SoftLayer_Brand", "getAllOwnedAccounts", nil, &r.Options, &resp) + return +} + +// (DEPRECATED) Use [[SoftLayer_Ticket_Subject::getAllObjects]] method. +func (r Brand) GetAllTicketSubjects(account *datatypes.Account) (resp []datatypes.Ticket_Subject, err error) { + params := []interface{}{ + account, + } + err = r.Session.DoRequest("SoftLayer_Brand", "getAllTicketSubjects", params, &r.Options, &resp) + return +} + +// Retrieve This flag indicates if creation of accounts is allowed. +func (r Brand) GetAllowAccountCreationFlag() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Brand", "getAllowAccountCreationFlag", nil, &r.Options, &resp) + return +} + +// Retrieve The Product Catalog for the Brand +func (r Brand) GetCatalog() (resp datatypes.Product_Catalog, err error) { + err = r.Session.DoRequest("SoftLayer_Brand", "getCatalog", nil, &r.Options, &resp) + return +} + +// Retrieve the contact information for the brand such as the corporate or support contact. This will include the contact name, telephone number, fax number, email address, and mailing address of the contact. +func (r Brand) GetContactInformation() (resp []datatypes.Brand_Contact, err error) { + err = r.Session.DoRequest("SoftLayer_Brand", "getContactInformation", nil, &r.Options, &resp) + return +} + +// Retrieve The contacts for the brand. +func (r Brand) GetContacts() (resp []datatypes.Brand_Contact, err error) { + err = r.Session.DoRequest("SoftLayer_Brand", "getContacts", nil, &r.Options, &resp) + return +} + +// Retrieve This references relationship between brands, locations and countries associated with a user's account that are ineligible when ordering products. For example, the India datacenter may not be available on this brand for customers that live in Great Britain. +func (r Brand) GetCustomerCountryLocationRestrictions() (resp []datatypes.Brand_Restriction_Location_CustomerCountry, err error) { + err = r.Session.DoRequest("SoftLayer_Brand", "getCustomerCountryLocationRestrictions", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Brand) GetDistributor() (resp datatypes.Brand, err error) { + err = r.Session.DoRequest("SoftLayer_Brand", "getDistributor", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Brand) GetDistributorChildFlag() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Brand", "getDistributorChildFlag", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Brand) GetDistributorFlag() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_Brand", "getDistributorFlag", nil, &r.Options, &resp) + return +} + +// Retrieve An account's associated hardware objects. +func (r Brand) GetHardware() (resp []datatypes.Hardware, err error) { + err = r.Session.DoRequest("SoftLayer_Brand", "getHardware", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Brand) GetHasAgentSupportFlag() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Brand", "getHasAgentSupportFlag", nil, &r.Options, &resp) + return +} + +// Get the payment processor merchant name. +func (r Brand) GetMerchantName() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_Brand", "getMerchantName", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Brand) GetObject() (resp datatypes.Brand, err error) { + err = r.Session.DoRequest("SoftLayer_Brand", "getObject", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Brand) GetOpenTickets() (resp []datatypes.Ticket, err error) { + err = r.Session.DoRequest("SoftLayer_Brand", "getOpenTickets", nil, &r.Options, &resp) + return +} + +// Retrieve Active accounts owned by the brand. +func (r Brand) GetOwnedAccounts() (resp []datatypes.Account, err error) { + err = r.Session.DoRequest("SoftLayer_Brand", "getOwnedAccounts", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Brand) GetTicketGroups() (resp []datatypes.Ticket_Group, err error) { + err = r.Session.DoRequest("SoftLayer_Brand", "getTicketGroups", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Brand) GetTickets() (resp []datatypes.Ticket, err error) { + err = r.Session.DoRequest("SoftLayer_Brand", "getTickets", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Brand) GetToken(userId *int) (resp string, err error) { + params := []interface{}{ + userId, + } + err = r.Session.DoRequest("SoftLayer_Brand", "getToken", params, &r.Options, &resp) + return +} + +// Retrieve +func (r Brand) GetUsers() (resp []datatypes.User_Customer, err error) { + err = r.Session.DoRequest("SoftLayer_Brand", "getUsers", nil, &r.Options, &resp) + return +} + +// Retrieve An account's associated virtual guest objects. +func (r Brand) GetVirtualGuests() (resp []datatypes.Virtual_Guest, err error) { + err = r.Session.DoRequest("SoftLayer_Brand", "getVirtualGuests", nil, &r.Options, &resp) + return +} + +// The [[SoftLayer_Brand_Restriction_Location_CustomerCountry]] data type defines the relationship between brands, locations and countries associated with a user's account that are ineligible when ordering products. For example, the India datacenter may not be available on the SoftLayer US brand for customers that live in Great Britain. +type Brand_Restriction_Location_CustomerCountry struct { + Session *session.Session + Options sl.Options +} + +// GetBrandRestrictionLocationCustomerCountryService returns an instance of the Brand_Restriction_Location_CustomerCountry SoftLayer service +func GetBrandRestrictionLocationCustomerCountryService(sess *session.Session) Brand_Restriction_Location_CustomerCountry { + return Brand_Restriction_Location_CustomerCountry{Session: sess} +} + +func (r Brand_Restriction_Location_CustomerCountry) Id(id int) Brand_Restriction_Location_CustomerCountry { + r.Options.Id = &id + return r +} + +func (r Brand_Restriction_Location_CustomerCountry) Mask(mask string) Brand_Restriction_Location_CustomerCountry { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Brand_Restriction_Location_CustomerCountry) Filter(filter string) Brand_Restriction_Location_CustomerCountry { + r.Options.Filter = filter + return r +} + +func (r Brand_Restriction_Location_CustomerCountry) Limit(limit int) Brand_Restriction_Location_CustomerCountry { + r.Options.Limit = &limit + return r +} + +func (r Brand_Restriction_Location_CustomerCountry) Offset(offset int) Brand_Restriction_Location_CustomerCountry { + r.Options.Offset = &offset + return r +} + +// no documentation yet +func (r Brand_Restriction_Location_CustomerCountry) GetAllObjects() (resp []datatypes.Brand_Restriction_Location_CustomerCountry, err error) { + err = r.Session.DoRequest("SoftLayer_Brand_Restriction_Location_CustomerCountry", "getAllObjects", nil, &r.Options, &resp) + return +} + +// Retrieve This references the brand that has a brand-location-country restriction setup. +func (r Brand_Restriction_Location_CustomerCountry) GetBrand() (resp datatypes.Brand, err error) { + err = r.Session.DoRequest("SoftLayer_Brand_Restriction_Location_CustomerCountry", "getBrand", nil, &r.Options, &resp) + return +} + +// Retrieve This references the datacenter that has a brand-location-country restriction setup. For example, if a datacenter is listed with a restriction for Canada, a Canadian customer may not be eligible to order services at that location. +func (r Brand_Restriction_Location_CustomerCountry) GetLocation() (resp datatypes.Location, err error) { + err = r.Session.DoRequest("SoftLayer_Brand_Restriction_Location_CustomerCountry", "getLocation", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Brand_Restriction_Location_CustomerCountry) GetObject() (resp datatypes.Brand_Restriction_Location_CustomerCountry, err error) { + err = r.Session.DoRequest("SoftLayer_Brand_Restriction_Location_CustomerCountry", "getObject", nil, &r.Options, &resp) + return +} diff --git a/vendor/github.com/softlayer/softlayer-go/services/catalyst.go b/vendor/github.com/softlayer/softlayer-go/services/catalyst.go new file mode 100644 index 000000000..12242da8a --- /dev/null +++ b/vendor/github.com/softlayer/softlayer-go/services/catalyst.go @@ -0,0 +1,207 @@ +/** + * Copyright 2016 IBM Corp. + * + * 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. + */ + +/** + * AUTOMATICALLY GENERATED CODE - DO NOT MODIFY + */ + +package services + +import ( + "fmt" + "strings" + + "github.com/softlayer/softlayer-go/datatypes" + "github.com/softlayer/softlayer-go/session" + "github.com/softlayer/softlayer-go/sl" +) + +// no documentation yet +type Catalyst_Company_Type struct { + Session *session.Session + Options sl.Options +} + +// GetCatalystCompanyTypeService returns an instance of the Catalyst_Company_Type SoftLayer service +func GetCatalystCompanyTypeService(sess *session.Session) Catalyst_Company_Type { + return Catalyst_Company_Type{Session: sess} +} + +func (r Catalyst_Company_Type) Id(id int) Catalyst_Company_Type { + r.Options.Id = &id + return r +} + +func (r Catalyst_Company_Type) Mask(mask string) Catalyst_Company_Type { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Catalyst_Company_Type) Filter(filter string) Catalyst_Company_Type { + r.Options.Filter = filter + return r +} + +func (r Catalyst_Company_Type) Limit(limit int) Catalyst_Company_Type { + r.Options.Limit = &limit + return r +} + +func (r Catalyst_Company_Type) Offset(offset int) Catalyst_Company_Type { + r.Options.Offset = &offset + return r +} + +// <<.create_object > li > div { padding-top: .5em; padding-bottom: .5em} +// createObject() enables the creation of servers on an account. This +// method is a simplified alternative to interacting with the ordering system directly. +// +// +// In order to create a server, a template object must be sent in with a few required +// values. +// +// +// When this method returns an order will have been placed for a server of the specified configuration. +// +// +// To determine when the server is available you can poll the server via [[SoftLayer_Hardware/getObject|getObject]], +// checking the provisionDate property. +// When provisionDate is not null, the server will be ready. Be sure to use the globalIdentifier +// as your initialization parameter. +// +// +// Warning: Servers created via this method will incur charges on your account. For testing input parameters see [[SoftLayer_Hardware/generateOrderTemplate|generateOrderTemplate]]. +// +// +// Input - [[SoftLayer_Hardware (type)|SoftLayer_Hardware]] +//
      +//
    • hostname +//
      Hostname for the server.
        +//
      • Required
      • +//
      • Type - string
      • +//
      +//
      +//
    • +//
    • domain +//
      Domain for the server.
        +//
      • Required
      • +//
      • Type - string
      • +//
      +//
      +//
    • +//
    • processorCoreAmount +//
      The number of logical CPU cores to allocate.
        +//
      • Required
      • +//
      • Type - int
      • +//
      • See [[SoftLayer_Hardware/getCreateObjectOptions|getCreateObjectOptions]] for available options.
      • +//
      +//
      +//
    • +//
    • memoryCapacity +//
      The amount of memory to allocate in gigabytes.
        +//
      • Required
      • +//
      • Type - int
      • +//
      • See [[SoftLayer_Hardware/getCreateObjectOptions|getCreateObjectOptions]] for available options.
      • +//
      +//
      +//
    • +//
    • hourlyBillingFlag +//
      Specifies the billing type for the server.
        +//
      • Required
      • +//
      • Type - boolean
      • +//
      • When true the server will be billed on hourly usage, otherwise it will be billed on a monthly basis.
      • +//
      +//
      +//
    • +//
    • operatingSystemReferenceCode +//
      An identifier for the operating system to provision the server with.
        +//
      • Required
      • +//
      • Type - string
      • +//
      • See [[SoftLayer_Hardware/getCreateObjectOptions|getCreateObjectOptions]] for available options.
      • +//
      +//
      +//
    • +//
    • datacenter.name +//
      Specifies which datacenter the server is to be provisioned in.
        +//
      • Required
      • +//
      • Type - string
      • +//
      • The datacenter property is a [[SoftLayer_Location (type)|location]] structure with the name field set.
      • +//
      • See [[SoftLayer_Hardware/getCreateObjectOptions|getCreateObjectOptions]] for available options.
      • +//
      +// { +// "datacenter": { +// "name": "dal05" +// } +// } +//
      +//
    • +//
    • networkComponents.maxSpeed +//
      Specifies the connection speed for the server's network components.
        +//
      • Optional
      • +//
      • Type - int
      • +//
      • Default - The highest available zero cost port speed will be used.
      • +//
      • Description - The networkComponents property is an array with a single [[SoftLayer_Network_Component (type)|network component]] structure. The maxSpeed property must be set to specify the network uplink speed, in megabits per second, of the server.
      • +//
      • See [[SoftLayer_Hardware/getCreateObjectOptions|getCreateObjectOptions]] for available options.
      • +//
      +// { +// "networkComponents": [ +// { +// "maxSpeed": 1000 +// } +// ] +// } +//
      +//
    • +//
    • networkComponents.redundancyEnabledFlag +//
      Specifies whether or not the server's network components should be in redundancy groups.
        +//
      • Optional
      • +//
      • Type - bool
      • +//
      • Default - false
      • +//
      • Description - The networkComponents property is an array with a single [[SoftLayer_Network_Component (type)|network component]] structure. When the redundancyEnabledFlag property is true the server's network components will be in redundancy groups.
      • +//
      +// { +// "networkComponents": [ +// { +// "redundancyEnabledFlag": false +// } +// ] +// } +//
      +//
    • +//
    • privateNetworkOnlyFlag +//
      Specifies whether or not the server only has access to the private network
        +//
      • Optional
      • +//
      • Type - boolean
      • +//
      • Default - false
      • +//
      • When true this flag specifies that a server is to only have access to the private network.
      • +//
      +//
      +//
    • +//
    • primaryNetworkComponent.networkVlan.id +//
      Specifies the network vlan which is to be used for the frontend interface of the server.
        +//
      • Optional
      • +//
      • Type - int
      • +//
      • Description - The primaryNetworkComponent property is a [[SoftLayer_Network_Component (type)|network component]] structure with the networkVlan property populated with a [[SoftLayer_Network_Vlan (type)|vlan]] structure. The id property must be set to specify the frontend network vlan of the server.
      • +//
      +// { +// "primaryNetworkComponent": { +// "networkVlan": { +// "id": 1 +// } +// } +// } +//
      +//
    • +//
    • primaryBackendNetworkComponent.networkVlan.id +//
      Specifies the network vlan which is to be used for the backend interface of the server.
        +//
      • Optional
      • +//
      • Type - int
      • +//
      • Description - The primaryBackendNetworkComponent property is a [[SoftLayer_Network_Component (type)|network component]] structure with the networkVlan property populated with a [[SoftLayer_Network_Vlan (type)|vlan]] structure. The id property must be set to specify the backend network vlan of the server.
      • +//
      +// { +// "primaryBackendNetworkComponent": { +// "networkVlan": { +// "id": 2 +// } +// } +// } +//
      +//
    • +//
    • fixedConfigurationPreset.keyName +//
        +//
      • Optional
      • +//
      • Type - string
      • +//
      • Description - The fixedConfigurationPreset property is a [[SoftLayer_Product_Package_Preset (type)|fixed configuration preset]] structure. The keyName property must be set to specify preset to use.
      • +//
      • If a fixed configuration preset is used processorCoreAmount, memoryCapacity and hardDrives properties must not be set.
      • +//
      • See [[SoftLayer_Hardware/getCreateObjectOptions|getCreateObjectOptions]] for available options.
      • +//
      +// { +// "fixedConfigurationPreset": { +// "keyName": "SOME_KEY_NAME" +// } +// } +//
      +//
    • +//
    • userData.value +//
      Arbitrary data to be made available to the server.
        +//
      • Optional
      • +//
      • Type - string
      • +//
      • Description - The userData property is an array with a single [[SoftLayer_Hardware_Attribute (type)|attribute]] structure with the value property set to an arbitrary value.
      • +//
      • This value can be retrieved via the [[SoftLayer_Resource_Metadata/getUserMetadata|getUserMetadata]] method from a request originating from the server. This is primarily useful for providing data to software that may be on the server and configured to execute upon first boot.
      • +//
      +// { +// "userData": [ +// { +// "value": "someValue" +// } +// ] +// } +//
      +//
    • +//
    • hardDrives +//
      Hard drive settings for the server
        +//
      • Optional
      • +//
      • Type - SoftLayer_Hardware_Component
      • +//
      • Default - The largest available capacity for a zero cost primary disk will be used.
      • +//
      • Description - The hardDrives property is an array of [[SoftLayer_Hardware_Component (type)|hardware component]] structures. +//
      • Each hard drive must specify the capacity property.
      • +//
      • See [[SoftLayer_Hardware/getCreateObjectOptions|getCreateObjectOptions]] for available options.
      • +//
      +// { +// "hardDrives": [ +// { +// "capacity": 500 +// } +// ] +// } +//
      +//
    • +//
    • sshKeys +//
      SSH keys to install on the server upon provisioning.
        +//
      • Optional
      • +//
      • Type - array of [[SoftLayer_Security_Ssh_Key (type)|SoftLayer_Security_Ssh_Key]]
      • +//
      • Description - The sshKeys property is an array of [[SoftLayer_Security_Ssh_Key (type)|SSH Key]] structures with the id property set to the value of an existing SSH key.
      • +//
      • To create a new SSH key, call [[SoftLayer_Security_Ssh_Key/createObject|createObject]] on the [[SoftLayer_Security_Ssh_Key]] service.
      • +//
      • To obtain a list of existing SSH keys, call [[SoftLayer_Account/getSshKeys|getSshKeys]] on the [[SoftLayer_Account]] service. +//
      +// { +// "sshKeys": [ +// { +// "id": 123 +// } +// ] +// } +//
      +//
    • +//
    • postInstallScriptUri +//
      Specifies the uri location of the script to be downloaded and run after installation is complete.
        +//
      • Optional
      • +//
      • Type - string
      • +//
      +//
      +//
    • +//
    +// +// +//

    REST Example

    +// curl -X POST -d '{ +// "parameters":[ +// { +// "hostname": "host1", +// "domain": "example.com", +// "processorCoreAmount": 2, +// "memoryCapacity": 2, +// "hourlyBillingFlag": true, +// "operatingSystemReferenceCode": "UBUNTU_LATEST" +// } +// ] +// }' https://api.softlayer.com/rest/v3/SoftLayer_Hardware.json +// +// HTTP/1.1 201 Created +// Location: https://api.softlayer.com/rest/v3/SoftLayer_Hardware/f5a3fcff-db1d-4b7c-9fa0-0349e41c29c5/getObject +// +// +// { +// "accountId": 232298, +// "bareMetalInstanceFlag": null, +// "domain": "example.com", +// "hardwareStatusId": null, +// "hostname": "host1", +// "id": null, +// "serviceProviderId": null, +// "serviceProviderResourceId": null, +// "globalIdentifier": "f5a3fcff-db1d-4b7c-9fa0-0349e41c29c5", +// "hourlyBillingFlag": true, +// "memoryCapacity": 2, +// "operatingSystemReferenceCode": "UBUNTU_LATEST", +// "processorCoreAmount": 2 +// } +// +func (r Hardware) CreateObject(templateObject *datatypes.Hardware) (resp datatypes.Hardware, err error) { + params := []interface{}{ + templateObject, + } + err = r.Session.DoRequest("SoftLayer_Hardware", "createObject", params, &r.Options, &resp) + return +} + +// +// This method will cancel a server effective immediately. For servers billed hourly, the charges will stop immediately after the method returns. +func (r Hardware) DeleteObject() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware", "deleteObject", nil, &r.Options, &resp) + return +} + +// Delete software component passwords. +func (r Hardware) DeleteSoftwareComponentPasswords(softwareComponentPasswords []datatypes.Software_Component_Password) (resp bool, err error) { + params := []interface{}{ + softwareComponentPasswords, + } + err = r.Session.DoRequest("SoftLayer_Hardware", "deleteSoftwareComponentPasswords", params, &r.Options, &resp) + return +} + +// Edit the properties of a software component password such as the username, password, and notes. +func (r Hardware) EditSoftwareComponentPasswords(softwareComponentPasswords []datatypes.Software_Component_Password) (resp bool, err error) { + params := []interface{}{ + softwareComponentPasswords, + } + err = r.Session.DoRequest("SoftLayer_Hardware", "editSoftwareComponentPasswords", params, &r.Options, &resp) + return +} + +// Download and run remote script from uri on the hardware. +func (r Hardware) ExecuteRemoteScript(uri *string) (err error) { + var resp datatypes.Void + params := []interface{}{ + uri, + } + err = r.Session.DoRequest("SoftLayer_Hardware", "executeRemoteScript", params, &r.Options, &resp) + return +} + +// The '''findByIpAddress''' method finds hardware using its primary public or private IP address. IP addresses that have a secondary subnet tied to the hardware will not return the hardware - alternate means of locating the hardware must be used (see '''Associated Methods'''). If no hardware is found, no errors are generated and no data is returned. +func (r Hardware) FindByIpAddress(ipAddress *string) (resp datatypes.Hardware, err error) { + params := []interface{}{ + ipAddress, + } + err = r.Session.DoRequest("SoftLayer_Hardware", "findByIpAddress", params, &r.Options, &resp) + return +} + +// +// Obtain an [[SoftLayer_Container_Product_Order_Hardware_Server (type)|order container]] that can be sent to [[SoftLayer_Product_Order/verifyOrder|verifyOrder]] or [[SoftLayer_Product_Order/placeOrder|placeOrder]]. +// +// +// This is primarily useful when there is a necessity to confirm the price which will be charged for an order. +// +// +// See [[SoftLayer_Hardware/createObject|createObject]] for specifics on the requirements of the template object parameter. +func (r Hardware) GenerateOrderTemplate(templateObject *datatypes.Hardware) (resp datatypes.Container_Product_Order, err error) { + params := []interface{}{ + templateObject, + } + err = r.Session.DoRequest("SoftLayer_Hardware", "generateOrderTemplate", params, &r.Options, &resp) + return +} + +// Retrieve The account associated with a piece of hardware. +func (r Hardware) GetAccount() (resp datatypes.Account, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware", "getAccount", nil, &r.Options, &resp) + return +} + +// Retrieve A piece of hardware's active physical components. +func (r Hardware) GetActiveComponents() (resp []datatypes.Hardware_Component, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware", "getActiveComponents", nil, &r.Options, &resp) + return +} + +// Retrieve A piece of hardware's active network monitoring incidents. +func (r Hardware) GetActiveNetworkMonitorIncident() (resp []datatypes.Network_Monitor_Version1_Incident, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware", "getActiveNetworkMonitorIncident", nil, &r.Options, &resp) + return +} + +// The '''getAlarmHistory''' method retrieves a detailed history for the monitoring alarm. When calling this method, a start and end date for the history to be retrieved must be entered. +func (r Hardware) GetAlarmHistory(startDate *datatypes.Time, endDate *datatypes.Time, alarmId *string) (resp []datatypes.Container_Monitoring_Alarm_History, err error) { + params := []interface{}{ + startDate, + endDate, + alarmId, + } + err = r.Session.DoRequest("SoftLayer_Hardware", "getAlarmHistory", params, &r.Options, &resp) + return +} + +// Retrieve +func (r Hardware) GetAllPowerComponents() (resp []datatypes.Hardware_Power_Component, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware", "getAllPowerComponents", nil, &r.Options, &resp) + return +} + +// Retrieve The SoftLayer_Network_Storage_Allowed_Host information to connect this server to Network Storage volumes that require access control lists. +func (r Hardware) GetAllowedHost() (resp datatypes.Network_Storage_Allowed_Host, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware", "getAllowedHost", nil, &r.Options, &resp) + return +} + +// Retrieve The SoftLayer_Network_Storage objects that this SoftLayer_Hardware has access to. +func (r Hardware) GetAllowedNetworkStorage() (resp []datatypes.Network_Storage, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware", "getAllowedNetworkStorage", nil, &r.Options, &resp) + return +} + +// Retrieve The SoftLayer_Network_Storage objects whose Replica that this SoftLayer_Hardware has access to. +func (r Hardware) GetAllowedNetworkStorageReplicas() (resp []datatypes.Network_Storage, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware", "getAllowedNetworkStorageReplicas", nil, &r.Options, &resp) + return +} + +// Retrieve Information regarding an antivirus/spyware software component object. +func (r Hardware) GetAntivirusSpywareSoftwareComponent() (resp datatypes.Software_Component, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware", "getAntivirusSpywareSoftwareComponent", nil, &r.Options, &resp) + return +} + +// This method is retrieve a list of SoftLayer_Network_Storage volumes that are authorized access to this SoftLayer_Hardware. +func (r Hardware) GetAttachedNetworkStorages(nasType *string) (resp []datatypes.Network_Storage, err error) { + params := []interface{}{ + nasType, + } + err = r.Session.DoRequest("SoftLayer_Hardware", "getAttachedNetworkStorages", params, &r.Options, &resp) + return +} + +// Retrieve Information regarding a piece of hardware's specific attributes. +func (r Hardware) GetAttributes() (resp []datatypes.Hardware_Attribute, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware", "getAttributes", nil, &r.Options, &resp) + return +} + +// This method retrieves a list of SoftLayer_Network_Storage volumes that can be authorized to this SoftLayer_Hardware. +func (r Hardware) GetAvailableNetworkStorages(nasType *string) (resp []datatypes.Network_Storage, err error) { + params := []interface{}{ + nasType, + } + err = r.Session.DoRequest("SoftLayer_Hardware", "getAvailableNetworkStorages", params, &r.Options, &resp) + return +} + +// Retrieve The average daily public bandwidth usage for the current billing cycle. +func (r Hardware) GetAverageDailyPublicBandwidthUsage() (resp datatypes.Float64, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware", "getAverageDailyPublicBandwidthUsage", nil, &r.Options, &resp) + return +} + +// The '''getBackendIncomingBandwidth''' method retrieves the amount of incoming private network traffic used between the given start date and end date parameters. When entering start and end dates, only the month, day and year are used to calculate bandwidth totals - the time (HH:MM:SS) is ignored and defaults to midnight. The amount of bandwidth retrieved is measured in gigabytes. +func (r Hardware) GetBackendIncomingBandwidth(startDate *datatypes.Time, endDate *datatypes.Time) (resp datatypes.Float64, err error) { + params := []interface{}{ + startDate, + endDate, + } + err = r.Session.DoRequest("SoftLayer_Hardware", "getBackendIncomingBandwidth", params, &r.Options, &resp) + return +} + +// Retrieve A piece of hardware's back-end or private network components. +func (r Hardware) GetBackendNetworkComponents() (resp []datatypes.Network_Component, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware", "getBackendNetworkComponents", nil, &r.Options, &resp) + return +} + +// The '''getBackendOutgoingBandwidth''' method retrieves the amount of outgoing private network traffic used between the given start date and end date parameters. When entering start and end dates, only the month, day and year are used to calculate bandwidth totals - the time (HH:MM:SS) is ignored and defaults to midnight. The amount of bandwidth retrieved is measured in gigabytes. +func (r Hardware) GetBackendOutgoingBandwidth(startDate *datatypes.Time, endDate *datatypes.Time) (resp datatypes.Float64, err error) { + params := []interface{}{ + startDate, + endDate, + } + err = r.Session.DoRequest("SoftLayer_Hardware", "getBackendOutgoingBandwidth", params, &r.Options, &resp) + return +} + +// Retrieve A hardware's backend or private router. +func (r Hardware) GetBackendRouters() (resp []datatypes.Hardware, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware", "getBackendRouters", nil, &r.Options, &resp) + return +} + +// Retrieve A hardware's allotted bandwidth (measured in GB). +func (r Hardware) GetBandwidthAllocation() (resp datatypes.Float64, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware", "getBandwidthAllocation", nil, &r.Options, &resp) + return +} + +// Retrieve A hardware's allotted detail record. Allotment details link bandwidth allocation with allotments. +func (r Hardware) GetBandwidthAllotmentDetail() (resp datatypes.Network_Bandwidth_Version1_Allotment_Detail, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware", "getBandwidthAllotmentDetail", nil, &r.Options, &resp) + return +} + +// Retrieve Information regarding a piece of hardware's benchmark certifications. +func (r Hardware) GetBenchmarkCertifications() (resp []datatypes.Hardware_Benchmark_Certification, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware", "getBenchmarkCertifications", nil, &r.Options, &resp) + return +} + +// Retrieve Information regarding the billing item for a server. +func (r Hardware) GetBillingItem() (resp datatypes.Billing_Item_Hardware, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware", "getBillingItem", nil, &r.Options, &resp) + return +} + +// Retrieve A flag indicating that a billing item exists. +func (r Hardware) GetBillingItemFlag() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware", "getBillingItemFlag", nil, &r.Options, &resp) + return +} + +// Retrieve Determines whether the hardware is ineligible for cancellation because it is disconnected. +func (r Hardware) GetBlockCancelBecauseDisconnectedFlag() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware", "getBlockCancelBecauseDisconnectedFlag", nil, &r.Options, &resp) + return +} + +// Retrieve Status indicating whether or not a piece of hardware has business continuance insurance. +func (r Hardware) GetBusinessContinuanceInsuranceFlag() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware", "getBusinessContinuanceInsuranceFlag", nil, &r.Options, &resp) + return +} + +// Retrieve Child hardware. +func (r Hardware) GetChildrenHardware() (resp []datatypes.Hardware, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware", "getChildrenHardware", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Hardware) GetComponentDetailsXML() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware", "getComponentDetailsXML", nil, &r.Options, &resp) + return +} + +// Retrieve A piece of hardware's components. +func (r Hardware) GetComponents() (resp []datatypes.Hardware_Component, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware", "getComponents", nil, &r.Options, &resp) + return +} + +// Retrieve A continuous data protection/server backup software component object. +func (r Hardware) GetContinuousDataProtectionSoftwareComponent() (resp datatypes.Software_Component, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware", "getContinuousDataProtectionSoftwareComponent", nil, &r.Options, &resp) + return +} + +// +// There are many options that may be provided while ordering a server, this method can be used to determine what these options are. +// +// +// Detailed information on the return value can be found on the data type page for [[SoftLayer_Container_Hardware_Configuration (type)]]. +func (r Hardware) GetCreateObjectOptions() (resp datatypes.Container_Hardware_Configuration, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware", "getCreateObjectOptions", nil, &r.Options, &resp) + return +} + +// Retrieve The current billable public outbound bandwidth for this hardware for the current billing cycle. +func (r Hardware) GetCurrentBillableBandwidthUsage() (resp datatypes.Float64, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware", "getCurrentBillableBandwidthUsage", nil, &r.Options, &resp) + return +} + +// Get the billing detail for this instance for the current billing period. This does not include bandwidth usage. +func (r Hardware) GetCurrentBillingDetail() (resp []datatypes.Billing_Item, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware", "getCurrentBillingDetail", nil, &r.Options, &resp) + return +} + +// The '''getCurrentBillingTotal''' method retrieves the total bill amount in US Dollars ($) for the current billing period. In addition to the total bill amount, the billing detail also includes all bandwidth used up to the point the method is called on the piece of hardware. +func (r Hardware) GetCurrentBillingTotal() (resp datatypes.Float64, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware", "getCurrentBillingTotal", nil, &r.Options, &resp) + return +} + +// The '''getDailyAverage''' method calculates the average daily network traffic used by the selected server. Using the required parameter ''dateTime'' to enter a start and end date, the user retrieves this average, measure in gigabytes (GB) for the specified date range. When entering parameters, only the month, day and year are required - time entries are omitted as this method defaults the time to midnight in order to account for the entire day. +func (r Hardware) GetDailyAverage(startDate *datatypes.Time, endDate *datatypes.Time) (resp datatypes.Float64, err error) { + params := []interface{}{ + startDate, + endDate, + } + err = r.Session.DoRequest("SoftLayer_Hardware", "getDailyAverage", params, &r.Options, &resp) + return +} + +// Retrieve Information regarding the datacenter in which a piece of hardware resides. +func (r Hardware) GetDatacenter() (resp datatypes.Location, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware", "getDatacenter", nil, &r.Options, &resp) + return +} + +// Retrieve The name of the datacenter in which a piece of hardware resides. +func (r Hardware) GetDatacenterName() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware", "getDatacenterName", nil, &r.Options, &resp) + return +} + +// Retrieve All hardware that has uplink network connections to a piece of hardware. +func (r Hardware) GetDownlinkHardware() (resp []datatypes.Hardware, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware", "getDownlinkHardware", nil, &r.Options, &resp) + return +} + +// Retrieve All hardware that has uplink network connections to a piece of hardware. +func (r Hardware) GetDownlinkNetworkHardware() (resp []datatypes.Hardware, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware", "getDownlinkNetworkHardware", nil, &r.Options, &resp) + return +} + +// Retrieve Information regarding all servers attached to a piece of network hardware. +func (r Hardware) GetDownlinkServers() (resp []datatypes.Hardware, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware", "getDownlinkServers", nil, &r.Options, &resp) + return +} + +// Retrieve Information regarding all virtual guests attached to a piece of network hardware. +func (r Hardware) GetDownlinkVirtualGuests() (resp []datatypes.Virtual_Guest, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware", "getDownlinkVirtualGuests", nil, &r.Options, &resp) + return +} + +// Retrieve All hardware downstream from a network device. +func (r Hardware) GetDownstreamHardwareBindings() (resp []datatypes.Network_Component_Uplink_Hardware, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware", "getDownstreamHardwareBindings", nil, &r.Options, &resp) + return +} + +// Retrieve All network hardware downstream from the selected piece of hardware. +func (r Hardware) GetDownstreamNetworkHardware() (resp []datatypes.Hardware, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware", "getDownstreamNetworkHardware", nil, &r.Options, &resp) + return +} + +// Retrieve All network hardware with monitoring warnings or errors that are downstream from the selected piece of hardware. +func (r Hardware) GetDownstreamNetworkHardwareWithIncidents() (resp []datatypes.Hardware, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware", "getDownstreamNetworkHardwareWithIncidents", nil, &r.Options, &resp) + return +} + +// Retrieve Information regarding all servers attached downstream to a piece of network hardware. +func (r Hardware) GetDownstreamServers() (resp []datatypes.Hardware, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware", "getDownstreamServers", nil, &r.Options, &resp) + return +} + +// Retrieve Information regarding all virtual guests attached to a piece of network hardware. +func (r Hardware) GetDownstreamVirtualGuests() (resp []datatypes.Virtual_Guest, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware", "getDownstreamVirtualGuests", nil, &r.Options, &resp) + return +} + +// Retrieve The drive controllers contained within a piece of hardware. +func (r Hardware) GetDriveControllers() (resp []datatypes.Hardware_Component, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware", "getDriveControllers", nil, &r.Options, &resp) + return +} + +// Retrieve Information regarding a piece of hardware's associated EVault network storage service account. +func (r Hardware) GetEvaultNetworkStorage() (resp []datatypes.Network_Storage, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware", "getEvaultNetworkStorage", nil, &r.Options, &resp) + return +} + +// Retrieve Information regarding a piece of hardware's firewall services. +func (r Hardware) GetFirewallServiceComponent() (resp datatypes.Network_Component_Firewall, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware", "getFirewallServiceComponent", nil, &r.Options, &resp) + return +} + +// Retrieve Defines the fixed components in a fixed configuration bare metal server. +func (r Hardware) GetFixedConfigurationPreset() (resp datatypes.Product_Package_Preset, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware", "getFixedConfigurationPreset", nil, &r.Options, &resp) + return +} + +// The '''getFrontendIncomingBandwidth''' method retrieves the amount of incoming public network traffic used by a server between the given start and end date parameters. When entering the ''dateTime'' parameter, only the month, day and year of the start and end dates are required - the time (hour, minute and second) are set to midnight by default and cannot be changed. The amount of bandwidth retrieved is measured in gigabytes (GB). +func (r Hardware) GetFrontendIncomingBandwidth(startDate *datatypes.Time, endDate *datatypes.Time) (resp datatypes.Float64, err error) { + params := []interface{}{ + startDate, + endDate, + } + err = r.Session.DoRequest("SoftLayer_Hardware", "getFrontendIncomingBandwidth", params, &r.Options, &resp) + return +} + +// Retrieve A piece of hardware's front-end or public network components. +func (r Hardware) GetFrontendNetworkComponents() (resp []datatypes.Network_Component, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware", "getFrontendNetworkComponents", nil, &r.Options, &resp) + return +} + +// The '''getFrontendOutgoingBandwidth''' method retrieves the amount of outgoing public network traffic used by a server between the given start and end date parameters. The ''dateTime'' parameter requires only the day, month and year to be entered - the time (hour, minute and second) are set to midnight be default in order to gather the data for the entire start and end date indicated in the parameter. The amount of bandwidth retrieved is measured in gigabytes (GB). +func (r Hardware) GetFrontendOutgoingBandwidth(startDate *datatypes.Time, endDate *datatypes.Time) (resp datatypes.Float64, err error) { + params := []interface{}{ + startDate, + endDate, + } + err = r.Session.DoRequest("SoftLayer_Hardware", "getFrontendOutgoingBandwidth", params, &r.Options, &resp) + return +} + +// Retrieve A hardware's frontend or public router. +func (r Hardware) GetFrontendRouters() (resp []datatypes.Hardware, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware", "getFrontendRouters", nil, &r.Options, &resp) + return +} + +// Retrieve A hardware's universally unique identifier. +func (r Hardware) GetGlobalIdentifier() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware", "getGlobalIdentifier", nil, &r.Options, &resp) + return +} + +// Retrieve The hard drives contained within a piece of hardware. +func (r Hardware) GetHardDrives() (resp []datatypes.Hardware_Component, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware", "getHardDrives", nil, &r.Options, &resp) + return +} + +// Retrieve The chassis that a piece of hardware is housed in. +func (r Hardware) GetHardwareChassis() (resp datatypes.Hardware_Chassis, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware", "getHardwareChassis", nil, &r.Options, &resp) + return +} + +// Retrieve A hardware's function. +func (r Hardware) GetHardwareFunction() (resp datatypes.Hardware_Function, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware", "getHardwareFunction", nil, &r.Options, &resp) + return +} + +// Retrieve A hardware's function. +func (r Hardware) GetHardwareFunctionDescription() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware", "getHardwareFunctionDescription", nil, &r.Options, &resp) + return +} + +// Retrieve A hardware's status. +func (r Hardware) GetHardwareStatus() (resp datatypes.Hardware_Status, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware", "getHardwareStatus", nil, &r.Options, &resp) + return +} + +// Retrieve Determine in hardware object has TPM enabled. +func (r Hardware) GetHasTrustedPlatformModuleBillingItemFlag() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware", "getHasTrustedPlatformModuleBillingItemFlag", nil, &r.Options, &resp) + return +} + +// Retrieve Information regarding a host IPS software component object. +func (r Hardware) GetHostIpsSoftwareComponent() (resp datatypes.Software_Component, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware", "getHostIpsSoftwareComponent", nil, &r.Options, &resp) + return +} + +// The '''getHourlyBandwidth''' method retrieves all bandwidth updates hourly for the specified hardware. Because the potential number of data points can become excessive, the method limits the user to obtain data in 24-hour intervals. The required ''dateTime'' parameter is used as the starting point for the query and will be calculated for the 24-hour period starting with the specified date and time. For example, entering a parameter of +// +// '02/01/2008 0:00' +// +// results in a return of all bandwidth data for the entire day of February 1, 2008, as 0:00 specifies a midnight start date. Please note that the time entered should be completed using a 24-hour clock (military time, astronomical time). +// +// For data spanning more than a single 24-hour period, refer to the getBandwidthData function on the metricTrackingObject for the piece of hardware. +func (r Hardware) GetHourlyBandwidth(mode *string, day *datatypes.Time) (resp []datatypes.Metric_Tracking_Object_Data, err error) { + params := []interface{}{ + mode, + day, + } + err = r.Session.DoRequest("SoftLayer_Hardware", "getHourlyBandwidth", params, &r.Options, &resp) + return +} + +// Retrieve A server's hourly billing status. +func (r Hardware) GetHourlyBillingFlag() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware", "getHourlyBillingFlag", nil, &r.Options, &resp) + return +} + +// Retrieve The sum of all the inbound network traffic data for the last 30 days. +func (r Hardware) GetInboundBandwidthUsage() (resp datatypes.Float64, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware", "getInboundBandwidthUsage", nil, &r.Options, &resp) + return +} + +// Retrieve The total public inbound bandwidth for this hardware for the current billing cycle. +func (r Hardware) GetInboundPublicBandwidthUsage() (resp datatypes.Float64, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware", "getInboundPublicBandwidthUsage", nil, &r.Options, &resp) + return +} + +// Retrieve Information regarding the last transaction a server performed. +func (r Hardware) GetLastTransaction() (resp datatypes.Provisioning_Version1_Transaction, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware", "getLastTransaction", nil, &r.Options, &resp) + return +} + +// Retrieve A piece of hardware's latest network monitoring incident. +func (r Hardware) GetLatestNetworkMonitorIncident() (resp datatypes.Network_Monitor_Version1_Incident, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware", "getLatestNetworkMonitorIncident", nil, &r.Options, &resp) + return +} + +// Retrieve Where a piece of hardware is located within SoftLayer's location hierarchy. +func (r Hardware) GetLocation() (resp datatypes.Location, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware", "getLocation", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Hardware) GetLocationPathString() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware", "getLocationPathString", nil, &r.Options, &resp) + return +} + +// Retrieve Information regarding a lockbox account associated with a server. +func (r Hardware) GetLockboxNetworkStorage() (resp datatypes.Network_Storage, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware", "getLockboxNetworkStorage", nil, &r.Options, &resp) + return +} + +// Retrieve A flag indicating that the hardware is a managed resource. +func (r Hardware) GetManagedResourceFlag() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware", "getManagedResourceFlag", nil, &r.Options, &resp) + return +} + +// Retrieve Information regarding a piece of hardware's memory. +func (r Hardware) GetMemory() (resp []datatypes.Hardware_Component, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware", "getMemory", nil, &r.Options, &resp) + return +} + +// Retrieve The amount of memory a piece of hardware has, measured in gigabytes. +func (r Hardware) GetMemoryCapacity() (resp uint, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware", "getMemoryCapacity", nil, &r.Options, &resp) + return +} + +// Retrieve A piece of hardware's metric tracking object. +func (r Hardware) GetMetricTrackingObject() (resp datatypes.Metric_Tracking_Object_HardwareServer, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware", "getMetricTrackingObject", nil, &r.Options, &resp) + return +} + +// Returns open monitoring alarms for a given time period +func (r Hardware) GetMonitoringActiveAlarms(startDate *datatypes.Time, endDate *datatypes.Time) (resp []datatypes.Container_Monitoring_Alarm_History, err error) { + params := []interface{}{ + startDate, + endDate, + } + err = r.Session.DoRequest("SoftLayer_Hardware", "getMonitoringActiveAlarms", params, &r.Options, &resp) + return +} + +// Retrieve Information regarding the monitoring agents associated with a piece of hardware. +func (r Hardware) GetMonitoringAgents() (resp []datatypes.Monitoring_Agent, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware", "getMonitoringAgents", nil, &r.Options, &resp) + return +} + +// Returns closed monitoring alarms for a given time period +func (r Hardware) GetMonitoringClosedAlarms(startDate *datatypes.Time, endDate *datatypes.Time) (resp []datatypes.Container_Monitoring_Alarm_History, err error) { + params := []interface{}{ + startDate, + endDate, + } + err = r.Session.DoRequest("SoftLayer_Hardware", "getMonitoringClosedAlarms", params, &r.Options, &resp) + return +} + +// Retrieve Information regarding the hardware's monitoring robot. +func (r Hardware) GetMonitoringRobot() (resp datatypes.Monitoring_Robot, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware", "getMonitoringRobot", nil, &r.Options, &resp) + return +} + +// Retrieve Information regarding a piece of hardware's network monitoring services. +func (r Hardware) GetMonitoringServiceComponent() (resp datatypes.Network_Monitor_Version1_Query_Host_Stratum, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware", "getMonitoringServiceComponent", nil, &r.Options, &resp) + return +} + +// Retrieve The monitoring service flag eligibility status for a piece of hardware. +func (r Hardware) GetMonitoringServiceEligibilityFlag() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware", "getMonitoringServiceEligibilityFlag", nil, &r.Options, &resp) + return +} + +// Retrieve The service flag status for a piece of hardware. +func (r Hardware) GetMonitoringServiceFlag() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware", "getMonitoringServiceFlag", nil, &r.Options, &resp) + return +} + +// Retrieve Information regarding a piece of hardware's motherboard. +func (r Hardware) GetMotherboard() (resp datatypes.Hardware_Component, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware", "getMotherboard", nil, &r.Options, &resp) + return +} + +// Retrieve Information regarding a piece of hardware's network cards. +func (r Hardware) GetNetworkCards() (resp []datatypes.Hardware_Component, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware", "getNetworkCards", nil, &r.Options, &resp) + return +} + +// Retrieve Returns a hardware's network components. +func (r Hardware) GetNetworkComponents() (resp []datatypes.Network_Component, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware", "getNetworkComponents", nil, &r.Options, &resp) + return +} + +// Retrieve The gateway member if this device is part of a network gateway. +func (r Hardware) GetNetworkGatewayMember() (resp datatypes.Network_Gateway_Member, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware", "getNetworkGatewayMember", nil, &r.Options, &resp) + return +} + +// Retrieve Whether or not this device is part of a network gateway. +func (r Hardware) GetNetworkGatewayMemberFlag() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware", "getNetworkGatewayMemberFlag", nil, &r.Options, &resp) + return +} + +// Retrieve A piece of hardware's network management IP address. +func (r Hardware) GetNetworkManagementIpAddress() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware", "getNetworkManagementIpAddress", nil, &r.Options, &resp) + return +} + +// Retrieve All servers with failed monitoring that are attached downstream to a piece of hardware. +func (r Hardware) GetNetworkMonitorAttachedDownHardware() (resp []datatypes.Hardware, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware", "getNetworkMonitorAttachedDownHardware", nil, &r.Options, &resp) + return +} + +// Retrieve Virtual guests that are attached downstream to a hardware that have failed monitoring +func (r Hardware) GetNetworkMonitorAttachedDownVirtualGuests() (resp []datatypes.Virtual_Guest, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware", "getNetworkMonitorAttachedDownVirtualGuests", nil, &r.Options, &resp) + return +} + +// Retrieve The status of all of a piece of hardware's network monitoring incidents. +func (r Hardware) GetNetworkMonitorIncidents() (resp []datatypes.Network_Monitor_Version1_Incident, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware", "getNetworkMonitorIncidents", nil, &r.Options, &resp) + return +} + +// Retrieve Information regarding a piece of hardware's network monitors. +func (r Hardware) GetNetworkMonitors() (resp []datatypes.Network_Monitor_Version1_Query_Host, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware", "getNetworkMonitors", nil, &r.Options, &resp) + return +} + +// Retrieve The value of a hardware's network status attribute. +func (r Hardware) GetNetworkStatus() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware", "getNetworkStatus", nil, &r.Options, &resp) + return +} + +// Retrieve The hardware's related network status attribute. +func (r Hardware) GetNetworkStatusAttribute() (resp datatypes.Hardware_Attribute, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware", "getNetworkStatusAttribute", nil, &r.Options, &resp) + return +} + +// Retrieve Information regarding a piece of hardware's associated network storage service account. +func (r Hardware) GetNetworkStorage() (resp []datatypes.Network_Storage, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware", "getNetworkStorage", nil, &r.Options, &resp) + return +} + +// Retrieve The network virtual LANs (VLANs) associated with a piece of hardware's network components. +func (r Hardware) GetNetworkVlans() (resp []datatypes.Network_Vlan, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware", "getNetworkVlans", nil, &r.Options, &resp) + return +} + +// Retrieve A hardware's allotted bandwidth for the next billing cycle (measured in GB). +func (r Hardware) GetNextBillingCycleBandwidthAllocation() (resp datatypes.Float64, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware", "getNextBillingCycleBandwidthAllocation", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Hardware) GetNotesHistory() (resp []datatypes.Hardware_Note, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware", "getNotesHistory", nil, &r.Options, &resp) + return +} + +// getObject retrieves the SoftLayer_Hardware object whose ID number corresponds to the ID number of the init parameter passed to the SoftLayer_Hardware service. You can only retrieve the account that your portal user is assigned to. +func (r Hardware) GetObject() (resp datatypes.Hardware, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware", "getObject", nil, &r.Options, &resp) + return +} + +// Retrieve Information regarding a piece of hardware's operating system. +func (r Hardware) GetOperatingSystem() (resp datatypes.Software_Component_OperatingSystem, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware", "getOperatingSystem", nil, &r.Options, &resp) + return +} + +// Retrieve A hardware's operating system software description. +func (r Hardware) GetOperatingSystemReferenceCode() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware", "getOperatingSystemReferenceCode", nil, &r.Options, &resp) + return +} + +// Retrieve The sum of all the outbound network traffic data for the last 30 days. +func (r Hardware) GetOutboundBandwidthUsage() (resp datatypes.Float64, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware", "getOutboundBandwidthUsage", nil, &r.Options, &resp) + return +} + +// Retrieve The total public outbound bandwidth for this hardware for the current billing cycle. +func (r Hardware) GetOutboundPublicBandwidthUsage() (resp datatypes.Float64, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware", "getOutboundPublicBandwidthUsage", nil, &r.Options, &resp) + return +} + +// Retrieve Parent Hardware. +func (r Hardware) GetParentHardware() (resp datatypes.Hardware, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware", "getParentHardware", nil, &r.Options, &resp) + return +} + +// Retrieve Information regarding the Point of Presence (PoP) location in which a piece of hardware resides. +func (r Hardware) GetPointOfPresenceLocation() (resp datatypes.Location, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware", "getPointOfPresenceLocation", nil, &r.Options, &resp) + return +} + +// Retrieve The power components for a hardware object. +func (r Hardware) GetPowerComponents() (resp []datatypes.Hardware_Power_Component, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware", "getPowerComponents", nil, &r.Options, &resp) + return +} + +// Retrieve Information regarding a piece of hardware's power supply. +func (r Hardware) GetPowerSupply() (resp []datatypes.Hardware_Component, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware", "getPowerSupply", nil, &r.Options, &resp) + return +} + +// Retrieve The hardware's primary private IP address. +func (r Hardware) GetPrimaryBackendIpAddress() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware", "getPrimaryBackendIpAddress", nil, &r.Options, &resp) + return +} + +// Retrieve Information regarding the hardware's primary back-end network component. +func (r Hardware) GetPrimaryBackendNetworkComponent() (resp datatypes.Network_Component, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware", "getPrimaryBackendNetworkComponent", nil, &r.Options, &resp) + return +} + +// Retrieve The hardware's primary public IP address. +func (r Hardware) GetPrimaryIpAddress() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware", "getPrimaryIpAddress", nil, &r.Options, &resp) + return +} + +// Retrieve Information regarding the hardware's primary public network component. +func (r Hardware) GetPrimaryNetworkComponent() (resp datatypes.Network_Component, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware", "getPrimaryNetworkComponent", nil, &r.Options, &resp) + return +} + +// Retrieve a graph of a server's private network bandwidth usage over the specified timeframe. If no timeframe is specified then getPublicBandwidthGraphImage retrieves the last 24 hours of public bandwidth usage. getPrivateBandwidthGraphImage returns a PNG image measuring 827 pixels by 293 pixels. +func (r Hardware) GetPrivateBandwidthData(startTime *int, endTime *int) (resp []datatypes.Metric_Tracking_Object_Data, err error) { + params := []interface{}{ + startTime, + endTime, + } + err = r.Session.DoRequest("SoftLayer_Hardware", "getPrivateBandwidthData", params, &r.Options, &resp) + return +} + +// Retrieve Whether the hardware only has access to the private network. +func (r Hardware) GetPrivateNetworkOnlyFlag() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware", "getPrivateNetworkOnlyFlag", nil, &r.Options, &resp) + return +} + +// Retrieve The total number of processor cores, summed from all processors that are attached to a piece of hardware +func (r Hardware) GetProcessorCoreAmount() (resp uint, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware", "getProcessorCoreAmount", nil, &r.Options, &resp) + return +} + +// Retrieve The total number of physical processor cores, summed from all processors that are attached to a piece of hardware +func (r Hardware) GetProcessorPhysicalCoreAmount() (resp uint, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware", "getProcessorPhysicalCoreAmount", nil, &r.Options, &resp) + return +} + +// Retrieve Information regarding a piece of hardware's processors. +func (r Hardware) GetProcessors() (resp []datatypes.Hardware_Component, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware", "getProcessors", nil, &r.Options, &resp) + return +} + +// Retrieve a graph of a server's public network bandwidth usage over the specified timeframe. If no timeframe is specified then getPublicBandwidthGraphImage retrieves the last 24 hours of public bandwidth usage. getPublicBandwidthGraphImage returns a PNG image measuring 827 pixels by 293 pixels. +func (r Hardware) GetPublicBandwidthData(startTime *int, endTime *int) (resp []datatypes.Metric_Tracking_Object_Data, err error) { + params := []interface{}{ + startTime, + endTime, + } + err = r.Session.DoRequest("SoftLayer_Hardware", "getPublicBandwidthData", params, &r.Options, &resp) + return +} + +// Retrieve +func (r Hardware) GetRack() (resp datatypes.Location, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware", "getRack", nil, &r.Options, &resp) + return +} + +// Retrieve The RAID controllers contained within a piece of hardware. +func (r Hardware) GetRaidControllers() (resp []datatypes.Hardware_Component, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware", "getRaidControllers", nil, &r.Options, &resp) + return +} + +// Retrieve Recent events that impact this hardware. +func (r Hardware) GetRecentEvents() (resp []datatypes.Notification_Occurrence_Event, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware", "getRecentEvents", nil, &r.Options, &resp) + return +} + +// Retrieve User credentials to issue commands and/or interact with the server's remote management card. +func (r Hardware) GetRemoteManagementAccounts() (resp []datatypes.Hardware_Component_RemoteManagement_User, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware", "getRemoteManagementAccounts", nil, &r.Options, &resp) + return +} + +// Retrieve A hardware's associated remote management component. This is normally IPMI. +func (r Hardware) GetRemoteManagementComponent() (resp datatypes.Network_Component, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware", "getRemoteManagementComponent", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Hardware) GetResourceConfigurations() (resp []datatypes.Hardware_Resource_Configuration, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware", "getResourceConfigurations", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Hardware) GetResourceGroupMemberReferences() (resp []datatypes.Resource_Group_Member, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware", "getResourceGroupMemberReferences", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Hardware) GetResourceGroupRoles() (resp []datatypes.Resource_Group_Role, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware", "getResourceGroupRoles", nil, &r.Options, &resp) + return +} + +// Retrieve The resource groups in which this hardware is a member. +func (r Hardware) GetResourceGroups() (resp []datatypes.Resource_Group, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware", "getResourceGroups", nil, &r.Options, &resp) + return +} + +// Retrieve A hardware's routers. +func (r Hardware) GetRouters() (resp []datatypes.Hardware, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware", "getRouters", nil, &r.Options, &resp) + return +} + +// Retrieve Collection of scale assets this hardware corresponds to. +func (r Hardware) GetScaleAssets() (resp []datatypes.Scale_Asset, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware", "getScaleAssets", nil, &r.Options, &resp) + return +} + +// Retrieve Information regarding a piece of hardware's vulnerability scan requests. +func (r Hardware) GetSecurityScanRequests() (resp []datatypes.Network_Security_Scanner_Request, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware", "getSecurityScanRequests", nil, &r.Options, &resp) + return +} + +// The '''getSensorData''' method retrieves a server's hardware state via its internal sensors. Remote sensor data is transmitted to the SoftLayer API by way of the server's remote management card. Sensor data measures various information, including system temperatures, voltages and other local server settings. Sensor data is cached for 30 second; calls made to this method for the same server within 30 seconds of each other will result in the same data being returned. To ensure that the data retrieved retrieves snapshot of varied data, make calls greater than 30 seconds apart. +func (r Hardware) GetSensorData() (resp []datatypes.Container_RemoteManagement_SensorReading, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware", "getSensorData", nil, &r.Options, &resp) + return +} + +// The '''getSensorDataWithGraphs''' method retrieves the raw data returned from the server's remote management card. Along with raw data, graphs for the CPU and system temperatures and fan speeds are also returned. For more details on what information is returned, refer to the ''getSensorData'' method. +func (r Hardware) GetSensorDataWithGraphs() (resp datatypes.Container_RemoteManagement_SensorReadingsWithGraphs, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware", "getSensorDataWithGraphs", nil, &r.Options, &resp) + return +} + +// The '''getServerFanSpeedGraphs''' method retrieves the server's fan speeds and displays the speeds using tachometer graphs. data used to construct these graphs is retrieved from the server's remote management card. Each graph returned will have an associated title. +func (r Hardware) GetServerFanSpeedGraphs() (resp []datatypes.Container_RemoteManagement_Graphs_SensorSpeed, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware", "getServerFanSpeedGraphs", nil, &r.Options, &resp) + return +} + +// The '''getPowerState''' method retrieves the power state for the selected server. The server's power status is retrieved from its remote management card. This method returns "on", for a server that has been powered on, or "off" for servers powered off. +func (r Hardware) GetServerPowerState() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware", "getServerPowerState", nil, &r.Options, &resp) + return +} + +// Retrieve Information regarding the server room in which the hardware is located. +func (r Hardware) GetServerRoom() (resp datatypes.Location, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware", "getServerRoom", nil, &r.Options, &resp) + return +} + +// The '''getServerTemperatureGraphs''' retrieves the server's temperatures and displays the various temperatures using thermometer graphs. Temperatures retrieved are CPU temperature(s) and system temperatures. Data used to construct the graphs is retrieved from the server's remote management card. All graphs returned will have an associated title. +func (r Hardware) GetServerTemperatureGraphs() (resp []datatypes.Container_RemoteManagement_Graphs_SensorTemperature, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware", "getServerTemperatureGraphs", nil, &r.Options, &resp) + return +} + +// Retrieve Information regarding the piece of hardware's service provider. +func (r Hardware) GetServiceProvider() (resp datatypes.Service_Provider, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware", "getServiceProvider", nil, &r.Options, &resp) + return +} + +// Retrieve Information regarding a piece of hardware's installed software. +func (r Hardware) GetSoftwareComponents() (resp []datatypes.Software_Component, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware", "getSoftwareComponents", nil, &r.Options, &resp) + return +} + +// Retrieve Information regarding the billing item for a spare pool server. +func (r Hardware) GetSparePoolBillingItem() (resp datatypes.Billing_Item_Hardware, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware", "getSparePoolBillingItem", nil, &r.Options, &resp) + return +} + +// Retrieve SSH keys to be installed on the server during provisioning or an OS reload. +func (r Hardware) GetSshKeys() (resp []datatypes.Security_Ssh_Key, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware", "getSshKeys", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Hardware) GetStorageNetworkComponents() (resp []datatypes.Network_Component, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware", "getStorageNetworkComponents", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Hardware) GetTagReferences() (resp []datatypes.Tag_Reference, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware", "getTagReferences", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Hardware) GetTopLevelLocation() (resp datatypes.Location, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware", "getTopLevelLocation", nil, &r.Options, &resp) + return +} + +// +// This method will query transaction history for a piece of hardware. +func (r Hardware) GetTransactionHistory() (resp []datatypes.Provisioning_Version1_Transaction_History, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware", "getTransactionHistory", nil, &r.Options, &resp) + return +} + +// Retrieve a list of upgradeable items available to this piece of hardware. Currently, getUpgradeItemPrices retrieves upgrades available for a server's memory, hard drives, network port speed, bandwidth allocation and GPUs. +func (r Hardware) GetUpgradeItemPrices() (resp []datatypes.Product_Item_Price, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware", "getUpgradeItemPrices", nil, &r.Options, &resp) + return +} + +// Retrieve An account's associated upgrade request object, if any. +func (r Hardware) GetUpgradeRequest() (resp datatypes.Product_Upgrade_Request, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware", "getUpgradeRequest", nil, &r.Options, &resp) + return +} + +// Retrieve The network device connected to a piece of hardware. +func (r Hardware) GetUplinkHardware() (resp datatypes.Hardware, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware", "getUplinkHardware", nil, &r.Options, &resp) + return +} + +// Retrieve Information regarding the network component that is one level higher than a piece of hardware on the network infrastructure. +func (r Hardware) GetUplinkNetworkComponents() (resp []datatypes.Network_Component, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware", "getUplinkNetworkComponents", nil, &r.Options, &resp) + return +} + +// Retrieve A string containing custom user data for a hardware order. +func (r Hardware) GetUserData() (resp []datatypes.Hardware_Attribute, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware", "getUserData", nil, &r.Options, &resp) + return +} + +// Retrieve Information regarding the virtual chassis for a piece of hardware. +func (r Hardware) GetVirtualChassis() (resp datatypes.Hardware_Group, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware", "getVirtualChassis", nil, &r.Options, &resp) + return +} + +// Retrieve Information regarding the virtual chassis siblings for a piece of hardware. +func (r Hardware) GetVirtualChassisSiblings() (resp []datatypes.Hardware, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware", "getVirtualChassisSiblings", nil, &r.Options, &resp) + return +} + +// Retrieve A piece of hardware's virtual host record. +func (r Hardware) GetVirtualHost() (resp datatypes.Virtual_Host, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware", "getVirtualHost", nil, &r.Options, &resp) + return +} + +// Retrieve Information regarding a piece of hardware's virtual software licenses. +func (r Hardware) GetVirtualLicenses() (resp []datatypes.Software_VirtualLicense, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware", "getVirtualLicenses", nil, &r.Options, &resp) + return +} + +// Retrieve Information regarding the bandwidth allotment to which a piece of hardware belongs. +func (r Hardware) GetVirtualRack() (resp datatypes.Network_Bandwidth_Version1_Allotment, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware", "getVirtualRack", nil, &r.Options, &resp) + return +} + +// Retrieve The name of the bandwidth allotment belonging to a piece of hardware. +func (r Hardware) GetVirtualRackId() (resp int, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware", "getVirtualRackId", nil, &r.Options, &resp) + return +} + +// Retrieve The name of the bandwidth allotment belonging to a piece of hardware. +func (r Hardware) GetVirtualRackName() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware", "getVirtualRackName", nil, &r.Options, &resp) + return +} + +// Retrieve A piece of hardware's virtualization platform software. +func (r Hardware) GetVirtualizationPlatform() (resp datatypes.Software_Component, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware", "getVirtualizationPlatform", nil, &r.Options, &resp) + return +} + +// The '''importVirtualHost''' method attempts to import the host record for the virtualization platform running on a server. +func (r Hardware) ImportVirtualHost() (resp datatypes.Virtual_Host, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware", "importVirtualHost", nil, &r.Options, &resp) + return +} + +// The '''isPingable''' method issues a ping command to the selected server and returns the result of the ping command. This boolean return value displays ''true'' upon successful ping or ''false'' for a failed ping. +func (r Hardware) IsPingable() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware", "isPingable", nil, &r.Options, &resp) + return +} + +// Issues a ping command to the server and returns the ping response. +func (r Hardware) Ping() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware", "ping", nil, &r.Options, &resp) + return +} + +// The '''powerCycle''' method completes a power off and power on of the server successively in one command. The power cycle command is equivalent to unplugging the server from the power strip and then plugging the server back in. '''This method should only be used when all other options have been exhausted'''. Additional remote management commands may not be executed if this command was successfully issued within the last 20 minutes to avoid server failure. Remote management commands include: +// +// rebootSoft rebootHard powerOn powerOff powerCycle +// +// +func (r Hardware) PowerCycle() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware", "powerCycle", nil, &r.Options, &resp) + return +} + +// This method will power off the server via the server's remote management card. +func (r Hardware) PowerOff() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware", "powerOff", nil, &r.Options, &resp) + return +} + +// The '''powerOn''' method powers on a server via its remote management card. This boolean return value returns ''true'' upon successful execution and ''false'' if unsuccessful. Other remote management commands may not be issued in this command was successfully completed within the last 20 minutes to avoid server failure. Remote management commands include: +// +// rebootSoft rebootHard powerOn powerOff powerCycle +// +// +func (r Hardware) PowerOn() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware", "powerOn", nil, &r.Options, &resp) + return +} + +// The '''rebootDefault''' method attempts to reboot the server by issuing a soft reboot, or reset, command to the server's remote management card. if the reset attempt is unsuccessful, a power cycle command will be issued via the power strip. The power cycle command is equivalent to unplugging the server from the power strip and then plugging the server back in. If the reset was successful within the last 20 minutes, another remote management command cannot be completed to avoid server failure. Remote management commands include: +// +// rebootSoft rebootHard powerOn powerOff powerCycle +// +// +func (r Hardware) RebootDefault() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware", "rebootDefault", nil, &r.Options, &resp) + return +} + +// The '''rebootHard''' method reboots the server by issuing a cycle command to the server's remote management card. A hard reboot is equivalent to pressing the ''Reset'' button on a server - it is issued immediately and will not allow processes to shut down prior to the reboot. Completing a hard reboot may initiate system disk checks upon server reboot, causing the boot up to take longer than normally expected. +// +// Remote management commands are unable to be executed if a reboot has been issued successfully within the last 20 minutes to avoid server failure. Remote management commands include: +// +// rebootSoft rebootHard powerOn powerOff powerCycle +// +// +func (r Hardware) RebootHard() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware", "rebootHard", nil, &r.Options, &resp) + return +} + +// The '''rebootSoft''' method reboots the server by issuing a reset command to the server's remote management card via soft reboot. When executing a soft reboot, servers allow all processes to shut down completely before rebooting. Remote management commands are unable to be issued within 20 minutes of issuing a successful soft reboot in order to avoid server failure. Remote management commands include: +// +// rebootSoft rebootHard powerOn powerOff powerCycle +// +// +func (r Hardware) RebootSoft() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware", "rebootSoft", nil, &r.Options, &resp) + return +} + +// This method is used to remove access to s SoftLayer_Network_Storage volumes that supports host- or network-level access control. +func (r Hardware) RemoveAccessToNetworkStorage(networkStorageTemplateObject *datatypes.Network_Storage) (resp bool, err error) { + params := []interface{}{ + networkStorageTemplateObject, + } + err = r.Session.DoRequest("SoftLayer_Hardware", "removeAccessToNetworkStorage", params, &r.Options, &resp) + return +} + +// This method is used to allow access to multiple SoftLayer_Network_Storage volumes that support host- or network-level access control. +func (r Hardware) RemoveAccessToNetworkStorageList(networkStorageTemplateObjects []datatypes.Network_Storage) (resp bool, err error) { + params := []interface{}{ + networkStorageTemplateObjects, + } + err = r.Session.DoRequest("SoftLayer_Hardware", "removeAccessToNetworkStorageList", params, &r.Options, &resp) + return +} + +// no documentation yet +func (r Hardware) SetTags(tags *string) (resp bool, err error) { + params := []interface{}{ + tags, + } + err = r.Session.DoRequest("SoftLayer_Hardware", "setTags", params, &r.Options, &resp) + return +} + +// This method will update the root IPMI password on this SoftLayer_Hardware. +func (r Hardware) UpdateIpmiPassword(password *string) (resp bool, err error) { + params := []interface{}{ + password, + } + err = r.Session.DoRequest("SoftLayer_Hardware", "updateIpmiPassword", params, &r.Options, &resp) + return +} + +// The SoftLayer_Hardware_Benchmark_Certification data type contains general information relating to a single SoftLayer hardware benchmark certification document. +type Hardware_Benchmark_Certification struct { + Session *session.Session + Options sl.Options +} + +// GetHardwareBenchmarkCertificationService returns an instance of the Hardware_Benchmark_Certification SoftLayer service +func GetHardwareBenchmarkCertificationService(sess *session.Session) Hardware_Benchmark_Certification { + return Hardware_Benchmark_Certification{Session: sess} +} + +func (r Hardware_Benchmark_Certification) Id(id int) Hardware_Benchmark_Certification { + r.Options.Id = &id + return r +} + +func (r Hardware_Benchmark_Certification) Mask(mask string) Hardware_Benchmark_Certification { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Hardware_Benchmark_Certification) Filter(filter string) Hardware_Benchmark_Certification { + r.Options.Filter = filter + return r +} + +func (r Hardware_Benchmark_Certification) Limit(limit int) Hardware_Benchmark_Certification { + r.Options.Limit = &limit + return r +} + +func (r Hardware_Benchmark_Certification) Offset(offset int) Hardware_Benchmark_Certification { + r.Options.Offset = &offset + return r +} + +// Retrieve Information regarding a benchmark certification result's associated SoftLayer customer account. +func (r Hardware_Benchmark_Certification) GetAccount() (resp datatypes.Account, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Benchmark_Certification", "getAccount", nil, &r.Options, &resp) + return +} + +// Retrieve Information regarding the piece of hardware on which a benchmark certification test was performed. +func (r Hardware_Benchmark_Certification) GetHardware() (resp datatypes.Hardware, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Benchmark_Certification", "getHardware", nil, &r.Options, &resp) + return +} + +// getObject retrieves the SoftLayer_Hardware_Benchmark_Certification object whose ID number corresponds to the ID number of the init parameter passed to the SoftLayer_Hardware_Benchmark_Certification service. +func (r Hardware_Benchmark_Certification) GetObject() (resp datatypes.Hardware_Benchmark_Certification, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Benchmark_Certification", "getObject", nil, &r.Options, &resp) + return +} + +// Attempt to retrieve the file associated with a benchmark certification result, if such a file exists. If there is no file for this benchmark certification result, calling this method throws an exception. The "getResultFile" method attempts to retrieve the file associated with a benchmark certification result, if such a file exists. If no file exists for the benchmark certification, an exception is thrown. +func (r Hardware_Benchmark_Certification) GetResultFile() (resp []byte, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Benchmark_Certification", "getResultFile", nil, &r.Options, &resp) + return +} + +// The SoftLayer_Hardware_Component_Model data type contains general information relating to a single SoftLayer component model. A component model represents a vendor specific representation of a hardware component. Every piece of hardware on a server will have a specific hardware component model. +type Hardware_Component_Model struct { + Session *session.Session + Options sl.Options +} + +// GetHardwareComponentModelService returns an instance of the Hardware_Component_Model SoftLayer service +func GetHardwareComponentModelService(sess *session.Session) Hardware_Component_Model { + return Hardware_Component_Model{Session: sess} +} + +func (r Hardware_Component_Model) Id(id int) Hardware_Component_Model { + r.Options.Id = &id + return r +} + +func (r Hardware_Component_Model) Mask(mask string) Hardware_Component_Model { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Hardware_Component_Model) Filter(filter string) Hardware_Component_Model { + r.Options.Filter = filter + return r +} + +func (r Hardware_Component_Model) Limit(limit int) Hardware_Component_Model { + r.Options.Limit = &limit + return r +} + +func (r Hardware_Component_Model) Offset(offset int) Hardware_Component_Model { + r.Options.Offset = &offset + return r +} + +// Retrieve +func (r Hardware_Component_Model) GetArchitectureType() (resp datatypes.Hardware_Component_Model_Architecture_Type, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Component_Model", "getArchitectureType", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Hardware_Component_Model) GetAttributes() (resp []datatypes.Hardware_Component_Model_Attribute, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Component_Model", "getAttributes", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Hardware_Component_Model) GetCompatibleArrayTypes() (resp []datatypes.Configuration_Storage_Group_Array_Type, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Component_Model", "getCompatibleArrayTypes", nil, &r.Options, &resp) + return +} + +// Retrieve All the component models that are compatible with a hardware component model. +func (r Hardware_Component_Model) GetCompatibleChildComponentModels() (resp []datatypes.Hardware_Component_Model, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Component_Model", "getCompatibleChildComponentModels", nil, &r.Options, &resp) + return +} + +// Retrieve All the component models that a hardware component model is compatible with. +func (r Hardware_Component_Model) GetCompatibleParentComponentModels() (resp []datatypes.Hardware_Component_Model, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Component_Model", "getCompatibleParentComponentModels", nil, &r.Options, &resp) + return +} + +// Retrieve A hardware component model's physical components in inventory. +func (r Hardware_Component_Model) GetHardwareComponents() (resp []datatypes.Hardware_Component, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Component_Model", "getHardwareComponents", nil, &r.Options, &resp) + return +} + +// Retrieve The non-vendor specific generic component model for a hardware component model. +func (r Hardware_Component_Model) GetHardwareGenericComponentModel() (resp datatypes.Hardware_Component_Model_Generic, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Component_Model", "getHardwareGenericComponentModel", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Hardware_Component_Model) GetInfinibandCompatibleAttribute() (resp datatypes.Hardware_Component_Model_Attribute, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Component_Model", "getInfinibandCompatibleAttribute", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Hardware_Component_Model) GetIsFlexSkuCompatible() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Component_Model", "getIsFlexSkuCompatible", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Hardware_Component_Model) GetIsInfinibandCompatible() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Component_Model", "getIsInfinibandCompatible", nil, &r.Options, &resp) + return +} + +// getObject retrieves the SoftLayer_Hardware_Component_Model object. +func (r Hardware_Component_Model) GetObject() (resp datatypes.Hardware_Component_Model, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Component_Model", "getObject", nil, &r.Options, &resp) + return +} + +// Retrieve A motherboard's average reboot time. +func (r Hardware_Component_Model) GetRebootTime() (resp datatypes.Hardware_Component_Motherboard_Reboot_Time, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Component_Model", "getRebootTime", nil, &r.Options, &resp) + return +} + +// Retrieve A hardware component model's type. +func (r Hardware_Component_Model) GetType() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Component_Model", "getType", nil, &r.Options, &resp) + return +} + +// Retrieve The types of attributes that are allowed for a given hardware component model. +func (r Hardware_Component_Model) GetValidAttributeTypes() (resp []datatypes.Hardware_Component_Model_Attribute_Type, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Component_Model", "getValidAttributeTypes", nil, &r.Options, &resp) + return +} + +// The SoftLayer_Hardware_Component_Partition_OperatingSystem data type contains general information relating to a single SoftLayer Operating System Partition Template. +type Hardware_Component_Partition_OperatingSystem struct { + Session *session.Session + Options sl.Options +} + +// GetHardwareComponentPartitionOperatingSystemService returns an instance of the Hardware_Component_Partition_OperatingSystem SoftLayer service +func GetHardwareComponentPartitionOperatingSystemService(sess *session.Session) Hardware_Component_Partition_OperatingSystem { + return Hardware_Component_Partition_OperatingSystem{Session: sess} +} + +func (r Hardware_Component_Partition_OperatingSystem) Id(id int) Hardware_Component_Partition_OperatingSystem { + r.Options.Id = &id + return r +} + +func (r Hardware_Component_Partition_OperatingSystem) Mask(mask string) Hardware_Component_Partition_OperatingSystem { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Hardware_Component_Partition_OperatingSystem) Filter(filter string) Hardware_Component_Partition_OperatingSystem { + r.Options.Filter = filter + return r +} + +func (r Hardware_Component_Partition_OperatingSystem) Limit(limit int) Hardware_Component_Partition_OperatingSystem { + r.Options.Limit = &limit + return r +} + +func (r Hardware_Component_Partition_OperatingSystem) Offset(offset int) Hardware_Component_Partition_OperatingSystem { + r.Options.Offset = &offset + return r +} + +// no documentation yet +func (r Hardware_Component_Partition_OperatingSystem) GetAllObjects() (resp []datatypes.Hardware_Component_Partition_OperatingSystem, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Component_Partition_OperatingSystem", "getAllObjects", nil, &r.Options, &resp) + return +} + +// The '''getByDescription''' method retrieves all possible partition templates based on the description (required parameter) entered when calling the method. The description is typically the operating system's name. Current recognized values include 'linux', 'windows', 'freebsd', and 'Debian'. +func (r Hardware_Component_Partition_OperatingSystem) GetByDescription(description *string) (resp datatypes.Hardware_Component_Partition_OperatingSystem, err error) { + params := []interface{}{ + description, + } + err = r.Session.DoRequest("SoftLayer_Hardware_Component_Partition_OperatingSystem", "getByDescription", params, &r.Options, &resp) + return +} + +// getObject retrieves the SoftLayer_Hardware_Component_Partition_OperatingSystem object whose ID number corresponds to the ID number of the init parameter passed to the SoftLayer_Hardware_Component_Partition_OperatingSystem service.s +func (r Hardware_Component_Partition_OperatingSystem) GetObject() (resp datatypes.Hardware_Component_Partition_OperatingSystem, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Component_Partition_OperatingSystem", "getObject", nil, &r.Options, &resp) + return +} + +// Retrieve Information regarding an operating system's [[SoftLayer_Hardware_Component_Partition_Template|Partition Templates]]. +func (r Hardware_Component_Partition_OperatingSystem) GetPartitionTemplates() (resp []datatypes.Hardware_Component_Partition_Template, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Component_Partition_OperatingSystem", "getPartitionTemplates", nil, &r.Options, &resp) + return +} + +// The SoftLayer_Hardware_Component_Partition_Template data type contains general information relating to a single SoftLayer partition template. Partition templates group 1 or more partition configurations that can be used to predefine how a hard drive's partitions will be configured. +type Hardware_Component_Partition_Template struct { + Session *session.Session + Options sl.Options +} + +// GetHardwareComponentPartitionTemplateService returns an instance of the Hardware_Component_Partition_Template SoftLayer service +func GetHardwareComponentPartitionTemplateService(sess *session.Session) Hardware_Component_Partition_Template { + return Hardware_Component_Partition_Template{Session: sess} +} + +func (r Hardware_Component_Partition_Template) Id(id int) Hardware_Component_Partition_Template { + r.Options.Id = &id + return r +} + +func (r Hardware_Component_Partition_Template) Mask(mask string) Hardware_Component_Partition_Template { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Hardware_Component_Partition_Template) Filter(filter string) Hardware_Component_Partition_Template { + r.Options.Filter = filter + return r +} + +func (r Hardware_Component_Partition_Template) Limit(limit int) Hardware_Component_Partition_Template { + r.Options.Limit = &limit + return r +} + +func (r Hardware_Component_Partition_Template) Offset(offset int) Hardware_Component_Partition_Template { + r.Options.Offset = &offset + return r +} + +// Retrieve A partition template's associated [[SoftLayer_Account|Account]]. +func (r Hardware_Component_Partition_Template) GetAccount() (resp datatypes.Account, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Component_Partition_Template", "getAccount", nil, &r.Options, &resp) + return +} + +// Retrieve An individual partition for a partition template. This is identical to 'partitionTemplatePartition' except this will sort unix partitions. +func (r Hardware_Component_Partition_Template) GetData() (resp []datatypes.Hardware_Component_Partition_Template_Partition, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Component_Partition_Template", "getData", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Hardware_Component_Partition_Template) GetExpireDate() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Component_Partition_Template", "getExpireDate", nil, &r.Options, &resp) + return +} + +// getObject retrieves the SoftLayer_Hardware_Component_Partition_Template object whose ID number corresponds to the ID number of the init parameter passed to the SoftLayer_Hardware_Component_Partition_Template service. You can only retrieve the partition templates that your account created or the templates predefined by SoftLayer. +func (r Hardware_Component_Partition_Template) GetObject() (resp datatypes.Hardware_Component_Partition_Template, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Component_Partition_Template", "getObject", nil, &r.Options, &resp) + return +} + +// Retrieve A partition template's associated [[SoftLayer_Hardware_Component_Partition_OperatingSystem|Operating System]]. +func (r Hardware_Component_Partition_Template) GetPartitionOperatingSystem() (resp datatypes.Hardware_Component_Partition_OperatingSystem, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Component_Partition_Template", "getPartitionOperatingSystem", nil, &r.Options, &resp) + return +} + +// Retrieve An individual partition for a partition template. +func (r Hardware_Component_Partition_Template) GetPartitionTemplatePartition() (resp []datatypes.Hardware_Component_Partition_Template_Partition, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Component_Partition_Template", "getPartitionTemplatePartition", nil, &r.Options, &resp) + return +} + +// The SoftLayer_Hardware_Router data type contains general information relating to a single SoftLayer router. +type Hardware_Router struct { + Session *session.Session + Options sl.Options +} + +// GetHardwareRouterService returns an instance of the Hardware_Router SoftLayer service +func GetHardwareRouterService(sess *session.Session) Hardware_Router { + return Hardware_Router{Session: sess} +} + +func (r Hardware_Router) Id(id int) Hardware_Router { + r.Options.Id = &id + return r +} + +func (r Hardware_Router) Mask(mask string) Hardware_Router { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Hardware_Router) Filter(filter string) Hardware_Router { + r.Options.Filter = filter + return r +} + +func (r Hardware_Router) Limit(limit int) Hardware_Router { + r.Options.Limit = &limit + return r +} + +func (r Hardware_Router) Offset(offset int) Hardware_Router { + r.Options.Offset = &offset + return r +} + +// This method is used to allow access to a SoftLayer_Network_Storage volume that supports host- or network-level access control. +func (r Hardware_Router) AllowAccessToNetworkStorage(networkStorageTemplateObject *datatypes.Network_Storage) (resp bool, err error) { + params := []interface{}{ + networkStorageTemplateObject, + } + err = r.Session.DoRequest("SoftLayer_Hardware_Router", "allowAccessToNetworkStorage", params, &r.Options, &resp) + return +} + +// This method is used to allow access to multiple SoftLayer_Network_Storage volumes that support host- or network-level access control. +func (r Hardware_Router) AllowAccessToNetworkStorageList(networkStorageTemplateObjects []datatypes.Network_Storage) (resp bool, err error) { + params := []interface{}{ + networkStorageTemplateObjects, + } + err = r.Session.DoRequest("SoftLayer_Hardware_Router", "allowAccessToNetworkStorageList", params, &r.Options, &resp) + return +} + +// Captures a Flex Image of the hard disk on the physical machine, based on the capture template parameter. Returns the image template group containing the disk image. +func (r Hardware_Router) CaptureImage(captureTemplate *datatypes.Container_Disk_Image_Capture_Template) (resp datatypes.Virtual_Guest_Block_Device_Template_Group, err error) { + params := []interface{}{ + captureTemplate, + } + err = r.Session.DoRequest("SoftLayer_Hardware_Router", "captureImage", params, &r.Options, &resp) + return +} + +// Returns monitoring alarm detailed history +func (r Hardware_Router) CloseAlarm(alarmId *string) (resp bool, err error) { + params := []interface{}{ + alarmId, + } + err = r.Session.DoRequest("SoftLayer_Hardware_Router", "closeAlarm", params, &r.Options, &resp) + return +} + +// +// +// createObject() enables the creation of servers on an account. This +// method is a simplified alternative to interacting with the ordering system directly. +// +// +// In order to create a server, a template object must be sent in with a few required +// values. +// +// +// When this method returns an order will have been placed for a server of the specified configuration. +// +// +// To determine when the server is available you can poll the server via [[SoftLayer_Hardware/getObject|getObject]], +// checking the provisionDate property. +// When provisionDate is not null, the server will be ready. Be sure to use the globalIdentifier +// as your initialization parameter. +// +// +// Warning: Servers created via this method will incur charges on your account. For testing input parameters see [[SoftLayer_Hardware/generateOrderTemplate|generateOrderTemplate]]. +// +// +// Input - [[SoftLayer_Hardware (type)|SoftLayer_Hardware]] +//
      +//
    • hostname +//
      Hostname for the server.
        +//
      • Required
      • +//
      • Type - string
      • +//
      +//
      +//
    • +//
    • domain +//
      Domain for the server.
        +//
      • Required
      • +//
      • Type - string
      • +//
      +//
      +//
    • +//
    • processorCoreAmount +//
      The number of logical CPU cores to allocate.
        +//
      • Required
      • +//
      • Type - int
      • +//
      • See [[SoftLayer_Hardware/getCreateObjectOptions|getCreateObjectOptions]] for available options.
      • +//
      +//
      +//
    • +//
    • memoryCapacity +//
      The amount of memory to allocate in gigabytes.
        +//
      • Required
      • +//
      • Type - int
      • +//
      • See [[SoftLayer_Hardware/getCreateObjectOptions|getCreateObjectOptions]] for available options.
      • +//
      +//
      +//
    • +//
    • hourlyBillingFlag +//
      Specifies the billing type for the server.
        +//
      • Required
      • +//
      • Type - boolean
      • +//
      • When true the server will be billed on hourly usage, otherwise it will be billed on a monthly basis.
      • +//
      +//
      +//
    • +//
    • operatingSystemReferenceCode +//
      An identifier for the operating system to provision the server with.
        +//
      • Required
      • +//
      • Type - string
      • +//
      • See [[SoftLayer_Hardware/getCreateObjectOptions|getCreateObjectOptions]] for available options.
      • +//
      +//
      +//
    • +//
    • datacenter.name +//
      Specifies which datacenter the server is to be provisioned in.
        +//
      • Required
      • +//
      • Type - string
      • +//
      • The datacenter property is a [[SoftLayer_Location (type)|location]] structure with the name field set.
      • +//
      • See [[SoftLayer_Hardware/getCreateObjectOptions|getCreateObjectOptions]] for available options.
      • +//
      +// { +// "datacenter": { +// "name": "dal05" +// } +// } +//
      +//
    • +//
    • networkComponents.maxSpeed +//
      Specifies the connection speed for the server's network components.
        +//
      • Optional
      • +//
      • Type - int
      • +//
      • Default - The highest available zero cost port speed will be used.
      • +//
      • Description - The networkComponents property is an array with a single [[SoftLayer_Network_Component (type)|network component]] structure. The maxSpeed property must be set to specify the network uplink speed, in megabits per second, of the server.
      • +//
      • See [[SoftLayer_Hardware/getCreateObjectOptions|getCreateObjectOptions]] for available options.
      • +//
      +// { +// "networkComponents": [ +// { +// "maxSpeed": 1000 +// } +// ] +// } +//
      +//
    • +//
    • networkComponents.redundancyEnabledFlag +//
      Specifies whether or not the server's network components should be in redundancy groups.
        +//
      • Optional
      • +//
      • Type - bool
      • +//
      • Default - false
      • +//
      • Description - The networkComponents property is an array with a single [[SoftLayer_Network_Component (type)|network component]] structure. When the redundancyEnabledFlag property is true the server's network components will be in redundancy groups.
      • +//
      +// { +// "networkComponents": [ +// { +// "redundancyEnabledFlag": false +// } +// ] +// } +//
      +//
    • +//
    • privateNetworkOnlyFlag +//
      Specifies whether or not the server only has access to the private network
        +//
      • Optional
      • +//
      • Type - boolean
      • +//
      • Default - false
      • +//
      • When true this flag specifies that a server is to only have access to the private network.
      • +//
      +//
      +//
    • +//
    • primaryNetworkComponent.networkVlan.id +//
      Specifies the network vlan which is to be used for the frontend interface of the server.
        +//
      • Optional
      • +//
      • Type - int
      • +//
      • Description - The primaryNetworkComponent property is a [[SoftLayer_Network_Component (type)|network component]] structure with the networkVlan property populated with a [[SoftLayer_Network_Vlan (type)|vlan]] structure. The id property must be set to specify the frontend network vlan of the server.
      • +//
      +// { +// "primaryNetworkComponent": { +// "networkVlan": { +// "id": 1 +// } +// } +// } +//
      +//
    • +//
    • primaryBackendNetworkComponent.networkVlan.id +//
      Specifies the network vlan which is to be used for the backend interface of the server.
        +//
      • Optional
      • +//
      • Type - int
      • +//
      • Description - The primaryBackendNetworkComponent property is a [[SoftLayer_Network_Component (type)|network component]] structure with the networkVlan property populated with a [[SoftLayer_Network_Vlan (type)|vlan]] structure. The id property must be set to specify the backend network vlan of the server.
      • +//
      +// { +// "primaryBackendNetworkComponent": { +// "networkVlan": { +// "id": 2 +// } +// } +// } +//
      +//
    • +//
    • fixedConfigurationPreset.keyName +//
        +//
      • Optional
      • +//
      • Type - string
      • +//
      • Description - The fixedConfigurationPreset property is a [[SoftLayer_Product_Package_Preset (type)|fixed configuration preset]] structure. The keyName property must be set to specify preset to use.
      • +//
      • If a fixed configuration preset is used processorCoreAmount, memoryCapacity and hardDrives properties must not be set.
      • +//
      • See [[SoftLayer_Hardware/getCreateObjectOptions|getCreateObjectOptions]] for available options.
      • +//
      +// { +// "fixedConfigurationPreset": { +// "keyName": "SOME_KEY_NAME" +// } +// } +//
      +//
    • +//
    • userData.value +//
      Arbitrary data to be made available to the server.
        +//
      • Optional
      • +//
      • Type - string
      • +//
      • Description - The userData property is an array with a single [[SoftLayer_Hardware_Attribute (type)|attribute]] structure with the value property set to an arbitrary value.
      • +//
      • This value can be retrieved via the [[SoftLayer_Resource_Metadata/getUserMetadata|getUserMetadata]] method from a request originating from the server. This is primarily useful for providing data to software that may be on the server and configured to execute upon first boot.
      • +//
      +// { +// "userData": [ +// { +// "value": "someValue" +// } +// ] +// } +//
      +//
    • +//
    • hardDrives +//
      Hard drive settings for the server
        +//
      • Optional
      • +//
      • Type - SoftLayer_Hardware_Component
      • +//
      • Default - The largest available capacity for a zero cost primary disk will be used.
      • +//
      • Description - The hardDrives property is an array of [[SoftLayer_Hardware_Component (type)|hardware component]] structures. +//
      • Each hard drive must specify the capacity property.
      • +//
      • See [[SoftLayer_Hardware/getCreateObjectOptions|getCreateObjectOptions]] for available options.
      • +//
      +// { +// "hardDrives": [ +// { +// "capacity": 500 +// } +// ] +// } +//
      +//
    • +//
    • sshKeys +//
      SSH keys to install on the server upon provisioning.
        +//
      • Optional
      • +//
      • Type - array of [[SoftLayer_Security_Ssh_Key (type)|SoftLayer_Security_Ssh_Key]]
      • +//
      • Description - The sshKeys property is an array of [[SoftLayer_Security_Ssh_Key (type)|SSH Key]] structures with the id property set to the value of an existing SSH key.
      • +//
      • To create a new SSH key, call [[SoftLayer_Security_Ssh_Key/createObject|createObject]] on the [[SoftLayer_Security_Ssh_Key]] service.
      • +//
      • To obtain a list of existing SSH keys, call [[SoftLayer_Account/getSshKeys|getSshKeys]] on the [[SoftLayer_Account]] service. +//
      +// { +// "sshKeys": [ +// { +// "id": 123 +// } +// ] +// } +//
      +//
    • +//
    • postInstallScriptUri +//
      Specifies the uri location of the script to be downloaded and run after installation is complete.
        +//
      • Optional
      • +//
      • Type - string
      • +//
      +//
      +//
    • +//
    +// +// +//

    REST Example

    +// curl -X POST -d '{ +// "parameters":[ +// { +// "hostname": "host1", +// "domain": "example.com", +// "processorCoreAmount": 2, +// "memoryCapacity": 2, +// "hourlyBillingFlag": true, +// "operatingSystemReferenceCode": "UBUNTU_LATEST" +// } +// ] +// }' https://api.softlayer.com/rest/v3/SoftLayer_Hardware.json +// +// HTTP/1.1 201 Created +// Location: https://api.softlayer.com/rest/v3/SoftLayer_Hardware/f5a3fcff-db1d-4b7c-9fa0-0349e41c29c5/getObject +// +// +// { +// "accountId": 232298, +// "bareMetalInstanceFlag": null, +// "domain": "example.com", +// "hardwareStatusId": null, +// "hostname": "host1", +// "id": null, +// "serviceProviderId": null, +// "serviceProviderResourceId": null, +// "globalIdentifier": "f5a3fcff-db1d-4b7c-9fa0-0349e41c29c5", +// "hourlyBillingFlag": true, +// "memoryCapacity": 2, +// "operatingSystemReferenceCode": "UBUNTU_LATEST", +// "processorCoreAmount": 2 +// } +// +func (r Hardware_Router) CreateObject(templateObject *datatypes.Hardware) (resp datatypes.Hardware, err error) { + params := []interface{}{ + templateObject, + } + err = r.Session.DoRequest("SoftLayer_Hardware_Router", "createObject", params, &r.Options, &resp) + return +} + +// +// This method will cancel a server effective immediately. For servers billed hourly, the charges will stop immediately after the method returns. +func (r Hardware_Router) DeleteObject() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Router", "deleteObject", nil, &r.Options, &resp) + return +} + +// Delete software component passwords. +func (r Hardware_Router) DeleteSoftwareComponentPasswords(softwareComponentPasswords []datatypes.Software_Component_Password) (resp bool, err error) { + params := []interface{}{ + softwareComponentPasswords, + } + err = r.Session.DoRequest("SoftLayer_Hardware_Router", "deleteSoftwareComponentPasswords", params, &r.Options, &resp) + return +} + +// Edit the properties of a software component password such as the username, password, and notes. +func (r Hardware_Router) EditSoftwareComponentPasswords(softwareComponentPasswords []datatypes.Software_Component_Password) (resp bool, err error) { + params := []interface{}{ + softwareComponentPasswords, + } + err = r.Session.DoRequest("SoftLayer_Hardware_Router", "editSoftwareComponentPasswords", params, &r.Options, &resp) + return +} + +// Download and run remote script from uri on the hardware. +func (r Hardware_Router) ExecuteRemoteScript(uri *string) (err error) { + var resp datatypes.Void + params := []interface{}{ + uri, + } + err = r.Session.DoRequest("SoftLayer_Hardware_Router", "executeRemoteScript", params, &r.Options, &resp) + return +} + +// The '''findByIpAddress''' method finds hardware using its primary public or private IP address. IP addresses that have a secondary subnet tied to the hardware will not return the hardware - alternate means of locating the hardware must be used (see '''Associated Methods'''). If no hardware is found, no errors are generated and no data is returned. +func (r Hardware_Router) FindByIpAddress(ipAddress *string) (resp datatypes.Hardware, err error) { + params := []interface{}{ + ipAddress, + } + err = r.Session.DoRequest("SoftLayer_Hardware_Router", "findByIpAddress", params, &r.Options, &resp) + return +} + +// +// Obtain an [[SoftLayer_Container_Product_Order_Hardware_Server (type)|order container]] that can be sent to [[SoftLayer_Product_Order/verifyOrder|verifyOrder]] or [[SoftLayer_Product_Order/placeOrder|placeOrder]]. +// +// +// This is primarily useful when there is a necessity to confirm the price which will be charged for an order. +// +// +// See [[SoftLayer_Hardware/createObject|createObject]] for specifics on the requirements of the template object parameter. +func (r Hardware_Router) GenerateOrderTemplate(templateObject *datatypes.Hardware) (resp datatypes.Container_Product_Order, err error) { + params := []interface{}{ + templateObject, + } + err = r.Session.DoRequest("SoftLayer_Hardware_Router", "generateOrderTemplate", params, &r.Options, &resp) + return +} + +// Retrieve The account associated with a piece of hardware. +func (r Hardware_Router) GetAccount() (resp datatypes.Account, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Router", "getAccount", nil, &r.Options, &resp) + return +} + +// Retrieve A piece of hardware's active physical components. +func (r Hardware_Router) GetActiveComponents() (resp []datatypes.Hardware_Component, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Router", "getActiveComponents", nil, &r.Options, &resp) + return +} + +// Retrieve A piece of hardware's active network monitoring incidents. +func (r Hardware_Router) GetActiveNetworkMonitorIncident() (resp []datatypes.Network_Monitor_Version1_Incident, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Router", "getActiveNetworkMonitorIncident", nil, &r.Options, &resp) + return +} + +// The '''getAlarmHistory''' method retrieves a detailed history for the monitoring alarm. When calling this method, a start and end date for the history to be retrieved must be entered. +func (r Hardware_Router) GetAlarmHistory(startDate *datatypes.Time, endDate *datatypes.Time, alarmId *string) (resp []datatypes.Container_Monitoring_Alarm_History, err error) { + params := []interface{}{ + startDate, + endDate, + alarmId, + } + err = r.Session.DoRequest("SoftLayer_Hardware_Router", "getAlarmHistory", params, &r.Options, &resp) + return +} + +// Retrieve +func (r Hardware_Router) GetAllPowerComponents() (resp []datatypes.Hardware_Power_Component, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Router", "getAllPowerComponents", nil, &r.Options, &resp) + return +} + +// Retrieve The SoftLayer_Network_Storage_Allowed_Host information to connect this server to Network Storage volumes that require access control lists. +func (r Hardware_Router) GetAllowedHost() (resp datatypes.Network_Storage_Allowed_Host, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Router", "getAllowedHost", nil, &r.Options, &resp) + return +} + +// Retrieve The SoftLayer_Network_Storage objects that this SoftLayer_Hardware has access to. +func (r Hardware_Router) GetAllowedNetworkStorage() (resp []datatypes.Network_Storage, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Router", "getAllowedNetworkStorage", nil, &r.Options, &resp) + return +} + +// Retrieve The SoftLayer_Network_Storage objects whose Replica that this SoftLayer_Hardware has access to. +func (r Hardware_Router) GetAllowedNetworkStorageReplicas() (resp []datatypes.Network_Storage, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Router", "getAllowedNetworkStorageReplicas", nil, &r.Options, &resp) + return +} + +// Retrieve Information regarding an antivirus/spyware software component object. +func (r Hardware_Router) GetAntivirusSpywareSoftwareComponent() (resp datatypes.Software_Component, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Router", "getAntivirusSpywareSoftwareComponent", nil, &r.Options, &resp) + return +} + +// This method is retrieve a list of SoftLayer_Network_Storage volumes that are authorized access to this SoftLayer_Hardware. +func (r Hardware_Router) GetAttachedNetworkStorages(nasType *string) (resp []datatypes.Network_Storage, err error) { + params := []interface{}{ + nasType, + } + err = r.Session.DoRequest("SoftLayer_Hardware_Router", "getAttachedNetworkStorages", params, &r.Options, &resp) + return +} + +// Retrieve Information regarding a piece of hardware's specific attributes. +func (r Hardware_Router) GetAttributes() (resp []datatypes.Hardware_Attribute, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Router", "getAttributes", nil, &r.Options, &resp) + return +} + +// This method retrieves a list of SoftLayer_Network_Storage volumes that can be authorized to this SoftLayer_Hardware. +func (r Hardware_Router) GetAvailableNetworkStorages(nasType *string) (resp []datatypes.Network_Storage, err error) { + params := []interface{}{ + nasType, + } + err = r.Session.DoRequest("SoftLayer_Hardware_Router", "getAvailableNetworkStorages", params, &r.Options, &resp) + return +} + +// Retrieve The average daily public bandwidth usage for the current billing cycle. +func (r Hardware_Router) GetAverageDailyPublicBandwidthUsage() (resp datatypes.Float64, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Router", "getAverageDailyPublicBandwidthUsage", nil, &r.Options, &resp) + return +} + +// The '''getBackendIncomingBandwidth''' method retrieves the amount of incoming private network traffic used between the given start date and end date parameters. When entering start and end dates, only the month, day and year are used to calculate bandwidth totals - the time (HH:MM:SS) is ignored and defaults to midnight. The amount of bandwidth retrieved is measured in gigabytes. +func (r Hardware_Router) GetBackendIncomingBandwidth(startDate *datatypes.Time, endDate *datatypes.Time) (resp datatypes.Float64, err error) { + params := []interface{}{ + startDate, + endDate, + } + err = r.Session.DoRequest("SoftLayer_Hardware_Router", "getBackendIncomingBandwidth", params, &r.Options, &resp) + return +} + +// Retrieve A piece of hardware's back-end or private network components. +func (r Hardware_Router) GetBackendNetworkComponents() (resp []datatypes.Network_Component, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Router", "getBackendNetworkComponents", nil, &r.Options, &resp) + return +} + +// The '''getBackendOutgoingBandwidth''' method retrieves the amount of outgoing private network traffic used between the given start date and end date parameters. When entering start and end dates, only the month, day and year are used to calculate bandwidth totals - the time (HH:MM:SS) is ignored and defaults to midnight. The amount of bandwidth retrieved is measured in gigabytes. +func (r Hardware_Router) GetBackendOutgoingBandwidth(startDate *datatypes.Time, endDate *datatypes.Time) (resp datatypes.Float64, err error) { + params := []interface{}{ + startDate, + endDate, + } + err = r.Session.DoRequest("SoftLayer_Hardware_Router", "getBackendOutgoingBandwidth", params, &r.Options, &resp) + return +} + +// Retrieve A hardware's backend or private router. +func (r Hardware_Router) GetBackendRouters() (resp []datatypes.Hardware, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Router", "getBackendRouters", nil, &r.Options, &resp) + return +} + +// Retrieve A hardware's allotted bandwidth (measured in GB). +func (r Hardware_Router) GetBandwidthAllocation() (resp datatypes.Float64, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Router", "getBandwidthAllocation", nil, &r.Options, &resp) + return +} + +// Retrieve A hardware's allotted detail record. Allotment details link bandwidth allocation with allotments. +func (r Hardware_Router) GetBandwidthAllotmentDetail() (resp datatypes.Network_Bandwidth_Version1_Allotment_Detail, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Router", "getBandwidthAllotmentDetail", nil, &r.Options, &resp) + return +} + +// Retrieve Information regarding a piece of hardware's benchmark certifications. +func (r Hardware_Router) GetBenchmarkCertifications() (resp []datatypes.Hardware_Benchmark_Certification, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Router", "getBenchmarkCertifications", nil, &r.Options, &resp) + return +} + +// Retrieve Information regarding the billing item for a server. +func (r Hardware_Router) GetBillingItem() (resp datatypes.Billing_Item_Hardware, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Router", "getBillingItem", nil, &r.Options, &resp) + return +} + +// Retrieve A flag indicating that a billing item exists. +func (r Hardware_Router) GetBillingItemFlag() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Router", "getBillingItemFlag", nil, &r.Options, &resp) + return +} + +// Retrieve Determines whether the hardware is ineligible for cancellation because it is disconnected. +func (r Hardware_Router) GetBlockCancelBecauseDisconnectedFlag() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Router", "getBlockCancelBecauseDisconnectedFlag", nil, &r.Options, &resp) + return +} + +// Retrieve Associated subnets for a router object. +func (r Hardware_Router) GetBoundSubnets() (resp []datatypes.Network_Subnet, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Router", "getBoundSubnets", nil, &r.Options, &resp) + return +} + +// Retrieve Status indicating whether or not a piece of hardware has business continuance insurance. +func (r Hardware_Router) GetBusinessContinuanceInsuranceFlag() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Router", "getBusinessContinuanceInsuranceFlag", nil, &r.Options, &resp) + return +} + +// Retrieve Child hardware. +func (r Hardware_Router) GetChildrenHardware() (resp []datatypes.Hardware, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Router", "getChildrenHardware", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Hardware_Router) GetComponentDetailsXML() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Router", "getComponentDetailsXML", nil, &r.Options, &resp) + return +} + +// Retrieve A piece of hardware's components. +func (r Hardware_Router) GetComponents() (resp []datatypes.Hardware_Component, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Router", "getComponents", nil, &r.Options, &resp) + return +} + +// Retrieve A continuous data protection/server backup software component object. +func (r Hardware_Router) GetContinuousDataProtectionSoftwareComponent() (resp datatypes.Software_Component, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Router", "getContinuousDataProtectionSoftwareComponent", nil, &r.Options, &resp) + return +} + +// +// There are many options that may be provided while ordering a server, this method can be used to determine what these options are. +// +// +// Detailed information on the return value can be found on the data type page for [[SoftLayer_Container_Hardware_Configuration (type)]]. +func (r Hardware_Router) GetCreateObjectOptions() (resp datatypes.Container_Hardware_Configuration, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Router", "getCreateObjectOptions", nil, &r.Options, &resp) + return +} + +// Retrieve The current billable public outbound bandwidth for this hardware for the current billing cycle. +func (r Hardware_Router) GetCurrentBillableBandwidthUsage() (resp datatypes.Float64, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Router", "getCurrentBillableBandwidthUsage", nil, &r.Options, &resp) + return +} + +// Get the billing detail for this instance for the current billing period. This does not include bandwidth usage. +func (r Hardware_Router) GetCurrentBillingDetail() (resp []datatypes.Billing_Item, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Router", "getCurrentBillingDetail", nil, &r.Options, &resp) + return +} + +// The '''getCurrentBillingTotal''' method retrieves the total bill amount in US Dollars ($) for the current billing period. In addition to the total bill amount, the billing detail also includes all bandwidth used up to the point the method is called on the piece of hardware. +func (r Hardware_Router) GetCurrentBillingTotal() (resp datatypes.Float64, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Router", "getCurrentBillingTotal", nil, &r.Options, &resp) + return +} + +// The '''getDailyAverage''' method calculates the average daily network traffic used by the selected server. Using the required parameter ''dateTime'' to enter a start and end date, the user retrieves this average, measure in gigabytes (GB) for the specified date range. When entering parameters, only the month, day and year are required - time entries are omitted as this method defaults the time to midnight in order to account for the entire day. +func (r Hardware_Router) GetDailyAverage(startDate *datatypes.Time, endDate *datatypes.Time) (resp datatypes.Float64, err error) { + params := []interface{}{ + startDate, + endDate, + } + err = r.Session.DoRequest("SoftLayer_Hardware_Router", "getDailyAverage", params, &r.Options, &resp) + return +} + +// Retrieve Information regarding the datacenter in which a piece of hardware resides. +func (r Hardware_Router) GetDatacenter() (resp datatypes.Location, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Router", "getDatacenter", nil, &r.Options, &resp) + return +} + +// Retrieve The name of the datacenter in which a piece of hardware resides. +func (r Hardware_Router) GetDatacenterName() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Router", "getDatacenterName", nil, &r.Options, &resp) + return +} + +// Retrieve All hardware that has uplink network connections to a piece of hardware. +func (r Hardware_Router) GetDownlinkHardware() (resp []datatypes.Hardware, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Router", "getDownlinkHardware", nil, &r.Options, &resp) + return +} + +// Retrieve All hardware that has uplink network connections to a piece of hardware. +func (r Hardware_Router) GetDownlinkNetworkHardware() (resp []datatypes.Hardware, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Router", "getDownlinkNetworkHardware", nil, &r.Options, &resp) + return +} + +// Retrieve Information regarding all servers attached to a piece of network hardware. +func (r Hardware_Router) GetDownlinkServers() (resp []datatypes.Hardware, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Router", "getDownlinkServers", nil, &r.Options, &resp) + return +} + +// Retrieve Information regarding all virtual guests attached to a piece of network hardware. +func (r Hardware_Router) GetDownlinkVirtualGuests() (resp []datatypes.Virtual_Guest, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Router", "getDownlinkVirtualGuests", nil, &r.Options, &resp) + return +} + +// Retrieve All hardware downstream from a network device. +func (r Hardware_Router) GetDownstreamHardwareBindings() (resp []datatypes.Network_Component_Uplink_Hardware, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Router", "getDownstreamHardwareBindings", nil, &r.Options, &resp) + return +} + +// Retrieve All network hardware downstream from the selected piece of hardware. +func (r Hardware_Router) GetDownstreamNetworkHardware() (resp []datatypes.Hardware, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Router", "getDownstreamNetworkHardware", nil, &r.Options, &resp) + return +} + +// Retrieve All network hardware with monitoring warnings or errors that are downstream from the selected piece of hardware. +func (r Hardware_Router) GetDownstreamNetworkHardwareWithIncidents() (resp []datatypes.Hardware, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Router", "getDownstreamNetworkHardwareWithIncidents", nil, &r.Options, &resp) + return +} + +// Retrieve Information regarding all servers attached downstream to a piece of network hardware. +func (r Hardware_Router) GetDownstreamServers() (resp []datatypes.Hardware, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Router", "getDownstreamServers", nil, &r.Options, &resp) + return +} + +// Retrieve Information regarding all virtual guests attached to a piece of network hardware. +func (r Hardware_Router) GetDownstreamVirtualGuests() (resp []datatypes.Virtual_Guest, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Router", "getDownstreamVirtualGuests", nil, &r.Options, &resp) + return +} + +// Retrieve The drive controllers contained within a piece of hardware. +func (r Hardware_Router) GetDriveControllers() (resp []datatypes.Hardware_Component, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Router", "getDriveControllers", nil, &r.Options, &resp) + return +} + +// Retrieve Information regarding a piece of hardware's associated EVault network storage service account. +func (r Hardware_Router) GetEvaultNetworkStorage() (resp []datatypes.Network_Storage, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Router", "getEvaultNetworkStorage", nil, &r.Options, &resp) + return +} + +// Retrieve Information regarding a piece of hardware's firewall services. +func (r Hardware_Router) GetFirewallServiceComponent() (resp datatypes.Network_Component_Firewall, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Router", "getFirewallServiceComponent", nil, &r.Options, &resp) + return +} + +// Retrieve Defines the fixed components in a fixed configuration bare metal server. +func (r Hardware_Router) GetFixedConfigurationPreset() (resp datatypes.Product_Package_Preset, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Router", "getFixedConfigurationPreset", nil, &r.Options, &resp) + return +} + +// The '''getFrontendIncomingBandwidth''' method retrieves the amount of incoming public network traffic used by a server between the given start and end date parameters. When entering the ''dateTime'' parameter, only the month, day and year of the start and end dates are required - the time (hour, minute and second) are set to midnight by default and cannot be changed. The amount of bandwidth retrieved is measured in gigabytes (GB). +func (r Hardware_Router) GetFrontendIncomingBandwidth(startDate *datatypes.Time, endDate *datatypes.Time) (resp datatypes.Float64, err error) { + params := []interface{}{ + startDate, + endDate, + } + err = r.Session.DoRequest("SoftLayer_Hardware_Router", "getFrontendIncomingBandwidth", params, &r.Options, &resp) + return +} + +// Retrieve A piece of hardware's front-end or public network components. +func (r Hardware_Router) GetFrontendNetworkComponents() (resp []datatypes.Network_Component, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Router", "getFrontendNetworkComponents", nil, &r.Options, &resp) + return +} + +// The '''getFrontendOutgoingBandwidth''' method retrieves the amount of outgoing public network traffic used by a server between the given start and end date parameters. The ''dateTime'' parameter requires only the day, month and year to be entered - the time (hour, minute and second) are set to midnight be default in order to gather the data for the entire start and end date indicated in the parameter. The amount of bandwidth retrieved is measured in gigabytes (GB). +func (r Hardware_Router) GetFrontendOutgoingBandwidth(startDate *datatypes.Time, endDate *datatypes.Time) (resp datatypes.Float64, err error) { + params := []interface{}{ + startDate, + endDate, + } + err = r.Session.DoRequest("SoftLayer_Hardware_Router", "getFrontendOutgoingBandwidth", params, &r.Options, &resp) + return +} + +// Retrieve A hardware's frontend or public router. +func (r Hardware_Router) GetFrontendRouters() (resp []datatypes.Hardware, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Router", "getFrontendRouters", nil, &r.Options, &resp) + return +} + +// Retrieve A hardware's universally unique identifier. +func (r Hardware_Router) GetGlobalIdentifier() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Router", "getGlobalIdentifier", nil, &r.Options, &resp) + return +} + +// Retrieve The hard drives contained within a piece of hardware. +func (r Hardware_Router) GetHardDrives() (resp []datatypes.Hardware_Component, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Router", "getHardDrives", nil, &r.Options, &resp) + return +} + +// Retrieve The chassis that a piece of hardware is housed in. +func (r Hardware_Router) GetHardwareChassis() (resp datatypes.Hardware_Chassis, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Router", "getHardwareChassis", nil, &r.Options, &resp) + return +} + +// Retrieve A hardware's function. +func (r Hardware_Router) GetHardwareFunction() (resp datatypes.Hardware_Function, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Router", "getHardwareFunction", nil, &r.Options, &resp) + return +} + +// Retrieve A hardware's function. +func (r Hardware_Router) GetHardwareFunctionDescription() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Router", "getHardwareFunctionDescription", nil, &r.Options, &resp) + return +} + +// Retrieve A hardware's status. +func (r Hardware_Router) GetHardwareStatus() (resp datatypes.Hardware_Status, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Router", "getHardwareStatus", nil, &r.Options, &resp) + return +} + +// Retrieve Determine in hardware object has TPM enabled. +func (r Hardware_Router) GetHasTrustedPlatformModuleBillingItemFlag() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Router", "getHasTrustedPlatformModuleBillingItemFlag", nil, &r.Options, &resp) + return +} + +// Retrieve Information regarding a host IPS software component object. +func (r Hardware_Router) GetHostIpsSoftwareComponent() (resp datatypes.Software_Component, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Router", "getHostIpsSoftwareComponent", nil, &r.Options, &resp) + return +} + +// The '''getHourlyBandwidth''' method retrieves all bandwidth updates hourly for the specified hardware. Because the potential number of data points can become excessive, the method limits the user to obtain data in 24-hour intervals. The required ''dateTime'' parameter is used as the starting point for the query and will be calculated for the 24-hour period starting with the specified date and time. For example, entering a parameter of +// +// '02/01/2008 0:00' +// +// results in a return of all bandwidth data for the entire day of February 1, 2008, as 0:00 specifies a midnight start date. Please note that the time entered should be completed using a 24-hour clock (military time, astronomical time). +// +// For data spanning more than a single 24-hour period, refer to the getBandwidthData function on the metricTrackingObject for the piece of hardware. +func (r Hardware_Router) GetHourlyBandwidth(mode *string, day *datatypes.Time) (resp []datatypes.Metric_Tracking_Object_Data, err error) { + params := []interface{}{ + mode, + day, + } + err = r.Session.DoRequest("SoftLayer_Hardware_Router", "getHourlyBandwidth", params, &r.Options, &resp) + return +} + +// Retrieve A server's hourly billing status. +func (r Hardware_Router) GetHourlyBillingFlag() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Router", "getHourlyBillingFlag", nil, &r.Options, &resp) + return +} + +// Retrieve The sum of all the inbound network traffic data for the last 30 days. +func (r Hardware_Router) GetInboundBandwidthUsage() (resp datatypes.Float64, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Router", "getInboundBandwidthUsage", nil, &r.Options, &resp) + return +} + +// Retrieve The total public inbound bandwidth for this hardware for the current billing cycle. +func (r Hardware_Router) GetInboundPublicBandwidthUsage() (resp datatypes.Float64, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Router", "getInboundPublicBandwidthUsage", nil, &r.Options, &resp) + return +} + +// Retrieve Information regarding the last transaction a server performed. +func (r Hardware_Router) GetLastTransaction() (resp datatypes.Provisioning_Version1_Transaction, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Router", "getLastTransaction", nil, &r.Options, &resp) + return +} + +// Retrieve A piece of hardware's latest network monitoring incident. +func (r Hardware_Router) GetLatestNetworkMonitorIncident() (resp datatypes.Network_Monitor_Version1_Incident, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Router", "getLatestNetworkMonitorIncident", nil, &r.Options, &resp) + return +} + +// Retrieve A flag indicating that a VLAN on the router can be assigned to a host that has local disk functionality. +func (r Hardware_Router) GetLocalDiskStorageCapabilityFlag() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Router", "getLocalDiskStorageCapabilityFlag", nil, &r.Options, &resp) + return +} + +// Retrieve Where a piece of hardware is located within SoftLayer's location hierarchy. +func (r Hardware_Router) GetLocation() (resp datatypes.Location, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Router", "getLocation", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Hardware_Router) GetLocationPathString() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Router", "getLocationPathString", nil, &r.Options, &resp) + return +} + +// Retrieve Information regarding a lockbox account associated with a server. +func (r Hardware_Router) GetLockboxNetworkStorage() (resp datatypes.Network_Storage, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Router", "getLockboxNetworkStorage", nil, &r.Options, &resp) + return +} + +// Retrieve A flag indicating that the hardware is a managed resource. +func (r Hardware_Router) GetManagedResourceFlag() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Router", "getManagedResourceFlag", nil, &r.Options, &resp) + return +} + +// Retrieve Information regarding a piece of hardware's memory. +func (r Hardware_Router) GetMemory() (resp []datatypes.Hardware_Component, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Router", "getMemory", nil, &r.Options, &resp) + return +} + +// Retrieve The amount of memory a piece of hardware has, measured in gigabytes. +func (r Hardware_Router) GetMemoryCapacity() (resp uint, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Router", "getMemoryCapacity", nil, &r.Options, &resp) + return +} + +// Retrieve A piece of hardware's metric tracking object. +func (r Hardware_Router) GetMetricTrackingObject() (resp datatypes.Metric_Tracking_Object_HardwareServer, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Router", "getMetricTrackingObject", nil, &r.Options, &resp) + return +} + +// Returns open monitoring alarms for a given time period +func (r Hardware_Router) GetMonitoringActiveAlarms(startDate *datatypes.Time, endDate *datatypes.Time) (resp []datatypes.Container_Monitoring_Alarm_History, err error) { + params := []interface{}{ + startDate, + endDate, + } + err = r.Session.DoRequest("SoftLayer_Hardware_Router", "getMonitoringActiveAlarms", params, &r.Options, &resp) + return +} + +// Retrieve Information regarding the monitoring agents associated with a piece of hardware. +func (r Hardware_Router) GetMonitoringAgents() (resp []datatypes.Monitoring_Agent, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Router", "getMonitoringAgents", nil, &r.Options, &resp) + return +} + +// Returns closed monitoring alarms for a given time period +func (r Hardware_Router) GetMonitoringClosedAlarms(startDate *datatypes.Time, endDate *datatypes.Time) (resp []datatypes.Container_Monitoring_Alarm_History, err error) { + params := []interface{}{ + startDate, + endDate, + } + err = r.Session.DoRequest("SoftLayer_Hardware_Router", "getMonitoringClosedAlarms", params, &r.Options, &resp) + return +} + +// Retrieve Information regarding the hardware's monitoring robot. +func (r Hardware_Router) GetMonitoringRobot() (resp datatypes.Monitoring_Robot, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Router", "getMonitoringRobot", nil, &r.Options, &resp) + return +} + +// Retrieve Information regarding a piece of hardware's network monitoring services. +func (r Hardware_Router) GetMonitoringServiceComponent() (resp datatypes.Network_Monitor_Version1_Query_Host_Stratum, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Router", "getMonitoringServiceComponent", nil, &r.Options, &resp) + return +} + +// Retrieve The monitoring service flag eligibility status for a piece of hardware. +func (r Hardware_Router) GetMonitoringServiceEligibilityFlag() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Router", "getMonitoringServiceEligibilityFlag", nil, &r.Options, &resp) + return +} + +// Retrieve The service flag status for a piece of hardware. +func (r Hardware_Router) GetMonitoringServiceFlag() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Router", "getMonitoringServiceFlag", nil, &r.Options, &resp) + return +} + +// Retrieve Information regarding a piece of hardware's motherboard. +func (r Hardware_Router) GetMotherboard() (resp datatypes.Hardware_Component, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Router", "getMotherboard", nil, &r.Options, &resp) + return +} + +// Retrieve Information regarding a piece of hardware's network cards. +func (r Hardware_Router) GetNetworkCards() (resp []datatypes.Hardware_Component, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Router", "getNetworkCards", nil, &r.Options, &resp) + return +} + +// Retrieve Returns a hardware's network components. +func (r Hardware_Router) GetNetworkComponents() (resp []datatypes.Network_Component, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Router", "getNetworkComponents", nil, &r.Options, &resp) + return +} + +// Retrieve The gateway member if this device is part of a network gateway. +func (r Hardware_Router) GetNetworkGatewayMember() (resp datatypes.Network_Gateway_Member, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Router", "getNetworkGatewayMember", nil, &r.Options, &resp) + return +} + +// Retrieve Whether or not this device is part of a network gateway. +func (r Hardware_Router) GetNetworkGatewayMemberFlag() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Router", "getNetworkGatewayMemberFlag", nil, &r.Options, &resp) + return +} + +// Retrieve A piece of hardware's network management IP address. +func (r Hardware_Router) GetNetworkManagementIpAddress() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Router", "getNetworkManagementIpAddress", nil, &r.Options, &resp) + return +} + +// Retrieve All servers with failed monitoring that are attached downstream to a piece of hardware. +func (r Hardware_Router) GetNetworkMonitorAttachedDownHardware() (resp []datatypes.Hardware, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Router", "getNetworkMonitorAttachedDownHardware", nil, &r.Options, &resp) + return +} + +// Retrieve Virtual guests that are attached downstream to a hardware that have failed monitoring +func (r Hardware_Router) GetNetworkMonitorAttachedDownVirtualGuests() (resp []datatypes.Virtual_Guest, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Router", "getNetworkMonitorAttachedDownVirtualGuests", nil, &r.Options, &resp) + return +} + +// Retrieve The status of all of a piece of hardware's network monitoring incidents. +func (r Hardware_Router) GetNetworkMonitorIncidents() (resp []datatypes.Network_Monitor_Version1_Incident, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Router", "getNetworkMonitorIncidents", nil, &r.Options, &resp) + return +} + +// Retrieve Information regarding a piece of hardware's network monitors. +func (r Hardware_Router) GetNetworkMonitors() (resp []datatypes.Network_Monitor_Version1_Query_Host, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Router", "getNetworkMonitors", nil, &r.Options, &resp) + return +} + +// Retrieve The value of a hardware's network status attribute. +func (r Hardware_Router) GetNetworkStatus() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Router", "getNetworkStatus", nil, &r.Options, &resp) + return +} + +// Retrieve The hardware's related network status attribute. +func (r Hardware_Router) GetNetworkStatusAttribute() (resp datatypes.Hardware_Attribute, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Router", "getNetworkStatusAttribute", nil, &r.Options, &resp) + return +} + +// Retrieve Information regarding a piece of hardware's associated network storage service account. +func (r Hardware_Router) GetNetworkStorage() (resp []datatypes.Network_Storage, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Router", "getNetworkStorage", nil, &r.Options, &resp) + return +} + +// Retrieve The network virtual LANs (VLANs) associated with a piece of hardware's network components. +func (r Hardware_Router) GetNetworkVlans() (resp []datatypes.Network_Vlan, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Router", "getNetworkVlans", nil, &r.Options, &resp) + return +} + +// Retrieve A hardware's allotted bandwidth for the next billing cycle (measured in GB). +func (r Hardware_Router) GetNextBillingCycleBandwidthAllocation() (resp datatypes.Float64, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Router", "getNextBillingCycleBandwidthAllocation", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Hardware_Router) GetNotesHistory() (resp []datatypes.Hardware_Note, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Router", "getNotesHistory", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Hardware_Router) GetObject() (resp datatypes.Hardware_Router, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Router", "getObject", nil, &r.Options, &resp) + return +} + +// Retrieve Information regarding a piece of hardware's operating system. +func (r Hardware_Router) GetOperatingSystem() (resp datatypes.Software_Component_OperatingSystem, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Router", "getOperatingSystem", nil, &r.Options, &resp) + return +} + +// Retrieve A hardware's operating system software description. +func (r Hardware_Router) GetOperatingSystemReferenceCode() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Router", "getOperatingSystemReferenceCode", nil, &r.Options, &resp) + return +} + +// Retrieve The sum of all the outbound network traffic data for the last 30 days. +func (r Hardware_Router) GetOutboundBandwidthUsage() (resp datatypes.Float64, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Router", "getOutboundBandwidthUsage", nil, &r.Options, &resp) + return +} + +// Retrieve The total public outbound bandwidth for this hardware for the current billing cycle. +func (r Hardware_Router) GetOutboundPublicBandwidthUsage() (resp datatypes.Float64, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Router", "getOutboundPublicBandwidthUsage", nil, &r.Options, &resp) + return +} + +// Retrieve Parent Hardware. +func (r Hardware_Router) GetParentHardware() (resp datatypes.Hardware, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Router", "getParentHardware", nil, &r.Options, &resp) + return +} + +// Retrieve Information regarding the Point of Presence (PoP) location in which a piece of hardware resides. +func (r Hardware_Router) GetPointOfPresenceLocation() (resp datatypes.Location, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Router", "getPointOfPresenceLocation", nil, &r.Options, &resp) + return +} + +// Retrieve The power components for a hardware object. +func (r Hardware_Router) GetPowerComponents() (resp []datatypes.Hardware_Power_Component, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Router", "getPowerComponents", nil, &r.Options, &resp) + return +} + +// Retrieve Information regarding a piece of hardware's power supply. +func (r Hardware_Router) GetPowerSupply() (resp []datatypes.Hardware_Component, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Router", "getPowerSupply", nil, &r.Options, &resp) + return +} + +// Retrieve The hardware's primary private IP address. +func (r Hardware_Router) GetPrimaryBackendIpAddress() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Router", "getPrimaryBackendIpAddress", nil, &r.Options, &resp) + return +} + +// Retrieve Information regarding the hardware's primary back-end network component. +func (r Hardware_Router) GetPrimaryBackendNetworkComponent() (resp datatypes.Network_Component, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Router", "getPrimaryBackendNetworkComponent", nil, &r.Options, &resp) + return +} + +// Retrieve The hardware's primary public IP address. +func (r Hardware_Router) GetPrimaryIpAddress() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Router", "getPrimaryIpAddress", nil, &r.Options, &resp) + return +} + +// Retrieve Information regarding the hardware's primary public network component. +func (r Hardware_Router) GetPrimaryNetworkComponent() (resp datatypes.Network_Component, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Router", "getPrimaryNetworkComponent", nil, &r.Options, &resp) + return +} + +// Retrieve a graph of a server's private network bandwidth usage over the specified timeframe. If no timeframe is specified then getPublicBandwidthGraphImage retrieves the last 24 hours of public bandwidth usage. getPrivateBandwidthGraphImage returns a PNG image measuring 827 pixels by 293 pixels. +func (r Hardware_Router) GetPrivateBandwidthData(startTime *int, endTime *int) (resp []datatypes.Metric_Tracking_Object_Data, err error) { + params := []interface{}{ + startTime, + endTime, + } + err = r.Session.DoRequest("SoftLayer_Hardware_Router", "getPrivateBandwidthData", params, &r.Options, &resp) + return +} + +// Retrieve Whether the hardware only has access to the private network. +func (r Hardware_Router) GetPrivateNetworkOnlyFlag() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Router", "getPrivateNetworkOnlyFlag", nil, &r.Options, &resp) + return +} + +// Retrieve The total number of processor cores, summed from all processors that are attached to a piece of hardware +func (r Hardware_Router) GetProcessorCoreAmount() (resp uint, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Router", "getProcessorCoreAmount", nil, &r.Options, &resp) + return +} + +// Retrieve The total number of physical processor cores, summed from all processors that are attached to a piece of hardware +func (r Hardware_Router) GetProcessorPhysicalCoreAmount() (resp uint, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Router", "getProcessorPhysicalCoreAmount", nil, &r.Options, &resp) + return +} + +// Retrieve Information regarding a piece of hardware's processors. +func (r Hardware_Router) GetProcessors() (resp []datatypes.Hardware_Component, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Router", "getProcessors", nil, &r.Options, &resp) + return +} + +// Retrieve a graph of a server's public network bandwidth usage over the specified timeframe. If no timeframe is specified then getPublicBandwidthGraphImage retrieves the last 24 hours of public bandwidth usage. getPublicBandwidthGraphImage returns a PNG image measuring 827 pixels by 293 pixels. +func (r Hardware_Router) GetPublicBandwidthData(startTime *int, endTime *int) (resp []datatypes.Metric_Tracking_Object_Data, err error) { + params := []interface{}{ + startTime, + endTime, + } + err = r.Session.DoRequest("SoftLayer_Hardware_Router", "getPublicBandwidthData", params, &r.Options, &resp) + return +} + +// Retrieve +func (r Hardware_Router) GetRack() (resp datatypes.Location, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Router", "getRack", nil, &r.Options, &resp) + return +} + +// Retrieve The RAID controllers contained within a piece of hardware. +func (r Hardware_Router) GetRaidControllers() (resp []datatypes.Hardware_Component, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Router", "getRaidControllers", nil, &r.Options, &resp) + return +} + +// Retrieve Recent events that impact this hardware. +func (r Hardware_Router) GetRecentEvents() (resp []datatypes.Notification_Occurrence_Event, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Router", "getRecentEvents", nil, &r.Options, &resp) + return +} + +// Retrieve User credentials to issue commands and/or interact with the server's remote management card. +func (r Hardware_Router) GetRemoteManagementAccounts() (resp []datatypes.Hardware_Component_RemoteManagement_User, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Router", "getRemoteManagementAccounts", nil, &r.Options, &resp) + return +} + +// Retrieve A hardware's associated remote management component. This is normally IPMI. +func (r Hardware_Router) GetRemoteManagementComponent() (resp datatypes.Network_Component, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Router", "getRemoteManagementComponent", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Hardware_Router) GetResourceConfigurations() (resp []datatypes.Hardware_Resource_Configuration, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Router", "getResourceConfigurations", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Hardware_Router) GetResourceGroupMemberReferences() (resp []datatypes.Resource_Group_Member, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Router", "getResourceGroupMemberReferences", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Hardware_Router) GetResourceGroupRoles() (resp []datatypes.Resource_Group_Role, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Router", "getResourceGroupRoles", nil, &r.Options, &resp) + return +} + +// Retrieve The resource groups in which this hardware is a member. +func (r Hardware_Router) GetResourceGroups() (resp []datatypes.Resource_Group, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Router", "getResourceGroups", nil, &r.Options, &resp) + return +} + +// Retrieve A hardware's routers. +func (r Hardware_Router) GetRouters() (resp []datatypes.Hardware, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Router", "getRouters", nil, &r.Options, &resp) + return +} + +// Retrieve A flag indicating that a VLAN on the router can be assigned to a host that has SAN disk functionality. +func (r Hardware_Router) GetSanStorageCapabilityFlag() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Router", "getSanStorageCapabilityFlag", nil, &r.Options, &resp) + return +} + +// Retrieve Collection of scale assets this hardware corresponds to. +func (r Hardware_Router) GetScaleAssets() (resp []datatypes.Scale_Asset, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Router", "getScaleAssets", nil, &r.Options, &resp) + return +} + +// Retrieve Information regarding a piece of hardware's vulnerability scan requests. +func (r Hardware_Router) GetSecurityScanRequests() (resp []datatypes.Network_Security_Scanner_Request, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Router", "getSecurityScanRequests", nil, &r.Options, &resp) + return +} + +// The '''getSensorData''' method retrieves a server's hardware state via its internal sensors. Remote sensor data is transmitted to the SoftLayer API by way of the server's remote management card. Sensor data measures various information, including system temperatures, voltages and other local server settings. Sensor data is cached for 30 second; calls made to this method for the same server within 30 seconds of each other will result in the same data being returned. To ensure that the data retrieved retrieves snapshot of varied data, make calls greater than 30 seconds apart. +func (r Hardware_Router) GetSensorData() (resp []datatypes.Container_RemoteManagement_SensorReading, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Router", "getSensorData", nil, &r.Options, &resp) + return +} + +// The '''getSensorDataWithGraphs''' method retrieves the raw data returned from the server's remote management card. Along with raw data, graphs for the CPU and system temperatures and fan speeds are also returned. For more details on what information is returned, refer to the ''getSensorData'' method. +func (r Hardware_Router) GetSensorDataWithGraphs() (resp datatypes.Container_RemoteManagement_SensorReadingsWithGraphs, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Router", "getSensorDataWithGraphs", nil, &r.Options, &resp) + return +} + +// The '''getServerFanSpeedGraphs''' method retrieves the server's fan speeds and displays the speeds using tachometer graphs. data used to construct these graphs is retrieved from the server's remote management card. Each graph returned will have an associated title. +func (r Hardware_Router) GetServerFanSpeedGraphs() (resp []datatypes.Container_RemoteManagement_Graphs_SensorSpeed, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Router", "getServerFanSpeedGraphs", nil, &r.Options, &resp) + return +} + +// The '''getPowerState''' method retrieves the power state for the selected server. The server's power status is retrieved from its remote management card. This method returns "on", for a server that has been powered on, or "off" for servers powered off. +func (r Hardware_Router) GetServerPowerState() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Router", "getServerPowerState", nil, &r.Options, &resp) + return +} + +// Retrieve Information regarding the server room in which the hardware is located. +func (r Hardware_Router) GetServerRoom() (resp datatypes.Location, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Router", "getServerRoom", nil, &r.Options, &resp) + return +} + +// The '''getServerTemperatureGraphs''' retrieves the server's temperatures and displays the various temperatures using thermometer graphs. Temperatures retrieved are CPU temperature(s) and system temperatures. Data used to construct the graphs is retrieved from the server's remote management card. All graphs returned will have an associated title. +func (r Hardware_Router) GetServerTemperatureGraphs() (resp []datatypes.Container_RemoteManagement_Graphs_SensorTemperature, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Router", "getServerTemperatureGraphs", nil, &r.Options, &resp) + return +} + +// Retrieve Information regarding the piece of hardware's service provider. +func (r Hardware_Router) GetServiceProvider() (resp datatypes.Service_Provider, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Router", "getServiceProvider", nil, &r.Options, &resp) + return +} + +// Retrieve Information regarding a piece of hardware's installed software. +func (r Hardware_Router) GetSoftwareComponents() (resp []datatypes.Software_Component, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Router", "getSoftwareComponents", nil, &r.Options, &resp) + return +} + +// Retrieve Information regarding the billing item for a spare pool server. +func (r Hardware_Router) GetSparePoolBillingItem() (resp datatypes.Billing_Item_Hardware, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Router", "getSparePoolBillingItem", nil, &r.Options, &resp) + return +} + +// Retrieve SSH keys to be installed on the server during provisioning or an OS reload. +func (r Hardware_Router) GetSshKeys() (resp []datatypes.Security_Ssh_Key, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Router", "getSshKeys", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Hardware_Router) GetStorageNetworkComponents() (resp []datatypes.Network_Component, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Router", "getStorageNetworkComponents", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Hardware_Router) GetTagReferences() (resp []datatypes.Tag_Reference, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Router", "getTagReferences", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Hardware_Router) GetTopLevelLocation() (resp datatypes.Location, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Router", "getTopLevelLocation", nil, &r.Options, &resp) + return +} + +// +// This method will query transaction history for a piece of hardware. +func (r Hardware_Router) GetTransactionHistory() (resp []datatypes.Provisioning_Version1_Transaction_History, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Router", "getTransactionHistory", nil, &r.Options, &resp) + return +} + +// Retrieve a list of upgradeable items available to this piece of hardware. Currently, getUpgradeItemPrices retrieves upgrades available for a server's memory, hard drives, network port speed, bandwidth allocation and GPUs. +func (r Hardware_Router) GetUpgradeItemPrices() (resp []datatypes.Product_Item_Price, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Router", "getUpgradeItemPrices", nil, &r.Options, &resp) + return +} + +// Retrieve An account's associated upgrade request object, if any. +func (r Hardware_Router) GetUpgradeRequest() (resp datatypes.Product_Upgrade_Request, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Router", "getUpgradeRequest", nil, &r.Options, &resp) + return +} + +// Retrieve The network device connected to a piece of hardware. +func (r Hardware_Router) GetUplinkHardware() (resp datatypes.Hardware, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Router", "getUplinkHardware", nil, &r.Options, &resp) + return +} + +// Retrieve Information regarding the network component that is one level higher than a piece of hardware on the network infrastructure. +func (r Hardware_Router) GetUplinkNetworkComponents() (resp []datatypes.Network_Component, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Router", "getUplinkNetworkComponents", nil, &r.Options, &resp) + return +} + +// Retrieve A string containing custom user data for a hardware order. +func (r Hardware_Router) GetUserData() (resp []datatypes.Hardware_Attribute, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Router", "getUserData", nil, &r.Options, &resp) + return +} + +// Retrieve Information regarding the virtual chassis for a piece of hardware. +func (r Hardware_Router) GetVirtualChassis() (resp datatypes.Hardware_Group, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Router", "getVirtualChassis", nil, &r.Options, &resp) + return +} + +// Retrieve Information regarding the virtual chassis siblings for a piece of hardware. +func (r Hardware_Router) GetVirtualChassisSiblings() (resp []datatypes.Hardware, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Router", "getVirtualChassisSiblings", nil, &r.Options, &resp) + return +} + +// Retrieve A piece of hardware's virtual host record. +func (r Hardware_Router) GetVirtualHost() (resp datatypes.Virtual_Host, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Router", "getVirtualHost", nil, &r.Options, &resp) + return +} + +// Retrieve Information regarding a piece of hardware's virtual software licenses. +func (r Hardware_Router) GetVirtualLicenses() (resp []datatypes.Software_VirtualLicense, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Router", "getVirtualLicenses", nil, &r.Options, &resp) + return +} + +// Retrieve Information regarding the bandwidth allotment to which a piece of hardware belongs. +func (r Hardware_Router) GetVirtualRack() (resp datatypes.Network_Bandwidth_Version1_Allotment, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Router", "getVirtualRack", nil, &r.Options, &resp) + return +} + +// Retrieve The name of the bandwidth allotment belonging to a piece of hardware. +func (r Hardware_Router) GetVirtualRackId() (resp int, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Router", "getVirtualRackId", nil, &r.Options, &resp) + return +} + +// Retrieve The name of the bandwidth allotment belonging to a piece of hardware. +func (r Hardware_Router) GetVirtualRackName() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Router", "getVirtualRackName", nil, &r.Options, &resp) + return +} + +// Retrieve A piece of hardware's virtualization platform software. +func (r Hardware_Router) GetVirtualizationPlatform() (resp datatypes.Software_Component, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Router", "getVirtualizationPlatform", nil, &r.Options, &resp) + return +} + +// The '''importVirtualHost''' method attempts to import the host record for the virtualization platform running on a server. +func (r Hardware_Router) ImportVirtualHost() (resp datatypes.Virtual_Host, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Router", "importVirtualHost", nil, &r.Options, &resp) + return +} + +// The '''isPingable''' method issues a ping command to the selected server and returns the result of the ping command. This boolean return value displays ''true'' upon successful ping or ''false'' for a failed ping. +func (r Hardware_Router) IsPingable() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Router", "isPingable", nil, &r.Options, &resp) + return +} + +// Issues a ping command to the server and returns the ping response. +func (r Hardware_Router) Ping() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Router", "ping", nil, &r.Options, &resp) + return +} + +// The '''powerCycle''' method completes a power off and power on of the server successively in one command. The power cycle command is equivalent to unplugging the server from the power strip and then plugging the server back in. '''This method should only be used when all other options have been exhausted'''. Additional remote management commands may not be executed if this command was successfully issued within the last 20 minutes to avoid server failure. Remote management commands include: +// +// rebootSoft rebootHard powerOn powerOff powerCycle +// +// +func (r Hardware_Router) PowerCycle() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Router", "powerCycle", nil, &r.Options, &resp) + return +} + +// This method will power off the server via the server's remote management card. +func (r Hardware_Router) PowerOff() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Router", "powerOff", nil, &r.Options, &resp) + return +} + +// The '''powerOn''' method powers on a server via its remote management card. This boolean return value returns ''true'' upon successful execution and ''false'' if unsuccessful. Other remote management commands may not be issued in this command was successfully completed within the last 20 minutes to avoid server failure. Remote management commands include: +// +// rebootSoft rebootHard powerOn powerOff powerCycle +// +// +func (r Hardware_Router) PowerOn() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Router", "powerOn", nil, &r.Options, &resp) + return +} + +// The '''rebootDefault''' method attempts to reboot the server by issuing a soft reboot, or reset, command to the server's remote management card. if the reset attempt is unsuccessful, a power cycle command will be issued via the power strip. The power cycle command is equivalent to unplugging the server from the power strip and then plugging the server back in. If the reset was successful within the last 20 minutes, another remote management command cannot be completed to avoid server failure. Remote management commands include: +// +// rebootSoft rebootHard powerOn powerOff powerCycle +// +// +func (r Hardware_Router) RebootDefault() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Router", "rebootDefault", nil, &r.Options, &resp) + return +} + +// The '''rebootHard''' method reboots the server by issuing a cycle command to the server's remote management card. A hard reboot is equivalent to pressing the ''Reset'' button on a server - it is issued immediately and will not allow processes to shut down prior to the reboot. Completing a hard reboot may initiate system disk checks upon server reboot, causing the boot up to take longer than normally expected. +// +// Remote management commands are unable to be executed if a reboot has been issued successfully within the last 20 minutes to avoid server failure. Remote management commands include: +// +// rebootSoft rebootHard powerOn powerOff powerCycle +// +// +func (r Hardware_Router) RebootHard() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Router", "rebootHard", nil, &r.Options, &resp) + return +} + +// The '''rebootSoft''' method reboots the server by issuing a reset command to the server's remote management card via soft reboot. When executing a soft reboot, servers allow all processes to shut down completely before rebooting. Remote management commands are unable to be issued within 20 minutes of issuing a successful soft reboot in order to avoid server failure. Remote management commands include: +// +// rebootSoft rebootHard powerOn powerOff powerCycle +// +// +func (r Hardware_Router) RebootSoft() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Router", "rebootSoft", nil, &r.Options, &resp) + return +} + +// This method is used to remove access to s SoftLayer_Network_Storage volumes that supports host- or network-level access control. +func (r Hardware_Router) RemoveAccessToNetworkStorage(networkStorageTemplateObject *datatypes.Network_Storage) (resp bool, err error) { + params := []interface{}{ + networkStorageTemplateObject, + } + err = r.Session.DoRequest("SoftLayer_Hardware_Router", "removeAccessToNetworkStorage", params, &r.Options, &resp) + return +} + +// This method is used to allow access to multiple SoftLayer_Network_Storage volumes that support host- or network-level access control. +func (r Hardware_Router) RemoveAccessToNetworkStorageList(networkStorageTemplateObjects []datatypes.Network_Storage) (resp bool, err error) { + params := []interface{}{ + networkStorageTemplateObjects, + } + err = r.Session.DoRequest("SoftLayer_Hardware_Router", "removeAccessToNetworkStorageList", params, &r.Options, &resp) + return +} + +// no documentation yet +func (r Hardware_Router) SetTags(tags *string) (resp bool, err error) { + params := []interface{}{ + tags, + } + err = r.Session.DoRequest("SoftLayer_Hardware_Router", "setTags", params, &r.Options, &resp) + return +} + +// This method will update the root IPMI password on this SoftLayer_Hardware. +func (r Hardware_Router) UpdateIpmiPassword(password *string) (resp bool, err error) { + params := []interface{}{ + password, + } + err = r.Session.DoRequest("SoftLayer_Hardware_Router", "updateIpmiPassword", params, &r.Options, &resp) + return +} + +// no documentation yet +type Hardware_SecurityModule struct { + Session *session.Session + Options sl.Options +} + +// GetHardwareSecurityModuleService returns an instance of the Hardware_SecurityModule SoftLayer service +func GetHardwareSecurityModuleService(sess *session.Session) Hardware_SecurityModule { + return Hardware_SecurityModule{Session: sess} +} + +func (r Hardware_SecurityModule) Id(id int) Hardware_SecurityModule { + r.Options.Id = &id + return r +} + +func (r Hardware_SecurityModule) Mask(mask string) Hardware_SecurityModule { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Hardware_SecurityModule) Filter(filter string) Hardware_SecurityModule { + r.Options.Filter = filter + return r +} + +func (r Hardware_SecurityModule) Limit(limit int) Hardware_SecurityModule { + r.Options.Limit = &limit + return r +} + +func (r Hardware_SecurityModule) Offset(offset int) Hardware_SecurityModule { + r.Options.Offset = &offset + return r +} + +// Activates the private network port +func (r Hardware_SecurityModule) ActivatePrivatePort() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "activatePrivatePort", nil, &r.Options, &resp) + return +} + +// Activates the public network port +func (r Hardware_SecurityModule) ActivatePublicPort() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "activatePublicPort", nil, &r.Options, &resp) + return +} + +// This method is used to allow access to a SoftLayer_Network_Storage volume that supports host- or network-level access control. +func (r Hardware_SecurityModule) AllowAccessToNetworkStorage(networkStorageTemplateObject *datatypes.Network_Storage) (resp bool, err error) { + params := []interface{}{ + networkStorageTemplateObject, + } + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "allowAccessToNetworkStorage", params, &r.Options, &resp) + return +} + +// This method is used to allow access to multiple SoftLayer_Network_Storage volumes that support host- or network-level access control. +func (r Hardware_SecurityModule) AllowAccessToNetworkStorageList(networkStorageTemplateObjects []datatypes.Network_Storage) (resp bool, err error) { + params := []interface{}{ + networkStorageTemplateObjects, + } + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "allowAccessToNetworkStorageList", params, &r.Options, &resp) + return +} + +// The Rescue Kernel is designed to provide you with the ability to bring a server online in order to troubleshoot system problems that would normally only be resolved by an OS Reload. The correct Rescue Kernel will be selected based upon the currently installed operating system. When the rescue kernel process is initiated, the server will shutdown and reboot on to the public network with the same IP's assigned to the server to allow for remote connections. It will bring your server offline for approximately 10 minutes while the rescue is in progress. The root/administrator password will be the same as what is listed in the portal for the server. +func (r Hardware_SecurityModule) BootToRescueLayer(noOsBootEnvironment *string) (resp bool, err error) { + params := []interface{}{ + noOsBootEnvironment, + } + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "bootToRescueLayer", params, &r.Options, &resp) + return +} + +// Captures a Flex Image of the hard disk on the physical machine, based on the capture template parameter. Returns the image template group containing the disk image. +func (r Hardware_SecurityModule) CaptureImage(captureTemplate *datatypes.Container_Disk_Image_Capture_Template) (resp datatypes.Virtual_Guest_Block_Device_Template_Group, err error) { + params := []interface{}{ + captureTemplate, + } + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "captureImage", params, &r.Options, &resp) + return +} + +// Returns monitoring alarm detailed history +func (r Hardware_SecurityModule) CloseAlarm(alarmId *string) (resp bool, err error) { + params := []interface{}{ + alarmId, + } + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "closeAlarm", params, &r.Options, &resp) + return +} + +// You can launch firmware updates by selecting from your server list. It will bring your server offline for approximately 20 minutes while the updates are in progress. +// +// In the event of a hardware failure during this test our datacenter engineers will be notified of the problem automatically. They will then replace any failed components to bring your server back online, and will be contacting you to ensure that impact on your server is minimal. +func (r Hardware_SecurityModule) CreateFirmwareUpdateTransaction(ipmi *int, raidController *int, bios *int, harddrive *int) (resp bool, err error) { + params := []interface{}{ + ipmi, + raidController, + bios, + harddrive, + } + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "createFirmwareUpdateTransaction", params, &r.Options, &resp) + return +} + +// +// +// createObject() enables the creation of servers on an account. This +// method is a simplified alternative to interacting with the ordering system directly. +// +// +// In order to create a server, a template object must be sent in with a few required +// values. +// +// +// When this method returns an order will have been placed for a server of the specified configuration. +// +// +// To determine when the server is available you can poll the server via [[SoftLayer_Hardware/getObject|getObject]], +// checking the provisionDate property. +// When provisionDate is not null, the server will be ready. Be sure to use the globalIdentifier +// as your initialization parameter. +// +// +// Warning: Servers created via this method will incur charges on your account. For testing input parameters see [[SoftLayer_Hardware/generateOrderTemplate|generateOrderTemplate]]. +// +// +// Input - [[SoftLayer_Hardware (type)|SoftLayer_Hardware]] +//
      +//
    • hostname +//
      Hostname for the server.
        +//
      • Required
      • +//
      • Type - string
      • +//
      +//
      +//
    • +//
    • domain +//
      Domain for the server.
        +//
      • Required
      • +//
      • Type - string
      • +//
      +//
      +//
    • +//
    • processorCoreAmount +//
      The number of logical CPU cores to allocate.
        +//
      • Required
      • +//
      • Type - int
      • +//
      • See [[SoftLayer_Hardware/getCreateObjectOptions|getCreateObjectOptions]] for available options.
      • +//
      +//
      +//
    • +//
    • memoryCapacity +//
      The amount of memory to allocate in gigabytes.
        +//
      • Required
      • +//
      • Type - int
      • +//
      • See [[SoftLayer_Hardware/getCreateObjectOptions|getCreateObjectOptions]] for available options.
      • +//
      +//
      +//
    • +//
    • hourlyBillingFlag +//
      Specifies the billing type for the server.
        +//
      • Required
      • +//
      • Type - boolean
      • +//
      • When true the server will be billed on hourly usage, otherwise it will be billed on a monthly basis.
      • +//
      +//
      +//
    • +//
    • operatingSystemReferenceCode +//
      An identifier for the operating system to provision the server with.
        +//
      • Required
      • +//
      • Type - string
      • +//
      • See [[SoftLayer_Hardware/getCreateObjectOptions|getCreateObjectOptions]] for available options.
      • +//
      +//
      +//
    • +//
    • datacenter.name +//
      Specifies which datacenter the server is to be provisioned in.
        +//
      • Required
      • +//
      • Type - string
      • +//
      • The datacenter property is a [[SoftLayer_Location (type)|location]] structure with the name field set.
      • +//
      • See [[SoftLayer_Hardware/getCreateObjectOptions|getCreateObjectOptions]] for available options.
      • +//
      +// { +// "datacenter": { +// "name": "dal05" +// } +// } +//
      +//
    • +//
    • networkComponents.maxSpeed +//
      Specifies the connection speed for the server's network components.
        +//
      • Optional
      • +//
      • Type - int
      • +//
      • Default - The highest available zero cost port speed will be used.
      • +//
      • Description - The networkComponents property is an array with a single [[SoftLayer_Network_Component (type)|network component]] structure. The maxSpeed property must be set to specify the network uplink speed, in megabits per second, of the server.
      • +//
      • See [[SoftLayer_Hardware/getCreateObjectOptions|getCreateObjectOptions]] for available options.
      • +//
      +// { +// "networkComponents": [ +// { +// "maxSpeed": 1000 +// } +// ] +// } +//
      +//
    • +//
    • networkComponents.redundancyEnabledFlag +//
      Specifies whether or not the server's network components should be in redundancy groups.
        +//
      • Optional
      • +//
      • Type - bool
      • +//
      • Default - false
      • +//
      • Description - The networkComponents property is an array with a single [[SoftLayer_Network_Component (type)|network component]] structure. When the redundancyEnabledFlag property is true the server's network components will be in redundancy groups.
      • +//
      +// { +// "networkComponents": [ +// { +// "redundancyEnabledFlag": false +// } +// ] +// } +//
      +//
    • +//
    • privateNetworkOnlyFlag +//
      Specifies whether or not the server only has access to the private network
        +//
      • Optional
      • +//
      • Type - boolean
      • +//
      • Default - false
      • +//
      • When true this flag specifies that a server is to only have access to the private network.
      • +//
      +//
      +//
    • +//
    • primaryNetworkComponent.networkVlan.id +//
      Specifies the network vlan which is to be used for the frontend interface of the server.
        +//
      • Optional
      • +//
      • Type - int
      • +//
      • Description - The primaryNetworkComponent property is a [[SoftLayer_Network_Component (type)|network component]] structure with the networkVlan property populated with a [[SoftLayer_Network_Vlan (type)|vlan]] structure. The id property must be set to specify the frontend network vlan of the server.
      • +//
      +// { +// "primaryNetworkComponent": { +// "networkVlan": { +// "id": 1 +// } +// } +// } +//
      +//
    • +//
    • primaryBackendNetworkComponent.networkVlan.id +//
      Specifies the network vlan which is to be used for the backend interface of the server.
        +//
      • Optional
      • +//
      • Type - int
      • +//
      • Description - The primaryBackendNetworkComponent property is a [[SoftLayer_Network_Component (type)|network component]] structure with the networkVlan property populated with a [[SoftLayer_Network_Vlan (type)|vlan]] structure. The id property must be set to specify the backend network vlan of the server.
      • +//
      +// { +// "primaryBackendNetworkComponent": { +// "networkVlan": { +// "id": 2 +// } +// } +// } +//
      +//
    • +//
    • fixedConfigurationPreset.keyName +//
        +//
      • Optional
      • +//
      • Type - string
      • +//
      • Description - The fixedConfigurationPreset property is a [[SoftLayer_Product_Package_Preset (type)|fixed configuration preset]] structure. The keyName property must be set to specify preset to use.
      • +//
      • If a fixed configuration preset is used processorCoreAmount, memoryCapacity and hardDrives properties must not be set.
      • +//
      • See [[SoftLayer_Hardware/getCreateObjectOptions|getCreateObjectOptions]] for available options.
      • +//
      +// { +// "fixedConfigurationPreset": { +// "keyName": "SOME_KEY_NAME" +// } +// } +//
      +//
    • +//
    • userData.value +//
      Arbitrary data to be made available to the server.
        +//
      • Optional
      • +//
      • Type - string
      • +//
      • Description - The userData property is an array with a single [[SoftLayer_Hardware_Attribute (type)|attribute]] structure with the value property set to an arbitrary value.
      • +//
      • This value can be retrieved via the [[SoftLayer_Resource_Metadata/getUserMetadata|getUserMetadata]] method from a request originating from the server. This is primarily useful for providing data to software that may be on the server and configured to execute upon first boot.
      • +//
      +// { +// "userData": [ +// { +// "value": "someValue" +// } +// ] +// } +//
      +//
    • +//
    • hardDrives +//
      Hard drive settings for the server
        +//
      • Optional
      • +//
      • Type - SoftLayer_Hardware_Component
      • +//
      • Default - The largest available capacity for a zero cost primary disk will be used.
      • +//
      • Description - The hardDrives property is an array of [[SoftLayer_Hardware_Component (type)|hardware component]] structures. +//
      • Each hard drive must specify the capacity property.
      • +//
      • See [[SoftLayer_Hardware/getCreateObjectOptions|getCreateObjectOptions]] for available options.
      • +//
      +// { +// "hardDrives": [ +// { +// "capacity": 500 +// } +// ] +// } +//
      +//
    • +//
    • sshKeys +//
      SSH keys to install on the server upon provisioning.
        +//
      • Optional
      • +//
      • Type - array of [[SoftLayer_Security_Ssh_Key (type)|SoftLayer_Security_Ssh_Key]]
      • +//
      • Description - The sshKeys property is an array of [[SoftLayer_Security_Ssh_Key (type)|SSH Key]] structures with the id property set to the value of an existing SSH key.
      • +//
      • To create a new SSH key, call [[SoftLayer_Security_Ssh_Key/createObject|createObject]] on the [[SoftLayer_Security_Ssh_Key]] service.
      • +//
      • To obtain a list of existing SSH keys, call [[SoftLayer_Account/getSshKeys|getSshKeys]] on the [[SoftLayer_Account]] service. +//
      +// { +// "sshKeys": [ +// { +// "id": 123 +// } +// ] +// } +//
      +//
    • +//
    • postInstallScriptUri +//
      Specifies the uri location of the script to be downloaded and run after installation is complete.
        +//
      • Optional
      • +//
      • Type - string
      • +//
      +//
      +//
    • +//
    +// +// +//

    REST Example

    +// curl -X POST -d '{ +// "parameters":[ +// { +// "hostname": "host1", +// "domain": "example.com", +// "processorCoreAmount": 2, +// "memoryCapacity": 2, +// "hourlyBillingFlag": true, +// "operatingSystemReferenceCode": "UBUNTU_LATEST" +// } +// ] +// }' https://api.softlayer.com/rest/v3/SoftLayer_Hardware.json +// +// HTTP/1.1 201 Created +// Location: https://api.softlayer.com/rest/v3/SoftLayer_Hardware/f5a3fcff-db1d-4b7c-9fa0-0349e41c29c5/getObject +// +// +// { +// "accountId": 232298, +// "bareMetalInstanceFlag": null, +// "domain": "example.com", +// "hardwareStatusId": null, +// "hostname": "host1", +// "id": null, +// "serviceProviderId": null, +// "serviceProviderResourceId": null, +// "globalIdentifier": "f5a3fcff-db1d-4b7c-9fa0-0349e41c29c5", +// "hourlyBillingFlag": true, +// "memoryCapacity": 2, +// "operatingSystemReferenceCode": "UBUNTU_LATEST", +// "processorCoreAmount": 2 +// } +// +func (r Hardware_SecurityModule) CreateObject(templateObject *datatypes.Hardware_SecurityModule) (resp datatypes.Hardware_SecurityModule, err error) { + params := []interface{}{ + templateObject, + } + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "createObject", params, &r.Options, &resp) + return +} + +// no documentation yet +func (r Hardware_SecurityModule) CreatePostSoftwareInstallTransaction(installCodes []string, returnBoolean *bool) (resp bool, err error) { + params := []interface{}{ + installCodes, + returnBoolean, + } + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "createPostSoftwareInstallTransaction", params, &r.Options, &resp) + return +} + +// +// This method will cancel a server effective immediately. For servers billed hourly, the charges will stop immediately after the method returns. +func (r Hardware_SecurityModule) DeleteObject() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "deleteObject", nil, &r.Options, &resp) + return +} + +// Delete software component passwords. +func (r Hardware_SecurityModule) DeleteSoftwareComponentPasswords(softwareComponentPasswords []datatypes.Software_Component_Password) (resp bool, err error) { + params := []interface{}{ + softwareComponentPasswords, + } + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "deleteSoftwareComponentPasswords", params, &r.Options, &resp) + return +} + +// Edit a server's properties +func (r Hardware_SecurityModule) EditObject(templateObject *datatypes.Hardware_Server) (resp bool, err error) { + params := []interface{}{ + templateObject, + } + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "editObject", params, &r.Options, &resp) + return +} + +// Edit the properties of a software component password such as the username, password, and notes. +func (r Hardware_SecurityModule) EditSoftwareComponentPasswords(softwareComponentPasswords []datatypes.Software_Component_Password) (resp bool, err error) { + params := []interface{}{ + softwareComponentPasswords, + } + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "editSoftwareComponentPasswords", params, &r.Options, &resp) + return +} + +// Download and run remote script from uri on the hardware. +func (r Hardware_SecurityModule) ExecuteRemoteScript(uri *string) (err error) { + var resp datatypes.Void + params := []interface{}{ + uri, + } + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "executeRemoteScript", params, &r.Options, &resp) + return +} + +// The '''findByIpAddress''' method finds hardware using its primary public or private IP address. IP addresses that have a secondary subnet tied to the hardware will not return the hardware - alternate means of locating the hardware must be used (see '''Associated Methods'''). If no hardware is found, no errors are generated and no data is returned. +func (r Hardware_SecurityModule) FindByIpAddress(ipAddress *string) (resp datatypes.Hardware, err error) { + params := []interface{}{ + ipAddress, + } + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "findByIpAddress", params, &r.Options, &resp) + return +} + +// +// Obtain an [[SoftLayer_Container_Product_Order_Hardware_Server (type)|order container]] that can be sent to [[SoftLayer_Product_Order/verifyOrder|verifyOrder]] or [[SoftLayer_Product_Order/placeOrder|placeOrder]]. +// +// +// This is primarily useful when there is a necessity to confirm the price which will be charged for an order. +// +// +// See [[SoftLayer_Hardware/createObject|createObject]] for specifics on the requirements of the template object parameter. +func (r Hardware_SecurityModule) GenerateOrderTemplate(templateObject *datatypes.Hardware) (resp datatypes.Container_Product_Order, err error) { + params := []interface{}{ + templateObject, + } + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "generateOrderTemplate", params, &r.Options, &resp) + return +} + +// Retrieve The account associated with a piece of hardware. +func (r Hardware_SecurityModule) GetAccount() (resp datatypes.Account, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "getAccount", nil, &r.Options, &resp) + return +} + +// Retrieve A piece of hardware's active physical components. +func (r Hardware_SecurityModule) GetActiveComponents() (resp []datatypes.Hardware_Component, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "getActiveComponents", nil, &r.Options, &resp) + return +} + +// Retrieve The billing item for a server's attached network firewall. +func (r Hardware_SecurityModule) GetActiveNetworkFirewallBillingItem() (resp datatypes.Billing_Item, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "getActiveNetworkFirewallBillingItem", nil, &r.Options, &resp) + return +} + +// Retrieve A piece of hardware's active network monitoring incidents. +func (r Hardware_SecurityModule) GetActiveNetworkMonitorIncident() (resp []datatypes.Network_Monitor_Version1_Incident, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "getActiveNetworkMonitorIncident", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Hardware_SecurityModule) GetActiveTickets() (resp []datatypes.Ticket, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "getActiveTickets", nil, &r.Options, &resp) + return +} + +// Retrieve Transaction currently running for server. +func (r Hardware_SecurityModule) GetActiveTransaction() (resp datatypes.Provisioning_Version1_Transaction, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "getActiveTransaction", nil, &r.Options, &resp) + return +} + +// Retrieve Any active transaction(s) that are currently running for the server (example: os reload). +func (r Hardware_SecurityModule) GetActiveTransactions() (resp []datatypes.Provisioning_Version1_Transaction, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "getActiveTransactions", nil, &r.Options, &resp) + return +} + +// The '''getAlarmHistory''' method retrieves a detailed history for the monitoring alarm. When calling this method, a start and end date for the history to be retrieved must be entered. +func (r Hardware_SecurityModule) GetAlarmHistory(startDate *datatypes.Time, endDate *datatypes.Time, alarmId *string) (resp []datatypes.Container_Monitoring_Alarm_History, err error) { + params := []interface{}{ + startDate, + endDate, + alarmId, + } + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "getAlarmHistory", params, &r.Options, &resp) + return +} + +// Retrieve +func (r Hardware_SecurityModule) GetAllPowerComponents() (resp []datatypes.Hardware_Power_Component, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "getAllPowerComponents", nil, &r.Options, &resp) + return +} + +// Retrieve The SoftLayer_Network_Storage_Allowed_Host information to connect this server to Network Storage volumes that require access control lists. +func (r Hardware_SecurityModule) GetAllowedHost() (resp datatypes.Network_Storage_Allowed_Host, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "getAllowedHost", nil, &r.Options, &resp) + return +} + +// Retrieve The SoftLayer_Network_Storage objects that this SoftLayer_Hardware has access to. +func (r Hardware_SecurityModule) GetAllowedNetworkStorage() (resp []datatypes.Network_Storage, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "getAllowedNetworkStorage", nil, &r.Options, &resp) + return +} + +// Retrieve The SoftLayer_Network_Storage objects whose Replica that this SoftLayer_Hardware has access to. +func (r Hardware_SecurityModule) GetAllowedNetworkStorageReplicas() (resp []datatypes.Network_Storage, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "getAllowedNetworkStorageReplicas", nil, &r.Options, &resp) + return +} + +// Retrieve Information regarding an antivirus/spyware software component object. +func (r Hardware_SecurityModule) GetAntivirusSpywareSoftwareComponent() (resp datatypes.Software_Component, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "getAntivirusSpywareSoftwareComponent", nil, &r.Options, &resp) + return +} + +// This method is retrieve a list of SoftLayer_Network_Storage volumes that are authorized access to this SoftLayer_Hardware. +func (r Hardware_SecurityModule) GetAttachedNetworkStorages(nasType *string) (resp []datatypes.Network_Storage, err error) { + params := []interface{}{ + nasType, + } + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "getAttachedNetworkStorages", params, &r.Options, &resp) + return +} + +// Retrieve Information regarding a piece of hardware's specific attributes. +func (r Hardware_SecurityModule) GetAttributes() (resp []datatypes.Hardware_Attribute, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "getAttributes", nil, &r.Options, &resp) + return +} + +// Retrieve An object that stores the maximum level for the monitoring query types and response types. +func (r Hardware_SecurityModule) GetAvailableMonitoring() (resp []datatypes.Network_Monitor_Version1_Query_Host_Stratum, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "getAvailableMonitoring", nil, &r.Options, &resp) + return +} + +// This method retrieves a list of SoftLayer_Network_Storage volumes that can be authorized to this SoftLayer_Hardware. +func (r Hardware_SecurityModule) GetAvailableNetworkStorages(nasType *string) (resp []datatypes.Network_Storage, err error) { + params := []interface{}{ + nasType, + } + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "getAvailableNetworkStorages", params, &r.Options, &resp) + return +} + +// Retrieve The average daily total bandwidth usage for the current billing cycle. +func (r Hardware_SecurityModule) GetAverageDailyBandwidthUsage() (resp datatypes.Float64, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "getAverageDailyBandwidthUsage", nil, &r.Options, &resp) + return +} + +// Retrieve The average daily private bandwidth usage for the current billing cycle. +func (r Hardware_SecurityModule) GetAverageDailyPrivateBandwidthUsage() (resp datatypes.Float64, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "getAverageDailyPrivateBandwidthUsage", nil, &r.Options, &resp) + return +} + +// Retrieve The average daily public bandwidth usage for the current billing cycle. +func (r Hardware_SecurityModule) GetAverageDailyPublicBandwidthUsage() (resp datatypes.Float64, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "getAverageDailyPublicBandwidthUsage", nil, &r.Options, &resp) + return +} + +// Use this method to return an array of private bandwidth utilization records between a given date range. +// +// This method represents the NEW version of getFrontendBandwidthUse +func (r Hardware_SecurityModule) GetBackendBandwidthUsage(startDate *datatypes.Time, endDate *datatypes.Time) (resp []datatypes.Metric_Tracking_Object_Data, err error) { + params := []interface{}{ + startDate, + endDate, + } + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "getBackendBandwidthUsage", params, &r.Options, &resp) + return +} + +// Use this method to return an array of private bandwidth utilization records between a given date range. +func (r Hardware_SecurityModule) GetBackendBandwidthUse(startDate *datatypes.Time, endDate *datatypes.Time) (resp []datatypes.Network_Bandwidth_Version1_Usage_Detail, err error) { + params := []interface{}{ + startDate, + endDate, + } + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "getBackendBandwidthUse", params, &r.Options, &resp) + return +} + +// The '''getBackendIncomingBandwidth''' method retrieves the amount of incoming private network traffic used between the given start date and end date parameters. When entering start and end dates, only the month, day and year are used to calculate bandwidth totals - the time (HH:MM:SS) is ignored and defaults to midnight. The amount of bandwidth retrieved is measured in gigabytes. +func (r Hardware_SecurityModule) GetBackendIncomingBandwidth(startDate *datatypes.Time, endDate *datatypes.Time) (resp datatypes.Float64, err error) { + params := []interface{}{ + startDate, + endDate, + } + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "getBackendIncomingBandwidth", params, &r.Options, &resp) + return +} + +// Retrieve A piece of hardware's back-end or private network components. +func (r Hardware_SecurityModule) GetBackendNetworkComponents() (resp []datatypes.Network_Component, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "getBackendNetworkComponents", nil, &r.Options, &resp) + return +} + +// The '''getBackendOutgoingBandwidth''' method retrieves the amount of outgoing private network traffic used between the given start date and end date parameters. When entering start and end dates, only the month, day and year are used to calculate bandwidth totals - the time (HH:MM:SS) is ignored and defaults to midnight. The amount of bandwidth retrieved is measured in gigabytes. +func (r Hardware_SecurityModule) GetBackendOutgoingBandwidth(startDate *datatypes.Time, endDate *datatypes.Time) (resp datatypes.Float64, err error) { + params := []interface{}{ + startDate, + endDate, + } + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "getBackendOutgoingBandwidth", params, &r.Options, &resp) + return +} + +// Retrieve A hardware's backend or private router. +func (r Hardware_SecurityModule) GetBackendRouters() (resp []datatypes.Hardware, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "getBackendRouters", nil, &r.Options, &resp) + return +} + +// Retrieve A hardware's allotted bandwidth (measured in GB). +func (r Hardware_SecurityModule) GetBandwidthAllocation() (resp datatypes.Float64, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "getBandwidthAllocation", nil, &r.Options, &resp) + return +} + +// Retrieve A hardware's allotted detail record. Allotment details link bandwidth allocation with allotments. +func (r Hardware_SecurityModule) GetBandwidthAllotmentDetail() (resp datatypes.Network_Bandwidth_Version1_Allotment_Detail, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "getBandwidthAllotmentDetail", nil, &r.Options, &resp) + return +} + +// Retrieve a collection of bandwidth data from an individual public or private network tracking object. Data is ideal if you with to employ your own traffic storage and graphing systems. +func (r Hardware_SecurityModule) GetBandwidthForDateRange(startDate *datatypes.Time, endDate *datatypes.Time) (resp []datatypes.Metric_Tracking_Object_Data, err error) { + params := []interface{}{ + startDate, + endDate, + } + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "getBandwidthForDateRange", params, &r.Options, &resp) + return +} + +// Use this method when needing a bandwidth image for a single server. It will gather the correct input parameters for the generic graphing utility automatically based on the snapshot specified. Use the $draw flag to suppress the generation of the actual binary PNG image. +func (r Hardware_SecurityModule) GetBandwidthImage(networkType *string, snapshotRange *string, draw *bool, dateSpecified *datatypes.Time, dateSpecifiedEnd *datatypes.Time) (resp datatypes.Container_Bandwidth_GraphOutputs, err error) { + params := []interface{}{ + networkType, + snapshotRange, + draw, + dateSpecified, + dateSpecifiedEnd, + } + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "getBandwidthImage", params, &r.Options, &resp) + return +} + +// Retrieve Information regarding a piece of hardware's benchmark certifications. +func (r Hardware_SecurityModule) GetBenchmarkCertifications() (resp []datatypes.Hardware_Benchmark_Certification, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "getBenchmarkCertifications", nil, &r.Options, &resp) + return +} + +// Retrieve The raw bandwidth usage data for the current billing cycle. One object will be returned for each network this server is attached to. +func (r Hardware_SecurityModule) GetBillingCycleBandwidthUsage() (resp []datatypes.Network_Bandwidth_Usage, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "getBillingCycleBandwidthUsage", nil, &r.Options, &resp) + return +} + +// Retrieve The raw private bandwidth usage data for the current billing cycle. +func (r Hardware_SecurityModule) GetBillingCyclePrivateBandwidthUsage() (resp datatypes.Network_Bandwidth_Usage, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "getBillingCyclePrivateBandwidthUsage", nil, &r.Options, &resp) + return +} + +// Retrieve The raw public bandwidth usage data for the current billing cycle. +func (r Hardware_SecurityModule) GetBillingCyclePublicBandwidthUsage() (resp datatypes.Network_Bandwidth_Usage, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "getBillingCyclePublicBandwidthUsage", nil, &r.Options, &resp) + return +} + +// Retrieve Information regarding the billing item for a server. +func (r Hardware_SecurityModule) GetBillingItem() (resp datatypes.Billing_Item_Hardware, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "getBillingItem", nil, &r.Options, &resp) + return +} + +// Retrieve A flag indicating that a billing item exists. +func (r Hardware_SecurityModule) GetBillingItemFlag() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "getBillingItemFlag", nil, &r.Options, &resp) + return +} + +// Retrieve Determines whether the hardware is ineligible for cancellation because it is disconnected. +func (r Hardware_SecurityModule) GetBlockCancelBecauseDisconnectedFlag() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "getBlockCancelBecauseDisconnectedFlag", nil, &r.Options, &resp) + return +} + +// Retrieve Status indicating whether or not a piece of hardware has business continuance insurance. +func (r Hardware_SecurityModule) GetBusinessContinuanceInsuranceFlag() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "getBusinessContinuanceInsuranceFlag", nil, &r.Options, &resp) + return +} + +// Retrieve Child hardware. +func (r Hardware_SecurityModule) GetChildrenHardware() (resp []datatypes.Hardware, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "getChildrenHardware", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Hardware_SecurityModule) GetComponentDetailsXML() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "getComponentDetailsXML", nil, &r.Options, &resp) + return +} + +// Retrieve A piece of hardware's components. +func (r Hardware_SecurityModule) GetComponents() (resp []datatypes.Hardware_Component, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "getComponents", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Hardware_SecurityModule) GetContainsSolidStateDrivesFlag() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "getContainsSolidStateDrivesFlag", nil, &r.Options, &resp) + return +} + +// Retrieve A continuous data protection/server backup software component object. +func (r Hardware_SecurityModule) GetContinuousDataProtectionSoftwareComponent() (resp datatypes.Software_Component, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "getContinuousDataProtectionSoftwareComponent", nil, &r.Options, &resp) + return +} + +// Retrieve A server's control panel. +func (r Hardware_SecurityModule) GetControlPanel() (resp datatypes.Software_Component_ControlPanel, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "getControlPanel", nil, &r.Options, &resp) + return +} + +// Retrieve The total cost of a server, measured in US Dollars ($USD). +func (r Hardware_SecurityModule) GetCost() (resp datatypes.Float64, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "getCost", nil, &r.Options, &resp) + return +} + +// +// There are many options that may be provided while ordering a server, this method can be used to determine what these options are. +// +// +// Detailed information on the return value can be found on the data type page for [[SoftLayer_Container_Hardware_Configuration (type)]]. +func (r Hardware_SecurityModule) GetCreateObjectOptions() (resp datatypes.Container_Hardware_Configuration, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "getCreateObjectOptions", nil, &r.Options, &resp) + return +} + +// Retrieve An object that provides commonly used bandwidth summary components for the current billing cycle. +func (r Hardware_SecurityModule) GetCurrentBandwidthSummary() (resp datatypes.Metric_Tracking_Object_Bandwidth_Summary, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "getCurrentBandwidthSummary", nil, &r.Options, &resp) + return +} + +// Attempt to retrieve the file associated with the current benchmark certification result, if such a file exists. If there is no file for this benchmark certification result, calling this method throws an exception. +func (r Hardware_SecurityModule) GetCurrentBenchmarkCertificationResultFile() (resp []byte, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "getCurrentBenchmarkCertificationResultFile", nil, &r.Options, &resp) + return +} + +// Retrieve The current billable public outbound bandwidth for this hardware for the current billing cycle. +func (r Hardware_SecurityModule) GetCurrentBillableBandwidthUsage() (resp datatypes.Float64, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "getCurrentBillableBandwidthUsage", nil, &r.Options, &resp) + return +} + +// Get the billing detail for this instance for the current billing period. This does not include bandwidth usage. +func (r Hardware_SecurityModule) GetCurrentBillingDetail() (resp []datatypes.Billing_Item, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "getCurrentBillingDetail", nil, &r.Options, &resp) + return +} + +// The '''getCurrentBillingTotal''' method retrieves the total bill amount in US Dollars ($) for the current billing period. In addition to the total bill amount, the billing detail also includes all bandwidth used up to the point the method is called on the piece of hardware. +func (r Hardware_SecurityModule) GetCurrentBillingTotal() (resp datatypes.Float64, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "getCurrentBillingTotal", nil, &r.Options, &resp) + return +} + +// Retrieve bandwidth graph by date. +func (r Hardware_SecurityModule) GetCustomBandwidthDataByDate(graphData *datatypes.Container_Graph) (resp datatypes.Container_Graph, err error) { + params := []interface{}{ + graphData, + } + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "getCustomBandwidthDataByDate", params, &r.Options, &resp) + return +} + +// Retrieve Indicates if a server has a Customer Installed OS +func (r Hardware_SecurityModule) GetCustomerInstalledOperatingSystemFlag() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "getCustomerInstalledOperatingSystemFlag", nil, &r.Options, &resp) + return +} + +// Retrieve Indicates if a server is a customer owned device. +func (r Hardware_SecurityModule) GetCustomerOwnedFlag() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "getCustomerOwnedFlag", nil, &r.Options, &resp) + return +} + +// The '''getDailyAverage''' method calculates the average daily network traffic used by the selected server. Using the required parameter ''dateTime'' to enter a start and end date, the user retrieves this average, measure in gigabytes (GB) for the specified date range. When entering parameters, only the month, day and year are required - time entries are omitted as this method defaults the time to midnight in order to account for the entire day. +func (r Hardware_SecurityModule) GetDailyAverage(startDate *datatypes.Time, endDate *datatypes.Time) (resp datatypes.Float64, err error) { + params := []interface{}{ + startDate, + endDate, + } + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "getDailyAverage", params, &r.Options, &resp) + return +} + +// Retrieve Information regarding the datacenter in which a piece of hardware resides. +func (r Hardware_SecurityModule) GetDatacenter() (resp datatypes.Location, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "getDatacenter", nil, &r.Options, &resp) + return +} + +// Retrieve The name of the datacenter in which a piece of hardware resides. +func (r Hardware_SecurityModule) GetDatacenterName() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "getDatacenterName", nil, &r.Options, &resp) + return +} + +// Retrieve All hardware that has uplink network connections to a piece of hardware. +func (r Hardware_SecurityModule) GetDownlinkHardware() (resp []datatypes.Hardware, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "getDownlinkHardware", nil, &r.Options, &resp) + return +} + +// Retrieve All hardware that has uplink network connections to a piece of hardware. +func (r Hardware_SecurityModule) GetDownlinkNetworkHardware() (resp []datatypes.Hardware, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "getDownlinkNetworkHardware", nil, &r.Options, &resp) + return +} + +// Retrieve Information regarding all servers attached to a piece of network hardware. +func (r Hardware_SecurityModule) GetDownlinkServers() (resp []datatypes.Hardware, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "getDownlinkServers", nil, &r.Options, &resp) + return +} + +// Retrieve Information regarding all virtual guests attached to a piece of network hardware. +func (r Hardware_SecurityModule) GetDownlinkVirtualGuests() (resp []datatypes.Virtual_Guest, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "getDownlinkVirtualGuests", nil, &r.Options, &resp) + return +} + +// Retrieve All hardware downstream from a network device. +func (r Hardware_SecurityModule) GetDownstreamHardwareBindings() (resp []datatypes.Network_Component_Uplink_Hardware, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "getDownstreamHardwareBindings", nil, &r.Options, &resp) + return +} + +// Retrieve All network hardware downstream from the selected piece of hardware. +func (r Hardware_SecurityModule) GetDownstreamNetworkHardware() (resp []datatypes.Hardware, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "getDownstreamNetworkHardware", nil, &r.Options, &resp) + return +} + +// Retrieve All network hardware with monitoring warnings or errors that are downstream from the selected piece of hardware. +func (r Hardware_SecurityModule) GetDownstreamNetworkHardwareWithIncidents() (resp []datatypes.Hardware, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "getDownstreamNetworkHardwareWithIncidents", nil, &r.Options, &resp) + return +} + +// Retrieve Information regarding all servers attached downstream to a piece of network hardware. +func (r Hardware_SecurityModule) GetDownstreamServers() (resp []datatypes.Hardware, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "getDownstreamServers", nil, &r.Options, &resp) + return +} + +// Retrieve Information regarding all virtual guests attached to a piece of network hardware. +func (r Hardware_SecurityModule) GetDownstreamVirtualGuests() (resp []datatypes.Virtual_Guest, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "getDownstreamVirtualGuests", nil, &r.Options, &resp) + return +} + +// Retrieve The drive controllers contained within a piece of hardware. +func (r Hardware_SecurityModule) GetDriveControllers() (resp []datatypes.Hardware_Component, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "getDriveControllers", nil, &r.Options, &resp) + return +} + +// Retrieve Information regarding a piece of hardware's associated EVault network storage service account. +func (r Hardware_SecurityModule) GetEvaultNetworkStorage() (resp []datatypes.Network_Storage, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "getEvaultNetworkStorage", nil, &r.Options, &resp) + return +} + +// Get the subnets associated with this server that are protectable by a network component firewall. +func (r Hardware_SecurityModule) GetFirewallProtectableSubnets() (resp []datatypes.Network_Subnet, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "getFirewallProtectableSubnets", nil, &r.Options, &resp) + return +} + +// Retrieve Information regarding a piece of hardware's firewall services. +func (r Hardware_SecurityModule) GetFirewallServiceComponent() (resp datatypes.Network_Component_Firewall, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "getFirewallServiceComponent", nil, &r.Options, &resp) + return +} + +// Retrieve Defines the fixed components in a fixed configuration bare metal server. +func (r Hardware_SecurityModule) GetFixedConfigurationPreset() (resp datatypes.Product_Package_Preset, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "getFixedConfigurationPreset", nil, &r.Options, &resp) + return +} + +// Use this method to return an array of public bandwidth utilization records between a given date range. +// +// This method represents the NEW version of getFrontendBandwidthUse +func (r Hardware_SecurityModule) GetFrontendBandwidthUsage(startDate *datatypes.Time, endDate *datatypes.Time) (resp []datatypes.Metric_Tracking_Object_Data, err error) { + params := []interface{}{ + startDate, + endDate, + } + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "getFrontendBandwidthUsage", params, &r.Options, &resp) + return +} + +// Use this method to return an array of public bandwidth utilization records between a given date range. +func (r Hardware_SecurityModule) GetFrontendBandwidthUse(startDate *datatypes.Time, endDate *datatypes.Time) (resp []datatypes.Network_Bandwidth_Version1_Usage_Detail, err error) { + params := []interface{}{ + startDate, + endDate, + } + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "getFrontendBandwidthUse", params, &r.Options, &resp) + return +} + +// The '''getFrontendIncomingBandwidth''' method retrieves the amount of incoming public network traffic used by a server between the given start and end date parameters. When entering the ''dateTime'' parameter, only the month, day and year of the start and end dates are required - the time (hour, minute and second) are set to midnight by default and cannot be changed. The amount of bandwidth retrieved is measured in gigabytes (GB). +func (r Hardware_SecurityModule) GetFrontendIncomingBandwidth(startDate *datatypes.Time, endDate *datatypes.Time) (resp datatypes.Float64, err error) { + params := []interface{}{ + startDate, + endDate, + } + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "getFrontendIncomingBandwidth", params, &r.Options, &resp) + return +} + +// Retrieve A piece of hardware's front-end or public network components. +func (r Hardware_SecurityModule) GetFrontendNetworkComponents() (resp []datatypes.Network_Component, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "getFrontendNetworkComponents", nil, &r.Options, &resp) + return +} + +// The '''getFrontendOutgoingBandwidth''' method retrieves the amount of outgoing public network traffic used by a server between the given start and end date parameters. The ''dateTime'' parameter requires only the day, month and year to be entered - the time (hour, minute and second) are set to midnight be default in order to gather the data for the entire start and end date indicated in the parameter. The amount of bandwidth retrieved is measured in gigabytes (GB). +func (r Hardware_SecurityModule) GetFrontendOutgoingBandwidth(startDate *datatypes.Time, endDate *datatypes.Time) (resp datatypes.Float64, err error) { + params := []interface{}{ + startDate, + endDate, + } + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "getFrontendOutgoingBandwidth", params, &r.Options, &resp) + return +} + +// Retrieve A hardware's frontend or public router. +func (r Hardware_SecurityModule) GetFrontendRouters() (resp []datatypes.Hardware, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "getFrontendRouters", nil, &r.Options, &resp) + return +} + +// Retrieve A hardware's universally unique identifier. +func (r Hardware_SecurityModule) GetGlobalIdentifier() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "getGlobalIdentifier", nil, &r.Options, &resp) + return +} + +// Retrieve The hard drives contained within a piece of hardware. +func (r Hardware_SecurityModule) GetHardDrives() (resp []datatypes.Hardware_Component, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "getHardDrives", nil, &r.Options, &resp) + return +} + +// Retrieve a server by searching for the primary IP address. +func (r Hardware_SecurityModule) GetHardwareByIpAddress(ipAddress *string) (resp datatypes.Hardware_Server, err error) { + params := []interface{}{ + ipAddress, + } + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "getHardwareByIpAddress", params, &r.Options, &resp) + return +} + +// Retrieve The chassis that a piece of hardware is housed in. +func (r Hardware_SecurityModule) GetHardwareChassis() (resp datatypes.Hardware_Chassis, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "getHardwareChassis", nil, &r.Options, &resp) + return +} + +// Retrieve A hardware's function. +func (r Hardware_SecurityModule) GetHardwareFunction() (resp datatypes.Hardware_Function, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "getHardwareFunction", nil, &r.Options, &resp) + return +} + +// Retrieve A hardware's function. +func (r Hardware_SecurityModule) GetHardwareFunctionDescription() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "getHardwareFunctionDescription", nil, &r.Options, &resp) + return +} + +// Retrieve A hardware's status. +func (r Hardware_SecurityModule) GetHardwareStatus() (resp datatypes.Hardware_Status, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "getHardwareStatus", nil, &r.Options, &resp) + return +} + +// Retrieve Determine in hardware object has TPM enabled. +func (r Hardware_SecurityModule) GetHasTrustedPlatformModuleBillingItemFlag() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "getHasTrustedPlatformModuleBillingItemFlag", nil, &r.Options, &resp) + return +} + +// Retrieve Information regarding a host IPS software component object. +func (r Hardware_SecurityModule) GetHostIpsSoftwareComponent() (resp datatypes.Software_Component, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "getHostIpsSoftwareComponent", nil, &r.Options, &resp) + return +} + +// The '''getHourlyBandwidth''' method retrieves all bandwidth updates hourly for the specified hardware. Because the potential number of data points can become excessive, the method limits the user to obtain data in 24-hour intervals. The required ''dateTime'' parameter is used as the starting point for the query and will be calculated for the 24-hour period starting with the specified date and time. For example, entering a parameter of +// +// '02/01/2008 0:00' +// +// results in a return of all bandwidth data for the entire day of February 1, 2008, as 0:00 specifies a midnight start date. Please note that the time entered should be completed using a 24-hour clock (military time, astronomical time). +// +// For data spanning more than a single 24-hour period, refer to the getBandwidthData function on the metricTrackingObject for the piece of hardware. +func (r Hardware_SecurityModule) GetHourlyBandwidth(mode *string, day *datatypes.Time) (resp []datatypes.Metric_Tracking_Object_Data, err error) { + params := []interface{}{ + mode, + day, + } + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "getHourlyBandwidth", params, &r.Options, &resp) + return +} + +// Retrieve A server's hourly billing status. +func (r Hardware_SecurityModule) GetHourlyBillingFlag() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "getHourlyBillingFlag", nil, &r.Options, &resp) + return +} + +// Retrieve The sum of all the inbound network traffic data for the last 30 days. +func (r Hardware_SecurityModule) GetInboundBandwidthUsage() (resp datatypes.Float64, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "getInboundBandwidthUsage", nil, &r.Options, &resp) + return +} + +// Retrieve The total private inbound bandwidth for this hardware for the current billing cycle. +func (r Hardware_SecurityModule) GetInboundPrivateBandwidthUsage() (resp datatypes.Float64, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "getInboundPrivateBandwidthUsage", nil, &r.Options, &resp) + return +} + +// Retrieve The total public inbound bandwidth for this hardware for the current billing cycle. +func (r Hardware_SecurityModule) GetInboundPublicBandwidthUsage() (resp datatypes.Float64, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "getInboundPublicBandwidthUsage", nil, &r.Options, &resp) + return +} + +// Return a collection of SoftLayer_Item_Price objects from a collection of SoftLayer_Software_Description +func (r Hardware_SecurityModule) GetItemPricesFromSoftwareDescriptions(softwareDescriptions []datatypes.Software_Description, includeTranslationsFlag *bool, returnAllPricesFlag *bool) (resp []datatypes.Product_Item, err error) { + params := []interface{}{ + softwareDescriptions, + includeTranslationsFlag, + returnAllPricesFlag, + } + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "getItemPricesFromSoftwareDescriptions", params, &r.Options, &resp) + return +} + +// Retrieve The last transaction that a server's operating system was loaded. +func (r Hardware_SecurityModule) GetLastOperatingSystemReload() (resp datatypes.Provisioning_Version1_Transaction, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "getLastOperatingSystemReload", nil, &r.Options, &resp) + return +} + +// Retrieve Information regarding the last transaction a server performed. +func (r Hardware_SecurityModule) GetLastTransaction() (resp datatypes.Provisioning_Version1_Transaction, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "getLastTransaction", nil, &r.Options, &resp) + return +} + +// Retrieve A piece of hardware's latest network monitoring incident. +func (r Hardware_SecurityModule) GetLatestNetworkMonitorIncident() (resp datatypes.Network_Monitor_Version1_Incident, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "getLatestNetworkMonitorIncident", nil, &r.Options, &resp) + return +} + +// Retrieve Where a piece of hardware is located within SoftLayer's location hierarchy. +func (r Hardware_SecurityModule) GetLocation() (resp datatypes.Location, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "getLocation", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Hardware_SecurityModule) GetLocationPathString() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "getLocationPathString", nil, &r.Options, &resp) + return +} + +// Retrieve Information regarding a lockbox account associated with a server. +func (r Hardware_SecurityModule) GetLockboxNetworkStorage() (resp datatypes.Network_Storage, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "getLockboxNetworkStorage", nil, &r.Options, &resp) + return +} + +// Retrieve A flag indicating that the hardware is a managed resource. +func (r Hardware_SecurityModule) GetManagedResourceFlag() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "getManagedResourceFlag", nil, &r.Options, &resp) + return +} + +// Retrieve the remote management network component attached with this server. +func (r Hardware_SecurityModule) GetManagementNetworkComponent() (resp datatypes.Network_Component, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "getManagementNetworkComponent", nil, &r.Options, &resp) + return +} + +// Retrieve Information regarding a piece of hardware's memory. +func (r Hardware_SecurityModule) GetMemory() (resp []datatypes.Hardware_Component, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "getMemory", nil, &r.Options, &resp) + return +} + +// Retrieve The amount of memory a piece of hardware has, measured in gigabytes. +func (r Hardware_SecurityModule) GetMemoryCapacity() (resp uint, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "getMemoryCapacity", nil, &r.Options, &resp) + return +} + +// Retrieve A piece of hardware's metric tracking object. +func (r Hardware_SecurityModule) GetMetricTrackingObject() (resp datatypes.Metric_Tracking_Object_HardwareServer, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "getMetricTrackingObject", nil, &r.Options, &resp) + return +} + +// Retrieve The metric tracking object id for this server. +func (r Hardware_SecurityModule) GetMetricTrackingObjectId() (resp int, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "getMetricTrackingObjectId", nil, &r.Options, &resp) + return +} + +// Returns open monitoring alarms for a given time period +func (r Hardware_SecurityModule) GetMonitoringActiveAlarms(startDate *datatypes.Time, endDate *datatypes.Time) (resp []datatypes.Container_Monitoring_Alarm_History, err error) { + params := []interface{}{ + startDate, + endDate, + } + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "getMonitoringActiveAlarms", params, &r.Options, &resp) + return +} + +// Retrieve Information regarding the monitoring agents associated with a piece of hardware. +func (r Hardware_SecurityModule) GetMonitoringAgents() (resp []datatypes.Monitoring_Agent, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "getMonitoringAgents", nil, &r.Options, &resp) + return +} + +// Returns closed monitoring alarms for a given time period +func (r Hardware_SecurityModule) GetMonitoringClosedAlarms(startDate *datatypes.Time, endDate *datatypes.Time) (resp []datatypes.Container_Monitoring_Alarm_History, err error) { + params := []interface{}{ + startDate, + endDate, + } + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "getMonitoringClosedAlarms", params, &r.Options, &resp) + return +} + +// Retrieve Information regarding the hardware's monitoring robot. +func (r Hardware_SecurityModule) GetMonitoringRobot() (resp datatypes.Monitoring_Robot, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "getMonitoringRobot", nil, &r.Options, &resp) + return +} + +// Retrieve Information regarding a piece of hardware's network monitoring services. +func (r Hardware_SecurityModule) GetMonitoringServiceComponent() (resp datatypes.Network_Monitor_Version1_Query_Host_Stratum, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "getMonitoringServiceComponent", nil, &r.Options, &resp) + return +} + +// Retrieve The monitoring service flag eligibility status for a piece of hardware. +func (r Hardware_SecurityModule) GetMonitoringServiceEligibilityFlag() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "getMonitoringServiceEligibilityFlag", nil, &r.Options, &resp) + return +} + +// Retrieve The service flag status for a piece of hardware. +func (r Hardware_SecurityModule) GetMonitoringServiceFlag() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "getMonitoringServiceFlag", nil, &r.Options, &resp) + return +} + +// Retrieve The monitoring notification objects for this hardware. Each object links this hardware instance to a user account that will be notified if monitoring on this hardware object fails +func (r Hardware_SecurityModule) GetMonitoringUserNotification() (resp []datatypes.User_Customer_Notification_Hardware, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "getMonitoringUserNotification", nil, &r.Options, &resp) + return +} + +// Retrieve Information regarding a piece of hardware's motherboard. +func (r Hardware_SecurityModule) GetMotherboard() (resp datatypes.Hardware_Component, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "getMotherboard", nil, &r.Options, &resp) + return +} + +// Retrieve Information regarding a piece of hardware's network cards. +func (r Hardware_SecurityModule) GetNetworkCards() (resp []datatypes.Hardware_Component, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "getNetworkCards", nil, &r.Options, &resp) + return +} + +// Get the IP addresses associated with this server that are protectable by a network component firewall. Note, this may not return all values for IPv6 subnets for this server. Please use getFirewallProtectableSubnets to get all protectable subnets. +func (r Hardware_SecurityModule) GetNetworkComponentFirewallProtectableIpAddresses() (resp []datatypes.Network_Subnet_IpAddress, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "getNetworkComponentFirewallProtectableIpAddresses", nil, &r.Options, &resp) + return +} + +// Retrieve Returns a hardware's network components. +func (r Hardware_SecurityModule) GetNetworkComponents() (resp []datatypes.Network_Component, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "getNetworkComponents", nil, &r.Options, &resp) + return +} + +// Retrieve The gateway member if this device is part of a network gateway. +func (r Hardware_SecurityModule) GetNetworkGatewayMember() (resp datatypes.Network_Gateway_Member, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "getNetworkGatewayMember", nil, &r.Options, &resp) + return +} + +// Retrieve Whether or not this device is part of a network gateway. +func (r Hardware_SecurityModule) GetNetworkGatewayMemberFlag() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "getNetworkGatewayMemberFlag", nil, &r.Options, &resp) + return +} + +// Retrieve A piece of hardware's network management IP address. +func (r Hardware_SecurityModule) GetNetworkManagementIpAddress() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "getNetworkManagementIpAddress", nil, &r.Options, &resp) + return +} + +// Retrieve All servers with failed monitoring that are attached downstream to a piece of hardware. +func (r Hardware_SecurityModule) GetNetworkMonitorAttachedDownHardware() (resp []datatypes.Hardware, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "getNetworkMonitorAttachedDownHardware", nil, &r.Options, &resp) + return +} + +// Retrieve Virtual guests that are attached downstream to a hardware that have failed monitoring +func (r Hardware_SecurityModule) GetNetworkMonitorAttachedDownVirtualGuests() (resp []datatypes.Virtual_Guest, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "getNetworkMonitorAttachedDownVirtualGuests", nil, &r.Options, &resp) + return +} + +// Retrieve The status of all of a piece of hardware's network monitoring incidents. +func (r Hardware_SecurityModule) GetNetworkMonitorIncidents() (resp []datatypes.Network_Monitor_Version1_Incident, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "getNetworkMonitorIncidents", nil, &r.Options, &resp) + return +} + +// Retrieve Information regarding a piece of hardware's network monitors. +func (r Hardware_SecurityModule) GetNetworkMonitors() (resp []datatypes.Network_Monitor_Version1_Query_Host, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "getNetworkMonitors", nil, &r.Options, &resp) + return +} + +// Retrieve The value of a hardware's network status attribute. +func (r Hardware_SecurityModule) GetNetworkStatus() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "getNetworkStatus", nil, &r.Options, &resp) + return +} + +// Retrieve The hardware's related network status attribute. +func (r Hardware_SecurityModule) GetNetworkStatusAttribute() (resp datatypes.Hardware_Attribute, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "getNetworkStatusAttribute", nil, &r.Options, &resp) + return +} + +// Retrieve Information regarding a piece of hardware's associated network storage service account. +func (r Hardware_SecurityModule) GetNetworkStorage() (resp []datatypes.Network_Storage, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "getNetworkStorage", nil, &r.Options, &resp) + return +} + +// Retrieve The network virtual LANs (VLANs) associated with a piece of hardware's network components. +func (r Hardware_SecurityModule) GetNetworkVlans() (resp []datatypes.Network_Vlan, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "getNetworkVlans", nil, &r.Options, &resp) + return +} + +// Retrieve A hardware's allotted bandwidth for the next billing cycle (measured in GB). +func (r Hardware_SecurityModule) GetNextBillingCycleBandwidthAllocation() (resp datatypes.Float64, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "getNextBillingCycleBandwidthAllocation", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Hardware_SecurityModule) GetNotesHistory() (resp []datatypes.Hardware_Note, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "getNotesHistory", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Hardware_SecurityModule) GetObject() (resp datatypes.Hardware_SecurityModule, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "getObject", nil, &r.Options, &resp) + return +} + +// Retrieve An open ticket requesting cancellation of this server, if one exists. +func (r Hardware_SecurityModule) GetOpenCancellationTicket() (resp datatypes.Ticket, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "getOpenCancellationTicket", nil, &r.Options, &resp) + return +} + +// Retrieve Information regarding a piece of hardware's operating system. +func (r Hardware_SecurityModule) GetOperatingSystem() (resp datatypes.Software_Component_OperatingSystem, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "getOperatingSystem", nil, &r.Options, &resp) + return +} + +// Retrieve A hardware's operating system software description. +func (r Hardware_SecurityModule) GetOperatingSystemReferenceCode() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "getOperatingSystemReferenceCode", nil, &r.Options, &resp) + return +} + +// Retrieve The sum of all the outbound network traffic data for the last 30 days. +func (r Hardware_SecurityModule) GetOutboundBandwidthUsage() (resp datatypes.Float64, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "getOutboundBandwidthUsage", nil, &r.Options, &resp) + return +} + +// Retrieve The total private outbound bandwidth for this hardware for the current billing cycle. +func (r Hardware_SecurityModule) GetOutboundPrivateBandwidthUsage() (resp datatypes.Float64, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "getOutboundPrivateBandwidthUsage", nil, &r.Options, &resp) + return +} + +// Retrieve The total public outbound bandwidth for this hardware for the current billing cycle. +func (r Hardware_SecurityModule) GetOutboundPublicBandwidthUsage() (resp datatypes.Float64, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "getOutboundPublicBandwidthUsage", nil, &r.Options, &resp) + return +} + +// Retrieve Whether the bandwidth usage for this hardware for the current billing cycle exceeds the allocation. +func (r Hardware_SecurityModule) GetOverBandwidthAllocationFlag() (resp int, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "getOverBandwidthAllocationFlag", nil, &r.Options, &resp) + return +} + +// Retrieve a server's hardware state via its internal sensors. Remote sensor data is transmitted to the SoftLayer API by way of the server's remote management card. Sensor data measures system temperatures, voltages, and other local server settings. Sensor data is cached for 30 seconds. Calls made to getSensorData for the same server within 30 seconds of each other will return the same data. Subsequent calls will return new data once the cache expires. +func (r Hardware_SecurityModule) GetPMInfo() (resp []datatypes.Container_RemoteManagement_PmInfo, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "getPMInfo", nil, &r.Options, &resp) + return +} + +// Retrieve Parent Hardware. +func (r Hardware_SecurityModule) GetParentHardware() (resp datatypes.Hardware, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "getParentHardware", nil, &r.Options, &resp) + return +} + +// Retrieve Information regarding the Point of Presence (PoP) location in which a piece of hardware resides. +func (r Hardware_SecurityModule) GetPointOfPresenceLocation() (resp datatypes.Location, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "getPointOfPresenceLocation", nil, &r.Options, &resp) + return +} + +// Retrieve The power components for a hardware object. +func (r Hardware_SecurityModule) GetPowerComponents() (resp []datatypes.Hardware_Power_Component, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "getPowerComponents", nil, &r.Options, &resp) + return +} + +// Retrieve Information regarding a piece of hardware's power supply. +func (r Hardware_SecurityModule) GetPowerSupply() (resp []datatypes.Hardware_Component, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "getPowerSupply", nil, &r.Options, &resp) + return +} + +// Retrieve The hardware's primary private IP address. +func (r Hardware_SecurityModule) GetPrimaryBackendIpAddress() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "getPrimaryBackendIpAddress", nil, &r.Options, &resp) + return +} + +// Retrieve Information regarding the hardware's primary back-end network component. +func (r Hardware_SecurityModule) GetPrimaryBackendNetworkComponent() (resp datatypes.Network_Component, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "getPrimaryBackendNetworkComponent", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Hardware_SecurityModule) GetPrimaryDriveSize() (resp int, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "getPrimaryDriveSize", nil, &r.Options, &resp) + return +} + +// Retrieve The hardware's primary public IP address. +func (r Hardware_SecurityModule) GetPrimaryIpAddress() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "getPrimaryIpAddress", nil, &r.Options, &resp) + return +} + +// Retrieve Information regarding the hardware's primary public network component. +func (r Hardware_SecurityModule) GetPrimaryNetworkComponent() (resp datatypes.Network_Component, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "getPrimaryNetworkComponent", nil, &r.Options, &resp) + return +} + +// Retrieve a graph of a server's private network bandwidth usage over the specified timeframe. If no timeframe is specified then getPublicBandwidthGraphImage retrieves the last 24 hours of public bandwidth usage. getPrivateBandwidthGraphImage returns a PNG image measuring 827 pixels by 293 pixels. +func (r Hardware_SecurityModule) GetPrivateBandwidthData(startTime *int, endTime *int) (resp []datatypes.Metric_Tracking_Object_Data, err error) { + params := []interface{}{ + startTime, + endTime, + } + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "getPrivateBandwidthData", params, &r.Options, &resp) + return +} + +// Retrieve a brief summary of a server's private network bandwidth usage. getPrivateBandwidthDataSummary retrieves a server's bandwidth allocation for its billing period, its estimated usage during its billing period, and an estimation of how much bandwidth it will use during its billing period based on its current usage. A server's projected bandwidth usage increases in accuracy as it progresses through its billing period. +func (r Hardware_SecurityModule) GetPrivateBandwidthDataSummary() (resp datatypes.Container_Network_Bandwidth_Data_Summary, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "getPrivateBandwidthDataSummary", nil, &r.Options, &resp) + return +} + +// Retrieve a graph of a server's private network bandwidth usage over the specified time frame. If no time frame is specified then getPublicBandwidthGraphImage retrieves the last 24 hours of public bandwidth usage. getPublicBandwidthGraphImage returns a PNG image +func (r Hardware_SecurityModule) GetPrivateBandwidthGraphImage(startTime *string, endTime *string) (resp []byte, err error) { + params := []interface{}{ + startTime, + endTime, + } + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "getPrivateBandwidthGraphImage", params, &r.Options, &resp) + return +} + +// Retrieve A server's primary private IP address. +func (r Hardware_SecurityModule) GetPrivateIpAddress() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "getPrivateIpAddress", nil, &r.Options, &resp) + return +} + +// Retrieve the private network component attached with this server. +func (r Hardware_SecurityModule) GetPrivateNetworkComponent() (resp datatypes.Network_Component, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "getPrivateNetworkComponent", nil, &r.Options, &resp) + return +} + +// Retrieve Whether the hardware only has access to the private network. +func (r Hardware_SecurityModule) GetPrivateNetworkOnlyFlag() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "getPrivateNetworkOnlyFlag", nil, &r.Options, &resp) + return +} + +// Retrieve the backend VLAN for the primary IP address of the server +func (r Hardware_SecurityModule) GetPrivateVlan() (resp datatypes.Network_Vlan, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "getPrivateVlan", nil, &r.Options, &resp) + return +} + +// Retrieve a backend network VLAN by searching for an IP address +func (r Hardware_SecurityModule) GetPrivateVlanByIpAddress(ipAddress *string) (resp datatypes.Network_Vlan, err error) { + params := []interface{}{ + ipAddress, + } + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "getPrivateVlanByIpAddress", params, &r.Options, &resp) + return +} + +// Retrieve The total number of processor cores, summed from all processors that are attached to a piece of hardware +func (r Hardware_SecurityModule) GetProcessorCoreAmount() (resp uint, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "getProcessorCoreAmount", nil, &r.Options, &resp) + return +} + +// Retrieve The total number of physical processor cores, summed from all processors that are attached to a piece of hardware +func (r Hardware_SecurityModule) GetProcessorPhysicalCoreAmount() (resp uint, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "getProcessorPhysicalCoreAmount", nil, &r.Options, &resp) + return +} + +// Retrieve Information regarding a piece of hardware's processors. +func (r Hardware_SecurityModule) GetProcessors() (resp []datatypes.Hardware_Component, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "getProcessors", nil, &r.Options, &resp) + return +} + +// Retrieve Whether the bandwidth usage for this hardware for the current billing cycle is projected to exceed the allocation. +func (r Hardware_SecurityModule) GetProjectedOverBandwidthAllocationFlag() (resp int, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "getProjectedOverBandwidthAllocationFlag", nil, &r.Options, &resp) + return +} + +// Retrieve The projected public outbound bandwidth for this hardware for the current billing cycle. +func (r Hardware_SecurityModule) GetProjectedPublicBandwidthUsage() (resp datatypes.Float64, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "getProjectedPublicBandwidthUsage", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Hardware_SecurityModule) GetProvisionDate() (resp datatypes.Time, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "getProvisionDate", nil, &r.Options, &resp) + return +} + +// Retrieve a graph of a server's public network bandwidth usage over the specified timeframe. If no timeframe is specified then getPublicBandwidthGraphImage retrieves the last 24 hours of public bandwidth usage. getPublicBandwidthGraphImage returns a PNG image measuring 827 pixels by 293 pixels. +func (r Hardware_SecurityModule) GetPublicBandwidthData(startTime *int, endTime *int) (resp []datatypes.Metric_Tracking_Object_Data, err error) { + params := []interface{}{ + startTime, + endTime, + } + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "getPublicBandwidthData", params, &r.Options, &resp) + return +} + +// Retrieve a brief summary of a server's public network bandwidth usage. getPublicBandwidthDataSummary retrieves a server's bandwidth allocation for its billing period, its estimated usage during its billing period, and an estimation of how much bandwidth it will use during its billing period based on its current usage. A server's projected bandwidth usage increases in accuracy as it progresses through its billing period. +func (r Hardware_SecurityModule) GetPublicBandwidthDataSummary() (resp datatypes.Container_Network_Bandwidth_Data_Summary, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "getPublicBandwidthDataSummary", nil, &r.Options, &resp) + return +} + +// Retrieve a graph of a server's public network bandwidth usage over the specified time frame. If no time frame is specified then getPublicBandwidthGraphImage retrieves the last 24 hours of public bandwidth usage. getPublicBandwidthGraphImage returns a PNG image measuring 827 pixels by 293 pixels. THIS METHOD GENERATES GRAPHS BASED ON THE NEW DATA WAREHOUSE REPOSITORY. +func (r Hardware_SecurityModule) GetPublicBandwidthGraphImage(startTime *datatypes.Time, endTime *datatypes.Time) (resp []byte, err error) { + params := []interface{}{ + startTime, + endTime, + } + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "getPublicBandwidthGraphImage", params, &r.Options, &resp) + return +} + +// Retrieve the total number of bytes used by a server over a specified time period via the data warehouse tracking objects for this hardware. +func (r Hardware_SecurityModule) GetPublicBandwidthTotal(startTime *int, endTime *int) (resp uint, err error) { + params := []interface{}{ + startTime, + endTime, + } + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "getPublicBandwidthTotal", params, &r.Options, &resp) + return +} + +// Retrieve a SoftLayer server's public network component. Some servers are only connected to the private network and may not have a public network component. In that case getPublicNetworkComponent returns a null object. +func (r Hardware_SecurityModule) GetPublicNetworkComponent() (resp datatypes.Network_Component, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "getPublicNetworkComponent", nil, &r.Options, &resp) + return +} + +// Retrieve the frontend VLAN for the primary IP address of the server +func (r Hardware_SecurityModule) GetPublicVlan() (resp datatypes.Network_Vlan, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "getPublicVlan", nil, &r.Options, &resp) + return +} + +// Retrieve the frontend network Vlan by searching the hostname of a server +func (r Hardware_SecurityModule) GetPublicVlanByHostname(hostname *string) (resp datatypes.Network_Vlan, err error) { + params := []interface{}{ + hostname, + } + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "getPublicVlanByHostname", params, &r.Options, &resp) + return +} + +// Retrieve +func (r Hardware_SecurityModule) GetRack() (resp datatypes.Location, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "getRack", nil, &r.Options, &resp) + return +} + +// Retrieve The RAID controllers contained within a piece of hardware. +func (r Hardware_SecurityModule) GetRaidControllers() (resp []datatypes.Hardware_Component, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "getRaidControllers", nil, &r.Options, &resp) + return +} + +// Retrieve Recent events that impact this hardware. +func (r Hardware_SecurityModule) GetRecentEvents() (resp []datatypes.Notification_Occurrence_Event, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "getRecentEvents", nil, &r.Options, &resp) + return +} + +// Retrieve The last five commands issued to the server's remote management card. +func (r Hardware_SecurityModule) GetRecentRemoteManagementCommands() (resp []datatypes.Hardware_Component_RemoteManagement_Command_Request, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "getRecentRemoteManagementCommands", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Hardware_SecurityModule) GetRegionalInternetRegistry() (resp datatypes.Network_Regional_Internet_Registry, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "getRegionalInternetRegistry", nil, &r.Options, &resp) + return +} + +// Retrieve A server's remote management card. +func (r Hardware_SecurityModule) GetRemoteManagement() (resp datatypes.Hardware_Component_RemoteManagement, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "getRemoteManagement", nil, &r.Options, &resp) + return +} + +// Retrieve User credentials to issue commands and/or interact with the server's remote management card. +func (r Hardware_SecurityModule) GetRemoteManagementAccounts() (resp []datatypes.Hardware_Component_RemoteManagement_User, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "getRemoteManagementAccounts", nil, &r.Options, &resp) + return +} + +// Retrieve A hardware's associated remote management component. This is normally IPMI. +func (r Hardware_SecurityModule) GetRemoteManagementComponent() (resp datatypes.Network_Component, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "getRemoteManagementComponent", nil, &r.Options, &resp) + return +} + +// Retrieve User(s) who have access to issue commands and/or interact with the server's remote management card. +func (r Hardware_SecurityModule) GetRemoteManagementUsers() (resp []datatypes.Hardware_Component_RemoteManagement_User, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "getRemoteManagementUsers", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Hardware_SecurityModule) GetResourceConfigurations() (resp []datatypes.Hardware_Resource_Configuration, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "getResourceConfigurations", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Hardware_SecurityModule) GetResourceGroupMemberReferences() (resp []datatypes.Resource_Group_Member, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "getResourceGroupMemberReferences", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Hardware_SecurityModule) GetResourceGroupRoles() (resp []datatypes.Resource_Group_Role, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "getResourceGroupRoles", nil, &r.Options, &resp) + return +} + +// Retrieve The resource groups in which this hardware is a member. +func (r Hardware_SecurityModule) GetResourceGroups() (resp []datatypes.Resource_Group, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "getResourceGroups", nil, &r.Options, &resp) + return +} + +// Retrieve the reverse domain records associated with this server. +func (r Hardware_SecurityModule) GetReverseDomainRecords() (resp []datatypes.Dns_Domain, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "getReverseDomainRecords", nil, &r.Options, &resp) + return +} + +// Retrieve A hardware's routers. +func (r Hardware_SecurityModule) GetRouters() (resp []datatypes.Hardware, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "getRouters", nil, &r.Options, &resp) + return +} + +// Retrieve Collection of scale assets this hardware corresponds to. +func (r Hardware_SecurityModule) GetScaleAssets() (resp []datatypes.Scale_Asset, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "getScaleAssets", nil, &r.Options, &resp) + return +} + +// Retrieve Information regarding a piece of hardware's vulnerability scan requests. +func (r Hardware_SecurityModule) GetSecurityScanRequests() (resp []datatypes.Network_Security_Scanner_Request, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "getSecurityScanRequests", nil, &r.Options, &resp) + return +} + +// Retrieve a server's hardware state via its internal sensors. Remote sensor data is transmitted to the SoftLayer API by way of the server's remote management card. Sensor data measures system temperatures, voltages, and other local server settings. Sensor data is cached for 30 seconds. Calls made to getSensorData for the same server within 30 seconds of each other will return the same data. Subsequent calls will return new data once the cache expires. +func (r Hardware_SecurityModule) GetSensorData() (resp []datatypes.Container_RemoteManagement_SensorReading, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "getSensorData", nil, &r.Options, &resp) + return +} + +// Retrieves the raw data returned from the server's remote management card. For more details of what is returned please refer to the getSensorData method. Along with the raw data, graphs for the cpu and system temperatures and fan speeds are also returned. +func (r Hardware_SecurityModule) GetSensorDataWithGraphs() (resp datatypes.Container_RemoteManagement_SensorReadingsWithGraphs, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "getSensorDataWithGraphs", nil, &r.Options, &resp) + return +} + +// Retrieve a server's hardware components, software, and network components. getServerDetails is an aggregation function that combines the results of [[SoftLayer_Hardware_Server::getComponents]], [[SoftLayer_Hardware_Server::getSoftware]], and [[SoftLayer_Hardware_Server::getNetworkComponents]] in a single container. +func (r Hardware_SecurityModule) GetServerDetails() (resp datatypes.Container_Hardware_Server_Details, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "getServerDetails", nil, &r.Options, &resp) + return +} + +// Retrieve the server's fan speeds and displays them using tachometer graphs. Data used to construct graphs is retrieved from the server's remote management card. All graphs returned will have a title associated with it. +func (r Hardware_SecurityModule) GetServerFanSpeedGraphs() (resp []datatypes.Container_RemoteManagement_Graphs_SensorSpeed, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "getServerFanSpeedGraphs", nil, &r.Options, &resp) + return +} + +// Retrieves the power state for the server. The server's power status is retrieved from its remote management card. This will return 'on' or 'off'. +func (r Hardware_SecurityModule) GetServerPowerState() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "getServerPowerState", nil, &r.Options, &resp) + return +} + +// Retrieve Information regarding the server room in which the hardware is located. +func (r Hardware_SecurityModule) GetServerRoom() (resp datatypes.Location, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "getServerRoom", nil, &r.Options, &resp) + return +} + +// Retrieve the server's temperature and displays them using thermometer graphs. Temperatures retrieved are CPU(s) and system temperatures. Data used to construct graphs is retrieved from the server's remote management card. All graphs returned will have a title associated with it. +func (r Hardware_SecurityModule) GetServerTemperatureGraphs() (resp []datatypes.Container_RemoteManagement_Graphs_SensorTemperature, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "getServerTemperatureGraphs", nil, &r.Options, &resp) + return +} + +// Retrieve Information regarding the piece of hardware's service provider. +func (r Hardware_SecurityModule) GetServiceProvider() (resp datatypes.Service_Provider, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "getServiceProvider", nil, &r.Options, &resp) + return +} + +// Retrieve Information regarding a piece of hardware's installed software. +func (r Hardware_SecurityModule) GetSoftwareComponents() (resp []datatypes.Software_Component, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "getSoftwareComponents", nil, &r.Options, &resp) + return +} + +// Retrieve Information regarding the billing item for a spare pool server. +func (r Hardware_SecurityModule) GetSparePoolBillingItem() (resp datatypes.Billing_Item_Hardware, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "getSparePoolBillingItem", nil, &r.Options, &resp) + return +} + +// Retrieve SSH keys to be installed on the server during provisioning or an OS reload. +func (r Hardware_SecurityModule) GetSshKeys() (resp []datatypes.Security_Ssh_Key, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "getSshKeys", nil, &r.Options, &resp) + return +} + +// Retrieve A server's remote management card used for statistics. +func (r Hardware_SecurityModule) GetStatisticsRemoteManagement() (resp datatypes.Hardware_Component_RemoteManagement, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "getStatisticsRemoteManagement", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Hardware_SecurityModule) GetStorageNetworkComponents() (resp []datatypes.Network_Component, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "getStorageNetworkComponents", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Hardware_SecurityModule) GetTagReferences() (resp []datatypes.Tag_Reference, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "getTagReferences", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Hardware_SecurityModule) GetTopLevelLocation() (resp datatypes.Location, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "getTopLevelLocation", nil, &r.Options, &resp) + return +} + +// +// This method will query transaction history for a piece of hardware. +func (r Hardware_SecurityModule) GetTransactionHistory() (resp []datatypes.Provisioning_Version1_Transaction_History, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "getTransactionHistory", nil, &r.Options, &resp) + return +} + +// Retrieve a list of upgradeable items available to this piece of hardware. Currently, getUpgradeItemPrices retrieves upgrades available for a server's memory, hard drives, network port speed, bandwidth allocation and GPUs. +func (r Hardware_SecurityModule) GetUpgradeItemPrices() (resp []datatypes.Product_Item_Price, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "getUpgradeItemPrices", nil, &r.Options, &resp) + return +} + +// Retrieve An account's associated upgrade request object, if any. +func (r Hardware_SecurityModule) GetUpgradeRequest() (resp datatypes.Product_Upgrade_Request, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "getUpgradeRequest", nil, &r.Options, &resp) + return +} + +// Retrieve The network device connected to a piece of hardware. +func (r Hardware_SecurityModule) GetUplinkHardware() (resp datatypes.Hardware, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "getUplinkHardware", nil, &r.Options, &resp) + return +} + +// Retrieve Information regarding the network component that is one level higher than a piece of hardware on the network infrastructure. +func (r Hardware_SecurityModule) GetUplinkNetworkComponents() (resp []datatypes.Network_Component, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "getUplinkNetworkComponents", nil, &r.Options, &resp) + return +} + +// Retrieve A string containing custom user data for a hardware order. +func (r Hardware_SecurityModule) GetUserData() (resp []datatypes.Hardware_Attribute, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "getUserData", nil, &r.Options, &resp) + return +} + +// Retrieve A list of users that have access to this computing instance. +func (r Hardware_SecurityModule) GetUsers() (resp []datatypes.User_Customer, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "getUsers", nil, &r.Options, &resp) + return +} + +// This method will return the list of block device template groups that are valid to the host. For instance, it will only retrieve FLEX images. +func (r Hardware_SecurityModule) GetValidBlockDeviceTemplateGroups(visibility *string) (resp []datatypes.Virtual_Guest_Block_Device_Template_Group, err error) { + params := []interface{}{ + visibility, + } + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "getValidBlockDeviceTemplateGroups", params, &r.Options, &resp) + return +} + +// Retrieve Information regarding the virtual chassis for a piece of hardware. +func (r Hardware_SecurityModule) GetVirtualChassis() (resp datatypes.Hardware_Group, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "getVirtualChassis", nil, &r.Options, &resp) + return +} + +// Retrieve Information regarding the virtual chassis siblings for a piece of hardware. +func (r Hardware_SecurityModule) GetVirtualChassisSiblings() (resp []datatypes.Hardware, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "getVirtualChassisSiblings", nil, &r.Options, &resp) + return +} + +// Retrieve A hardware server's virtual servers. +func (r Hardware_SecurityModule) GetVirtualGuests() (resp []datatypes.Virtual_Guest, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "getVirtualGuests", nil, &r.Options, &resp) + return +} + +// Retrieve A piece of hardware's virtual host record. +func (r Hardware_SecurityModule) GetVirtualHost() (resp datatypes.Virtual_Host, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "getVirtualHost", nil, &r.Options, &resp) + return +} + +// Retrieve Information regarding a piece of hardware's virtual software licenses. +func (r Hardware_SecurityModule) GetVirtualLicenses() (resp []datatypes.Software_VirtualLicense, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "getVirtualLicenses", nil, &r.Options, &resp) + return +} + +// Retrieve Information regarding the bandwidth allotment to which a piece of hardware belongs. +func (r Hardware_SecurityModule) GetVirtualRack() (resp datatypes.Network_Bandwidth_Version1_Allotment, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "getVirtualRack", nil, &r.Options, &resp) + return +} + +// Retrieve The name of the bandwidth allotment belonging to a piece of hardware. +func (r Hardware_SecurityModule) GetVirtualRackId() (resp int, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "getVirtualRackId", nil, &r.Options, &resp) + return +} + +// Retrieve The name of the bandwidth allotment belonging to a piece of hardware. +func (r Hardware_SecurityModule) GetVirtualRackName() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "getVirtualRackName", nil, &r.Options, &resp) + return +} + +// Retrieve A piece of hardware's virtualization platform software. +func (r Hardware_SecurityModule) GetVirtualizationPlatform() (resp datatypes.Software_Component, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "getVirtualizationPlatform", nil, &r.Options, &resp) + return +} + +// Retrieve a list of Windows updates available for a server from the local SoftLayer Windows Server Update Services (WSUS) server. Windows servers provisioned by SoftLayer are configured to use the local WSUS server via the private network by default. +func (r Hardware_SecurityModule) GetWindowsUpdateAvailableUpdates() (resp []datatypes.Container_Utility_Microsoft_Windows_UpdateServices_UpdateItem, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "getWindowsUpdateAvailableUpdates", nil, &r.Options, &resp) + return +} + +// Retrieve a list of Windows updates installed on a server as reported by the local SoftLayer Windows Server Update Services (WSUS) server. Windows servers provisioned by SoftLayer are configured to use the local WSUS server via the private network by default. +func (r Hardware_SecurityModule) GetWindowsUpdateInstalledUpdates() (resp []datatypes.Container_Utility_Microsoft_Windows_UpdateServices_UpdateItem, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "getWindowsUpdateInstalledUpdates", nil, &r.Options, &resp) + return +} + +// This method returns an update status record for this server. That record will specify if the server is missing updates, or has updates that must be reinstalled or require a reboot to go into affect. +func (r Hardware_SecurityModule) GetWindowsUpdateStatus() (resp datatypes.Container_Utility_Microsoft_Windows_UpdateServices_Status, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "getWindowsUpdateStatus", nil, &r.Options, &resp) + return +} + +// The '''importVirtualHost''' method attempts to import the host record for the virtualization platform running on a server. +func (r Hardware_SecurityModule) ImportVirtualHost() (resp datatypes.Virtual_Host, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "importVirtualHost", nil, &r.Options, &resp) + return +} + +// Idera Bare Metal Server Restore is a backup agent designed specifically for making full system restores made with Idera Server Backup. +func (r Hardware_SecurityModule) InitiateIderaBareMetalRestore() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "initiateIderaBareMetalRestore", nil, &r.Options, &resp) + return +} + +// R1Soft Bare Metal Server Restore is an R1Soft disk agent designed specifically for making full system restores made with R1Soft CDP Server backup. +func (r Hardware_SecurityModule) InitiateR1SoftBareMetalRestore() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "initiateR1SoftBareMetalRestore", nil, &r.Options, &resp) + return +} + +// Issues a ping command and returns the success (true) or failure (false) of the ping command. +func (r Hardware_SecurityModule) IsBackendPingable() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "isBackendPingable", nil, &r.Options, &resp) + return +} + +// Issues a ping command and returns the success (true) or failure (false) of the ping command. +func (r Hardware_SecurityModule) IsPingable() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "isPingable", nil, &r.Options, &resp) + return +} + +// Determine if the server runs any version of the Microsoft Windows operating systems. Return ''true'' if it does and ''false if otherwise. +func (r Hardware_SecurityModule) IsWindowsServer() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "isWindowsServer", nil, &r.Options, &resp) + return +} + +// You can launch firmware updates by selecting from your server list. It will bring your server offline for approximately 20 minutes while the updates are in progress. +// +// In the event of a hardware failure during this test our datacenter engineers will be notified of the problem automatically. They will then replace any failed components to bring your server back online, and will be contacting you to ensure that impact on your server is minimal. +func (r Hardware_SecurityModule) MassFirmwareUpdate(hardwareIds []int, ipmi *bool, raidController *bool, bios *bool, harddrive *bool) (resp []datatypes.Container_Hardware_Server_Request, err error) { + params := []interface{}{ + hardwareIds, + ipmi, + raidController, + bios, + harddrive, + } + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "massFirmwareUpdate", params, &r.Options, &resp) + return +} + +// Reloads current or customer specified operating system configuration. +// +// This service has a confirmation protocol for proceeding with the reload. To proceed with the reload without confirmation, simply pass in 'FORCE' as the token parameter. To proceed with the reload with confirmation, simply call the service with no parameter. A token string will be returned by this service. The token will remain active for 10 minutes. Use this token as the parameter to confirm that a reload is to be performed for the server. +// +// As a precaution, we strongly recommend backing up all data before reloading the operating system. The reload will format the primary disk and will reconfigure the server to the current specifications on record. +// +// The reload will take AT MINIMUM 66 minutes. +func (r Hardware_SecurityModule) MassReloadOperatingSystem(hardwareIds []string, token *string, config *datatypes.Container_Hardware_Server_Configuration) (resp string, err error) { + params := []interface{}{ + hardwareIds, + token, + config, + } + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "massReloadOperatingSystem", params, &r.Options, &resp) + return +} + +// The ability to place multiple bare metal servers in a state where they are powered down and ports closed yet still allocated to the customer as a part of the Spare Pool program. +func (r Hardware_SecurityModule) MassSparePool(hardwareIds []string, action *string, newOrder *bool) (resp []datatypes.Container_Hardware_Server_Request, err error) { + params := []interface{}{ + hardwareIds, + action, + newOrder, + } + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "massSparePool", params, &r.Options, &resp) + return +} + +// Issues a ping command to the server and returns the ping response. +func (r Hardware_SecurityModule) Ping() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "ping", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Hardware_SecurityModule) PopulateServer(hardwareId *int, serialString *string) (err error) { + var resp datatypes.Void + params := []interface{}{ + hardwareId, + serialString, + } + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "populateServer", params, &r.Options, &resp) + return +} + +// Power off then power on the server via powerstrip. The power cycle command is equivalent to unplugging the server from the powerstrip and then plugging the server back into the powerstrip. This should only be used as a last resort. If a reboot command has been issued successfully in the past 20 minutes, another remote management command (rebootSoft, rebootHard, powerOn, powerOff and powerCycle) will not be allowed. This is to avoid any type of server failures. +func (r Hardware_SecurityModule) PowerCycle() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "powerCycle", nil, &r.Options, &resp) + return +} + +// This method will power off the server via the server's remote management card. +func (r Hardware_SecurityModule) PowerOff() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "powerOff", nil, &r.Options, &resp) + return +} + +// Power on server via its remote management card. If a reboot command has been issued successfully in the past 20 minutes, another remote management command (rebootSoft, rebootHard, powerOn, powerOff and powerCycle) will not be allowed. This is to avoid any type of server failures. +func (r Hardware_SecurityModule) PowerOn() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "powerOn", nil, &r.Options, &resp) + return +} + +// Attempts to reboot the server by issuing a reset (soft reboot) command to the server's remote management card. If the reset (soft reboot) attempt is unsuccessful, a power cycle command will be issued via the powerstrip. The power cycle command is equivalent to unplugging the server from the powerstrip and then plugging the server back into the powerstrip. If a reboot command has been issued successfully in the past 20 minutes, another remote management command (rebootSoft, rebootHard, powerOn, powerOff and powerCycle) will not be allowed. This is to avoid any type of server failures. +func (r Hardware_SecurityModule) RebootDefault() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "rebootDefault", nil, &r.Options, &resp) + return +} + +// Reboot the server by issuing a cycle command to the server's remote management card. This is equivalent to pressing the 'Reset' button on the server. This command is issued immediately and will not wait for processes to shutdown. After this command is issued, the server may take a few moments to boot up as server may run system disks checks. If a reboot command has been issued successfully in the past 20 minutes, another remote management command (rebootSoft, rebootHard, powerOn, powerOff and powerCycle) will not be allowed. This is to avoid any type of server failures. +func (r Hardware_SecurityModule) RebootHard() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "rebootHard", nil, &r.Options, &resp) + return +} + +// Reboot the server by issuing a reset command to the server's remote management card. This is a graceful reboot. The servers will allow all process to shutdown gracefully before rebooting. If a reboot command has been issued successfully in the past 20 minutes, another remote management command (rebootSoft, rebootHard, powerOn, powerOff and powerCycle) will not be allowed. This is to avoid any type of server failures. +func (r Hardware_SecurityModule) RebootSoft() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "rebootSoft", nil, &r.Options, &resp) + return +} + +// Reloads current operating system configuration. +// +// This service has a confirmation protocol for proceeding with the reload. To proceed with the reload without confirmation, simply pass in 'FORCE' as the token parameter. To proceed with the reload with confirmation, simply call the service with no parameter. A token string will be returned by this service. The token will remain active for 10 minutes. Use this token as the parameter to confirm that a reload is to be performed for the server. +// +// As a precaution, we strongly recommend backing up all data before reloading the operating system. The reload will format the primary disk and will reconfigure the server to the current specifications on record. +// +// The reload will take AT MINIMUM 66 minutes. +func (r Hardware_SecurityModule) ReloadCurrentOperatingSystemConfiguration(token *string) (resp string, err error) { + params := []interface{}{ + token, + } + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "reloadCurrentOperatingSystemConfiguration", params, &r.Options, &resp) + return +} + +// Reloads current or customer specified operating system configuration. +// +// This service has a confirmation protocol for proceeding with the reload. To proceed with the reload without confirmation, simply pass in 'FORCE' as the token parameter. To proceed with the reload with confirmation, simply call the service with no parameter. A token string will be returned by this service. The token will remain active for 10 minutes. Use this token as the parameter to confirm that a reload is to be performed for the server. +// +// As a precaution, we strongly recommend backing up all data before reloading the operating system. The reload will format the primary disk and will reconfigure the server to the current specifications on record. +// +// The reload will take AT MINIMUM 66 minutes. +func (r Hardware_SecurityModule) ReloadOperatingSystem(token *string, config *datatypes.Container_Hardware_Server_Configuration) (resp string, err error) { + params := []interface{}{ + token, + config, + } + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "reloadOperatingSystem", params, &r.Options, &resp) + return +} + +// This method is used to remove access to s SoftLayer_Network_Storage volumes that supports host- or network-level access control. +func (r Hardware_SecurityModule) RemoveAccessToNetworkStorage(networkStorageTemplateObject *datatypes.Network_Storage) (resp bool, err error) { + params := []interface{}{ + networkStorageTemplateObject, + } + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "removeAccessToNetworkStorage", params, &r.Options, &resp) + return +} + +// This method is used to allow access to multiple SoftLayer_Network_Storage volumes that support host- or network-level access control. +func (r Hardware_SecurityModule) RemoveAccessToNetworkStorageList(networkStorageTemplateObjects []datatypes.Network_Storage) (resp bool, err error) { + params := []interface{}{ + networkStorageTemplateObjects, + } + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "removeAccessToNetworkStorageList", params, &r.Options, &resp) + return +} + +// You can launch a new Passmark hardware test by selecting from your server list. It will bring your server offline for approximately 20 minutes while the testing is in progress, and will publish a certificate with the results to your hardware details page. +// +// While the hard drives are tested for the initial deployment, the Passmark Certificate utility will not test the hard drives on your live server. This is to ensure that no data is overwritten. If you would like to test the server's hard drives, you can have the full Passmark suite installed to your server free of charge through a new Support ticket. +// +// While the test itself does not overwrite any data on the server, it is recommended that you make full off-server backups of all data prior to launching the test. The Passmark hardware test is designed to force any latent hardware issues to the surface, so hardware failure is possible. +// +// In the event of a hardware failure during this test our datacenter engineers will be notified of the problem automatically. They will then replace any failed components to bring your server back online, and will be contacting you to ensure that impact on your server is minimal. +func (r Hardware_SecurityModule) RunPassmarkCertificationBenchmark() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "runPassmarkCertificationBenchmark", nil, &r.Options, &resp) + return +} + +// Changes the password that we have stored in our database for a servers' Operating System +func (r Hardware_SecurityModule) SetOperatingSystemPassword(newPassword *string) (resp bool, err error) { + params := []interface{}{ + newPassword, + } + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "setOperatingSystemPassword", params, &r.Options, &resp) + return +} + +// Sets the private network interface speed to the new speed. Speed values can only be 0 (Disconnect), 10, 100, 1000, and 10000. The new speed must be equal to or less than the max speed of the interface. +// +// It will take less than a minute to update the switch port speed. The server uplink will not be operational again until the server interface speed is updated. +func (r Hardware_SecurityModule) SetPrivateNetworkInterfaceSpeed(newSpeed *int) (resp bool, err error) { + params := []interface{}{ + newSpeed, + } + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "setPrivateNetworkInterfaceSpeed", params, &r.Options, &resp) + return +} + +// Sets the public network interface speed to the new speed. Speed values can only be 0 (Disconnect), 10, 100, 1000, and 10000. The new speed must be equal to or less than the max speed of the interface. +// +// It will take less than a minute to update the switch port speed. The server uplink will not be operational again until the server interface speed is updated. +func (r Hardware_SecurityModule) SetPublicNetworkInterfaceSpeed(newSpeed *int) (resp bool, err error) { + params := []interface{}{ + newSpeed, + } + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "setPublicNetworkInterfaceSpeed", params, &r.Options, &resp) + return +} + +// no documentation yet +func (r Hardware_SecurityModule) SetTags(tags *string) (resp bool, err error) { + params := []interface{}{ + tags, + } + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "setTags", params, &r.Options, &resp) + return +} + +// Sets the data that will be written to the configuration drive. +func (r Hardware_SecurityModule) SetUserMetadata(metadata []string) (resp []datatypes.Hardware_Attribute, err error) { + params := []interface{}{ + metadata, + } + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "setUserMetadata", params, &r.Options, &resp) + return +} + +// Shuts down the public network port +func (r Hardware_SecurityModule) ShutdownPrivatePort() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "shutdownPrivatePort", nil, &r.Options, &resp) + return +} + +// Shuts down the public network port +func (r Hardware_SecurityModule) ShutdownPublicPort() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "shutdownPublicPort", nil, &r.Options, &resp) + return +} + +// The ability to place bare metal servers in a state where they are powered down, and ports closed yet still allocated to the customer as a part of the Spare Pool program. +func (r Hardware_SecurityModule) SparePool(action *string, newOrder *bool) (resp bool, err error) { + params := []interface{}{ + action, + newOrder, + } + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "sparePool", params, &r.Options, &resp) + return +} + +// This method will update the root IPMI password on this SoftLayer_Hardware. +func (r Hardware_SecurityModule) UpdateIpmiPassword(password *string) (resp bool, err error) { + params := []interface{}{ + password, + } + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "updateIpmiPassword", params, &r.Options, &resp) + return +} + +// Validates a collection of partitions for an operating system +func (r Hardware_SecurityModule) ValidatePartitionsForOperatingSystem(operatingSystem *datatypes.Software_Description, partitions []datatypes.Hardware_Component_Partition) (resp bool, err error) { + params := []interface{}{ + operatingSystem, + partitions, + } + err = r.Session.DoRequest("SoftLayer_Hardware_SecurityModule", "validatePartitionsForOperatingSystem", params, &r.Options, &resp) + return +} + +// The SoftLayer_Hardware_Server data type contains general information relating to a single SoftLayer server. +type Hardware_Server struct { + Session *session.Session + Options sl.Options +} + +// GetHardwareServerService returns an instance of the Hardware_Server SoftLayer service +func GetHardwareServerService(sess *session.Session) Hardware_Server { + return Hardware_Server{Session: sess} +} + +func (r Hardware_Server) Id(id int) Hardware_Server { + r.Options.Id = &id + return r +} + +func (r Hardware_Server) Mask(mask string) Hardware_Server { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Hardware_Server) Filter(filter string) Hardware_Server { + r.Options.Filter = filter + return r +} + +func (r Hardware_Server) Limit(limit int) Hardware_Server { + r.Options.Limit = &limit + return r +} + +func (r Hardware_Server) Offset(offset int) Hardware_Server { + r.Options.Offset = &offset + return r +} + +// Activates the private network port +func (r Hardware_Server) ActivatePrivatePort() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "activatePrivatePort", nil, &r.Options, &resp) + return +} + +// Activates the public network port +func (r Hardware_Server) ActivatePublicPort() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "activatePublicPort", nil, &r.Options, &resp) + return +} + +// This method is used to allow access to a SoftLayer_Network_Storage volume that supports host- or network-level access control. +func (r Hardware_Server) AllowAccessToNetworkStorage(networkStorageTemplateObject *datatypes.Network_Storage) (resp bool, err error) { + params := []interface{}{ + networkStorageTemplateObject, + } + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "allowAccessToNetworkStorage", params, &r.Options, &resp) + return +} + +// This method is used to allow access to multiple SoftLayer_Network_Storage volumes that support host- or network-level access control. +func (r Hardware_Server) AllowAccessToNetworkStorageList(networkStorageTemplateObjects []datatypes.Network_Storage) (resp bool, err error) { + params := []interface{}{ + networkStorageTemplateObjects, + } + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "allowAccessToNetworkStorageList", params, &r.Options, &resp) + return +} + +// The Rescue Kernel is designed to provide you with the ability to bring a server online in order to troubleshoot system problems that would normally only be resolved by an OS Reload. The correct Rescue Kernel will be selected based upon the currently installed operating system. When the rescue kernel process is initiated, the server will shutdown and reboot on to the public network with the same IP's assigned to the server to allow for remote connections. It will bring your server offline for approximately 10 minutes while the rescue is in progress. The root/administrator password will be the same as what is listed in the portal for the server. +func (r Hardware_Server) BootToRescueLayer(noOsBootEnvironment *string) (resp bool, err error) { + params := []interface{}{ + noOsBootEnvironment, + } + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "bootToRescueLayer", params, &r.Options, &resp) + return +} + +// Captures a Flex Image of the hard disk on the physical machine, based on the capture template parameter. Returns the image template group containing the disk image. +func (r Hardware_Server) CaptureImage(captureTemplate *datatypes.Container_Disk_Image_Capture_Template) (resp datatypes.Virtual_Guest_Block_Device_Template_Group, err error) { + params := []interface{}{ + captureTemplate, + } + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "captureImage", params, &r.Options, &resp) + return +} + +// Returns monitoring alarm detailed history +func (r Hardware_Server) CloseAlarm(alarmId *string) (resp bool, err error) { + params := []interface{}{ + alarmId, + } + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "closeAlarm", params, &r.Options, &resp) + return +} + +// You can launch firmware updates by selecting from your server list. It will bring your server offline for approximately 20 minutes while the updates are in progress. +// +// In the event of a hardware failure during this test our datacenter engineers will be notified of the problem automatically. They will then replace any failed components to bring your server back online, and will be contacting you to ensure that impact on your server is minimal. +func (r Hardware_Server) CreateFirmwareUpdateTransaction(ipmi *int, raidController *int, bios *int, harddrive *int) (resp bool, err error) { + params := []interface{}{ + ipmi, + raidController, + bios, + harddrive, + } + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "createFirmwareUpdateTransaction", params, &r.Options, &resp) + return +} + +// +// +// createObject() enables the creation of servers on an account. This +// method is a simplified alternative to interacting with the ordering system directly. +// +// +// In order to create a server, a template object must be sent in with a few required +// values. +// +// +// When this method returns an order will have been placed for a server of the specified configuration. +// +// +// To determine when the server is available you can poll the server via [[SoftLayer_Hardware/getObject|getObject]], +// checking the provisionDate property. +// When provisionDate is not null, the server will be ready. Be sure to use the globalIdentifier +// as your initialization parameter. +// +// +// Warning: Servers created via this method will incur charges on your account. For testing input parameters see [[SoftLayer_Hardware/generateOrderTemplate|generateOrderTemplate]]. +// +// +// Input - [[SoftLayer_Hardware (type)|SoftLayer_Hardware]] +//
      +//
    • hostname +//
      Hostname for the server.
        +//
      • Required
      • +//
      • Type - string
      • +//
      +//
      +//
    • +//
    • domain +//
      Domain for the server.
        +//
      • Required
      • +//
      • Type - string
      • +//
      +//
      +//
    • +//
    • processorCoreAmount +//
      The number of logical CPU cores to allocate.
        +//
      • Required
      • +//
      • Type - int
      • +//
      • See [[SoftLayer_Hardware/getCreateObjectOptions|getCreateObjectOptions]] for available options.
      • +//
      +//
      +//
    • +//
    • memoryCapacity +//
      The amount of memory to allocate in gigabytes.
        +//
      • Required
      • +//
      • Type - int
      • +//
      • See [[SoftLayer_Hardware/getCreateObjectOptions|getCreateObjectOptions]] for available options.
      • +//
      +//
      +//
    • +//
    • hourlyBillingFlag +//
      Specifies the billing type for the server.
        +//
      • Required
      • +//
      • Type - boolean
      • +//
      • When true the server will be billed on hourly usage, otherwise it will be billed on a monthly basis.
      • +//
      +//
      +//
    • +//
    • operatingSystemReferenceCode +//
      An identifier for the operating system to provision the server with.
        +//
      • Required
      • +//
      • Type - string
      • +//
      • See [[SoftLayer_Hardware/getCreateObjectOptions|getCreateObjectOptions]] for available options.
      • +//
      +//
      +//
    • +//
    • datacenter.name +//
      Specifies which datacenter the server is to be provisioned in.
        +//
      • Required
      • +//
      • Type - string
      • +//
      • The datacenter property is a [[SoftLayer_Location (type)|location]] structure with the name field set.
      • +//
      • See [[SoftLayer_Hardware/getCreateObjectOptions|getCreateObjectOptions]] for available options.
      • +//
      +// { +// "datacenter": { +// "name": "dal05" +// } +// } +//
      +//
    • +//
    • networkComponents.maxSpeed +//
      Specifies the connection speed for the server's network components.
        +//
      • Optional
      • +//
      • Type - int
      • +//
      • Default - The highest available zero cost port speed will be used.
      • +//
      • Description - The networkComponents property is an array with a single [[SoftLayer_Network_Component (type)|network component]] structure. The maxSpeed property must be set to specify the network uplink speed, in megabits per second, of the server.
      • +//
      • See [[SoftLayer_Hardware/getCreateObjectOptions|getCreateObjectOptions]] for available options.
      • +//
      +// { +// "networkComponents": [ +// { +// "maxSpeed": 1000 +// } +// ] +// } +//
      +//
    • +//
    • networkComponents.redundancyEnabledFlag +//
      Specifies whether or not the server's network components should be in redundancy groups.
        +//
      • Optional
      • +//
      • Type - bool
      • +//
      • Default - false
      • +//
      • Description - The networkComponents property is an array with a single [[SoftLayer_Network_Component (type)|network component]] structure. When the redundancyEnabledFlag property is true the server's network components will be in redundancy groups.
      • +//
      +// { +// "networkComponents": [ +// { +// "redundancyEnabledFlag": false +// } +// ] +// } +//
      +//
    • +//
    • privateNetworkOnlyFlag +//
      Specifies whether or not the server only has access to the private network
        +//
      • Optional
      • +//
      • Type - boolean
      • +//
      • Default - false
      • +//
      • When true this flag specifies that a server is to only have access to the private network.
      • +//
      +//
      +//
    • +//
    • primaryNetworkComponent.networkVlan.id +//
      Specifies the network vlan which is to be used for the frontend interface of the server.
        +//
      • Optional
      • +//
      • Type - int
      • +//
      • Description - The primaryNetworkComponent property is a [[SoftLayer_Network_Component (type)|network component]] structure with the networkVlan property populated with a [[SoftLayer_Network_Vlan (type)|vlan]] structure. The id property must be set to specify the frontend network vlan of the server.
      • +//
      +// { +// "primaryNetworkComponent": { +// "networkVlan": { +// "id": 1 +// } +// } +// } +//
      +//
    • +//
    • primaryBackendNetworkComponent.networkVlan.id +//
      Specifies the network vlan which is to be used for the backend interface of the server.
        +//
      • Optional
      • +//
      • Type - int
      • +//
      • Description - The primaryBackendNetworkComponent property is a [[SoftLayer_Network_Component (type)|network component]] structure with the networkVlan property populated with a [[SoftLayer_Network_Vlan (type)|vlan]] structure. The id property must be set to specify the backend network vlan of the server.
      • +//
      +// { +// "primaryBackendNetworkComponent": { +// "networkVlan": { +// "id": 2 +// } +// } +// } +//
      +//
    • +//
    • fixedConfigurationPreset.keyName +//
        +//
      • Optional
      • +//
      • Type - string
      • +//
      • Description - The fixedConfigurationPreset property is a [[SoftLayer_Product_Package_Preset (type)|fixed configuration preset]] structure. The keyName property must be set to specify preset to use.
      • +//
      • If a fixed configuration preset is used processorCoreAmount, memoryCapacity and hardDrives properties must not be set.
      • +//
      • See [[SoftLayer_Hardware/getCreateObjectOptions|getCreateObjectOptions]] for available options.
      • +//
      +// { +// "fixedConfigurationPreset": { +// "keyName": "SOME_KEY_NAME" +// } +// } +//
      +//
    • +//
    • userData.value +//
      Arbitrary data to be made available to the server.
        +//
      • Optional
      • +//
      • Type - string
      • +//
      • Description - The userData property is an array with a single [[SoftLayer_Hardware_Attribute (type)|attribute]] structure with the value property set to an arbitrary value.
      • +//
      • This value can be retrieved via the [[SoftLayer_Resource_Metadata/getUserMetadata|getUserMetadata]] method from a request originating from the server. This is primarily useful for providing data to software that may be on the server and configured to execute upon first boot.
      • +//
      +// { +// "userData": [ +// { +// "value": "someValue" +// } +// ] +// } +//
      +//
    • +//
    • hardDrives +//
      Hard drive settings for the server
        +//
      • Optional
      • +//
      • Type - SoftLayer_Hardware_Component
      • +//
      • Default - The largest available capacity for a zero cost primary disk will be used.
      • +//
      • Description - The hardDrives property is an array of [[SoftLayer_Hardware_Component (type)|hardware component]] structures. +//
      • Each hard drive must specify the capacity property.
      • +//
      • See [[SoftLayer_Hardware/getCreateObjectOptions|getCreateObjectOptions]] for available options.
      • +//
      +// { +// "hardDrives": [ +// { +// "capacity": 500 +// } +// ] +// } +//
      +//
    • +//
    • sshKeys +//
      SSH keys to install on the server upon provisioning.
        +//
      • Optional
      • +//
      • Type - array of [[SoftLayer_Security_Ssh_Key (type)|SoftLayer_Security_Ssh_Key]]
      • +//
      • Description - The sshKeys property is an array of [[SoftLayer_Security_Ssh_Key (type)|SSH Key]] structures with the id property set to the value of an existing SSH key.
      • +//
      • To create a new SSH key, call [[SoftLayer_Security_Ssh_Key/createObject|createObject]] on the [[SoftLayer_Security_Ssh_Key]] service.
      • +//
      • To obtain a list of existing SSH keys, call [[SoftLayer_Account/getSshKeys|getSshKeys]] on the [[SoftLayer_Account]] service. +//
      +// { +// "sshKeys": [ +// { +// "id": 123 +// } +// ] +// } +//
      +//
    • +//
    • postInstallScriptUri +//
      Specifies the uri location of the script to be downloaded and run after installation is complete.
        +//
      • Optional
      • +//
      • Type - string
      • +//
      +//
      +//
    • +//
    +// +// +//

    REST Example

    +// curl -X POST -d '{ +// "parameters":[ +// { +// "hostname": "host1", +// "domain": "example.com", +// "processorCoreAmount": 2, +// "memoryCapacity": 2, +// "hourlyBillingFlag": true, +// "operatingSystemReferenceCode": "UBUNTU_LATEST" +// } +// ] +// }' https://api.softlayer.com/rest/v3/SoftLayer_Hardware.json +// +// HTTP/1.1 201 Created +// Location: https://api.softlayer.com/rest/v3/SoftLayer_Hardware/f5a3fcff-db1d-4b7c-9fa0-0349e41c29c5/getObject +// +// +// { +// "accountId": 232298, +// "bareMetalInstanceFlag": null, +// "domain": "example.com", +// "hardwareStatusId": null, +// "hostname": "host1", +// "id": null, +// "serviceProviderId": null, +// "serviceProviderResourceId": null, +// "globalIdentifier": "f5a3fcff-db1d-4b7c-9fa0-0349e41c29c5", +// "hourlyBillingFlag": true, +// "memoryCapacity": 2, +// "operatingSystemReferenceCode": "UBUNTU_LATEST", +// "processorCoreAmount": 2 +// } +// +func (r Hardware_Server) CreateObject(templateObject *datatypes.Hardware_Server) (resp datatypes.Hardware_Server, err error) { + params := []interface{}{ + templateObject, + } + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "createObject", params, &r.Options, &resp) + return +} + +// no documentation yet +func (r Hardware_Server) CreatePostSoftwareInstallTransaction(installCodes []string, returnBoolean *bool) (resp bool, err error) { + params := []interface{}{ + installCodes, + returnBoolean, + } + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "createPostSoftwareInstallTransaction", params, &r.Options, &resp) + return +} + +// +// This method will cancel a server effective immediately. For servers billed hourly, the charges will stop immediately after the method returns. +func (r Hardware_Server) DeleteObject() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "deleteObject", nil, &r.Options, &resp) + return +} + +// Delete software component passwords. +func (r Hardware_Server) DeleteSoftwareComponentPasswords(softwareComponentPasswords []datatypes.Software_Component_Password) (resp bool, err error) { + params := []interface{}{ + softwareComponentPasswords, + } + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "deleteSoftwareComponentPasswords", params, &r.Options, &resp) + return +} + +// Edit a server's properties +func (r Hardware_Server) EditObject(templateObject *datatypes.Hardware_Server) (resp bool, err error) { + params := []interface{}{ + templateObject, + } + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "editObject", params, &r.Options, &resp) + return +} + +// Edit the properties of a software component password such as the username, password, and notes. +func (r Hardware_Server) EditSoftwareComponentPasswords(softwareComponentPasswords []datatypes.Software_Component_Password) (resp bool, err error) { + params := []interface{}{ + softwareComponentPasswords, + } + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "editSoftwareComponentPasswords", params, &r.Options, &resp) + return +} + +// Download and run remote script from uri on the hardware. +func (r Hardware_Server) ExecuteRemoteScript(uri *string) (err error) { + var resp datatypes.Void + params := []interface{}{ + uri, + } + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "executeRemoteScript", params, &r.Options, &resp) + return +} + +// The '''findByIpAddress''' method finds hardware using its primary public or private IP address. IP addresses that have a secondary subnet tied to the hardware will not return the hardware - alternate means of locating the hardware must be used (see '''Associated Methods'''). If no hardware is found, no errors are generated and no data is returned. +func (r Hardware_Server) FindByIpAddress(ipAddress *string) (resp datatypes.Hardware, err error) { + params := []interface{}{ + ipAddress, + } + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "findByIpAddress", params, &r.Options, &resp) + return +} + +// +// Obtain an [[SoftLayer_Container_Product_Order_Hardware_Server (type)|order container]] that can be sent to [[SoftLayer_Product_Order/verifyOrder|verifyOrder]] or [[SoftLayer_Product_Order/placeOrder|placeOrder]]. +// +// +// This is primarily useful when there is a necessity to confirm the price which will be charged for an order. +// +// +// See [[SoftLayer_Hardware/createObject|createObject]] for specifics on the requirements of the template object parameter. +func (r Hardware_Server) GenerateOrderTemplate(templateObject *datatypes.Hardware) (resp datatypes.Container_Product_Order, err error) { + params := []interface{}{ + templateObject, + } + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "generateOrderTemplate", params, &r.Options, &resp) + return +} + +// Retrieve The account associated with a piece of hardware. +func (r Hardware_Server) GetAccount() (resp datatypes.Account, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "getAccount", nil, &r.Options, &resp) + return +} + +// Retrieve A piece of hardware's active physical components. +func (r Hardware_Server) GetActiveComponents() (resp []datatypes.Hardware_Component, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "getActiveComponents", nil, &r.Options, &resp) + return +} + +// Retrieve The billing item for a server's attached network firewall. +func (r Hardware_Server) GetActiveNetworkFirewallBillingItem() (resp datatypes.Billing_Item, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "getActiveNetworkFirewallBillingItem", nil, &r.Options, &resp) + return +} + +// Retrieve A piece of hardware's active network monitoring incidents. +func (r Hardware_Server) GetActiveNetworkMonitorIncident() (resp []datatypes.Network_Monitor_Version1_Incident, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "getActiveNetworkMonitorIncident", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Hardware_Server) GetActiveTickets() (resp []datatypes.Ticket, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "getActiveTickets", nil, &r.Options, &resp) + return +} + +// Retrieve Transaction currently running for server. +func (r Hardware_Server) GetActiveTransaction() (resp datatypes.Provisioning_Version1_Transaction, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "getActiveTransaction", nil, &r.Options, &resp) + return +} + +// Retrieve Any active transaction(s) that are currently running for the server (example: os reload). +func (r Hardware_Server) GetActiveTransactions() (resp []datatypes.Provisioning_Version1_Transaction, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "getActiveTransactions", nil, &r.Options, &resp) + return +} + +// The '''getAlarmHistory''' method retrieves a detailed history for the monitoring alarm. When calling this method, a start and end date for the history to be retrieved must be entered. +func (r Hardware_Server) GetAlarmHistory(startDate *datatypes.Time, endDate *datatypes.Time, alarmId *string) (resp []datatypes.Container_Monitoring_Alarm_History, err error) { + params := []interface{}{ + startDate, + endDate, + alarmId, + } + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "getAlarmHistory", params, &r.Options, &resp) + return +} + +// Retrieve +func (r Hardware_Server) GetAllPowerComponents() (resp []datatypes.Hardware_Power_Component, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "getAllPowerComponents", nil, &r.Options, &resp) + return +} + +// Retrieve The SoftLayer_Network_Storage_Allowed_Host information to connect this server to Network Storage volumes that require access control lists. +func (r Hardware_Server) GetAllowedHost() (resp datatypes.Network_Storage_Allowed_Host, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "getAllowedHost", nil, &r.Options, &resp) + return +} + +// Retrieve The SoftLayer_Network_Storage objects that this SoftLayer_Hardware has access to. +func (r Hardware_Server) GetAllowedNetworkStorage() (resp []datatypes.Network_Storage, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "getAllowedNetworkStorage", nil, &r.Options, &resp) + return +} + +// Retrieve The SoftLayer_Network_Storage objects whose Replica that this SoftLayer_Hardware has access to. +func (r Hardware_Server) GetAllowedNetworkStorageReplicas() (resp []datatypes.Network_Storage, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "getAllowedNetworkStorageReplicas", nil, &r.Options, &resp) + return +} + +// Retrieve Information regarding an antivirus/spyware software component object. +func (r Hardware_Server) GetAntivirusSpywareSoftwareComponent() (resp datatypes.Software_Component, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "getAntivirusSpywareSoftwareComponent", nil, &r.Options, &resp) + return +} + +// This method is retrieve a list of SoftLayer_Network_Storage volumes that are authorized access to this SoftLayer_Hardware. +func (r Hardware_Server) GetAttachedNetworkStorages(nasType *string) (resp []datatypes.Network_Storage, err error) { + params := []interface{}{ + nasType, + } + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "getAttachedNetworkStorages", params, &r.Options, &resp) + return +} + +// Retrieve Information regarding a piece of hardware's specific attributes. +func (r Hardware_Server) GetAttributes() (resp []datatypes.Hardware_Attribute, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "getAttributes", nil, &r.Options, &resp) + return +} + +// Retrieve An object that stores the maximum level for the monitoring query types and response types. +func (r Hardware_Server) GetAvailableMonitoring() (resp []datatypes.Network_Monitor_Version1_Query_Host_Stratum, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "getAvailableMonitoring", nil, &r.Options, &resp) + return +} + +// This method retrieves a list of SoftLayer_Network_Storage volumes that can be authorized to this SoftLayer_Hardware. +func (r Hardware_Server) GetAvailableNetworkStorages(nasType *string) (resp []datatypes.Network_Storage, err error) { + params := []interface{}{ + nasType, + } + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "getAvailableNetworkStorages", params, &r.Options, &resp) + return +} + +// Retrieve The average daily total bandwidth usage for the current billing cycle. +func (r Hardware_Server) GetAverageDailyBandwidthUsage() (resp datatypes.Float64, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "getAverageDailyBandwidthUsage", nil, &r.Options, &resp) + return +} + +// Retrieve The average daily private bandwidth usage for the current billing cycle. +func (r Hardware_Server) GetAverageDailyPrivateBandwidthUsage() (resp datatypes.Float64, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "getAverageDailyPrivateBandwidthUsage", nil, &r.Options, &resp) + return +} + +// Retrieve The average daily public bandwidth usage for the current billing cycle. +func (r Hardware_Server) GetAverageDailyPublicBandwidthUsage() (resp datatypes.Float64, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "getAverageDailyPublicBandwidthUsage", nil, &r.Options, &resp) + return +} + +// Use this method to return an array of private bandwidth utilization records between a given date range. +// +// This method represents the NEW version of getFrontendBandwidthUse +func (r Hardware_Server) GetBackendBandwidthUsage(startDate *datatypes.Time, endDate *datatypes.Time) (resp []datatypes.Metric_Tracking_Object_Data, err error) { + params := []interface{}{ + startDate, + endDate, + } + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "getBackendBandwidthUsage", params, &r.Options, &resp) + return +} + +// Use this method to return an array of private bandwidth utilization records between a given date range. +func (r Hardware_Server) GetBackendBandwidthUse(startDate *datatypes.Time, endDate *datatypes.Time) (resp []datatypes.Network_Bandwidth_Version1_Usage_Detail, err error) { + params := []interface{}{ + startDate, + endDate, + } + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "getBackendBandwidthUse", params, &r.Options, &resp) + return +} + +// The '''getBackendIncomingBandwidth''' method retrieves the amount of incoming private network traffic used between the given start date and end date parameters. When entering start and end dates, only the month, day and year are used to calculate bandwidth totals - the time (HH:MM:SS) is ignored and defaults to midnight. The amount of bandwidth retrieved is measured in gigabytes. +func (r Hardware_Server) GetBackendIncomingBandwidth(startDate *datatypes.Time, endDate *datatypes.Time) (resp datatypes.Float64, err error) { + params := []interface{}{ + startDate, + endDate, + } + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "getBackendIncomingBandwidth", params, &r.Options, &resp) + return +} + +// Retrieve A piece of hardware's back-end or private network components. +func (r Hardware_Server) GetBackendNetworkComponents() (resp []datatypes.Network_Component, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "getBackendNetworkComponents", nil, &r.Options, &resp) + return +} + +// The '''getBackendOutgoingBandwidth''' method retrieves the amount of outgoing private network traffic used between the given start date and end date parameters. When entering start and end dates, only the month, day and year are used to calculate bandwidth totals - the time (HH:MM:SS) is ignored and defaults to midnight. The amount of bandwidth retrieved is measured in gigabytes. +func (r Hardware_Server) GetBackendOutgoingBandwidth(startDate *datatypes.Time, endDate *datatypes.Time) (resp datatypes.Float64, err error) { + params := []interface{}{ + startDate, + endDate, + } + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "getBackendOutgoingBandwidth", params, &r.Options, &resp) + return +} + +// Retrieve A hardware's backend or private router. +func (r Hardware_Server) GetBackendRouters() (resp []datatypes.Hardware, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "getBackendRouters", nil, &r.Options, &resp) + return +} + +// Retrieve A hardware's allotted bandwidth (measured in GB). +func (r Hardware_Server) GetBandwidthAllocation() (resp datatypes.Float64, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "getBandwidthAllocation", nil, &r.Options, &resp) + return +} + +// Retrieve A hardware's allotted detail record. Allotment details link bandwidth allocation with allotments. +func (r Hardware_Server) GetBandwidthAllotmentDetail() (resp datatypes.Network_Bandwidth_Version1_Allotment_Detail, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "getBandwidthAllotmentDetail", nil, &r.Options, &resp) + return +} + +// Retrieve a collection of bandwidth data from an individual public or private network tracking object. Data is ideal if you with to employ your own traffic storage and graphing systems. +func (r Hardware_Server) GetBandwidthForDateRange(startDate *datatypes.Time, endDate *datatypes.Time) (resp []datatypes.Metric_Tracking_Object_Data, err error) { + params := []interface{}{ + startDate, + endDate, + } + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "getBandwidthForDateRange", params, &r.Options, &resp) + return +} + +// Use this method when needing a bandwidth image for a single server. It will gather the correct input parameters for the generic graphing utility automatically based on the snapshot specified. Use the $draw flag to suppress the generation of the actual binary PNG image. +func (r Hardware_Server) GetBandwidthImage(networkType *string, snapshotRange *string, draw *bool, dateSpecified *datatypes.Time, dateSpecifiedEnd *datatypes.Time) (resp datatypes.Container_Bandwidth_GraphOutputs, err error) { + params := []interface{}{ + networkType, + snapshotRange, + draw, + dateSpecified, + dateSpecifiedEnd, + } + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "getBandwidthImage", params, &r.Options, &resp) + return +} + +// Retrieve Information regarding a piece of hardware's benchmark certifications. +func (r Hardware_Server) GetBenchmarkCertifications() (resp []datatypes.Hardware_Benchmark_Certification, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "getBenchmarkCertifications", nil, &r.Options, &resp) + return +} + +// Retrieve The raw bandwidth usage data for the current billing cycle. One object will be returned for each network this server is attached to. +func (r Hardware_Server) GetBillingCycleBandwidthUsage() (resp []datatypes.Network_Bandwidth_Usage, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "getBillingCycleBandwidthUsage", nil, &r.Options, &resp) + return +} + +// Retrieve The raw private bandwidth usage data for the current billing cycle. +func (r Hardware_Server) GetBillingCyclePrivateBandwidthUsage() (resp datatypes.Network_Bandwidth_Usage, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "getBillingCyclePrivateBandwidthUsage", nil, &r.Options, &resp) + return +} + +// Retrieve The raw public bandwidth usage data for the current billing cycle. +func (r Hardware_Server) GetBillingCyclePublicBandwidthUsage() (resp datatypes.Network_Bandwidth_Usage, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "getBillingCyclePublicBandwidthUsage", nil, &r.Options, &resp) + return +} + +// Retrieve Information regarding the billing item for a server. +func (r Hardware_Server) GetBillingItem() (resp datatypes.Billing_Item_Hardware, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "getBillingItem", nil, &r.Options, &resp) + return +} + +// Retrieve A flag indicating that a billing item exists. +func (r Hardware_Server) GetBillingItemFlag() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "getBillingItemFlag", nil, &r.Options, &resp) + return +} + +// Retrieve Determines whether the hardware is ineligible for cancellation because it is disconnected. +func (r Hardware_Server) GetBlockCancelBecauseDisconnectedFlag() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "getBlockCancelBecauseDisconnectedFlag", nil, &r.Options, &resp) + return +} + +// Retrieve Status indicating whether or not a piece of hardware has business continuance insurance. +func (r Hardware_Server) GetBusinessContinuanceInsuranceFlag() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "getBusinessContinuanceInsuranceFlag", nil, &r.Options, &resp) + return +} + +// Retrieve Child hardware. +func (r Hardware_Server) GetChildrenHardware() (resp []datatypes.Hardware, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "getChildrenHardware", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Hardware_Server) GetComponentDetailsXML() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "getComponentDetailsXML", nil, &r.Options, &resp) + return +} + +// Retrieve A piece of hardware's components. +func (r Hardware_Server) GetComponents() (resp []datatypes.Hardware_Component, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "getComponents", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Hardware_Server) GetContainsSolidStateDrivesFlag() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "getContainsSolidStateDrivesFlag", nil, &r.Options, &resp) + return +} + +// Retrieve A continuous data protection/server backup software component object. +func (r Hardware_Server) GetContinuousDataProtectionSoftwareComponent() (resp datatypes.Software_Component, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "getContinuousDataProtectionSoftwareComponent", nil, &r.Options, &resp) + return +} + +// Retrieve A server's control panel. +func (r Hardware_Server) GetControlPanel() (resp datatypes.Software_Component_ControlPanel, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "getControlPanel", nil, &r.Options, &resp) + return +} + +// Retrieve The total cost of a server, measured in US Dollars ($USD). +func (r Hardware_Server) GetCost() (resp datatypes.Float64, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "getCost", nil, &r.Options, &resp) + return +} + +// +// There are many options that may be provided while ordering a server, this method can be used to determine what these options are. +// +// +// Detailed information on the return value can be found on the data type page for [[SoftLayer_Container_Hardware_Configuration (type)]]. +func (r Hardware_Server) GetCreateObjectOptions() (resp datatypes.Container_Hardware_Configuration, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "getCreateObjectOptions", nil, &r.Options, &resp) + return +} + +// Retrieve An object that provides commonly used bandwidth summary components for the current billing cycle. +func (r Hardware_Server) GetCurrentBandwidthSummary() (resp datatypes.Metric_Tracking_Object_Bandwidth_Summary, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "getCurrentBandwidthSummary", nil, &r.Options, &resp) + return +} + +// Attempt to retrieve the file associated with the current benchmark certification result, if such a file exists. If there is no file for this benchmark certification result, calling this method throws an exception. +func (r Hardware_Server) GetCurrentBenchmarkCertificationResultFile() (resp []byte, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "getCurrentBenchmarkCertificationResultFile", nil, &r.Options, &resp) + return +} + +// Retrieve The current billable public outbound bandwidth for this hardware for the current billing cycle. +func (r Hardware_Server) GetCurrentBillableBandwidthUsage() (resp datatypes.Float64, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "getCurrentBillableBandwidthUsage", nil, &r.Options, &resp) + return +} + +// Get the billing detail for this instance for the current billing period. This does not include bandwidth usage. +func (r Hardware_Server) GetCurrentBillingDetail() (resp []datatypes.Billing_Item, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "getCurrentBillingDetail", nil, &r.Options, &resp) + return +} + +// The '''getCurrentBillingTotal''' method retrieves the total bill amount in US Dollars ($) for the current billing period. In addition to the total bill amount, the billing detail also includes all bandwidth used up to the point the method is called on the piece of hardware. +func (r Hardware_Server) GetCurrentBillingTotal() (resp datatypes.Float64, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "getCurrentBillingTotal", nil, &r.Options, &resp) + return +} + +// Retrieve bandwidth graph by date. +func (r Hardware_Server) GetCustomBandwidthDataByDate(graphData *datatypes.Container_Graph) (resp datatypes.Container_Graph, err error) { + params := []interface{}{ + graphData, + } + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "getCustomBandwidthDataByDate", params, &r.Options, &resp) + return +} + +// Retrieve Indicates if a server has a Customer Installed OS +func (r Hardware_Server) GetCustomerInstalledOperatingSystemFlag() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "getCustomerInstalledOperatingSystemFlag", nil, &r.Options, &resp) + return +} + +// Retrieve Indicates if a server is a customer owned device. +func (r Hardware_Server) GetCustomerOwnedFlag() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "getCustomerOwnedFlag", nil, &r.Options, &resp) + return +} + +// The '''getDailyAverage''' method calculates the average daily network traffic used by the selected server. Using the required parameter ''dateTime'' to enter a start and end date, the user retrieves this average, measure in gigabytes (GB) for the specified date range. When entering parameters, only the month, day and year are required - time entries are omitted as this method defaults the time to midnight in order to account for the entire day. +func (r Hardware_Server) GetDailyAverage(startDate *datatypes.Time, endDate *datatypes.Time) (resp datatypes.Float64, err error) { + params := []interface{}{ + startDate, + endDate, + } + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "getDailyAverage", params, &r.Options, &resp) + return +} + +// Retrieve Information regarding the datacenter in which a piece of hardware resides. +func (r Hardware_Server) GetDatacenter() (resp datatypes.Location, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "getDatacenter", nil, &r.Options, &resp) + return +} + +// Retrieve The name of the datacenter in which a piece of hardware resides. +func (r Hardware_Server) GetDatacenterName() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "getDatacenterName", nil, &r.Options, &resp) + return +} + +// Retrieve All hardware that has uplink network connections to a piece of hardware. +func (r Hardware_Server) GetDownlinkHardware() (resp []datatypes.Hardware, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "getDownlinkHardware", nil, &r.Options, &resp) + return +} + +// Retrieve All hardware that has uplink network connections to a piece of hardware. +func (r Hardware_Server) GetDownlinkNetworkHardware() (resp []datatypes.Hardware, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "getDownlinkNetworkHardware", nil, &r.Options, &resp) + return +} + +// Retrieve Information regarding all servers attached to a piece of network hardware. +func (r Hardware_Server) GetDownlinkServers() (resp []datatypes.Hardware, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "getDownlinkServers", nil, &r.Options, &resp) + return +} + +// Retrieve Information regarding all virtual guests attached to a piece of network hardware. +func (r Hardware_Server) GetDownlinkVirtualGuests() (resp []datatypes.Virtual_Guest, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "getDownlinkVirtualGuests", nil, &r.Options, &resp) + return +} + +// Retrieve All hardware downstream from a network device. +func (r Hardware_Server) GetDownstreamHardwareBindings() (resp []datatypes.Network_Component_Uplink_Hardware, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "getDownstreamHardwareBindings", nil, &r.Options, &resp) + return +} + +// Retrieve All network hardware downstream from the selected piece of hardware. +func (r Hardware_Server) GetDownstreamNetworkHardware() (resp []datatypes.Hardware, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "getDownstreamNetworkHardware", nil, &r.Options, &resp) + return +} + +// Retrieve All network hardware with monitoring warnings or errors that are downstream from the selected piece of hardware. +func (r Hardware_Server) GetDownstreamNetworkHardwareWithIncidents() (resp []datatypes.Hardware, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "getDownstreamNetworkHardwareWithIncidents", nil, &r.Options, &resp) + return +} + +// Retrieve Information regarding all servers attached downstream to a piece of network hardware. +func (r Hardware_Server) GetDownstreamServers() (resp []datatypes.Hardware, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "getDownstreamServers", nil, &r.Options, &resp) + return +} + +// Retrieve Information regarding all virtual guests attached to a piece of network hardware. +func (r Hardware_Server) GetDownstreamVirtualGuests() (resp []datatypes.Virtual_Guest, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "getDownstreamVirtualGuests", nil, &r.Options, &resp) + return +} + +// Retrieve The drive controllers contained within a piece of hardware. +func (r Hardware_Server) GetDriveControllers() (resp []datatypes.Hardware_Component, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "getDriveControllers", nil, &r.Options, &resp) + return +} + +// Retrieve Information regarding a piece of hardware's associated EVault network storage service account. +func (r Hardware_Server) GetEvaultNetworkStorage() (resp []datatypes.Network_Storage, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "getEvaultNetworkStorage", nil, &r.Options, &resp) + return +} + +// Get the subnets associated with this server that are protectable by a network component firewall. +func (r Hardware_Server) GetFirewallProtectableSubnets() (resp []datatypes.Network_Subnet, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "getFirewallProtectableSubnets", nil, &r.Options, &resp) + return +} + +// Retrieve Information regarding a piece of hardware's firewall services. +func (r Hardware_Server) GetFirewallServiceComponent() (resp datatypes.Network_Component_Firewall, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "getFirewallServiceComponent", nil, &r.Options, &resp) + return +} + +// Retrieve Defines the fixed components in a fixed configuration bare metal server. +func (r Hardware_Server) GetFixedConfigurationPreset() (resp datatypes.Product_Package_Preset, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "getFixedConfigurationPreset", nil, &r.Options, &resp) + return +} + +// Use this method to return an array of public bandwidth utilization records between a given date range. +// +// This method represents the NEW version of getFrontendBandwidthUse +func (r Hardware_Server) GetFrontendBandwidthUsage(startDate *datatypes.Time, endDate *datatypes.Time) (resp []datatypes.Metric_Tracking_Object_Data, err error) { + params := []interface{}{ + startDate, + endDate, + } + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "getFrontendBandwidthUsage", params, &r.Options, &resp) + return +} + +// Use this method to return an array of public bandwidth utilization records between a given date range. +func (r Hardware_Server) GetFrontendBandwidthUse(startDate *datatypes.Time, endDate *datatypes.Time) (resp []datatypes.Network_Bandwidth_Version1_Usage_Detail, err error) { + params := []interface{}{ + startDate, + endDate, + } + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "getFrontendBandwidthUse", params, &r.Options, &resp) + return +} + +// The '''getFrontendIncomingBandwidth''' method retrieves the amount of incoming public network traffic used by a server between the given start and end date parameters. When entering the ''dateTime'' parameter, only the month, day and year of the start and end dates are required - the time (hour, minute and second) are set to midnight by default and cannot be changed. The amount of bandwidth retrieved is measured in gigabytes (GB). +func (r Hardware_Server) GetFrontendIncomingBandwidth(startDate *datatypes.Time, endDate *datatypes.Time) (resp datatypes.Float64, err error) { + params := []interface{}{ + startDate, + endDate, + } + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "getFrontendIncomingBandwidth", params, &r.Options, &resp) + return +} + +// Retrieve A piece of hardware's front-end or public network components. +func (r Hardware_Server) GetFrontendNetworkComponents() (resp []datatypes.Network_Component, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "getFrontendNetworkComponents", nil, &r.Options, &resp) + return +} + +// The '''getFrontendOutgoingBandwidth''' method retrieves the amount of outgoing public network traffic used by a server between the given start and end date parameters. The ''dateTime'' parameter requires only the day, month and year to be entered - the time (hour, minute and second) are set to midnight be default in order to gather the data for the entire start and end date indicated in the parameter. The amount of bandwidth retrieved is measured in gigabytes (GB). +func (r Hardware_Server) GetFrontendOutgoingBandwidth(startDate *datatypes.Time, endDate *datatypes.Time) (resp datatypes.Float64, err error) { + params := []interface{}{ + startDate, + endDate, + } + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "getFrontendOutgoingBandwidth", params, &r.Options, &resp) + return +} + +// Retrieve A hardware's frontend or public router. +func (r Hardware_Server) GetFrontendRouters() (resp []datatypes.Hardware, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "getFrontendRouters", nil, &r.Options, &resp) + return +} + +// Retrieve A hardware's universally unique identifier. +func (r Hardware_Server) GetGlobalIdentifier() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "getGlobalIdentifier", nil, &r.Options, &resp) + return +} + +// Retrieve The hard drives contained within a piece of hardware. +func (r Hardware_Server) GetHardDrives() (resp []datatypes.Hardware_Component, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "getHardDrives", nil, &r.Options, &resp) + return +} + +// Retrieve a server by searching for the primary IP address. +func (r Hardware_Server) GetHardwareByIpAddress(ipAddress *string) (resp datatypes.Hardware_Server, err error) { + params := []interface{}{ + ipAddress, + } + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "getHardwareByIpAddress", params, &r.Options, &resp) + return +} + +// Retrieve The chassis that a piece of hardware is housed in. +func (r Hardware_Server) GetHardwareChassis() (resp datatypes.Hardware_Chassis, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "getHardwareChassis", nil, &r.Options, &resp) + return +} + +// Retrieve A hardware's function. +func (r Hardware_Server) GetHardwareFunction() (resp datatypes.Hardware_Function, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "getHardwareFunction", nil, &r.Options, &resp) + return +} + +// Retrieve A hardware's function. +func (r Hardware_Server) GetHardwareFunctionDescription() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "getHardwareFunctionDescription", nil, &r.Options, &resp) + return +} + +// Retrieve A hardware's status. +func (r Hardware_Server) GetHardwareStatus() (resp datatypes.Hardware_Status, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "getHardwareStatus", nil, &r.Options, &resp) + return +} + +// Retrieve Determine in hardware object has TPM enabled. +func (r Hardware_Server) GetHasTrustedPlatformModuleBillingItemFlag() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "getHasTrustedPlatformModuleBillingItemFlag", nil, &r.Options, &resp) + return +} + +// Retrieve Information regarding a host IPS software component object. +func (r Hardware_Server) GetHostIpsSoftwareComponent() (resp datatypes.Software_Component, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "getHostIpsSoftwareComponent", nil, &r.Options, &resp) + return +} + +// The '''getHourlyBandwidth''' method retrieves all bandwidth updates hourly for the specified hardware. Because the potential number of data points can become excessive, the method limits the user to obtain data in 24-hour intervals. The required ''dateTime'' parameter is used as the starting point for the query and will be calculated for the 24-hour period starting with the specified date and time. For example, entering a parameter of +// +// '02/01/2008 0:00' +// +// results in a return of all bandwidth data for the entire day of February 1, 2008, as 0:00 specifies a midnight start date. Please note that the time entered should be completed using a 24-hour clock (military time, astronomical time). +// +// For data spanning more than a single 24-hour period, refer to the getBandwidthData function on the metricTrackingObject for the piece of hardware. +func (r Hardware_Server) GetHourlyBandwidth(mode *string, day *datatypes.Time) (resp []datatypes.Metric_Tracking_Object_Data, err error) { + params := []interface{}{ + mode, + day, + } + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "getHourlyBandwidth", params, &r.Options, &resp) + return +} + +// Retrieve A server's hourly billing status. +func (r Hardware_Server) GetHourlyBillingFlag() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "getHourlyBillingFlag", nil, &r.Options, &resp) + return +} + +// Retrieve The sum of all the inbound network traffic data for the last 30 days. +func (r Hardware_Server) GetInboundBandwidthUsage() (resp datatypes.Float64, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "getInboundBandwidthUsage", nil, &r.Options, &resp) + return +} + +// Retrieve The total private inbound bandwidth for this hardware for the current billing cycle. +func (r Hardware_Server) GetInboundPrivateBandwidthUsage() (resp datatypes.Float64, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "getInboundPrivateBandwidthUsage", nil, &r.Options, &resp) + return +} + +// Retrieve The total public inbound bandwidth for this hardware for the current billing cycle. +func (r Hardware_Server) GetInboundPublicBandwidthUsage() (resp datatypes.Float64, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "getInboundPublicBandwidthUsage", nil, &r.Options, &resp) + return +} + +// Return a collection of SoftLayer_Item_Price objects from a collection of SoftLayer_Software_Description +func (r Hardware_Server) GetItemPricesFromSoftwareDescriptions(softwareDescriptions []datatypes.Software_Description, includeTranslationsFlag *bool, returnAllPricesFlag *bool) (resp []datatypes.Product_Item, err error) { + params := []interface{}{ + softwareDescriptions, + includeTranslationsFlag, + returnAllPricesFlag, + } + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "getItemPricesFromSoftwareDescriptions", params, &r.Options, &resp) + return +} + +// Retrieve The last transaction that a server's operating system was loaded. +func (r Hardware_Server) GetLastOperatingSystemReload() (resp datatypes.Provisioning_Version1_Transaction, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "getLastOperatingSystemReload", nil, &r.Options, &resp) + return +} + +// Retrieve Information regarding the last transaction a server performed. +func (r Hardware_Server) GetLastTransaction() (resp datatypes.Provisioning_Version1_Transaction, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "getLastTransaction", nil, &r.Options, &resp) + return +} + +// Retrieve A piece of hardware's latest network monitoring incident. +func (r Hardware_Server) GetLatestNetworkMonitorIncident() (resp datatypes.Network_Monitor_Version1_Incident, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "getLatestNetworkMonitorIncident", nil, &r.Options, &resp) + return +} + +// Retrieve Where a piece of hardware is located within SoftLayer's location hierarchy. +func (r Hardware_Server) GetLocation() (resp datatypes.Location, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "getLocation", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Hardware_Server) GetLocationPathString() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "getLocationPathString", nil, &r.Options, &resp) + return +} + +// Retrieve Information regarding a lockbox account associated with a server. +func (r Hardware_Server) GetLockboxNetworkStorage() (resp datatypes.Network_Storage, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "getLockboxNetworkStorage", nil, &r.Options, &resp) + return +} + +// Retrieve A flag indicating that the hardware is a managed resource. +func (r Hardware_Server) GetManagedResourceFlag() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "getManagedResourceFlag", nil, &r.Options, &resp) + return +} + +// Retrieve the remote management network component attached with this server. +func (r Hardware_Server) GetManagementNetworkComponent() (resp datatypes.Network_Component, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "getManagementNetworkComponent", nil, &r.Options, &resp) + return +} + +// Retrieve Information regarding a piece of hardware's memory. +func (r Hardware_Server) GetMemory() (resp []datatypes.Hardware_Component, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "getMemory", nil, &r.Options, &resp) + return +} + +// Retrieve The amount of memory a piece of hardware has, measured in gigabytes. +func (r Hardware_Server) GetMemoryCapacity() (resp uint, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "getMemoryCapacity", nil, &r.Options, &resp) + return +} + +// Retrieve A piece of hardware's metric tracking object. +func (r Hardware_Server) GetMetricTrackingObject() (resp datatypes.Metric_Tracking_Object_HardwareServer, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "getMetricTrackingObject", nil, &r.Options, &resp) + return +} + +// Retrieve The metric tracking object id for this server. +func (r Hardware_Server) GetMetricTrackingObjectId() (resp int, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "getMetricTrackingObjectId", nil, &r.Options, &resp) + return +} + +// Returns open monitoring alarms for a given time period +func (r Hardware_Server) GetMonitoringActiveAlarms(startDate *datatypes.Time, endDate *datatypes.Time) (resp []datatypes.Container_Monitoring_Alarm_History, err error) { + params := []interface{}{ + startDate, + endDate, + } + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "getMonitoringActiveAlarms", params, &r.Options, &resp) + return +} + +// Retrieve Information regarding the monitoring agents associated with a piece of hardware. +func (r Hardware_Server) GetMonitoringAgents() (resp []datatypes.Monitoring_Agent, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "getMonitoringAgents", nil, &r.Options, &resp) + return +} + +// Returns closed monitoring alarms for a given time period +func (r Hardware_Server) GetMonitoringClosedAlarms(startDate *datatypes.Time, endDate *datatypes.Time) (resp []datatypes.Container_Monitoring_Alarm_History, err error) { + params := []interface{}{ + startDate, + endDate, + } + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "getMonitoringClosedAlarms", params, &r.Options, &resp) + return +} + +// Retrieve Information regarding the hardware's monitoring robot. +func (r Hardware_Server) GetMonitoringRobot() (resp datatypes.Monitoring_Robot, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "getMonitoringRobot", nil, &r.Options, &resp) + return +} + +// Retrieve Information regarding a piece of hardware's network monitoring services. +func (r Hardware_Server) GetMonitoringServiceComponent() (resp datatypes.Network_Monitor_Version1_Query_Host_Stratum, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "getMonitoringServiceComponent", nil, &r.Options, &resp) + return +} + +// Retrieve The monitoring service flag eligibility status for a piece of hardware. +func (r Hardware_Server) GetMonitoringServiceEligibilityFlag() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "getMonitoringServiceEligibilityFlag", nil, &r.Options, &resp) + return +} + +// Retrieve The service flag status for a piece of hardware. +func (r Hardware_Server) GetMonitoringServiceFlag() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "getMonitoringServiceFlag", nil, &r.Options, &resp) + return +} + +// Retrieve The monitoring notification objects for this hardware. Each object links this hardware instance to a user account that will be notified if monitoring on this hardware object fails +func (r Hardware_Server) GetMonitoringUserNotification() (resp []datatypes.User_Customer_Notification_Hardware, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "getMonitoringUserNotification", nil, &r.Options, &resp) + return +} + +// Retrieve Information regarding a piece of hardware's motherboard. +func (r Hardware_Server) GetMotherboard() (resp datatypes.Hardware_Component, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "getMotherboard", nil, &r.Options, &resp) + return +} + +// Retrieve Information regarding a piece of hardware's network cards. +func (r Hardware_Server) GetNetworkCards() (resp []datatypes.Hardware_Component, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "getNetworkCards", nil, &r.Options, &resp) + return +} + +// Get the IP addresses associated with this server that are protectable by a network component firewall. Note, this may not return all values for IPv6 subnets for this server. Please use getFirewallProtectableSubnets to get all protectable subnets. +func (r Hardware_Server) GetNetworkComponentFirewallProtectableIpAddresses() (resp []datatypes.Network_Subnet_IpAddress, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "getNetworkComponentFirewallProtectableIpAddresses", nil, &r.Options, &resp) + return +} + +// Retrieve Returns a hardware's network components. +func (r Hardware_Server) GetNetworkComponents() (resp []datatypes.Network_Component, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "getNetworkComponents", nil, &r.Options, &resp) + return +} + +// Retrieve The gateway member if this device is part of a network gateway. +func (r Hardware_Server) GetNetworkGatewayMember() (resp datatypes.Network_Gateway_Member, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "getNetworkGatewayMember", nil, &r.Options, &resp) + return +} + +// Retrieve Whether or not this device is part of a network gateway. +func (r Hardware_Server) GetNetworkGatewayMemberFlag() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "getNetworkGatewayMemberFlag", nil, &r.Options, &resp) + return +} + +// Retrieve A piece of hardware's network management IP address. +func (r Hardware_Server) GetNetworkManagementIpAddress() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "getNetworkManagementIpAddress", nil, &r.Options, &resp) + return +} + +// Retrieve All servers with failed monitoring that are attached downstream to a piece of hardware. +func (r Hardware_Server) GetNetworkMonitorAttachedDownHardware() (resp []datatypes.Hardware, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "getNetworkMonitorAttachedDownHardware", nil, &r.Options, &resp) + return +} + +// Retrieve Virtual guests that are attached downstream to a hardware that have failed monitoring +func (r Hardware_Server) GetNetworkMonitorAttachedDownVirtualGuests() (resp []datatypes.Virtual_Guest, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "getNetworkMonitorAttachedDownVirtualGuests", nil, &r.Options, &resp) + return +} + +// Retrieve The status of all of a piece of hardware's network monitoring incidents. +func (r Hardware_Server) GetNetworkMonitorIncidents() (resp []datatypes.Network_Monitor_Version1_Incident, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "getNetworkMonitorIncidents", nil, &r.Options, &resp) + return +} + +// Retrieve Information regarding a piece of hardware's network monitors. +func (r Hardware_Server) GetNetworkMonitors() (resp []datatypes.Network_Monitor_Version1_Query_Host, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "getNetworkMonitors", nil, &r.Options, &resp) + return +} + +// Retrieve The value of a hardware's network status attribute. +func (r Hardware_Server) GetNetworkStatus() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "getNetworkStatus", nil, &r.Options, &resp) + return +} + +// Retrieve The hardware's related network status attribute. +func (r Hardware_Server) GetNetworkStatusAttribute() (resp datatypes.Hardware_Attribute, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "getNetworkStatusAttribute", nil, &r.Options, &resp) + return +} + +// Retrieve Information regarding a piece of hardware's associated network storage service account. +func (r Hardware_Server) GetNetworkStorage() (resp []datatypes.Network_Storage, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "getNetworkStorage", nil, &r.Options, &resp) + return +} + +// Retrieve The network virtual LANs (VLANs) associated with a piece of hardware's network components. +func (r Hardware_Server) GetNetworkVlans() (resp []datatypes.Network_Vlan, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "getNetworkVlans", nil, &r.Options, &resp) + return +} + +// Retrieve A hardware's allotted bandwidth for the next billing cycle (measured in GB). +func (r Hardware_Server) GetNextBillingCycleBandwidthAllocation() (resp datatypes.Float64, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "getNextBillingCycleBandwidthAllocation", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Hardware_Server) GetNotesHistory() (resp []datatypes.Hardware_Note, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "getNotesHistory", nil, &r.Options, &resp) + return +} + +// getObject retrieves the SoftLayer_Hardware_Server object whose ID number corresponds to the ID number of the init parameter passed to the SoftLayer_Hardware service. You can only retrieve servers from the account that your portal user is assigned to. +func (r Hardware_Server) GetObject() (resp datatypes.Hardware_Server, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "getObject", nil, &r.Options, &resp) + return +} + +// Retrieve An open ticket requesting cancellation of this server, if one exists. +func (r Hardware_Server) GetOpenCancellationTicket() (resp datatypes.Ticket, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "getOpenCancellationTicket", nil, &r.Options, &resp) + return +} + +// Retrieve Information regarding a piece of hardware's operating system. +func (r Hardware_Server) GetOperatingSystem() (resp datatypes.Software_Component_OperatingSystem, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "getOperatingSystem", nil, &r.Options, &resp) + return +} + +// Retrieve A hardware's operating system software description. +func (r Hardware_Server) GetOperatingSystemReferenceCode() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "getOperatingSystemReferenceCode", nil, &r.Options, &resp) + return +} + +// Retrieve The sum of all the outbound network traffic data for the last 30 days. +func (r Hardware_Server) GetOutboundBandwidthUsage() (resp datatypes.Float64, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "getOutboundBandwidthUsage", nil, &r.Options, &resp) + return +} + +// Retrieve The total private outbound bandwidth for this hardware for the current billing cycle. +func (r Hardware_Server) GetOutboundPrivateBandwidthUsage() (resp datatypes.Float64, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "getOutboundPrivateBandwidthUsage", nil, &r.Options, &resp) + return +} + +// Retrieve The total public outbound bandwidth for this hardware for the current billing cycle. +func (r Hardware_Server) GetOutboundPublicBandwidthUsage() (resp datatypes.Float64, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "getOutboundPublicBandwidthUsage", nil, &r.Options, &resp) + return +} + +// Retrieve Whether the bandwidth usage for this hardware for the current billing cycle exceeds the allocation. +func (r Hardware_Server) GetOverBandwidthAllocationFlag() (resp int, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "getOverBandwidthAllocationFlag", nil, &r.Options, &resp) + return +} + +// Retrieve a server's hardware state via its internal sensors. Remote sensor data is transmitted to the SoftLayer API by way of the server's remote management card. Sensor data measures system temperatures, voltages, and other local server settings. Sensor data is cached for 30 seconds. Calls made to getSensorData for the same server within 30 seconds of each other will return the same data. Subsequent calls will return new data once the cache expires. +func (r Hardware_Server) GetPMInfo() (resp []datatypes.Container_RemoteManagement_PmInfo, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "getPMInfo", nil, &r.Options, &resp) + return +} + +// Retrieve Parent Hardware. +func (r Hardware_Server) GetParentHardware() (resp datatypes.Hardware, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "getParentHardware", nil, &r.Options, &resp) + return +} + +// Retrieve Information regarding the Point of Presence (PoP) location in which a piece of hardware resides. +func (r Hardware_Server) GetPointOfPresenceLocation() (resp datatypes.Location, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "getPointOfPresenceLocation", nil, &r.Options, &resp) + return +} + +// Retrieve The power components for a hardware object. +func (r Hardware_Server) GetPowerComponents() (resp []datatypes.Hardware_Power_Component, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "getPowerComponents", nil, &r.Options, &resp) + return +} + +// Retrieve Information regarding a piece of hardware's power supply. +func (r Hardware_Server) GetPowerSupply() (resp []datatypes.Hardware_Component, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "getPowerSupply", nil, &r.Options, &resp) + return +} + +// Retrieve The hardware's primary private IP address. +func (r Hardware_Server) GetPrimaryBackendIpAddress() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "getPrimaryBackendIpAddress", nil, &r.Options, &resp) + return +} + +// Retrieve Information regarding the hardware's primary back-end network component. +func (r Hardware_Server) GetPrimaryBackendNetworkComponent() (resp datatypes.Network_Component, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "getPrimaryBackendNetworkComponent", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Hardware_Server) GetPrimaryDriveSize() (resp int, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "getPrimaryDriveSize", nil, &r.Options, &resp) + return +} + +// Retrieve The hardware's primary public IP address. +func (r Hardware_Server) GetPrimaryIpAddress() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "getPrimaryIpAddress", nil, &r.Options, &resp) + return +} + +// Retrieve Information regarding the hardware's primary public network component. +func (r Hardware_Server) GetPrimaryNetworkComponent() (resp datatypes.Network_Component, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "getPrimaryNetworkComponent", nil, &r.Options, &resp) + return +} + +// Retrieve a graph of a server's private network bandwidth usage over the specified timeframe. If no timeframe is specified then getPublicBandwidthGraphImage retrieves the last 24 hours of public bandwidth usage. getPrivateBandwidthGraphImage returns a PNG image measuring 827 pixels by 293 pixels. +func (r Hardware_Server) GetPrivateBandwidthData(startTime *int, endTime *int) (resp []datatypes.Metric_Tracking_Object_Data, err error) { + params := []interface{}{ + startTime, + endTime, + } + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "getPrivateBandwidthData", params, &r.Options, &resp) + return +} + +// Retrieve a brief summary of a server's private network bandwidth usage. getPrivateBandwidthDataSummary retrieves a server's bandwidth allocation for its billing period, its estimated usage during its billing period, and an estimation of how much bandwidth it will use during its billing period based on its current usage. A server's projected bandwidth usage increases in accuracy as it progresses through its billing period. +func (r Hardware_Server) GetPrivateBandwidthDataSummary() (resp datatypes.Container_Network_Bandwidth_Data_Summary, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "getPrivateBandwidthDataSummary", nil, &r.Options, &resp) + return +} + +// Retrieve a graph of a server's private network bandwidth usage over the specified time frame. If no time frame is specified then getPublicBandwidthGraphImage retrieves the last 24 hours of public bandwidth usage. getPublicBandwidthGraphImage returns a PNG image +func (r Hardware_Server) GetPrivateBandwidthGraphImage(startTime *string, endTime *string) (resp []byte, err error) { + params := []interface{}{ + startTime, + endTime, + } + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "getPrivateBandwidthGraphImage", params, &r.Options, &resp) + return +} + +// Retrieve A server's primary private IP address. +func (r Hardware_Server) GetPrivateIpAddress() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "getPrivateIpAddress", nil, &r.Options, &resp) + return +} + +// Retrieve the private network component attached with this server. +func (r Hardware_Server) GetPrivateNetworkComponent() (resp datatypes.Network_Component, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "getPrivateNetworkComponent", nil, &r.Options, &resp) + return +} + +// Retrieve Whether the hardware only has access to the private network. +func (r Hardware_Server) GetPrivateNetworkOnlyFlag() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "getPrivateNetworkOnlyFlag", nil, &r.Options, &resp) + return +} + +// Retrieve the backend VLAN for the primary IP address of the server +func (r Hardware_Server) GetPrivateVlan() (resp datatypes.Network_Vlan, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "getPrivateVlan", nil, &r.Options, &resp) + return +} + +// Retrieve a backend network VLAN by searching for an IP address +func (r Hardware_Server) GetPrivateVlanByIpAddress(ipAddress *string) (resp datatypes.Network_Vlan, err error) { + params := []interface{}{ + ipAddress, + } + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "getPrivateVlanByIpAddress", params, &r.Options, &resp) + return +} + +// Retrieve The total number of processor cores, summed from all processors that are attached to a piece of hardware +func (r Hardware_Server) GetProcessorCoreAmount() (resp uint, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "getProcessorCoreAmount", nil, &r.Options, &resp) + return +} + +// Retrieve The total number of physical processor cores, summed from all processors that are attached to a piece of hardware +func (r Hardware_Server) GetProcessorPhysicalCoreAmount() (resp uint, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "getProcessorPhysicalCoreAmount", nil, &r.Options, &resp) + return +} + +// Retrieve Information regarding a piece of hardware's processors. +func (r Hardware_Server) GetProcessors() (resp []datatypes.Hardware_Component, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "getProcessors", nil, &r.Options, &resp) + return +} + +// Retrieve Whether the bandwidth usage for this hardware for the current billing cycle is projected to exceed the allocation. +func (r Hardware_Server) GetProjectedOverBandwidthAllocationFlag() (resp int, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "getProjectedOverBandwidthAllocationFlag", nil, &r.Options, &resp) + return +} + +// Retrieve The projected public outbound bandwidth for this hardware for the current billing cycle. +func (r Hardware_Server) GetProjectedPublicBandwidthUsage() (resp datatypes.Float64, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "getProjectedPublicBandwidthUsage", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Hardware_Server) GetProvisionDate() (resp datatypes.Time, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "getProvisionDate", nil, &r.Options, &resp) + return +} + +// Retrieve a graph of a server's public network bandwidth usage over the specified timeframe. If no timeframe is specified then getPublicBandwidthGraphImage retrieves the last 24 hours of public bandwidth usage. getPublicBandwidthGraphImage returns a PNG image measuring 827 pixels by 293 pixels. +func (r Hardware_Server) GetPublicBandwidthData(startTime *int, endTime *int) (resp []datatypes.Metric_Tracking_Object_Data, err error) { + params := []interface{}{ + startTime, + endTime, + } + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "getPublicBandwidthData", params, &r.Options, &resp) + return +} + +// Retrieve a brief summary of a server's public network bandwidth usage. getPublicBandwidthDataSummary retrieves a server's bandwidth allocation for its billing period, its estimated usage during its billing period, and an estimation of how much bandwidth it will use during its billing period based on its current usage. A server's projected bandwidth usage increases in accuracy as it progresses through its billing period. +func (r Hardware_Server) GetPublicBandwidthDataSummary() (resp datatypes.Container_Network_Bandwidth_Data_Summary, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "getPublicBandwidthDataSummary", nil, &r.Options, &resp) + return +} + +// Retrieve a graph of a server's public network bandwidth usage over the specified time frame. If no time frame is specified then getPublicBandwidthGraphImage retrieves the last 24 hours of public bandwidth usage. getPublicBandwidthGraphImage returns a PNG image measuring 827 pixels by 293 pixels. THIS METHOD GENERATES GRAPHS BASED ON THE NEW DATA WAREHOUSE REPOSITORY. +func (r Hardware_Server) GetPublicBandwidthGraphImage(startTime *datatypes.Time, endTime *datatypes.Time) (resp []byte, err error) { + params := []interface{}{ + startTime, + endTime, + } + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "getPublicBandwidthGraphImage", params, &r.Options, &resp) + return +} + +// Retrieve the total number of bytes used by a server over a specified time period via the data warehouse tracking objects for this hardware. +func (r Hardware_Server) GetPublicBandwidthTotal(startTime *int, endTime *int) (resp uint, err error) { + params := []interface{}{ + startTime, + endTime, + } + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "getPublicBandwidthTotal", params, &r.Options, &resp) + return +} + +// Retrieve a SoftLayer server's public network component. Some servers are only connected to the private network and may not have a public network component. In that case getPublicNetworkComponent returns a null object. +func (r Hardware_Server) GetPublicNetworkComponent() (resp datatypes.Network_Component, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "getPublicNetworkComponent", nil, &r.Options, &resp) + return +} + +// Retrieve the frontend VLAN for the primary IP address of the server +func (r Hardware_Server) GetPublicVlan() (resp datatypes.Network_Vlan, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "getPublicVlan", nil, &r.Options, &resp) + return +} + +// Retrieve the frontend network Vlan by searching the hostname of a server +func (r Hardware_Server) GetPublicVlanByHostname(hostname *string) (resp datatypes.Network_Vlan, err error) { + params := []interface{}{ + hostname, + } + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "getPublicVlanByHostname", params, &r.Options, &resp) + return +} + +// Retrieve +func (r Hardware_Server) GetRack() (resp datatypes.Location, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "getRack", nil, &r.Options, &resp) + return +} + +// Retrieve The RAID controllers contained within a piece of hardware. +func (r Hardware_Server) GetRaidControllers() (resp []datatypes.Hardware_Component, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "getRaidControllers", nil, &r.Options, &resp) + return +} + +// Retrieve Recent events that impact this hardware. +func (r Hardware_Server) GetRecentEvents() (resp []datatypes.Notification_Occurrence_Event, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "getRecentEvents", nil, &r.Options, &resp) + return +} + +// Retrieve The last five commands issued to the server's remote management card. +func (r Hardware_Server) GetRecentRemoteManagementCommands() (resp []datatypes.Hardware_Component_RemoteManagement_Command_Request, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "getRecentRemoteManagementCommands", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Hardware_Server) GetRegionalInternetRegistry() (resp datatypes.Network_Regional_Internet_Registry, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "getRegionalInternetRegistry", nil, &r.Options, &resp) + return +} + +// Retrieve A server's remote management card. +func (r Hardware_Server) GetRemoteManagement() (resp datatypes.Hardware_Component_RemoteManagement, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "getRemoteManagement", nil, &r.Options, &resp) + return +} + +// Retrieve User credentials to issue commands and/or interact with the server's remote management card. +func (r Hardware_Server) GetRemoteManagementAccounts() (resp []datatypes.Hardware_Component_RemoteManagement_User, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "getRemoteManagementAccounts", nil, &r.Options, &resp) + return +} + +// Retrieve A hardware's associated remote management component. This is normally IPMI. +func (r Hardware_Server) GetRemoteManagementComponent() (resp datatypes.Network_Component, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "getRemoteManagementComponent", nil, &r.Options, &resp) + return +} + +// Retrieve User(s) who have access to issue commands and/or interact with the server's remote management card. +func (r Hardware_Server) GetRemoteManagementUsers() (resp []datatypes.Hardware_Component_RemoteManagement_User, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "getRemoteManagementUsers", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Hardware_Server) GetResourceConfigurations() (resp []datatypes.Hardware_Resource_Configuration, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "getResourceConfigurations", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Hardware_Server) GetResourceGroupMemberReferences() (resp []datatypes.Resource_Group_Member, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "getResourceGroupMemberReferences", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Hardware_Server) GetResourceGroupRoles() (resp []datatypes.Resource_Group_Role, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "getResourceGroupRoles", nil, &r.Options, &resp) + return +} + +// Retrieve The resource groups in which this hardware is a member. +func (r Hardware_Server) GetResourceGroups() (resp []datatypes.Resource_Group, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "getResourceGroups", nil, &r.Options, &resp) + return +} + +// Retrieve the reverse domain records associated with this server. +func (r Hardware_Server) GetReverseDomainRecords() (resp []datatypes.Dns_Domain, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "getReverseDomainRecords", nil, &r.Options, &resp) + return +} + +// Retrieve A hardware's routers. +func (r Hardware_Server) GetRouters() (resp []datatypes.Hardware, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "getRouters", nil, &r.Options, &resp) + return +} + +// Retrieve Collection of scale assets this hardware corresponds to. +func (r Hardware_Server) GetScaleAssets() (resp []datatypes.Scale_Asset, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "getScaleAssets", nil, &r.Options, &resp) + return +} + +// Retrieve Information regarding a piece of hardware's vulnerability scan requests. +func (r Hardware_Server) GetSecurityScanRequests() (resp []datatypes.Network_Security_Scanner_Request, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "getSecurityScanRequests", nil, &r.Options, &resp) + return +} + +// Retrieve a server's hardware state via its internal sensors. Remote sensor data is transmitted to the SoftLayer API by way of the server's remote management card. Sensor data measures system temperatures, voltages, and other local server settings. Sensor data is cached for 30 seconds. Calls made to getSensorData for the same server within 30 seconds of each other will return the same data. Subsequent calls will return new data once the cache expires. +func (r Hardware_Server) GetSensorData() (resp []datatypes.Container_RemoteManagement_SensorReading, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "getSensorData", nil, &r.Options, &resp) + return +} + +// Retrieves the raw data returned from the server's remote management card. For more details of what is returned please refer to the getSensorData method. Along with the raw data, graphs for the cpu and system temperatures and fan speeds are also returned. +func (r Hardware_Server) GetSensorDataWithGraphs() (resp datatypes.Container_RemoteManagement_SensorReadingsWithGraphs, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "getSensorDataWithGraphs", nil, &r.Options, &resp) + return +} + +// Retrieve a server's hardware components, software, and network components. getServerDetails is an aggregation function that combines the results of [[SoftLayer_Hardware_Server::getComponents]], [[SoftLayer_Hardware_Server::getSoftware]], and [[SoftLayer_Hardware_Server::getNetworkComponents]] in a single container. +func (r Hardware_Server) GetServerDetails() (resp datatypes.Container_Hardware_Server_Details, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "getServerDetails", nil, &r.Options, &resp) + return +} + +// Retrieve the server's fan speeds and displays them using tachometer graphs. Data used to construct graphs is retrieved from the server's remote management card. All graphs returned will have a title associated with it. +func (r Hardware_Server) GetServerFanSpeedGraphs() (resp []datatypes.Container_RemoteManagement_Graphs_SensorSpeed, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "getServerFanSpeedGraphs", nil, &r.Options, &resp) + return +} + +// Retrieves the power state for the server. The server's power status is retrieved from its remote management card. This will return 'on' or 'off'. +func (r Hardware_Server) GetServerPowerState() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "getServerPowerState", nil, &r.Options, &resp) + return +} + +// Retrieve Information regarding the server room in which the hardware is located. +func (r Hardware_Server) GetServerRoom() (resp datatypes.Location, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "getServerRoom", nil, &r.Options, &resp) + return +} + +// Retrieve the server's temperature and displays them using thermometer graphs. Temperatures retrieved are CPU(s) and system temperatures. Data used to construct graphs is retrieved from the server's remote management card. All graphs returned will have a title associated with it. +func (r Hardware_Server) GetServerTemperatureGraphs() (resp []datatypes.Container_RemoteManagement_Graphs_SensorTemperature, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "getServerTemperatureGraphs", nil, &r.Options, &resp) + return +} + +// Retrieve Information regarding the piece of hardware's service provider. +func (r Hardware_Server) GetServiceProvider() (resp datatypes.Service_Provider, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "getServiceProvider", nil, &r.Options, &resp) + return +} + +// Retrieve Information regarding a piece of hardware's installed software. +func (r Hardware_Server) GetSoftwareComponents() (resp []datatypes.Software_Component, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "getSoftwareComponents", nil, &r.Options, &resp) + return +} + +// Retrieve Information regarding the billing item for a spare pool server. +func (r Hardware_Server) GetSparePoolBillingItem() (resp datatypes.Billing_Item_Hardware, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "getSparePoolBillingItem", nil, &r.Options, &resp) + return +} + +// Retrieve SSH keys to be installed on the server during provisioning or an OS reload. +func (r Hardware_Server) GetSshKeys() (resp []datatypes.Security_Ssh_Key, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "getSshKeys", nil, &r.Options, &resp) + return +} + +// Retrieve A server's remote management card used for statistics. +func (r Hardware_Server) GetStatisticsRemoteManagement() (resp datatypes.Hardware_Component_RemoteManagement, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "getStatisticsRemoteManagement", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Hardware_Server) GetStorageNetworkComponents() (resp []datatypes.Network_Component, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "getStorageNetworkComponents", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Hardware_Server) GetTagReferences() (resp []datatypes.Tag_Reference, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "getTagReferences", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Hardware_Server) GetTopLevelLocation() (resp datatypes.Location, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "getTopLevelLocation", nil, &r.Options, &resp) + return +} + +// +// This method will query transaction history for a piece of hardware. +func (r Hardware_Server) GetTransactionHistory() (resp []datatypes.Provisioning_Version1_Transaction_History, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "getTransactionHistory", nil, &r.Options, &resp) + return +} + +// Retrieve a list of upgradeable items available to this piece of hardware. Currently, getUpgradeItemPrices retrieves upgrades available for a server's memory, hard drives, network port speed, bandwidth allocation and GPUs. +func (r Hardware_Server) GetUpgradeItemPrices() (resp []datatypes.Product_Item_Price, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "getUpgradeItemPrices", nil, &r.Options, &resp) + return +} + +// Retrieve An account's associated upgrade request object, if any. +func (r Hardware_Server) GetUpgradeRequest() (resp datatypes.Product_Upgrade_Request, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "getUpgradeRequest", nil, &r.Options, &resp) + return +} + +// Retrieve The network device connected to a piece of hardware. +func (r Hardware_Server) GetUplinkHardware() (resp datatypes.Hardware, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "getUplinkHardware", nil, &r.Options, &resp) + return +} + +// Retrieve Information regarding the network component that is one level higher than a piece of hardware on the network infrastructure. +func (r Hardware_Server) GetUplinkNetworkComponents() (resp []datatypes.Network_Component, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "getUplinkNetworkComponents", nil, &r.Options, &resp) + return +} + +// Retrieve A string containing custom user data for a hardware order. +func (r Hardware_Server) GetUserData() (resp []datatypes.Hardware_Attribute, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "getUserData", nil, &r.Options, &resp) + return +} + +// Retrieve A list of users that have access to this computing instance. +func (r Hardware_Server) GetUsers() (resp []datatypes.User_Customer, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "getUsers", nil, &r.Options, &resp) + return +} + +// This method will return the list of block device template groups that are valid to the host. For instance, it will only retrieve FLEX images. +func (r Hardware_Server) GetValidBlockDeviceTemplateGroups(visibility *string) (resp []datatypes.Virtual_Guest_Block_Device_Template_Group, err error) { + params := []interface{}{ + visibility, + } + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "getValidBlockDeviceTemplateGroups", params, &r.Options, &resp) + return +} + +// Retrieve Information regarding the virtual chassis for a piece of hardware. +func (r Hardware_Server) GetVirtualChassis() (resp datatypes.Hardware_Group, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "getVirtualChassis", nil, &r.Options, &resp) + return +} + +// Retrieve Information regarding the virtual chassis siblings for a piece of hardware. +func (r Hardware_Server) GetVirtualChassisSiblings() (resp []datatypes.Hardware, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "getVirtualChassisSiblings", nil, &r.Options, &resp) + return +} + +// Retrieve A hardware server's virtual servers. +func (r Hardware_Server) GetVirtualGuests() (resp []datatypes.Virtual_Guest, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "getVirtualGuests", nil, &r.Options, &resp) + return +} + +// Retrieve A piece of hardware's virtual host record. +func (r Hardware_Server) GetVirtualHost() (resp datatypes.Virtual_Host, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "getVirtualHost", nil, &r.Options, &resp) + return +} + +// Retrieve Information regarding a piece of hardware's virtual software licenses. +func (r Hardware_Server) GetVirtualLicenses() (resp []datatypes.Software_VirtualLicense, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "getVirtualLicenses", nil, &r.Options, &resp) + return +} + +// Retrieve Information regarding the bandwidth allotment to which a piece of hardware belongs. +func (r Hardware_Server) GetVirtualRack() (resp datatypes.Network_Bandwidth_Version1_Allotment, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "getVirtualRack", nil, &r.Options, &resp) + return +} + +// Retrieve The name of the bandwidth allotment belonging to a piece of hardware. +func (r Hardware_Server) GetVirtualRackId() (resp int, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "getVirtualRackId", nil, &r.Options, &resp) + return +} + +// Retrieve The name of the bandwidth allotment belonging to a piece of hardware. +func (r Hardware_Server) GetVirtualRackName() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "getVirtualRackName", nil, &r.Options, &resp) + return +} + +// Retrieve A piece of hardware's virtualization platform software. +func (r Hardware_Server) GetVirtualizationPlatform() (resp datatypes.Software_Component, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "getVirtualizationPlatform", nil, &r.Options, &resp) + return +} + +// Retrieve a list of Windows updates available for a server from the local SoftLayer Windows Server Update Services (WSUS) server. Windows servers provisioned by SoftLayer are configured to use the local WSUS server via the private network by default. +func (r Hardware_Server) GetWindowsUpdateAvailableUpdates() (resp []datatypes.Container_Utility_Microsoft_Windows_UpdateServices_UpdateItem, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "getWindowsUpdateAvailableUpdates", nil, &r.Options, &resp) + return +} + +// Retrieve a list of Windows updates installed on a server as reported by the local SoftLayer Windows Server Update Services (WSUS) server. Windows servers provisioned by SoftLayer are configured to use the local WSUS server via the private network by default. +func (r Hardware_Server) GetWindowsUpdateInstalledUpdates() (resp []datatypes.Container_Utility_Microsoft_Windows_UpdateServices_UpdateItem, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "getWindowsUpdateInstalledUpdates", nil, &r.Options, &resp) + return +} + +// This method returns an update status record for this server. That record will specify if the server is missing updates, or has updates that must be reinstalled or require a reboot to go into affect. +func (r Hardware_Server) GetWindowsUpdateStatus() (resp datatypes.Container_Utility_Microsoft_Windows_UpdateServices_Status, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "getWindowsUpdateStatus", nil, &r.Options, &resp) + return +} + +// The '''importVirtualHost''' method attempts to import the host record for the virtualization platform running on a server. +func (r Hardware_Server) ImportVirtualHost() (resp datatypes.Virtual_Host, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "importVirtualHost", nil, &r.Options, &resp) + return +} + +// Idera Bare Metal Server Restore is a backup agent designed specifically for making full system restores made with Idera Server Backup. +func (r Hardware_Server) InitiateIderaBareMetalRestore() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "initiateIderaBareMetalRestore", nil, &r.Options, &resp) + return +} + +// R1Soft Bare Metal Server Restore is an R1Soft disk agent designed specifically for making full system restores made with R1Soft CDP Server backup. +func (r Hardware_Server) InitiateR1SoftBareMetalRestore() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "initiateR1SoftBareMetalRestore", nil, &r.Options, &resp) + return +} + +// Issues a ping command and returns the success (true) or failure (false) of the ping command. +func (r Hardware_Server) IsBackendPingable() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "isBackendPingable", nil, &r.Options, &resp) + return +} + +// Issues a ping command and returns the success (true) or failure (false) of the ping command. +func (r Hardware_Server) IsPingable() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "isPingable", nil, &r.Options, &resp) + return +} + +// Determine if the server runs any version of the Microsoft Windows operating systems. Return ''true'' if it does and ''false if otherwise. +func (r Hardware_Server) IsWindowsServer() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "isWindowsServer", nil, &r.Options, &resp) + return +} + +// You can launch firmware updates by selecting from your server list. It will bring your server offline for approximately 20 minutes while the updates are in progress. +// +// In the event of a hardware failure during this test our datacenter engineers will be notified of the problem automatically. They will then replace any failed components to bring your server back online, and will be contacting you to ensure that impact on your server is minimal. +func (r Hardware_Server) MassFirmwareUpdate(hardwareIds []int, ipmi *bool, raidController *bool, bios *bool, harddrive *bool) (resp []datatypes.Container_Hardware_Server_Request, err error) { + params := []interface{}{ + hardwareIds, + ipmi, + raidController, + bios, + harddrive, + } + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "massFirmwareUpdate", params, &r.Options, &resp) + return +} + +// Reloads current or customer specified operating system configuration. +// +// This service has a confirmation protocol for proceeding with the reload. To proceed with the reload without confirmation, simply pass in 'FORCE' as the token parameter. To proceed with the reload with confirmation, simply call the service with no parameter. A token string will be returned by this service. The token will remain active for 10 minutes. Use this token as the parameter to confirm that a reload is to be performed for the server. +// +// As a precaution, we strongly recommend backing up all data before reloading the operating system. The reload will format the primary disk and will reconfigure the server to the current specifications on record. +// +// The reload will take AT MINIMUM 66 minutes. +func (r Hardware_Server) MassReloadOperatingSystem(hardwareIds []string, token *string, config *datatypes.Container_Hardware_Server_Configuration) (resp string, err error) { + params := []interface{}{ + hardwareIds, + token, + config, + } + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "massReloadOperatingSystem", params, &r.Options, &resp) + return +} + +// The ability to place multiple bare metal servers in a state where they are powered down and ports closed yet still allocated to the customer as a part of the Spare Pool program. +func (r Hardware_Server) MassSparePool(hardwareIds []string, action *string, newOrder *bool) (resp []datatypes.Container_Hardware_Server_Request, err error) { + params := []interface{}{ + hardwareIds, + action, + newOrder, + } + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "massSparePool", params, &r.Options, &resp) + return +} + +// Issues a ping command to the server and returns the ping response. +func (r Hardware_Server) Ping() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "ping", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Hardware_Server) PopulateServer(hardwareId *int, serialString *string) (err error) { + var resp datatypes.Void + params := []interface{}{ + hardwareId, + serialString, + } + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "populateServer", params, &r.Options, &resp) + return +} + +// Power off then power on the server via powerstrip. The power cycle command is equivalent to unplugging the server from the powerstrip and then plugging the server back into the powerstrip. This should only be used as a last resort. If a reboot command has been issued successfully in the past 20 minutes, another remote management command (rebootSoft, rebootHard, powerOn, powerOff and powerCycle) will not be allowed. This is to avoid any type of server failures. +func (r Hardware_Server) PowerCycle() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "powerCycle", nil, &r.Options, &resp) + return +} + +// This method will power off the server via the server's remote management card. +func (r Hardware_Server) PowerOff() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "powerOff", nil, &r.Options, &resp) + return +} + +// Power on server via its remote management card. If a reboot command has been issued successfully in the past 20 minutes, another remote management command (rebootSoft, rebootHard, powerOn, powerOff and powerCycle) will not be allowed. This is to avoid any type of server failures. +func (r Hardware_Server) PowerOn() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "powerOn", nil, &r.Options, &resp) + return +} + +// Attempts to reboot the server by issuing a reset (soft reboot) command to the server's remote management card. If the reset (soft reboot) attempt is unsuccessful, a power cycle command will be issued via the powerstrip. The power cycle command is equivalent to unplugging the server from the powerstrip and then plugging the server back into the powerstrip. If a reboot command has been issued successfully in the past 20 minutes, another remote management command (rebootSoft, rebootHard, powerOn, powerOff and powerCycle) will not be allowed. This is to avoid any type of server failures. +func (r Hardware_Server) RebootDefault() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "rebootDefault", nil, &r.Options, &resp) + return +} + +// Reboot the server by issuing a cycle command to the server's remote management card. This is equivalent to pressing the 'Reset' button on the server. This command is issued immediately and will not wait for processes to shutdown. After this command is issued, the server may take a few moments to boot up as server may run system disks checks. If a reboot command has been issued successfully in the past 20 minutes, another remote management command (rebootSoft, rebootHard, powerOn, powerOff and powerCycle) will not be allowed. This is to avoid any type of server failures. +func (r Hardware_Server) RebootHard() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "rebootHard", nil, &r.Options, &resp) + return +} + +// Reboot the server by issuing a reset command to the server's remote management card. This is a graceful reboot. The servers will allow all process to shutdown gracefully before rebooting. If a reboot command has been issued successfully in the past 20 minutes, another remote management command (rebootSoft, rebootHard, powerOn, powerOff and powerCycle) will not be allowed. This is to avoid any type of server failures. +func (r Hardware_Server) RebootSoft() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "rebootSoft", nil, &r.Options, &resp) + return +} + +// Reloads current operating system configuration. +// +// This service has a confirmation protocol for proceeding with the reload. To proceed with the reload without confirmation, simply pass in 'FORCE' as the token parameter. To proceed with the reload with confirmation, simply call the service with no parameter. A token string will be returned by this service. The token will remain active for 10 minutes. Use this token as the parameter to confirm that a reload is to be performed for the server. +// +// As a precaution, we strongly recommend backing up all data before reloading the operating system. The reload will format the primary disk and will reconfigure the server to the current specifications on record. +// +// The reload will take AT MINIMUM 66 minutes. +func (r Hardware_Server) ReloadCurrentOperatingSystemConfiguration(token *string) (resp string, err error) { + params := []interface{}{ + token, + } + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "reloadCurrentOperatingSystemConfiguration", params, &r.Options, &resp) + return +} + +// Reloads current or customer specified operating system configuration. +// +// This service has a confirmation protocol for proceeding with the reload. To proceed with the reload without confirmation, simply pass in 'FORCE' as the token parameter. To proceed with the reload with confirmation, simply call the service with no parameter. A token string will be returned by this service. The token will remain active for 10 minutes. Use this token as the parameter to confirm that a reload is to be performed for the server. +// +// As a precaution, we strongly recommend backing up all data before reloading the operating system. The reload will format the primary disk and will reconfigure the server to the current specifications on record. +// +// The reload will take AT MINIMUM 66 minutes. +func (r Hardware_Server) ReloadOperatingSystem(token *string, config *datatypes.Container_Hardware_Server_Configuration) (resp string, err error) { + params := []interface{}{ + token, + config, + } + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "reloadOperatingSystem", params, &r.Options, &resp) + return +} + +// This method is used to remove access to s SoftLayer_Network_Storage volumes that supports host- or network-level access control. +func (r Hardware_Server) RemoveAccessToNetworkStorage(networkStorageTemplateObject *datatypes.Network_Storage) (resp bool, err error) { + params := []interface{}{ + networkStorageTemplateObject, + } + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "removeAccessToNetworkStorage", params, &r.Options, &resp) + return +} + +// This method is used to allow access to multiple SoftLayer_Network_Storage volumes that support host- or network-level access control. +func (r Hardware_Server) RemoveAccessToNetworkStorageList(networkStorageTemplateObjects []datatypes.Network_Storage) (resp bool, err error) { + params := []interface{}{ + networkStorageTemplateObjects, + } + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "removeAccessToNetworkStorageList", params, &r.Options, &resp) + return +} + +// You can launch a new Passmark hardware test by selecting from your server list. It will bring your server offline for approximately 20 minutes while the testing is in progress, and will publish a certificate with the results to your hardware details page. +// +// While the hard drives are tested for the initial deployment, the Passmark Certificate utility will not test the hard drives on your live server. This is to ensure that no data is overwritten. If you would like to test the server's hard drives, you can have the full Passmark suite installed to your server free of charge through a new Support ticket. +// +// While the test itself does not overwrite any data on the server, it is recommended that you make full off-server backups of all data prior to launching the test. The Passmark hardware test is designed to force any latent hardware issues to the surface, so hardware failure is possible. +// +// In the event of a hardware failure during this test our datacenter engineers will be notified of the problem automatically. They will then replace any failed components to bring your server back online, and will be contacting you to ensure that impact on your server is minimal. +func (r Hardware_Server) RunPassmarkCertificationBenchmark() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "runPassmarkCertificationBenchmark", nil, &r.Options, &resp) + return +} + +// Changes the password that we have stored in our database for a servers' Operating System +func (r Hardware_Server) SetOperatingSystemPassword(newPassword *string) (resp bool, err error) { + params := []interface{}{ + newPassword, + } + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "setOperatingSystemPassword", params, &r.Options, &resp) + return +} + +// Sets the private network interface speed to the new speed. Speed values can only be 0 (Disconnect), 10, 100, 1000, and 10000. The new speed must be equal to or less than the max speed of the interface. +// +// It will take less than a minute to update the switch port speed. The server uplink will not be operational again until the server interface speed is updated. +func (r Hardware_Server) SetPrivateNetworkInterfaceSpeed(newSpeed *int) (resp bool, err error) { + params := []interface{}{ + newSpeed, + } + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "setPrivateNetworkInterfaceSpeed", params, &r.Options, &resp) + return +} + +// Sets the public network interface speed to the new speed. Speed values can only be 0 (Disconnect), 10, 100, 1000, and 10000. The new speed must be equal to or less than the max speed of the interface. +// +// It will take less than a minute to update the switch port speed. The server uplink will not be operational again until the server interface speed is updated. +func (r Hardware_Server) SetPublicNetworkInterfaceSpeed(newSpeed *int) (resp bool, err error) { + params := []interface{}{ + newSpeed, + } + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "setPublicNetworkInterfaceSpeed", params, &r.Options, &resp) + return +} + +// no documentation yet +func (r Hardware_Server) SetTags(tags *string) (resp bool, err error) { + params := []interface{}{ + tags, + } + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "setTags", params, &r.Options, &resp) + return +} + +// Sets the data that will be written to the configuration drive. +func (r Hardware_Server) SetUserMetadata(metadata []string) (resp []datatypes.Hardware_Attribute, err error) { + params := []interface{}{ + metadata, + } + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "setUserMetadata", params, &r.Options, &resp) + return +} + +// Shuts down the public network port +func (r Hardware_Server) ShutdownPrivatePort() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "shutdownPrivatePort", nil, &r.Options, &resp) + return +} + +// Shuts down the public network port +func (r Hardware_Server) ShutdownPublicPort() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "shutdownPublicPort", nil, &r.Options, &resp) + return +} + +// The ability to place bare metal servers in a state where they are powered down, and ports closed yet still allocated to the customer as a part of the Spare Pool program. +func (r Hardware_Server) SparePool(action *string, newOrder *bool) (resp bool, err error) { + params := []interface{}{ + action, + newOrder, + } + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "sparePool", params, &r.Options, &resp) + return +} + +// This method will update the root IPMI password on this SoftLayer_Hardware. +func (r Hardware_Server) UpdateIpmiPassword(password *string) (resp bool, err error) { + params := []interface{}{ + password, + } + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "updateIpmiPassword", params, &r.Options, &resp) + return +} + +// Validates a collection of partitions for an operating system +func (r Hardware_Server) ValidatePartitionsForOperatingSystem(operatingSystem *datatypes.Software_Description, partitions []datatypes.Hardware_Component_Partition) (resp bool, err error) { + params := []interface{}{ + operatingSystem, + partitions, + } + err = r.Session.DoRequest("SoftLayer_Hardware_Server", "validatePartitionsForOperatingSystem", params, &r.Options, &resp) + return +} diff --git a/vendor/github.com/softlayer/softlayer-go/services/layout.go b/vendor/github.com/softlayer/softlayer-go/services/layout.go new file mode 100644 index 000000000..1446d32b8 --- /dev/null +++ b/vendor/github.com/softlayer/softlayer-go/services/layout.go @@ -0,0 +1,512 @@ +/** + * Copyright 2016 IBM Corp. + * + * 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. + */ + +/** + * AUTOMATICALLY GENERATED CODE - DO NOT MODIFY + */ + +package services + +import ( + "fmt" + "strings" + + "github.com/softlayer/softlayer-go/datatypes" + "github.com/softlayer/softlayer-go/session" + "github.com/softlayer/softlayer-go/sl" +) + +// The SoftLayer_Layout_Container contains definitions for default page layouts +type Layout_Container struct { + Session *session.Session + Options sl.Options +} + +// GetLayoutContainerService returns an instance of the Layout_Container SoftLayer service +func GetLayoutContainerService(sess *session.Session) Layout_Container { + return Layout_Container{Session: sess} +} + +func (r Layout_Container) Id(id int) Layout_Container { + r.Options.Id = &id + return r +} + +func (r Layout_Container) Mask(mask string) Layout_Container { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Layout_Container) Filter(filter string) Layout_Container { + r.Options.Filter = filter + return r +} + +func (r Layout_Container) Limit(limit int) Layout_Container { + r.Options.Limit = &limit + return r +} + +func (r Layout_Container) Offset(offset int) Layout_Container { + r.Options.Offset = &offset + return r +} + +// Use this method to retrieve all active layout containers that can be customized. +func (r Layout_Container) GetAllObjects() (resp []datatypes.Layout_Container, err error) { + err = r.Session.DoRequest("SoftLayer_Layout_Container", "getAllObjects", nil, &r.Options, &resp) + return +} + +// Retrieve The type of the layout container object +func (r Layout_Container) GetLayoutContainerType() (resp datatypes.Layout_Container_Type, err error) { + err = r.Session.DoRequest("SoftLayer_Layout_Container", "getLayoutContainerType", nil, &r.Options, &resp) + return +} + +// Retrieve The layout items assigned to this layout container +func (r Layout_Container) GetLayoutItems() (resp []datatypes.Layout_Item, err error) { + err = r.Session.DoRequest("SoftLayer_Layout_Container", "getLayoutItems", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Layout_Container) GetObject() (resp datatypes.Layout_Container, err error) { + err = r.Session.DoRequest("SoftLayer_Layout_Container", "getObject", nil, &r.Options, &resp) + return +} + +// The SoftLayer_Layout_Item contains definitions for default layout items +type Layout_Item struct { + Session *session.Session + Options sl.Options +} + +// GetLayoutItemService returns an instance of the Layout_Item SoftLayer service +func GetLayoutItemService(sess *session.Session) Layout_Item { + return Layout_Item{Session: sess} +} + +func (r Layout_Item) Id(id int) Layout_Item { + r.Options.Id = &id + return r +} + +func (r Layout_Item) Mask(mask string) Layout_Item { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Layout_Item) Filter(filter string) Layout_Item { + r.Options.Filter = filter + return r +} + +func (r Layout_Item) Limit(limit int) Layout_Item { + r.Options.Limit = &limit + return r +} + +func (r Layout_Item) Offset(offset int) Layout_Item { + r.Options.Offset = &offset + return r +} + +// Retrieve The layout preferences assigned to this layout item +func (r Layout_Item) GetLayoutItemPreferences() (resp []datatypes.Layout_Preference, err error) { + err = r.Session.DoRequest("SoftLayer_Layout_Item", "getLayoutItemPreferences", nil, &r.Options, &resp) + return +} + +// Retrieve The type of the layout item object +func (r Layout_Item) GetLayoutItemType() (resp datatypes.Layout_Item_Type, err error) { + err = r.Session.DoRequest("SoftLayer_Layout_Item", "getLayoutItemType", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Layout_Item) GetObject() (resp datatypes.Layout_Item, err error) { + err = r.Session.DoRequest("SoftLayer_Layout_Item", "getObject", nil, &r.Options, &resp) + return +} + +// The SoftLayer_Layout_Profile contains the definition of the layout profile +type Layout_Profile struct { + Session *session.Session + Options sl.Options +} + +// GetLayoutProfileService returns an instance of the Layout_Profile SoftLayer service +func GetLayoutProfileService(sess *session.Session) Layout_Profile { + return Layout_Profile{Session: sess} +} + +func (r Layout_Profile) Id(id int) Layout_Profile { + r.Options.Id = &id + return r +} + +func (r Layout_Profile) Mask(mask string) Layout_Profile { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Layout_Profile) Filter(filter string) Layout_Profile { + r.Options.Filter = filter + return r +} + +func (r Layout_Profile) Limit(limit int) Layout_Profile { + r.Options.Limit = &limit + return r +} + +func (r Layout_Profile) Offset(offset int) Layout_Profile { + r.Options.Offset = &offset + return r +} + +// This method creates a new layout profile object. +func (r Layout_Profile) CreateObject(templateObject *datatypes.Layout_Profile) (resp bool, err error) { + params := []interface{}{ + templateObject, + } + err = r.Session.DoRequest("SoftLayer_Layout_Profile", "createObject", params, &r.Options, &resp) + return +} + +// This method deletes an existing layout profile and associated custom preferences +func (r Layout_Profile) DeleteObject() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Layout_Profile", "deleteObject", nil, &r.Options, &resp) + return +} + +// This method edits an existing layout profile object by passing in a modified instance of the object. +func (r Layout_Profile) EditObject(templateObject *datatypes.Layout_Profile) (resp bool, err error) { + params := []interface{}{ + templateObject, + } + err = r.Session.DoRequest("SoftLayer_Layout_Profile", "editObject", params, &r.Options, &resp) + return +} + +// Retrieve +func (r Layout_Profile) GetLayoutContainers() (resp []datatypes.Layout_Container, err error) { + err = r.Session.DoRequest("SoftLayer_Layout_Profile", "getLayoutContainers", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Layout_Profile) GetLayoutPreferences() (resp []datatypes.Layout_Profile_Preference, err error) { + err = r.Session.DoRequest("SoftLayer_Layout_Profile", "getLayoutPreferences", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Layout_Profile) GetObject() (resp datatypes.Layout_Profile, err error) { + err = r.Session.DoRequest("SoftLayer_Layout_Profile", "getObject", nil, &r.Options, &resp) + return +} + +// This method modifies an existing associated [[SoftLayer_Layout_Profile_Preference]] object. If the preference object being modified is a default value object, a new record is created to override the default value. +// +// Only preferences that are assigned to a profile may be updated. Attempts to update a non-existent preference object will result in an exception being thrown. +func (r Layout_Profile) ModifyPreference(templateObject *datatypes.Layout_Profile_Preference) (resp datatypes.Layout_Profile_Preference, err error) { + params := []interface{}{ + templateObject, + } + err = r.Session.DoRequest("SoftLayer_Layout_Profile", "modifyPreference", params, &r.Options, &resp) + return +} + +// Using this method, multiple [[SoftLayer_Layout_Profile_Preference]] objects may be updated at once. +// +// Refer to [[SoftLayer_Layout_Profile::modifyPreference()]] for more information. +func (r Layout_Profile) ModifyPreferences(layoutPreferenceObjects []datatypes.Layout_Profile_Preference) (resp []datatypes.Layout_Profile_Preference, err error) { + params := []interface{}{ + layoutPreferenceObjects, + } + err = r.Session.DoRequest("SoftLayer_Layout_Profile", "modifyPreferences", params, &r.Options, &resp) + return +} + +// no documentation yet +type Layout_Profile_Containers struct { + Session *session.Session + Options sl.Options +} + +// GetLayoutProfileContainersService returns an instance of the Layout_Profile_Containers SoftLayer service +func GetLayoutProfileContainersService(sess *session.Session) Layout_Profile_Containers { + return Layout_Profile_Containers{Session: sess} +} + +func (r Layout_Profile_Containers) Id(id int) Layout_Profile_Containers { + r.Options.Id = &id + return r +} + +func (r Layout_Profile_Containers) Mask(mask string) Layout_Profile_Containers { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Layout_Profile_Containers) Filter(filter string) Layout_Profile_Containers { + r.Options.Filter = filter + return r +} + +func (r Layout_Profile_Containers) Limit(limit int) Layout_Profile_Containers { + r.Options.Limit = &limit + return r +} + +func (r Layout_Profile_Containers) Offset(offset int) Layout_Profile_Containers { + r.Options.Offset = &offset + return r +} + +// no documentation yet +func (r Layout_Profile_Containers) CreateObject(templateObject *datatypes.Layout_Profile_Containers) (resp bool, err error) { + params := []interface{}{ + templateObject, + } + err = r.Session.DoRequest("SoftLayer_Layout_Profile_Containers", "createObject", params, &r.Options, &resp) + return +} + +// no documentation yet +func (r Layout_Profile_Containers) EditObject(templateObject *datatypes.Layout_Profile_Containers) (resp bool, err error) { + params := []interface{}{ + templateObject, + } + err = r.Session.DoRequest("SoftLayer_Layout_Profile_Containers", "editObject", params, &r.Options, &resp) + return +} + +// Retrieve The container to be contained +func (r Layout_Profile_Containers) GetLayoutContainerType() (resp datatypes.Layout_Container, err error) { + err = r.Session.DoRequest("SoftLayer_Layout_Profile_Containers", "getLayoutContainerType", nil, &r.Options, &resp) + return +} + +// Retrieve The profile containing this container +func (r Layout_Profile_Containers) GetLayoutProfile() (resp datatypes.Layout_Profile, err error) { + err = r.Session.DoRequest("SoftLayer_Layout_Profile_Containers", "getLayoutProfile", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Layout_Profile_Containers) GetObject() (resp datatypes.Layout_Profile_Containers, err error) { + err = r.Session.DoRequest("SoftLayer_Layout_Profile_Containers", "getObject", nil, &r.Options, &resp) + return +} + +// no documentation yet +type Layout_Profile_Customer struct { + Session *session.Session + Options sl.Options +} + +// GetLayoutProfileCustomerService returns an instance of the Layout_Profile_Customer SoftLayer service +func GetLayoutProfileCustomerService(sess *session.Session) Layout_Profile_Customer { + return Layout_Profile_Customer{Session: sess} +} + +func (r Layout_Profile_Customer) Id(id int) Layout_Profile_Customer { + r.Options.Id = &id + return r +} + +func (r Layout_Profile_Customer) Mask(mask string) Layout_Profile_Customer { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Layout_Profile_Customer) Filter(filter string) Layout_Profile_Customer { + r.Options.Filter = filter + return r +} + +func (r Layout_Profile_Customer) Limit(limit int) Layout_Profile_Customer { + r.Options.Limit = &limit + return r +} + +func (r Layout_Profile_Customer) Offset(offset int) Layout_Profile_Customer { + r.Options.Offset = &offset + return r +} + +// This method creates a new layout profile object. +func (r Layout_Profile_Customer) CreateObject(templateObject *datatypes.Layout_Profile) (resp bool, err error) { + params := []interface{}{ + templateObject, + } + err = r.Session.DoRequest("SoftLayer_Layout_Profile_Customer", "createObject", params, &r.Options, &resp) + return +} + +// This method deletes an existing layout profile and associated custom preferences +func (r Layout_Profile_Customer) DeleteObject() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Layout_Profile_Customer", "deleteObject", nil, &r.Options, &resp) + return +} + +// This method edits an existing layout profile object by passing in a modified instance of the object. +func (r Layout_Profile_Customer) EditObject(templateObject *datatypes.Layout_Profile) (resp bool, err error) { + params := []interface{}{ + templateObject, + } + err = r.Session.DoRequest("SoftLayer_Layout_Profile_Customer", "editObject", params, &r.Options, &resp) + return +} + +// Retrieve +func (r Layout_Profile_Customer) GetLayoutContainers() (resp []datatypes.Layout_Container, err error) { + err = r.Session.DoRequest("SoftLayer_Layout_Profile_Customer", "getLayoutContainers", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Layout_Profile_Customer) GetLayoutPreferences() (resp []datatypes.Layout_Profile_Preference, err error) { + err = r.Session.DoRequest("SoftLayer_Layout_Profile_Customer", "getLayoutPreferences", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Layout_Profile_Customer) GetObject() (resp datatypes.Layout_Profile_Customer, err error) { + err = r.Session.DoRequest("SoftLayer_Layout_Profile_Customer", "getObject", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Layout_Profile_Customer) GetUserRecord() (resp datatypes.User_Customer, err error) { + err = r.Session.DoRequest("SoftLayer_Layout_Profile_Customer", "getUserRecord", nil, &r.Options, &resp) + return +} + +// This method modifies an existing associated [[SoftLayer_Layout_Profile_Preference]] object. If the preference object being modified is a default value object, a new record is created to override the default value. +// +// Only preferences that are assigned to a profile may be updated. Attempts to update a non-existent preference object will result in an exception being thrown. +func (r Layout_Profile_Customer) ModifyPreference(templateObject *datatypes.Layout_Profile_Preference) (resp datatypes.Layout_Profile_Preference, err error) { + params := []interface{}{ + templateObject, + } + err = r.Session.DoRequest("SoftLayer_Layout_Profile_Customer", "modifyPreference", params, &r.Options, &resp) + return +} + +// Using this method, multiple [[SoftLayer_Layout_Profile_Preference]] objects may be updated at once. +// +// Refer to [[SoftLayer_Layout_Profile::modifyPreference()]] for more information. +func (r Layout_Profile_Customer) ModifyPreferences(layoutPreferenceObjects []datatypes.Layout_Profile_Preference) (resp []datatypes.Layout_Profile_Preference, err error) { + params := []interface{}{ + layoutPreferenceObjects, + } + err = r.Session.DoRequest("SoftLayer_Layout_Profile_Customer", "modifyPreferences", params, &r.Options, &resp) + return +} + +// The SoftLayer_Layout_Profile_Preference contains definitions for layout preferences +type Layout_Profile_Preference struct { + Session *session.Session + Options sl.Options +} + +// GetLayoutProfilePreferenceService returns an instance of the Layout_Profile_Preference SoftLayer service +func GetLayoutProfilePreferenceService(sess *session.Session) Layout_Profile_Preference { + return Layout_Profile_Preference{Session: sess} +} + +func (r Layout_Profile_Preference) Id(id int) Layout_Profile_Preference { + r.Options.Id = &id + return r +} + +func (r Layout_Profile_Preference) Mask(mask string) Layout_Profile_Preference { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Layout_Profile_Preference) Filter(filter string) Layout_Profile_Preference { + r.Options.Filter = filter + return r +} + +func (r Layout_Profile_Preference) Limit(limit int) Layout_Profile_Preference { + r.Options.Limit = &limit + return r +} + +func (r Layout_Profile_Preference) Offset(offset int) Layout_Profile_Preference { + r.Options.Offset = &offset + return r +} + +// Retrieve +func (r Layout_Profile_Preference) GetLayoutContainer() (resp datatypes.Layout_Container, err error) { + err = r.Session.DoRequest("SoftLayer_Layout_Profile_Preference", "getLayoutContainer", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Layout_Profile_Preference) GetLayoutItem() (resp datatypes.Layout_Item, err error) { + err = r.Session.DoRequest("SoftLayer_Layout_Profile_Preference", "getLayoutItem", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Layout_Profile_Preference) GetLayoutPreference() (resp datatypes.Layout_Preference, err error) { + err = r.Session.DoRequest("SoftLayer_Layout_Profile_Preference", "getLayoutPreference", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Layout_Profile_Preference) GetLayoutProfile() (resp datatypes.Layout_Profile, err error) { + err = r.Session.DoRequest("SoftLayer_Layout_Profile_Preference", "getLayoutProfile", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Layout_Profile_Preference) GetObject() (resp datatypes.Layout_Profile_Preference, err error) { + err = r.Session.DoRequest("SoftLayer_Layout_Profile_Preference", "getObject", nil, &r.Options, &resp) + return +} diff --git a/vendor/github.com/softlayer/softlayer-go/services/locale.go b/vendor/github.com/softlayer/softlayer-go/services/locale.go new file mode 100644 index 000000000..273ec82d2 --- /dev/null +++ b/vendor/github.com/softlayer/softlayer-go/services/locale.go @@ -0,0 +1,201 @@ +/** + * Copyright 2016 IBM Corp. + * + * 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. + */ + +/** + * AUTOMATICALLY GENERATED CODE - DO NOT MODIFY + */ + +package services + +import ( + "fmt" + "strings" + + "github.com/softlayer/softlayer-go/datatypes" + "github.com/softlayer/softlayer-go/session" + "github.com/softlayer/softlayer-go/sl" +) + +// no documentation yet +type Locale struct { + Session *session.Session + Options sl.Options +} + +// GetLocaleService returns an instance of the Locale SoftLayer service +func GetLocaleService(sess *session.Session) Locale { + return Locale{Session: sess} +} + +func (r Locale) Id(id int) Locale { + r.Options.Id = &id + return r +} + +func (r Locale) Mask(mask string) Locale { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Locale) Filter(filter string) Locale { + r.Options.Filter = filter + return r +} + +func (r Locale) Limit(limit int) Locale { + r.Options.Limit = &limit + return r +} + +func (r Locale) Offset(offset int) Locale { + r.Options.Offset = &offset + return r +} + +// no documentation yet +func (r Locale) GetClosestToLanguageTag(languageTag *string) (resp datatypes.Locale, err error) { + params := []interface{}{ + languageTag, + } + err = r.Session.DoRequest("SoftLayer_Locale", "getClosestToLanguageTag", params, &r.Options, &resp) + return +} + +// no documentation yet +func (r Locale) GetObject() (resp datatypes.Locale, err error) { + err = r.Session.DoRequest("SoftLayer_Locale", "getObject", nil, &r.Options, &resp) + return +} + +// no documentation yet +type Locale_Country struct { + Session *session.Session + Options sl.Options +} + +// GetLocaleCountryService returns an instance of the Locale_Country SoftLayer service +func GetLocaleCountryService(sess *session.Session) Locale_Country { + return Locale_Country{Session: sess} +} + +func (r Locale_Country) Id(id int) Locale_Country { + r.Options.Id = &id + return r +} + +func (r Locale_Country) Mask(mask string) Locale_Country { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Locale_Country) Filter(filter string) Locale_Country { + r.Options.Filter = filter + return r +} + +func (r Locale_Country) Limit(limit int) Locale_Country { + r.Options.Limit = &limit + return r +} + +func (r Locale_Country) Offset(offset int) Locale_Country { + r.Options.Offset = &offset + return r +} + +// Use this method to retrieve a list of countries and locale information available to the current user. +func (r Locale_Country) GetAvailableCountries() (resp []datatypes.Locale_Country, err error) { + err = r.Session.DoRequest("SoftLayer_Locale_Country", "getAvailableCountries", nil, &r.Options, &resp) + return +} + +// Use this method to retrieve a list of countries and locale information such as country code and state/provinces. +func (r Locale_Country) GetCountries() (resp []datatypes.Locale_Country, err error) { + err = r.Session.DoRequest("SoftLayer_Locale_Country", "getCountries", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Locale_Country) GetObject() (resp datatypes.Locale_Country, err error) { + err = r.Session.DoRequest("SoftLayer_Locale_Country", "getObject", nil, &r.Options, &resp) + return +} + +// Retrieve States that belong to this country. +func (r Locale_Country) GetStates() (resp []datatypes.Locale_StateProvince, err error) { + err = r.Session.DoRequest("SoftLayer_Locale_Country", "getStates", nil, &r.Options, &resp) + return +} + +// Each User is assigned a timezone allowing for a precise local timestamp. +type Locale_Timezone struct { + Session *session.Session + Options sl.Options +} + +// GetLocaleTimezoneService returns an instance of the Locale_Timezone SoftLayer service +func GetLocaleTimezoneService(sess *session.Session) Locale_Timezone { + return Locale_Timezone{Session: sess} +} + +func (r Locale_Timezone) Id(id int) Locale_Timezone { + r.Options.Id = &id + return r +} + +func (r Locale_Timezone) Mask(mask string) Locale_Timezone { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Locale_Timezone) Filter(filter string) Locale_Timezone { + r.Options.Filter = filter + return r +} + +func (r Locale_Timezone) Limit(limit int) Locale_Timezone { + r.Options.Limit = &limit + return r +} + +func (r Locale_Timezone) Offset(offset int) Locale_Timezone { + r.Options.Offset = &offset + return r +} + +// Retrieve all timezone objects. +func (r Locale_Timezone) GetAllObjects() (resp []datatypes.Locale_Timezone, err error) { + err = r.Session.DoRequest("SoftLayer_Locale_Timezone", "getAllObjects", nil, &r.Options, &resp) + return +} + +// getObject retrieves the SoftLayer_Locale_Timezone object whose ID number corresponds to the ID number of the init parameter passed to the SoftLayer_Locale_Timezone service. +func (r Locale_Timezone) GetObject() (resp datatypes.Locale_Timezone, err error) { + err = r.Session.DoRequest("SoftLayer_Locale_Timezone", "getObject", nil, &r.Options, &resp) + return +} diff --git a/vendor/github.com/softlayer/softlayer-go/services/location.go b/vendor/github.com/softlayer/softlayer-go/services/location.go new file mode 100644 index 000000000..66134911f --- /dev/null +++ b/vendor/github.com/softlayer/softlayer-go/services/location.go @@ -0,0 +1,866 @@ +/** + * Copyright 2016 IBM Corp. + * + * 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. + */ + +/** + * AUTOMATICALLY GENERATED CODE - DO NOT MODIFY + */ + +package services + +import ( + "fmt" + "strings" + + "github.com/softlayer/softlayer-go/datatypes" + "github.com/softlayer/softlayer-go/session" + "github.com/softlayer/softlayer-go/sl" +) + +// Every piece of hardware and network connection owned by SoftLayer is tracked physically by location and stored in the SoftLayer_Location data type. SoftLayer locations exist in parent/child relationships, a convenient way to track equipment from it's city, datacenter, server room, rack, then slot. Network backbones are tied to datacenters only, not to a room, rack, or slot. +type Location struct { + Session *session.Session + Options sl.Options +} + +// GetLocationService returns an instance of the Location SoftLayer service +func GetLocationService(sess *session.Session) Location { + return Location{Session: sess} +} + +func (r Location) Id(id int) Location { + r.Options.Id = &id + return r +} + +func (r Location) Mask(mask string) Location { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Location) Filter(filter string) Location { + r.Options.Filter = filter + return r +} + +func (r Location) Limit(limit int) Location { + r.Options.Limit = &limit + return r +} + +func (r Location) Offset(offset int) Location { + r.Options.Offset = &offset + return r +} + +// Object Storage is only available in select datacenters. This method will return all the datacenters where object storage is available. +func (r Location) GetAvailableObjectStorageDatacenters() (resp []datatypes.Location, err error) { + err = r.Session.DoRequest("SoftLayer_Location", "getAvailableObjectStorageDatacenters", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Location) GetBackboneDependents() (resp []datatypes.Network_Backbone_Location_Dependent, err error) { + err = r.Session.DoRequest("SoftLayer_Location", "getBackboneDependents", nil, &r.Options, &resp) + return +} + +// Retrieve all datacenter locations. SoftLayer's datacenters exist in various cities and each contain one or more server rooms which house network and server infrastructure. +func (r Location) GetDatacenters() (resp []datatypes.Location, err error) { + err = r.Session.DoRequest("SoftLayer_Location", "getDatacenters", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Location) GetDatacentersWithVirtualImageStoreServiceResourceRecord() (resp []datatypes.Location, err error) { + err = r.Session.DoRequest("SoftLayer_Location", "getDatacentersWithVirtualImageStoreServiceResourceRecord", nil, &r.Options, &resp) + return +} + +// Retrieve A location can be a member of 1 or more groups. This will show which groups to which a location belongs. +func (r Location) GetGroups() (resp []datatypes.Location_Group, err error) { + err = r.Session.DoRequest("SoftLayer_Location", "getGroups", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Location) GetHardwareFirewalls() (resp []datatypes.Hardware, err error) { + err = r.Session.DoRequest("SoftLayer_Location", "getHardwareFirewalls", nil, &r.Options, &resp) + return +} + +// Retrieve A location's physical address. +func (r Location) GetLocationAddress() (resp datatypes.Account_Address, err error) { + err = r.Session.DoRequest("SoftLayer_Location", "getLocationAddress", nil, &r.Options, &resp) + return +} + +// Retrieve A location's Dedicated Rack member +func (r Location) GetLocationReservationMember() (resp datatypes.Location_Reservation_Rack_Member, err error) { + err = r.Session.DoRequest("SoftLayer_Location", "getLocationReservationMember", nil, &r.Options, &resp) + return +} + +// Retrieve The current locations status. +func (r Location) GetLocationStatus() (resp datatypes.Location_Status, err error) { + err = r.Session.DoRequest("SoftLayer_Location", "getLocationStatus", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Location) GetNetworkConfigurationAttribute() (resp datatypes.Hardware_Attribute, err error) { + err = r.Session.DoRequest("SoftLayer_Location", "getNetworkConfigurationAttribute", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Location) GetObject() (resp datatypes.Location, err error) { + err = r.Session.DoRequest("SoftLayer_Location", "getObject", nil, &r.Options, &resp) + return +} + +// Retrieve The total number of users online using SoftLayer's PPTP VPN service for a location. +func (r Location) GetOnlinePptpVpnUserCount() (resp int, err error) { + err = r.Session.DoRequest("SoftLayer_Location", "getOnlinePptpVpnUserCount", nil, &r.Options, &resp) + return +} + +// Retrieve The total number of users online using SoftLayer's SSL VPN service for a location. +func (r Location) GetOnlineSslVpnUserCount() (resp int, err error) { + err = r.Session.DoRequest("SoftLayer_Location", "getOnlineSslVpnUserCount", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Location) GetPathString() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_Location", "getPathString", nil, &r.Options, &resp) + return +} + +// Retrieve A location can be a member of 1 or more Price Groups. This will show which groups to which a location belongs. +func (r Location) GetPriceGroups() (resp []datatypes.Location_Group, err error) { + err = r.Session.DoRequest("SoftLayer_Location", "getPriceGroups", nil, &r.Options, &resp) + return +} + +// Retrieve A location can be a member of 1 or more regions. This will show which regions to which a location belongs. +func (r Location) GetRegions() (resp []datatypes.Location_Region, err error) { + err = r.Session.DoRequest("SoftLayer_Location", "getRegions", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Location) GetTimezone() (resp datatypes.Locale_Timezone, err error) { + err = r.Session.DoRequest("SoftLayer_Location", "getTimezone", nil, &r.Options, &resp) + return +} + +// Retrieve A location can be a member of 1 Bandwidth Pooling Group. This will show which group to which a location belongs. +func (r Location) GetVdrGroup() (resp datatypes.Location_Group_Location_CrossReference, err error) { + err = r.Session.DoRequest("SoftLayer_Location", "getVdrGroup", nil, &r.Options, &resp) + return +} + +// Retrieve all datacenter locations. SoftLayer's datacenters exist in various cities and each contain one or more server rooms which house network and server infrastructure. +func (r Location) GetViewableDatacenters() (resp []datatypes.Location, err error) { + err = r.Session.DoRequest("SoftLayer_Location", "getViewableDatacenters", nil, &r.Options, &resp) + return +} + +// Retrieve all viewable pop and datacenter locations. +func (r Location) GetViewablePopsAndDataCenters() (resp []datatypes.Location, err error) { + err = r.Session.DoRequest("SoftLayer_Location", "getViewablePopsAndDataCenters", nil, &r.Options, &resp) + return +} + +// Retrieve all viewable network locations. +func (r Location) GetViewablepointOfPresence() (resp []datatypes.Location, err error) { + err = r.Session.DoRequest("SoftLayer_Location", "getViewablepointOfPresence", nil, &r.Options, &resp) + return +} + +// Retrieve all point of presence locations. +func (r Location) GetpointOfPresence() (resp []datatypes.Location, err error) { + err = r.Session.DoRequest("SoftLayer_Location", "getpointOfPresence", nil, &r.Options, &resp) + return +} + +// SoftLayer_Location_Datacenter extends the [[SoftLayer_Location]] data type to include datacenter-specific properties. +type Location_Datacenter struct { + Session *session.Session + Options sl.Options +} + +// GetLocationDatacenterService returns an instance of the Location_Datacenter SoftLayer service +func GetLocationDatacenterService(sess *session.Session) Location_Datacenter { + return Location_Datacenter{Session: sess} +} + +func (r Location_Datacenter) Id(id int) Location_Datacenter { + r.Options.Id = &id + return r +} + +func (r Location_Datacenter) Mask(mask string) Location_Datacenter { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Location_Datacenter) Filter(filter string) Location_Datacenter { + r.Options.Filter = filter + return r +} + +func (r Location_Datacenter) Limit(limit int) Location_Datacenter { + r.Options.Limit = &limit + return r +} + +func (r Location_Datacenter) Offset(offset int) Location_Datacenter { + r.Options.Offset = &offset + return r +} + +// Retrieve +func (r Location_Datacenter) GetActiveItemPresaleEvents() (resp []datatypes.Sales_Presale_Event, err error) { + err = r.Session.DoRequest("SoftLayer_Location_Datacenter", "getActiveItemPresaleEvents", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Location_Datacenter) GetActivePresaleEvents() (resp []datatypes.Sales_Presale_Event, err error) { + err = r.Session.DoRequest("SoftLayer_Location_Datacenter", "getActivePresaleEvents", nil, &r.Options, &resp) + return +} + +// Object Storage is only available in select datacenters. This method will return all the datacenters where object storage is available. +func (r Location_Datacenter) GetAvailableObjectStorageDatacenters() (resp []datatypes.Location, err error) { + err = r.Session.DoRequest("SoftLayer_Location_Datacenter", "getAvailableObjectStorageDatacenters", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Location_Datacenter) GetBackboneDependents() (resp []datatypes.Network_Backbone_Location_Dependent, err error) { + err = r.Session.DoRequest("SoftLayer_Location_Datacenter", "getBackboneDependents", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Location_Datacenter) GetBackendHardwareRouters() (resp []datatypes.Hardware, err error) { + err = r.Session.DoRequest("SoftLayer_Location_Datacenter", "getBackendHardwareRouters", nil, &r.Options, &resp) + return +} + +// Retrieve Subnets which are directly bound to one or more routers in a given datacenter, and currently allow routing. +func (r Location_Datacenter) GetBoundSubnets() (resp []datatypes.Network_Subnet, err error) { + err = r.Session.DoRequest("SoftLayer_Location_Datacenter", "getBoundSubnets", nil, &r.Options, &resp) + return +} + +// Retrieve This references relationship between brands, locations and countries associated with a user's account that are ineligible when ordering products. For example, the India datacenter may not be available on this brand for customers that live in Great Britain. +func (r Location_Datacenter) GetBrandCountryRestrictions() (resp []datatypes.Brand_Restriction_Location_CustomerCountry, err error) { + err = r.Session.DoRequest("SoftLayer_Location_Datacenter", "getBrandCountryRestrictions", nil, &r.Options, &resp) + return +} + +// Retrieve all datacenter locations. SoftLayer's datacenters exist in various cities and each contain one or more server rooms which house network and server infrastructure. +func (r Location_Datacenter) GetDatacenters() (resp []datatypes.Location, err error) { + err = r.Session.DoRequest("SoftLayer_Location_Datacenter", "getDatacenters", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Location_Datacenter) GetDatacentersWithVirtualImageStoreServiceResourceRecord() (resp []datatypes.Location, err error) { + err = r.Session.DoRequest("SoftLayer_Location_Datacenter", "getDatacentersWithVirtualImageStoreServiceResourceRecord", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Location_Datacenter) GetFrontendHardwareRouters() (resp []datatypes.Hardware, err error) { + err = r.Session.DoRequest("SoftLayer_Location_Datacenter", "getFrontendHardwareRouters", nil, &r.Options, &resp) + return +} + +// Retrieve A location can be a member of 1 or more groups. This will show which groups to which a location belongs. +func (r Location_Datacenter) GetGroups() (resp []datatypes.Location_Group, err error) { + err = r.Session.DoRequest("SoftLayer_Location_Datacenter", "getGroups", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Location_Datacenter) GetHardwareFirewalls() (resp []datatypes.Hardware, err error) { + err = r.Session.DoRequest("SoftLayer_Location_Datacenter", "getHardwareFirewalls", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Location_Datacenter) GetHardwareRouters() (resp []datatypes.Hardware, err error) { + err = r.Session.DoRequest("SoftLayer_Location_Datacenter", "getHardwareRouters", nil, &r.Options, &resp) + return +} + +// Retrieve A location's physical address. +func (r Location_Datacenter) GetLocationAddress() (resp datatypes.Account_Address, err error) { + err = r.Session.DoRequest("SoftLayer_Location_Datacenter", "getLocationAddress", nil, &r.Options, &resp) + return +} + +// Retrieve A location's Dedicated Rack member +func (r Location_Datacenter) GetLocationReservationMember() (resp datatypes.Location_Reservation_Rack_Member, err error) { + err = r.Session.DoRequest("SoftLayer_Location_Datacenter", "getLocationReservationMember", nil, &r.Options, &resp) + return +} + +// Retrieve The current locations status. +func (r Location_Datacenter) GetLocationStatus() (resp datatypes.Location_Status, err error) { + err = r.Session.DoRequest("SoftLayer_Location_Datacenter", "getLocationStatus", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Location_Datacenter) GetNetworkConfigurationAttribute() (resp datatypes.Hardware_Attribute, err error) { + err = r.Session.DoRequest("SoftLayer_Location_Datacenter", "getNetworkConfigurationAttribute", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Location_Datacenter) GetObject() (resp datatypes.Location_Datacenter, err error) { + err = r.Session.DoRequest("SoftLayer_Location_Datacenter", "getObject", nil, &r.Options, &resp) + return +} + +// Retrieve The total number of users online using SoftLayer's PPTP VPN service for a location. +func (r Location_Datacenter) GetOnlinePptpVpnUserCount() (resp int, err error) { + err = r.Session.DoRequest("SoftLayer_Location_Datacenter", "getOnlinePptpVpnUserCount", nil, &r.Options, &resp) + return +} + +// Retrieve The total number of users online using SoftLayer's SSL VPN service for a location. +func (r Location_Datacenter) GetOnlineSslVpnUserCount() (resp int, err error) { + err = r.Session.DoRequest("SoftLayer_Location_Datacenter", "getOnlineSslVpnUserCount", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Location_Datacenter) GetPathString() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_Location_Datacenter", "getPathString", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Location_Datacenter) GetPresaleEvents() (resp []datatypes.Sales_Presale_Event, err error) { + err = r.Session.DoRequest("SoftLayer_Location_Datacenter", "getPresaleEvents", nil, &r.Options, &resp) + return +} + +// Retrieve A location can be a member of 1 or more Price Groups. This will show which groups to which a location belongs. +func (r Location_Datacenter) GetPriceGroups() (resp []datatypes.Location_Group, err error) { + err = r.Session.DoRequest("SoftLayer_Location_Datacenter", "getPriceGroups", nil, &r.Options, &resp) + return +} + +// Retrieve The regional group this datacenter belongs to. +func (r Location_Datacenter) GetRegionalGroup() (resp datatypes.Location_Group_Regional, err error) { + err = r.Session.DoRequest("SoftLayer_Location_Datacenter", "getRegionalGroup", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Location_Datacenter) GetRegionalInternetRegistry() (resp datatypes.Network_Regional_Internet_Registry, err error) { + err = r.Session.DoRequest("SoftLayer_Location_Datacenter", "getRegionalInternetRegistry", nil, &r.Options, &resp) + return +} + +// Retrieve A location can be a member of 1 or more regions. This will show which regions to which a location belongs. +func (r Location_Datacenter) GetRegions() (resp []datatypes.Location_Region, err error) { + err = r.Session.DoRequest("SoftLayer_Location_Datacenter", "getRegions", nil, &r.Options, &resp) + return +} + +// Retrieve Retrieve all subnets that are eligible to be routed; those which the account has permission to associate with a vlan. +func (r Location_Datacenter) GetRoutableBoundSubnets() (resp []datatypes.Network_Subnet, err error) { + err = r.Session.DoRequest("SoftLayer_Location_Datacenter", "getRoutableBoundSubnets", nil, &r.Options, &resp) + return +} + +// Retrieve a graph of a SoftLayer datacenter's last 48 hours of network activity. Statistics graphs show traffic outbound from a datacenter on top and inbound traffic on the bottom followed by a legend of the network services tracked in the graph. getStatisticsGraphImage returns a PNG image of variable width and height depending on the number of services reported in the image. +func (r Location_Datacenter) GetStatisticsGraphImage() (resp []byte, err error) { + err = r.Session.DoRequest("SoftLayer_Location_Datacenter", "getStatisticsGraphImage", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Location_Datacenter) GetTimezone() (resp datatypes.Locale_Timezone, err error) { + err = r.Session.DoRequest("SoftLayer_Location_Datacenter", "getTimezone", nil, &r.Options, &resp) + return +} + +// Retrieve A location can be a member of 1 Bandwidth Pooling Group. This will show which group to which a location belongs. +func (r Location_Datacenter) GetVdrGroup() (resp datatypes.Location_Group_Location_CrossReference, err error) { + err = r.Session.DoRequest("SoftLayer_Location_Datacenter", "getVdrGroup", nil, &r.Options, &resp) + return +} + +// Retrieve all datacenter locations. SoftLayer's datacenters exist in various cities and each contain one or more server rooms which house network and server infrastructure. +func (r Location_Datacenter) GetViewableDatacenters() (resp []datatypes.Location, err error) { + err = r.Session.DoRequest("SoftLayer_Location_Datacenter", "getViewableDatacenters", nil, &r.Options, &resp) + return +} + +// Retrieve all viewable pop and datacenter locations. +func (r Location_Datacenter) GetViewablePopsAndDataCenters() (resp []datatypes.Location, err error) { + err = r.Session.DoRequest("SoftLayer_Location_Datacenter", "getViewablePopsAndDataCenters", nil, &r.Options, &resp) + return +} + +// Retrieve all viewable network locations. +func (r Location_Datacenter) GetViewablepointOfPresence() (resp []datatypes.Location, err error) { + err = r.Session.DoRequest("SoftLayer_Location_Datacenter", "getViewablepointOfPresence", nil, &r.Options, &resp) + return +} + +// Retrieve all point of presence locations. +func (r Location_Datacenter) GetpointOfPresence() (resp []datatypes.Location, err error) { + err = r.Session.DoRequest("SoftLayer_Location_Datacenter", "getpointOfPresence", nil, &r.Options, &resp) + return +} + +// no documentation yet +type Location_Group struct { + Session *session.Session + Options sl.Options +} + +// GetLocationGroupService returns an instance of the Location_Group SoftLayer service +func GetLocationGroupService(sess *session.Session) Location_Group { + return Location_Group{Session: sess} +} + +func (r Location_Group) Id(id int) Location_Group { + r.Options.Id = &id + return r +} + +func (r Location_Group) Mask(mask string) Location_Group { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Location_Group) Filter(filter string) Location_Group { + r.Options.Filter = filter + return r +} + +func (r Location_Group) Limit(limit int) Location_Group { + r.Options.Limit = &limit + return r +} + +func (r Location_Group) Offset(offset int) Location_Group { + r.Options.Offset = &offset + return r +} + +// no documentation yet +func (r Location_Group) GetAllObjects() (resp []datatypes.Location_Group, err error) { + err = r.Session.DoRequest("SoftLayer_Location_Group", "getAllObjects", nil, &r.Options, &resp) + return +} + +// Retrieve The type for this location group. +func (r Location_Group) GetLocationGroupType() (resp datatypes.Location_Group_Type, err error) { + err = r.Session.DoRequest("SoftLayer_Location_Group", "getLocationGroupType", nil, &r.Options, &resp) + return +} + +// Retrieve The locations in a group. +func (r Location_Group) GetLocations() (resp []datatypes.Location, err error) { + err = r.Session.DoRequest("SoftLayer_Location_Group", "getLocations", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Location_Group) GetObject() (resp datatypes.Location_Group, err error) { + err = r.Session.DoRequest("SoftLayer_Location_Group", "getObject", nil, &r.Options, &resp) + return +} + +// no documentation yet +type Location_Group_Pricing struct { + Session *session.Session + Options sl.Options +} + +// GetLocationGroupPricingService returns an instance of the Location_Group_Pricing SoftLayer service +func GetLocationGroupPricingService(sess *session.Session) Location_Group_Pricing { + return Location_Group_Pricing{Session: sess} +} + +func (r Location_Group_Pricing) Id(id int) Location_Group_Pricing { + r.Options.Id = &id + return r +} + +func (r Location_Group_Pricing) Mask(mask string) Location_Group_Pricing { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Location_Group_Pricing) Filter(filter string) Location_Group_Pricing { + r.Options.Filter = filter + return r +} + +func (r Location_Group_Pricing) Limit(limit int) Location_Group_Pricing { + r.Options.Limit = &limit + return r +} + +func (r Location_Group_Pricing) Offset(offset int) Location_Group_Pricing { + r.Options.Offset = &offset + return r +} + +// no documentation yet +func (r Location_Group_Pricing) GetAllObjects() (resp []datatypes.Location_Group, err error) { + err = r.Session.DoRequest("SoftLayer_Location_Group_Pricing", "getAllObjects", nil, &r.Options, &resp) + return +} + +// Retrieve The type for this location group. +func (r Location_Group_Pricing) GetLocationGroupType() (resp datatypes.Location_Group_Type, err error) { + err = r.Session.DoRequest("SoftLayer_Location_Group_Pricing", "getLocationGroupType", nil, &r.Options, &resp) + return +} + +// Retrieve The locations in a group. +func (r Location_Group_Pricing) GetLocations() (resp []datatypes.Location, err error) { + err = r.Session.DoRequest("SoftLayer_Location_Group_Pricing", "getLocations", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Location_Group_Pricing) GetObject() (resp datatypes.Location_Group_Pricing, err error) { + err = r.Session.DoRequest("SoftLayer_Location_Group_Pricing", "getObject", nil, &r.Options, &resp) + return +} + +// Retrieve The prices that this pricing location group limits. All of these prices will only be available in the locations defined by this pricing location group. +func (r Location_Group_Pricing) GetPrices() (resp []datatypes.Product_Item_Price, err error) { + err = r.Session.DoRequest("SoftLayer_Location_Group_Pricing", "getPrices", nil, &r.Options, &resp) + return +} + +// no documentation yet +type Location_Group_Regional struct { + Session *session.Session + Options sl.Options +} + +// GetLocationGroupRegionalService returns an instance of the Location_Group_Regional SoftLayer service +func GetLocationGroupRegionalService(sess *session.Session) Location_Group_Regional { + return Location_Group_Regional{Session: sess} +} + +func (r Location_Group_Regional) Id(id int) Location_Group_Regional { + r.Options.Id = &id + return r +} + +func (r Location_Group_Regional) Mask(mask string) Location_Group_Regional { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Location_Group_Regional) Filter(filter string) Location_Group_Regional { + r.Options.Filter = filter + return r +} + +func (r Location_Group_Regional) Limit(limit int) Location_Group_Regional { + r.Options.Limit = &limit + return r +} + +func (r Location_Group_Regional) Offset(offset int) Location_Group_Regional { + r.Options.Offset = &offset + return r +} + +// no documentation yet +func (r Location_Group_Regional) GetAllObjects() (resp []datatypes.Location_Group, err error) { + err = r.Session.DoRequest("SoftLayer_Location_Group_Regional", "getAllObjects", nil, &r.Options, &resp) + return +} + +// Retrieve The datacenters in a group. +func (r Location_Group_Regional) GetDatacenters() (resp []datatypes.Location, err error) { + err = r.Session.DoRequest("SoftLayer_Location_Group_Regional", "getDatacenters", nil, &r.Options, &resp) + return +} + +// Retrieve The type for this location group. +func (r Location_Group_Regional) GetLocationGroupType() (resp datatypes.Location_Group_Type, err error) { + err = r.Session.DoRequest("SoftLayer_Location_Group_Regional", "getLocationGroupType", nil, &r.Options, &resp) + return +} + +// Retrieve The locations in a group. +func (r Location_Group_Regional) GetLocations() (resp []datatypes.Location, err error) { + err = r.Session.DoRequest("SoftLayer_Location_Group_Regional", "getLocations", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Location_Group_Regional) GetObject() (resp datatypes.Location_Group_Regional, err error) { + err = r.Session.DoRequest("SoftLayer_Location_Group_Regional", "getObject", nil, &r.Options, &resp) + return +} + +// Retrieve The preferred datacenters of a group. +func (r Location_Group_Regional) GetPreferredDatacenter() (resp datatypes.Location_Datacenter, err error) { + err = r.Session.DoRequest("SoftLayer_Location_Group_Regional", "getPreferredDatacenter", nil, &r.Options, &resp) + return +} + +// no documentation yet +type Location_Reservation struct { + Session *session.Session + Options sl.Options +} + +// GetLocationReservationService returns an instance of the Location_Reservation SoftLayer service +func GetLocationReservationService(sess *session.Session) Location_Reservation { + return Location_Reservation{Session: sess} +} + +func (r Location_Reservation) Id(id int) Location_Reservation { + r.Options.Id = &id + return r +} + +func (r Location_Reservation) Mask(mask string) Location_Reservation { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Location_Reservation) Filter(filter string) Location_Reservation { + r.Options.Filter = filter + return r +} + +func (r Location_Reservation) Limit(limit int) Location_Reservation { + r.Options.Limit = &limit + return r +} + +func (r Location_Reservation) Offset(offset int) Location_Reservation { + r.Options.Offset = &offset + return r +} + +// Retrieve The account that a billing item belongs to. +func (r Location_Reservation) GetAccount() (resp datatypes.Account, err error) { + err = r.Session.DoRequest("SoftLayer_Location_Reservation", "getAccount", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Location_Reservation) GetAccountReservations() (resp []datatypes.Location_Reservation, err error) { + err = r.Session.DoRequest("SoftLayer_Location_Reservation", "getAccountReservations", nil, &r.Options, &resp) + return +} + +// Retrieve The bandwidth allotment that the reservation belongs to. +func (r Location_Reservation) GetAllotment() (resp datatypes.Network_Bandwidth_Version1_Allotment, err error) { + err = r.Session.DoRequest("SoftLayer_Location_Reservation", "getAllotment", nil, &r.Options, &resp) + return +} + +// Retrieve The bandwidth allotment that the reservation belongs to. +func (r Location_Reservation) GetBillingItem() (resp datatypes.Billing_Item, err error) { + err = r.Session.DoRequest("SoftLayer_Location_Reservation", "getBillingItem", nil, &r.Options, &resp) + return +} + +// Retrieve The datacenter location that the reservation belongs to. +func (r Location_Reservation) GetLocation() (resp datatypes.Location, err error) { + err = r.Session.DoRequest("SoftLayer_Location_Reservation", "getLocation", nil, &r.Options, &resp) + return +} + +// Retrieve Rack information for the reservation +func (r Location_Reservation) GetLocationReservationRack() (resp datatypes.Location_Reservation_Rack, err error) { + err = r.Session.DoRequest("SoftLayer_Location_Reservation", "getLocationReservationRack", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Location_Reservation) GetObject() (resp datatypes.Location_Reservation, err error) { + err = r.Session.DoRequest("SoftLayer_Location_Reservation", "getObject", nil, &r.Options, &resp) + return +} + +// no documentation yet +type Location_Reservation_Rack struct { + Session *session.Session + Options sl.Options +} + +// GetLocationReservationRackService returns an instance of the Location_Reservation_Rack SoftLayer service +func GetLocationReservationRackService(sess *session.Session) Location_Reservation_Rack { + return Location_Reservation_Rack{Session: sess} +} + +func (r Location_Reservation_Rack) Id(id int) Location_Reservation_Rack { + r.Options.Id = &id + return r +} + +func (r Location_Reservation_Rack) Mask(mask string) Location_Reservation_Rack { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Location_Reservation_Rack) Filter(filter string) Location_Reservation_Rack { + r.Options.Filter = filter + return r +} + +func (r Location_Reservation_Rack) Limit(limit int) Location_Reservation_Rack { + r.Options.Limit = &limit + return r +} + +func (r Location_Reservation_Rack) Offset(offset int) Location_Reservation_Rack { + r.Options.Offset = &offset + return r +} + +// Retrieve The bandwidth allotment that the reservation belongs to. +func (r Location_Reservation_Rack) GetAllotment() (resp datatypes.Network_Bandwidth_Version1_Allotment, err error) { + err = r.Session.DoRequest("SoftLayer_Location_Reservation_Rack", "getAllotment", nil, &r.Options, &resp) + return +} + +// Retrieve Members of the rack. +func (r Location_Reservation_Rack) GetChildren() (resp []datatypes.Location_Reservation_Rack_Member, err error) { + err = r.Session.DoRequest("SoftLayer_Location_Reservation_Rack", "getChildren", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Location_Reservation_Rack) GetLocation() (resp datatypes.Location, err error) { + err = r.Session.DoRequest("SoftLayer_Location_Reservation_Rack", "getLocation", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Location_Reservation_Rack) GetLocationReservation() (resp datatypes.Location_Reservation, err error) { + err = r.Session.DoRequest("SoftLayer_Location_Reservation_Rack", "getLocationReservation", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Location_Reservation_Rack) GetObject() (resp datatypes.Location_Reservation_Rack, err error) { + err = r.Session.DoRequest("SoftLayer_Location_Reservation_Rack", "getObject", nil, &r.Options, &resp) + return +} + +// no documentation yet +type Location_Reservation_Rack_Member struct { + Session *session.Session + Options sl.Options +} + +// GetLocationReservationRackMemberService returns an instance of the Location_Reservation_Rack_Member SoftLayer service +func GetLocationReservationRackMemberService(sess *session.Session) Location_Reservation_Rack_Member { + return Location_Reservation_Rack_Member{Session: sess} +} + +func (r Location_Reservation_Rack_Member) Id(id int) Location_Reservation_Rack_Member { + r.Options.Id = &id + return r +} + +func (r Location_Reservation_Rack_Member) Mask(mask string) Location_Reservation_Rack_Member { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Location_Reservation_Rack_Member) Filter(filter string) Location_Reservation_Rack_Member { + r.Options.Filter = filter + return r +} + +func (r Location_Reservation_Rack_Member) Limit(limit int) Location_Reservation_Rack_Member { + r.Options.Limit = &limit + return r +} + +func (r Location_Reservation_Rack_Member) Offset(offset int) Location_Reservation_Rack_Member { + r.Options.Offset = &offset + return r +} + +// Retrieve Location relation for the rack member +func (r Location_Reservation_Rack_Member) GetLocation() (resp datatypes.Location, err error) { + err = r.Session.DoRequest("SoftLayer_Location_Reservation_Rack_Member", "getLocation", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Location_Reservation_Rack_Member) GetLocationReservationRack() (resp datatypes.Location_Reservation, err error) { + err = r.Session.DoRequest("SoftLayer_Location_Reservation_Rack_Member", "getLocationReservationRack", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Location_Reservation_Rack_Member) GetObject() (resp datatypes.Location_Reservation_Rack_Member, err error) { + err = r.Session.DoRequest("SoftLayer_Location_Reservation_Rack_Member", "getObject", nil, &r.Options, &resp) + return +} diff --git a/vendor/github.com/softlayer/softlayer-go/services/marketplace.go b/vendor/github.com/softlayer/softlayer-go/services/marketplace.go new file mode 100644 index 000000000..27339a571 --- /dev/null +++ b/vendor/github.com/softlayer/softlayer-go/services/marketplace.go @@ -0,0 +1,148 @@ +/** + * Copyright 2016 IBM Corp. + * + * 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. + */ + +/** + * AUTOMATICALLY GENERATED CODE - DO NOT MODIFY + */ + +package services + +import ( + "fmt" + "strings" + + "github.com/softlayer/softlayer-go/datatypes" + "github.com/softlayer/softlayer-go/session" + "github.com/softlayer/softlayer-go/sl" +) + +// no documentation yet +type Marketplace_Partner struct { + Session *session.Session + Options sl.Options +} + +// GetMarketplacePartnerService returns an instance of the Marketplace_Partner SoftLayer service +func GetMarketplacePartnerService(sess *session.Session) Marketplace_Partner { + return Marketplace_Partner{Session: sess} +} + +func (r Marketplace_Partner) Id(id int) Marketplace_Partner { + r.Options.Id = &id + return r +} + +func (r Marketplace_Partner) Mask(mask string) Marketplace_Partner { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Marketplace_Partner) Filter(filter string) Marketplace_Partner { + r.Options.Filter = filter + return r +} + +func (r Marketplace_Partner) Limit(limit int) Marketplace_Partner { + r.Options.Limit = &limit + return r +} + +func (r Marketplace_Partner) Offset(offset int) Marketplace_Partner { + r.Options.Offset = &offset + return r +} + +// no documentation yet +func (r Marketplace_Partner) GetAllObjects() (resp []datatypes.Marketplace_Partner, err error) { + err = r.Session.DoRequest("SoftLayer_Marketplace_Partner", "getAllObjects", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Marketplace_Partner) GetAllPublishedPartners(searchTerm *string) (resp []datatypes.Marketplace_Partner, err error) { + params := []interface{}{ + searchTerm, + } + err = r.Session.DoRequest("SoftLayer_Marketplace_Partner", "getAllPublishedPartners", params, &r.Options, &resp) + return +} + +// Retrieve +func (r Marketplace_Partner) GetAttachments() (resp []datatypes.Marketplace_Partner_Attachment, err error) { + err = r.Session.DoRequest("SoftLayer_Marketplace_Partner", "getAttachments", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Marketplace_Partner) GetFeaturedPartners(non *bool) (resp []datatypes.Marketplace_Partner, err error) { + params := []interface{}{ + non, + } + err = r.Session.DoRequest("SoftLayer_Marketplace_Partner", "getFeaturedPartners", params, &r.Options, &resp) + return +} + +// no documentation yet +func (r Marketplace_Partner) GetFile(name *string) (resp datatypes.Marketplace_Partner_File, err error) { + params := []interface{}{ + name, + } + err = r.Session.DoRequest("SoftLayer_Marketplace_Partner", "getFile", params, &r.Options, &resp) + return +} + +// Retrieve +func (r Marketplace_Partner) GetLogoMedium() (resp datatypes.Marketplace_Partner_Attachment, err error) { + err = r.Session.DoRequest("SoftLayer_Marketplace_Partner", "getLogoMedium", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Marketplace_Partner) GetLogoMediumTemp() (resp datatypes.Marketplace_Partner_Attachment, err error) { + err = r.Session.DoRequest("SoftLayer_Marketplace_Partner", "getLogoMediumTemp", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Marketplace_Partner) GetLogoSmall() (resp datatypes.Marketplace_Partner_Attachment, err error) { + err = r.Session.DoRequest("SoftLayer_Marketplace_Partner", "getLogoSmall", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Marketplace_Partner) GetLogoSmallTemp() (resp datatypes.Marketplace_Partner_Attachment, err error) { + err = r.Session.DoRequest("SoftLayer_Marketplace_Partner", "getLogoSmallTemp", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Marketplace_Partner) GetObject() (resp datatypes.Marketplace_Partner, err error) { + err = r.Session.DoRequest("SoftLayer_Marketplace_Partner", "getObject", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Marketplace_Partner) GetPartnerByUrlIdentifier(urlIdentifier *string) (resp datatypes.Marketplace_Partner, err error) { + params := []interface{}{ + urlIdentifier, + } + err = r.Session.DoRequest("SoftLayer_Marketplace_Partner", "getPartnerByUrlIdentifier", params, &r.Options, &resp) + return +} diff --git a/vendor/github.com/softlayer/softlayer-go/services/metric.go b/vendor/github.com/softlayer/softlayer-go/services/metric.go new file mode 100644 index 000000000..e2721cf4c --- /dev/null +++ b/vendor/github.com/softlayer/softlayer-go/services/metric.go @@ -0,0 +1,234 @@ +/** + * Copyright 2016 IBM Corp. + * + * 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. + */ + +/** + * AUTOMATICALLY GENERATED CODE - DO NOT MODIFY + */ + +package services + +import ( + "fmt" + "strings" + + "github.com/softlayer/softlayer-go/datatypes" + "github.com/softlayer/softlayer-go/session" + "github.com/softlayer/softlayer-go/sl" +) + +// Metric tracking objects provides a common interface to all metrics provided by SoftLayer. These metrics range from network component traffic for a server to aggregated Bandwidth Pooling traffic and more. Every object within SoftLayer's range of objects that has data that can be tracked over time has an associated tracking object. Use the [[SoftLayer_Metric_Tracking_Object]] service to retrieve raw and graph data from a tracking object. +type Metric_Tracking_Object struct { + Session *session.Session + Options sl.Options +} + +// GetMetricTrackingObjectService returns an instance of the Metric_Tracking_Object SoftLayer service +func GetMetricTrackingObjectService(sess *session.Session) Metric_Tracking_Object { + return Metric_Tracking_Object{Session: sess} +} + +func (r Metric_Tracking_Object) Id(id int) Metric_Tracking_Object { + r.Options.Id = &id + return r +} + +func (r Metric_Tracking_Object) Mask(mask string) Metric_Tracking_Object { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Metric_Tracking_Object) Filter(filter string) Metric_Tracking_Object { + r.Options.Filter = filter + return r +} + +func (r Metric_Tracking_Object) Limit(limit int) Metric_Tracking_Object { + r.Options.Limit = &limit + return r +} + +func (r Metric_Tracking_Object) Offset(offset int) Metric_Tracking_Object { + r.Options.Offset = &offset + return r +} + +// Retrieve a PNG image of the last 24 hours of bandwidth usage of one of SoftLayer's network backbones. +func (r Metric_Tracking_Object) GetBackboneBandwidthGraph(graphTitle *string) (resp datatypes.Container_Bandwidth_GraphOutputs, err error) { + params := []interface{}{ + graphTitle, + } + err = r.Session.DoRequest("SoftLayer_Metric_Tracking_Object", "getBackboneBandwidthGraph", params, &r.Options, &resp) + return +} + +// Retrieve a collection of raw bandwidth data from an individual public or private network tracking object. Raw data is ideal if you with to employ your own traffic storage and graphing systems. +func (r Metric_Tracking_Object) GetBandwidthData(startDateTime *datatypes.Time, endDateTime *datatypes.Time, typ *string, rollupSeconds *int) (resp []datatypes.Metric_Tracking_Object_Data, err error) { + params := []interface{}{ + startDateTime, + endDateTime, + typ, + rollupSeconds, + } + err = r.Session.DoRequest("SoftLayer_Metric_Tracking_Object", "getBandwidthData", params, &r.Options, &resp) + return +} + +// Retrieve a PNG image of a bandwidth graph representing the bandwidth usage over time recorded by SofTLayer's bandwidth pollers. +func (r Metric_Tracking_Object) GetBandwidthGraph(startDateTime *datatypes.Time, endDateTime *datatypes.Time, graphType *string, fontSize *int, graphWidth *int, graphHeight *int, doNotShowTimeZone *bool) (resp datatypes.Container_Bandwidth_GraphOutputs, err error) { + params := []interface{}{ + startDateTime, + endDateTime, + graphType, + fontSize, + graphWidth, + graphHeight, + doNotShowTimeZone, + } + err = r.Session.DoRequest("SoftLayer_Metric_Tracking_Object", "getBandwidthGraph", params, &r.Options, &resp) + return +} + +// Retrieve the total amount of bandwidth recorded by a tracking object within the given date range. This method will only work on SoftLayer_Metric_Tracking_Object for SoftLayer_Hardware objects, and SoftLayer_Virtual_Guest objects. +func (r Metric_Tracking_Object) GetBandwidthTotal(startDateTime *datatypes.Time, endDateTime *datatypes.Time, direction *string, typ *string) (resp uint, err error) { + params := []interface{}{ + startDateTime, + endDateTime, + direction, + typ, + } + err = r.Session.DoRequest("SoftLayer_Metric_Tracking_Object", "getBandwidthTotal", params, &r.Options, &resp) + return +} + +// Returns a graph container instance that is populated with metric data for the tracking object. +func (r Metric_Tracking_Object) GetCustomGraphData(graphContainer *datatypes.Container_Graph) (resp datatypes.Container_Graph, err error) { + params := []interface{}{ + graphContainer, + } + err = r.Session.DoRequest("SoftLayer_Metric_Tracking_Object", "getCustomGraphData", params, &r.Options, &resp) + return +} + +// Retrieve a collection of detailed metric data over a date range. Ideal if you want to employ your own graphing systems. Note not all metrics support this method. Those that do not return null. +func (r Metric_Tracking_Object) GetDetailsForDateRange(startDate *datatypes.Time, endDate *datatypes.Time, graphType []string) (resp []datatypes.Container_Metric_Tracking_Object_Details, err error) { + params := []interface{}{ + startDate, + endDate, + graphType, + } + err = r.Session.DoRequest("SoftLayer_Metric_Tracking_Object", "getDetailsForDateRange", params, &r.Options, &resp) + return +} + +// Retrieve a PNG image of a metric in graph form. +func (r Metric_Tracking_Object) GetGraph(startDateTime *datatypes.Time, endDateTime *datatypes.Time, graphType []string) (resp datatypes.Container_Bandwidth_GraphOutputs, err error) { + params := []interface{}{ + startDateTime, + endDateTime, + graphType, + } + err = r.Session.DoRequest("SoftLayer_Metric_Tracking_Object", "getGraph", params, &r.Options, &resp) + return +} + +// Returns a collection of metric data types that can be retrieved for a metric tracking object. +func (r Metric_Tracking_Object) GetMetricDataTypes() (resp []datatypes.Container_Metric_Data_Type, err error) { + err = r.Session.DoRequest("SoftLayer_Metric_Tracking_Object", "getMetricDataTypes", nil, &r.Options, &resp) + return +} + +// getObject retrieves the SoftLayer_Metric_Tracking_Object object whose ID number corresponds to the ID number of the init parameter passed to the SoftLayer_Metric_Tracking_Object service. You can only tracking objects that are associated with your SoftLayer account or services. +func (r Metric_Tracking_Object) GetObject() (resp datatypes.Metric_Tracking_Object, err error) { + err = r.Session.DoRequest("SoftLayer_Metric_Tracking_Object", "getObject", nil, &r.Options, &resp) + return +} + +// Retrieve a metric summary. Ideal if you want to employ your own graphing systems. Note not all metric types contain a summary. These return null. +func (r Metric_Tracking_Object) GetSummary(graphType *string) (resp datatypes.Container_Metric_Tracking_Object_Summary, err error) { + params := []interface{}{ + graphType, + } + err = r.Session.DoRequest("SoftLayer_Metric_Tracking_Object", "getSummary", params, &r.Options, &resp) + return +} + +// Returns summarized metric data for the date range, metric type and summary period provided. +func (r Metric_Tracking_Object) GetSummaryData(startDateTime *datatypes.Time, endDateTime *datatypes.Time, validTypes []datatypes.Container_Metric_Data_Type, summaryPeriod *int) (resp []datatypes.Metric_Tracking_Object_Data, err error) { + params := []interface{}{ + startDateTime, + endDateTime, + validTypes, + summaryPeriod, + } + err = r.Session.DoRequest("SoftLayer_Metric_Tracking_Object", "getSummaryData", params, &r.Options, &resp) + return +} + +// Retrieve The type of data that a tracking object polls. +func (r Metric_Tracking_Object) GetType() (resp datatypes.Metric_Tracking_Object_Type, err error) { + err = r.Session.DoRequest("SoftLayer_Metric_Tracking_Object", "getType", nil, &r.Options, &resp) + return +} + +// This data type provides commonly used bandwidth summary components for the current billing cycle. +type Metric_Tracking_Object_Bandwidth_Summary struct { + Session *session.Session + Options sl.Options +} + +// GetMetricTrackingObjectBandwidthSummaryService returns an instance of the Metric_Tracking_Object_Bandwidth_Summary SoftLayer service +func GetMetricTrackingObjectBandwidthSummaryService(sess *session.Session) Metric_Tracking_Object_Bandwidth_Summary { + return Metric_Tracking_Object_Bandwidth_Summary{Session: sess} +} + +func (r Metric_Tracking_Object_Bandwidth_Summary) Id(id int) Metric_Tracking_Object_Bandwidth_Summary { + r.Options.Id = &id + return r +} + +func (r Metric_Tracking_Object_Bandwidth_Summary) Mask(mask string) Metric_Tracking_Object_Bandwidth_Summary { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Metric_Tracking_Object_Bandwidth_Summary) Filter(filter string) Metric_Tracking_Object_Bandwidth_Summary { + r.Options.Filter = filter + return r +} + +func (r Metric_Tracking_Object_Bandwidth_Summary) Limit(limit int) Metric_Tracking_Object_Bandwidth_Summary { + r.Options.Limit = &limit + return r +} + +func (r Metric_Tracking_Object_Bandwidth_Summary) Offset(offset int) Metric_Tracking_Object_Bandwidth_Summary { + r.Options.Offset = &offset + return r +} + +// no documentation yet +func (r Metric_Tracking_Object_Bandwidth_Summary) GetObject() (resp datatypes.Metric_Tracking_Object_Bandwidth_Summary, err error) { + err = r.Session.DoRequest("SoftLayer_Metric_Tracking_Object_Bandwidth_Summary", "getObject", nil, &r.Options, &resp) + return +} diff --git a/vendor/github.com/softlayer/softlayer-go/services/monitoring.go b/vendor/github.com/softlayer/softlayer-go/services/monitoring.go new file mode 100644 index 000000000..2de43d7e9 --- /dev/null +++ b/vendor/github.com/softlayer/softlayer-go/services/monitoring.go @@ -0,0 +1,685 @@ +/** + * Copyright 2016 IBM Corp. + * + * 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. + */ + +/** + * AUTOMATICALLY GENERATED CODE - DO NOT MODIFY + */ + +package services + +import ( + "fmt" + "strings" + + "github.com/softlayer/softlayer-go/datatypes" + "github.com/softlayer/softlayer-go/session" + "github.com/softlayer/softlayer-go/sl" +) + +// A monitoring agent object contains information describing the agent. +type Monitoring_Agent struct { + Session *session.Session + Options sl.Options +} + +// GetMonitoringAgentService returns an instance of the Monitoring_Agent SoftLayer service +func GetMonitoringAgentService(sess *session.Session) Monitoring_Agent { + return Monitoring_Agent{Session: sess} +} + +func (r Monitoring_Agent) Id(id int) Monitoring_Agent { + r.Options.Id = &id + return r +} + +func (r Monitoring_Agent) Mask(mask string) Monitoring_Agent { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Monitoring_Agent) Filter(filter string) Monitoring_Agent { + r.Options.Filter = filter + return r +} + +func (r Monitoring_Agent) Limit(limit int) Monitoring_Agent { + r.Options.Limit = &limit + return r +} + +func (r Monitoring_Agent) Offset(offset int) Monitoring_Agent { + r.Options.Offset = &offset + return r +} + +// This method activates a SoftLayer_Monitoring_Agent. +func (r Monitoring_Agent) Activate() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Monitoring_Agent", "activate", nil, &r.Options, &resp) + return +} + +// This method is used to apply changes to a monitoring agent's configuration for SoftLayer_Configuration_Template_Section with the property sectionType that has a keyName of 'TEMPLATE_SECTION'. Configuration values that are passed in can be new or updated objects but must have a definitionId and profileId defined for both. Existing SoftLayer_Monitoring_Agent_Configuration_Value values can be retrieved as a property of the SoftLayer_Configuration_Template_Section_Definition's from the monitoring agent's configurationTemplate property. New values will follow the structure of SoftLayer_Monitoring_Agent_Configuration_Value. It returns a SoftLayer_Provisioning_Version1_Transaction object to track the progress of the update being applied. Some configuration sections act as a template which helps to create additional monitoring configurations. For instance, Core Resource monitoring agent lets you create monitoring configurations for different disk volumes or disk path. +func (r Monitoring_Agent) AddConfigurationProfile(configurationValues []datatypes.Monitoring_Agent_Configuration_Value) (resp datatypes.Provisioning_Version1_Transaction, err error) { + params := []interface{}{ + configurationValues, + } + err = r.Session.DoRequest("SoftLayer_Monitoring_Agent", "addConfigurationProfile", params, &r.Options, &resp) + return +} + +// This method creates a transaction used to apply changes to a monitoring agent's configuration for an array of SoftLayer_Configuration_Template_Section that have the property sectionType with a name of 'Fixed section'. Configuration values that are passed in can be new or updated objects but must have a configurationDefinitionId defined for both. Existing SoftLayer_Monitoring_Agent_Configuration_Value values can be retrieved as a property of the SoftLayer_Configuration_Template_Section_Definition from the monitoring agent's configurationTemplate property. New values will follow the structure of SoftLayer_Monitoring_Agent_Configuration_Value. This method returns a SoftLayer_Provisioning_Version1_Transaction object to track the progress of the update being applied. +func (r Monitoring_Agent) ApplyConfigurationValues(configurationValues []datatypes.Monitoring_Agent_Configuration_Value) (resp datatypes.Provisioning_Version1_Transaction, err error) { + params := []interface{}{ + configurationValues, + } + err = r.Session.DoRequest("SoftLayer_Monitoring_Agent", "applyConfigurationValues", params, &r.Options, &resp) + return +} + +// This method will deactivate the monitoring agent, preventing it from generating any further alarms. +func (r Monitoring_Agent) Deactivate() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Monitoring_Agent", "deactivate", nil, &r.Options, &resp) + return +} + +// This method will remove a SoftLayer_Configuration_Template_Section_Profile from a SoftLayer_Configuration_Template_Section by passing in the sectionId of the profile object and identifier of the profile. This will execute the action immediately on the server and the SoftLayer_Configuration_Template_Section returning a boolean true if successful. +func (r Monitoring_Agent) DeleteConfigurationProfile(sectionId *int, profileId *int) (resp bool, err error) { + params := []interface{}{ + sectionId, + profileId, + } + err = r.Session.DoRequest("SoftLayer_Monitoring_Agent", "deleteConfigurationProfile", params, &r.Options, &resp) + return +} + +// Initialize a monitoring agent and deploy it with the SoftLayer_Configuration_Template with the same identifier as the $configurationTemplateId parameter. If the configuration template ID is not provided, the current configuration template will be used. When executing this method, the existing configuration values will be lost. If no configuration template identifier is provided, the current configuration template will be used. '''Warning''' Reporting data may be lost as a result of executing this method. +func (r Monitoring_Agent) DeployMonitoringAgent(configurationTemplateId *int) (resp datatypes.Provisioning_Version1_Transaction, err error) { + params := []interface{}{ + configurationTemplateId, + } + err = r.Session.DoRequest("SoftLayer_Monitoring_Agent", "deployMonitoringAgent", params, &r.Options, &resp) + return +} + +// This method retrieves an array of SoftLayer_Notification_User_Subscriber objects belonging to the SoftLayer_Monitoring_Agent which are able to receive alarm notifications. +func (r Monitoring_Agent) GetActiveAlarmSubscribers() (resp []datatypes.Notification_User_Subscriber, err error) { + err = r.Session.DoRequest("SoftLayer_Monitoring_Agent", "getActiveAlarmSubscribers", nil, &r.Options, &resp) + return +} + +// Retrieve The current status of the corresponding agent +func (r Monitoring_Agent) GetAgentStatus() (resp datatypes.Monitoring_Agent_Status, err error) { + err = r.Session.DoRequest("SoftLayer_Monitoring_Agent", "getAgentStatus", nil, &r.Options, &resp) + return +} + +// This method returns an array of available SoftLayer_Configuration_Template objects for this monitoring agent. +func (r Monitoring_Agent) GetAvailableConfigurationTemplates() (resp []datatypes.Configuration_Template, err error) { + err = r.Session.DoRequest("SoftLayer_Monitoring_Agent", "getAvailableConfigurationTemplates", nil, &r.Options, &resp) + return +} + +// Returns an array of available configuration values that are specific to a server or a Virtual that this monitoring agent is running on. For example, invoking this method against "Network Traffic Monitoring Agent" will return all available network adapters on your system. +func (r Monitoring_Agent) GetAvailableConfigurationValues(configurationDefinitionId *int, configValues []datatypes.Monitoring_Agent_Configuration_Value) (resp []datatypes.Monitoring_Agent_Configuration_Value, err error) { + params := []interface{}{ + configurationDefinitionId, + configValues, + } + err = r.Session.DoRequest("SoftLayer_Monitoring_Agent", "getAvailableConfigurationValues", params, &r.Options, &resp) + return +} + +// Retrieve All custom configuration profiles associated with the corresponding agent +func (r Monitoring_Agent) GetConfigurationProfiles() (resp []datatypes.Configuration_Template_Section_Profile, err error) { + err = r.Session.DoRequest("SoftLayer_Monitoring_Agent", "getConfigurationProfiles", nil, &r.Options, &resp) + return +} + +// Retrieve A template of an agent's current configuration which contains information about the structure of the configuration values. +func (r Monitoring_Agent) GetConfigurationTemplate() (resp datatypes.Configuration_Template, err error) { + err = r.Session.DoRequest("SoftLayer_Monitoring_Agent", "getConfigurationTemplate", nil, &r.Options, &resp) + return +} + +// Retrieve The values associated with the corresponding Agent configuration. +func (r Monitoring_Agent) GetConfigurationValues() (resp []datatypes.Monitoring_Agent_Configuration_Value, err error) { + err = r.Session.DoRequest("SoftLayer_Monitoring_Agent", "getConfigurationValues", nil, &r.Options, &resp) + return +} + +// This method returns an array of SoftLayer_User_Customer objects, representing those who are allowed to be used as alarm subscribers. +func (r Monitoring_Agent) GetEligibleAlarmSubscibers() (resp []datatypes.User_Customer, err error) { + err = r.Session.DoRequest("SoftLayer_Monitoring_Agent", "getEligibleAlarmSubscibers", nil, &r.Options, &resp) + return +} + +// This method returns a SoftLayer_Container_Bandwidth_GraphOutputs object containing a base64 PNG string graph of the provided configuration values for the given begin and end dates. +func (r Monitoring_Agent) GetGraph(configurationValues []datatypes.Monitoring_Agent_Configuration_Value, beginDate *datatypes.Time, endDate *datatypes.Time) (resp datatypes.Container_Monitoring_Graph_Outputs, err error) { + params := []interface{}{ + configurationValues, + beginDate, + endDate, + } + err = r.Session.DoRequest("SoftLayer_Monitoring_Agent", "getGraph", params, &r.Options, &resp) + return +} + +// This method returns the metric data for each of the configuration values provided during the given time range. +func (r Monitoring_Agent) GetGraphData(metricDataTypes []datatypes.Container_Metric_Data_Type, startDate *datatypes.Time, endDate *datatypes.Time) (resp []datatypes.Metric_Tracking_Object_Data, err error) { + params := []interface{}{ + metricDataTypes, + startDate, + endDate, + } + err = r.Session.DoRequest("SoftLayer_Monitoring_Agent", "getGraphData", params, &r.Options, &resp) + return +} + +// Retrieve SoftLayer hardware related to the agent. +func (r Monitoring_Agent) GetHardware() (resp datatypes.Hardware, err error) { + err = r.Session.DoRequest("SoftLayer_Monitoring_Agent", "getHardware", nil, &r.Options, &resp) + return +} + +// This method retrieves a monitoring agent whose identifier corresponds to the value provided in the initialization parameter passed to the SoftLayer_Monitoring_Agent service. +func (r Monitoring_Agent) GetObject() (resp datatypes.Monitoring_Agent, err error) { + err = r.Session.DoRequest("SoftLayer_Monitoring_Agent", "getObject", nil, &r.Options, &resp) + return +} + +// Retrieve Contains general information relating to a single SoftLayer product. +func (r Monitoring_Agent) GetProductItem() (resp datatypes.Product_Item, err error) { + err = r.Session.DoRequest("SoftLayer_Monitoring_Agent", "getProductItem", nil, &r.Options, &resp) + return +} + +// Retrieve A description for a specific installation of a Software Component +func (r Monitoring_Agent) GetSoftwareDescription() (resp datatypes.Software_Description, err error) { + err = r.Session.DoRequest("SoftLayer_Monitoring_Agent", "getSoftwareDescription", nil, &r.Options, &resp) + return +} + +// Retrieve Monitoring agent status name. +func (r Monitoring_Agent) GetStatusName() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_Monitoring_Agent", "getStatusName", nil, &r.Options, &resp) + return +} + +// Retrieve Softlayer_Virtual_Guest object related to the monitoring agent, which this virtual guest object and hardware is on the server of the running agent. +func (r Monitoring_Agent) GetVirtualGuest() (resp datatypes.Virtual_Guest, err error) { + err = r.Session.DoRequest("SoftLayer_Monitoring_Agent", "getVirtualGuest", nil, &r.Options, &resp) + return +} + +// Use of this method will allow removing active subscribers from the monitoring agent. The agent subscribers can be managed within the portal from the "Alarm Subscribers" tab of the monitoring agent configuration. +func (r Monitoring_Agent) RemoveActiveAlarmSubscriber(userRecordId *int) (resp bool, err error) { + params := []interface{}{ + userRecordId, + } + err = r.Session.DoRequest("SoftLayer_Monitoring_Agent", "removeActiveAlarmSubscriber", params, &r.Options, &resp) + return +} + +// Use of this method will allow removing all subscribers from the monitoring agent. The agent subscribers can be managed within the portal from the "Alarm Subscribers" tab of the monitoring agent configuration. +func (r Monitoring_Agent) RemoveAllAlarmSubscribers() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Monitoring_Agent", "removeAllAlarmSubscribers", nil, &r.Options, &resp) + return +} + +// This method restarts a monitoring agent and sets the agent's status to 'ACTIVE'. +func (r Monitoring_Agent) RestartMonitoringAgent() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Monitoring_Agent", "restartMonitoringAgent", nil, &r.Options, &resp) + return +} + +// This method assigns a user to receive the alerts generated by this SoftLayer_Monitoring_Agent. +func (r Monitoring_Agent) SetActiveAlarmSubscriber(userRecordId *int) (resp bool, err error) { + params := []interface{}{ + userRecordId, + } + err = r.Session.DoRequest("SoftLayer_Monitoring_Agent", "setActiveAlarmSubscriber", params, &r.Options, &resp) + return +} + +// The SoftLayer_Monitoring_Agent_Configuration_Template_Group class is consisted of configuration templates for agents in a monitoring package. +type Monitoring_Agent_Configuration_Template_Group struct { + Session *session.Session + Options sl.Options +} + +// GetMonitoringAgentConfigurationTemplateGroupService returns an instance of the Monitoring_Agent_Configuration_Template_Group SoftLayer service +func GetMonitoringAgentConfigurationTemplateGroupService(sess *session.Session) Monitoring_Agent_Configuration_Template_Group { + return Monitoring_Agent_Configuration_Template_Group{Session: sess} +} + +func (r Monitoring_Agent_Configuration_Template_Group) Id(id int) Monitoring_Agent_Configuration_Template_Group { + r.Options.Id = &id + return r +} + +func (r Monitoring_Agent_Configuration_Template_Group) Mask(mask string) Monitoring_Agent_Configuration_Template_Group { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Monitoring_Agent_Configuration_Template_Group) Filter(filter string) Monitoring_Agent_Configuration_Template_Group { + r.Options.Filter = filter + return r +} + +func (r Monitoring_Agent_Configuration_Template_Group) Limit(limit int) Monitoring_Agent_Configuration_Template_Group { + r.Options.Limit = &limit + return r +} + +func (r Monitoring_Agent_Configuration_Template_Group) Offset(offset int) Monitoring_Agent_Configuration_Template_Group { + r.Options.Offset = &offset + return r +} + +// This method creates a SoftLayer_Monitoring_Agent_Configuration_Template_Group using the values provided in the template object. The template objects accountId will be overridden to use the active user's accountId as it shows on their associated SoftLayer_User_Customer object. +func (r Monitoring_Agent_Configuration_Template_Group) CreateObject(templateObject *datatypes.Monitoring_Agent_Configuration_Template_Group) (resp datatypes.Monitoring_Agent_Configuration_Template_Group, err error) { + params := []interface{}{ + templateObject, + } + err = r.Session.DoRequest("SoftLayer_Monitoring_Agent_Configuration_Template_Group", "createObject", params, &r.Options, &resp) + return +} + +// Deletes a customer configuration template group. +func (r Monitoring_Agent_Configuration_Template_Group) DeleteObject() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Monitoring_Agent_Configuration_Template_Group", "deleteObject", nil, &r.Options, &resp) + return +} + +// This method edits an existing SoftLayer_Monitoring_Agent_Configuration_Template_Group using the values passed in the $object parameter. The $object parameter should use the same structure as a SoftLayer_Monitoring_Agent_Configuration_Template_Group object. +func (r Monitoring_Agent_Configuration_Template_Group) EditObject(templateObject *datatypes.Monitoring_Agent_Configuration_Template_Group) (resp bool, err error) { + params := []interface{}{ + templateObject, + } + err = r.Session.DoRequest("SoftLayer_Monitoring_Agent_Configuration_Template_Group", "editObject", params, &r.Options, &resp) + return +} + +// Retrieve +func (r Monitoring_Agent_Configuration_Template_Group) GetAccount() (resp datatypes.Account, err error) { + err = r.Session.DoRequest("SoftLayer_Monitoring_Agent_Configuration_Template_Group", "getAccount", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Monitoring_Agent_Configuration_Template_Group) GetAllObjects() (resp []datatypes.Monitoring_Agent_Configuration_Template_Group, err error) { + err = r.Session.DoRequest("SoftLayer_Monitoring_Agent_Configuration_Template_Group", "getAllObjects", nil, &r.Options, &resp) + return +} + +// This method retrieves an array of SoftLayer_Monitoring_Agent_Configuration_Template_Group objects that are available to the active user's account. The packageId parameter is not currently used. +func (r Monitoring_Agent_Configuration_Template_Group) GetConfigurationGroups(packageId *int) (resp []datatypes.Monitoring_Agent_Configuration_Template_Group, err error) { + params := []interface{}{ + packageId, + } + err = r.Session.DoRequest("SoftLayer_Monitoring_Agent_Configuration_Template_Group", "getConfigurationGroups", params, &r.Options, &resp) + return +} + +// Retrieve +func (r Monitoring_Agent_Configuration_Template_Group) GetConfigurationTemplateReferences() (resp []datatypes.Monitoring_Agent_Configuration_Template_Group_Reference, err error) { + err = r.Session.DoRequest("SoftLayer_Monitoring_Agent_Configuration_Template_Group", "getConfigurationTemplateReferences", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Monitoring_Agent_Configuration_Template_Group) GetConfigurationTemplates() (resp []datatypes.Configuration_Template, err error) { + err = r.Session.DoRequest("SoftLayer_Monitoring_Agent_Configuration_Template_Group", "getConfigurationTemplates", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Monitoring_Agent_Configuration_Template_Group) GetItem() (resp datatypes.Product_Item, err error) { + err = r.Session.DoRequest("SoftLayer_Monitoring_Agent_Configuration_Template_Group", "getItem", nil, &r.Options, &resp) + return +} + +// This method retrieves a monitoring agent configuration template group whose identifier corresponds to the value provided in the initialization parameter passed to the SoftLayer_Monitoring_Agent_Configuration_Template_Group service. +func (r Monitoring_Agent_Configuration_Template_Group) GetObject() (resp datatypes.Monitoring_Agent_Configuration_Template_Group, err error) { + err = r.Session.DoRequest("SoftLayer_Monitoring_Agent_Configuration_Template_Group", "getObject", nil, &r.Options, &resp) + return +} + +// SoftLayer_Monitoring_Agent_Configuration_Template_Group_Reference class holds the reference information, essentially a SQL join, between a monitoring configuration group and agent configuration templates. +type Monitoring_Agent_Configuration_Template_Group_Reference struct { + Session *session.Session + Options sl.Options +} + +// GetMonitoringAgentConfigurationTemplateGroupReferenceService returns an instance of the Monitoring_Agent_Configuration_Template_Group_Reference SoftLayer service +func GetMonitoringAgentConfigurationTemplateGroupReferenceService(sess *session.Session) Monitoring_Agent_Configuration_Template_Group_Reference { + return Monitoring_Agent_Configuration_Template_Group_Reference{Session: sess} +} + +func (r Monitoring_Agent_Configuration_Template_Group_Reference) Id(id int) Monitoring_Agent_Configuration_Template_Group_Reference { + r.Options.Id = &id + return r +} + +func (r Monitoring_Agent_Configuration_Template_Group_Reference) Mask(mask string) Monitoring_Agent_Configuration_Template_Group_Reference { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Monitoring_Agent_Configuration_Template_Group_Reference) Filter(filter string) Monitoring_Agent_Configuration_Template_Group_Reference { + r.Options.Filter = filter + return r +} + +func (r Monitoring_Agent_Configuration_Template_Group_Reference) Limit(limit int) Monitoring_Agent_Configuration_Template_Group_Reference { + r.Options.Limit = &limit + return r +} + +func (r Monitoring_Agent_Configuration_Template_Group_Reference) Offset(offset int) Monitoring_Agent_Configuration_Template_Group_Reference { + r.Options.Offset = &offset + return r +} + +// This method creates a monitoring agent configuration template group reference by passing in an object with the SoftLayer_Monitoring_Agent_Configuration_Template_Group_Reference structure as the $templateObject parameter. +func (r Monitoring_Agent_Configuration_Template_Group_Reference) CreateObject(templateObject *datatypes.Monitoring_Agent_Configuration_Template_Group_Reference) (resp datatypes.Monitoring_Agent_Configuration_Template_Group_Reference, err error) { + params := []interface{}{ + templateObject, + } + err = r.Session.DoRequest("SoftLayer_Monitoring_Agent_Configuration_Template_Group_Reference", "createObject", params, &r.Options, &resp) + return +} + +// This method creates monitoring agent configuration template group references by passing in an array of objects with the SoftLayer_Monitoring_Agent_Configuration_Template_Group_Reference structure as the $templateObjects parameter. Setting the $bulkCommit parameter to true will commit the changes in one transaction, false will commit after each object is created. +func (r Monitoring_Agent_Configuration_Template_Group_Reference) CreateObjects(templateObjects []datatypes.Monitoring_Agent_Configuration_Template_Group_Reference) (resp bool, err error) { + params := []interface{}{ + templateObjects, + } + err = r.Session.DoRequest("SoftLayer_Monitoring_Agent_Configuration_Template_Group_Reference", "createObjects", params, &r.Options, &resp) + return +} + +// This method updates a SoftLayer_Monitoring_Agent_Configuration_Template_Group_Reference record by passing in a modified instance of the object. +func (r Monitoring_Agent_Configuration_Template_Group_Reference) EditObject(templateObject *datatypes.Monitoring_Agent_Configuration_Template_Group_Reference) (resp bool, err error) { + params := []interface{}{ + templateObject, + } + err = r.Session.DoRequest("SoftLayer_Monitoring_Agent_Configuration_Template_Group_Reference", "editObject", params, &r.Options, &resp) + return +} + +// This method updates a set of SoftLayer_Monitoring_Agent_Configuration_Template_Group_Reference records by passing in an array of modified instances of the objects. Setting the $bulkCommit parameter to true will commit the changes in one transaction, false will commit after each object is updated. +func (r Monitoring_Agent_Configuration_Template_Group_Reference) EditObjects(templateObjects []datatypes.Monitoring_Agent_Configuration_Template_Group_Reference) (resp bool, err error) { + params := []interface{}{ + templateObjects, + } + err = r.Session.DoRequest("SoftLayer_Monitoring_Agent_Configuration_Template_Group_Reference", "editObjects", params, &r.Options, &resp) + return +} + +// This method retrieves all SoftLayer_Monitoring_Agent_Configuration_Template_Group_Reference objects accessible to the active user. +func (r Monitoring_Agent_Configuration_Template_Group_Reference) GetAllObjects() (resp []datatypes.Monitoring_Agent_Configuration_Template_Group_Reference, err error) { + err = r.Session.DoRequest("SoftLayer_Monitoring_Agent_Configuration_Template_Group_Reference", "getAllObjects", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Monitoring_Agent_Configuration_Template_Group_Reference) GetConfigurationTemplate() (resp datatypes.Configuration_Template, err error) { + err = r.Session.DoRequest("SoftLayer_Monitoring_Agent_Configuration_Template_Group_Reference", "getConfigurationTemplate", nil, &r.Options, &resp) + return +} + +// This method retrieves a monitoring agent configuration template group reference whose identifier corresponds to the value provided in the initialization parameter passed to the SoftLayer_Monitoring_Agent_Configuration_Template_Group_Reference service. +func (r Monitoring_Agent_Configuration_Template_Group_Reference) GetObject() (resp datatypes.Monitoring_Agent_Configuration_Template_Group_Reference, err error) { + err = r.Session.DoRequest("SoftLayer_Monitoring_Agent_Configuration_Template_Group_Reference", "getObject", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Monitoring_Agent_Configuration_Template_Group_Reference) GetTemplateGroup() (resp datatypes.Monitoring_Agent_Configuration_Template_Group, err error) { + err = r.Session.DoRequest("SoftLayer_Monitoring_Agent_Configuration_Template_Group_Reference", "getTemplateGroup", nil, &r.Options, &resp) + return +} + +// Monitoring agent configuration value +type Monitoring_Agent_Configuration_Value struct { + Session *session.Session + Options sl.Options +} + +// GetMonitoringAgentConfigurationValueService returns an instance of the Monitoring_Agent_Configuration_Value SoftLayer service +func GetMonitoringAgentConfigurationValueService(sess *session.Session) Monitoring_Agent_Configuration_Value { + return Monitoring_Agent_Configuration_Value{Session: sess} +} + +func (r Monitoring_Agent_Configuration_Value) Id(id int) Monitoring_Agent_Configuration_Value { + r.Options.Id = &id + return r +} + +func (r Monitoring_Agent_Configuration_Value) Mask(mask string) Monitoring_Agent_Configuration_Value { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Monitoring_Agent_Configuration_Value) Filter(filter string) Monitoring_Agent_Configuration_Value { + r.Options.Filter = filter + return r +} + +func (r Monitoring_Agent_Configuration_Value) Limit(limit int) Monitoring_Agent_Configuration_Value { + r.Options.Limit = &limit + return r +} + +func (r Monitoring_Agent_Configuration_Value) Offset(offset int) Monitoring_Agent_Configuration_Value { + r.Options.Offset = &offset + return r +} + +// Retrieve +func (r Monitoring_Agent_Configuration_Value) GetDefinition() (resp datatypes.Configuration_Template_Section_Definition, err error) { + err = r.Session.DoRequest("SoftLayer_Monitoring_Agent_Configuration_Value", "getDefinition", nil, &r.Options, &resp) + return +} + +// Retrieve The metric data type used to retrieve metric data currently being tracked. +func (r Monitoring_Agent_Configuration_Value) GetMetricDataType() (resp datatypes.Container_Metric_Data_Type, err error) { + err = r.Session.DoRequest("SoftLayer_Monitoring_Agent_Configuration_Value", "getMetricDataType", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Monitoring_Agent_Configuration_Value) GetMonitoringAgent() (resp datatypes.Monitoring_Agent, err error) { + err = r.Session.DoRequest("SoftLayer_Monitoring_Agent_Configuration_Value", "getMonitoringAgent", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Monitoring_Agent_Configuration_Value) GetObject() (resp datatypes.Monitoring_Agent_Configuration_Value, err error) { + err = r.Session.DoRequest("SoftLayer_Monitoring_Agent_Configuration_Value", "getObject", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Monitoring_Agent_Configuration_Value) GetProfile() (resp datatypes.Configuration_Template_Section_Profile, err error) { + err = r.Session.DoRequest("SoftLayer_Monitoring_Agent_Configuration_Value", "getProfile", nil, &r.Options, &resp) + return +} + +// Monitoring agent status +type Monitoring_Agent_Status struct { + Session *session.Session + Options sl.Options +} + +// GetMonitoringAgentStatusService returns an instance of the Monitoring_Agent_Status SoftLayer service +func GetMonitoringAgentStatusService(sess *session.Session) Monitoring_Agent_Status { + return Monitoring_Agent_Status{Session: sess} +} + +func (r Monitoring_Agent_Status) Id(id int) Monitoring_Agent_Status { + r.Options.Id = &id + return r +} + +func (r Monitoring_Agent_Status) Mask(mask string) Monitoring_Agent_Status { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Monitoring_Agent_Status) Filter(filter string) Monitoring_Agent_Status { + r.Options.Filter = filter + return r +} + +func (r Monitoring_Agent_Status) Limit(limit int) Monitoring_Agent_Status { + r.Options.Limit = &limit + return r +} + +func (r Monitoring_Agent_Status) Offset(offset int) Monitoring_Agent_Status { + r.Options.Offset = &offset + return r +} + +// no documentation yet +func (r Monitoring_Agent_Status) GetObject() (resp datatypes.Monitoring_Agent_Status, err error) { + err = r.Session.DoRequest("SoftLayer_Monitoring_Agent_Status", "getObject", nil, &r.Options, &resp) + return +} + +// The SoftLayer_Monitoring_Robot data type contains general information relating to a monitoring robot. +type Monitoring_Robot struct { + Session *session.Session + Options sl.Options +} + +// GetMonitoringRobotService returns an instance of the Monitoring_Robot SoftLayer service +func GetMonitoringRobotService(sess *session.Session) Monitoring_Robot { + return Monitoring_Robot{Session: sess} +} + +func (r Monitoring_Robot) Id(id int) Monitoring_Robot { + r.Options.Id = &id + return r +} + +func (r Monitoring_Robot) Mask(mask string) Monitoring_Robot { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Monitoring_Robot) Filter(filter string) Monitoring_Robot { + r.Options.Filter = filter + return r +} + +func (r Monitoring_Robot) Limit(limit int) Monitoring_Robot { + r.Options.Limit = &limit + return r +} + +func (r Monitoring_Robot) Offset(offset int) Monitoring_Robot { + r.Options.Offset = &offset + return r +} + +// Checks if a monitoring robot can communicate with SoftLayer monitoring management system via the private network. +// +// TCP port 48000 - 48002 must be open on your server or your virtual server in order for this test to succeed. +func (r Monitoring_Robot) CheckConnection() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Monitoring_Robot", "checkConnection", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Monitoring_Robot) DeployMonitoringAgents(configurationTemplateGroup *datatypes.Monitoring_Agent_Configuration_Template_Group) (resp datatypes.Provisioning_Version1_Transaction, err error) { + params := []interface{}{ + configurationTemplateGroup, + } + err = r.Session.DoRequest("SoftLayer_Monitoring_Robot", "deployMonitoringAgents", params, &r.Options, &resp) + return +} + +// Retrieve The account associated with the corresponding robot. +func (r Monitoring_Robot) GetAccount() (resp datatypes.Account, err error) { + err = r.Session.DoRequest("SoftLayer_Monitoring_Robot", "getAccount", nil, &r.Options, &resp) + return +} + +// Returns available configuration template groups for this monitoring agent. +func (r Monitoring_Robot) GetAvailableConfigurationGroups() (resp []datatypes.Monitoring_Agent_Configuration_Template_Group, err error) { + err = r.Session.DoRequest("SoftLayer_Monitoring_Robot", "getAvailableConfigurationGroups", nil, &r.Options, &resp) + return +} + +// Retrieve The program (monitoring agent) that gets details of a system or application and reporting of the metric data and triggers alarms for predefined events. +func (r Monitoring_Robot) GetMonitoringAgents() (resp []datatypes.Monitoring_Agent, err error) { + err = r.Session.DoRequest("SoftLayer_Monitoring_Robot", "getMonitoringAgents", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Monitoring_Robot) GetObject() (resp datatypes.Monitoring_Robot, err error) { + err = r.Session.DoRequest("SoftLayer_Monitoring_Robot", "getObject", nil, &r.Options, &resp) + return +} + +// Retrieve The current status of the robot. +func (r Monitoring_Robot) GetRobotStatus() (resp datatypes.Monitoring_Robot_Status, err error) { + err = r.Session.DoRequest("SoftLayer_Monitoring_Robot", "getRobotStatus", nil, &r.Options, &resp) + return +} + +// Retrieve The SoftLayer_Software_Component that corresponds to the robot installation on the server. +func (r Monitoring_Robot) GetSoftwareComponent() (resp datatypes.Software_Component, err error) { + err = r.Session.DoRequest("SoftLayer_Monitoring_Robot", "getSoftwareComponent", nil, &r.Options, &resp) + return +} + +// If our monitoring management system is not able to connect to your monitoring robot, it sets the robot status to "Limited Connectivity". Robots in this status will not be process by our monitoring management system. You cannot manage monitoring agents either. +// +// Use this method to resets monitoring robot status to "Active" to indicate the connection issue is resolved. +func (r Monitoring_Robot) ResetStatus() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Monitoring_Robot", "resetStatus", nil, &r.Options, &resp) + return +} diff --git a/vendor/github.com/softlayer/softlayer-go/services/network.go b/vendor/github.com/softlayer/softlayer-go/services/network.go new file mode 100644 index 000000000..addbee26d --- /dev/null +++ b/vendor/github.com/softlayer/softlayer-go/services/network.go @@ -0,0 +1,13667 @@ +/** + * Copyright 2016 IBM Corp. + * + * 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. + */ + +/** + * AUTOMATICALLY GENERATED CODE - DO NOT MODIFY + */ + +package services + +import ( + "fmt" + "strings" + + "github.com/softlayer/softlayer-go/datatypes" + "github.com/softlayer/softlayer-go/session" + "github.com/softlayer/softlayer-go/sl" +) + +// no documentation yet +type Network struct { + Session *session.Session + Options sl.Options +} + +// GetNetworkService returns an instance of the Network SoftLayer service +func GetNetworkService(sess *session.Session) Network { + return Network{Session: sess} +} + +func (r Network) Id(id int) Network { + r.Options.Id = &id + return r +} + +func (r Network) Mask(mask string) Network { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Network) Filter(filter string) Network { + r.Options.Filter = filter + return r +} + +func (r Network) Limit(limit int) Network { + r.Options.Limit = &limit + return r +} + +func (r Network) Offset(offset int) Network { + r.Options.Offset = &offset + return r +} + +// Provide a template containing the following properties to create a Network: +// * networkIdentifier +// * cidr +// * name +// +// +// The ``networkIdentifier`` must be an IP address within RFC 1918 blocks: +// * 192.168.0.0/16 +// * 172.16.0.0/12 +// * 10.0.0.0/8 +// The ``cidr`` must be an integer between 16 and 24, inclusive. The ``networkIdentifier``/``cidr`` must represent a valid subnet specification. The ``name`` must not be empty, but otherwise can contain up to 50 characters of user specified information to identify the Network. +// +// The subnet specification of the Network bounds the IP address space which can be utilized and constrains the creation of Subnets within the Network. +// +// Example networkIdentifier/CIDR combinations: +// * 192.168.0.0/16 +// * 192.168.0.0/17 +// * 172.16.0.0/16 +// * 172.31.0.0/16 +// * 10.0.0.0/16 +// * 10.255.0.0/16 +func (r Network) CreateObject(templateObject *datatypes.Network) (resp datatypes.Network, err error) { + params := []interface{}{ + templateObject, + } + err = r.Session.DoRequest("SoftLayer_Network", "createObject", params, &r.Options, &resp) + return +} + +// Creation of a Subnet is necessary prior to provisioning compute resources into a Network. In order to create a Subnet, both a [[SoftLayer_Network_Subnet|Subnet]] and [[SoftLayer_Network_Pod|Pod]] must be specified. The Pod determines where the Subnet will be available for use by compute resources. +// +// Provide a Subnet template containing the following properties: +// * networkIdentifier +// * cidr +// The ``networkIdentifier`` must represent an IP address within that specified by the Network. The ``cidr`` must be an integer between 24 and 29, inclusive, and represent a subnet size smaller than the Network's. The ``networkIdentifier``/``cidr`` must represent a valid subnet specification. +// +// Provide a Pod template containing the following property: +// * name +// The ``name`` must represent a valid Pod e.g. sjc01.pod02. See [[SoftLayer_Network_Pod (type)]] for more information. +// +// The following constraints apply to Subnet creation: +// * It must fit within the bounds of the Network. +// * It must be no larger than /24 and no smaller than /29. +// * Its size must not equal that of the Network. This implies that a fully +// utilized Network will have a minimum of two Subnets. +// * The Pod must support the ability to create Networks by having the +// SUPPORTS_CUSTOMER_DEFINED_NETWORK capability. See [[SoftLayer_Network_Pod/getCapabilities]]. +func (r Network) CreateSubnet(subnet *datatypes.Network_Subnet, pod *datatypes.Network_Pod) (resp datatypes.Network_Subnet, err error) { + params := []interface{}{ + subnet, + pod, + } + err = r.Session.DoRequest("SoftLayer_Network", "createSubnet", params, &r.Options, &resp) + return +} + +// Remove the specified Network along with any Subnets. +func (r Network) DeleteObject() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Network", "deleteObject", nil, &r.Options, &resp) + return +} + +// +// +// Provide a Subnet template containing the following properties: +// * networkIdentifier +// * cidr +// The ``networkIdentifier`` must represent an IP address within that specified by the Network. The ``cidr`` must be an integer between 24 and 29, inclusive, and represent a subnet size smaller than the Network's. The ``networkIdentifier``/``cidr`` must represent a valid subnet specification. Or: +// * id +// The ``id`` must identify a Subnet in the Network. If the ``id`` is provided, the ``networkIdentifier``/``cidr`` will be ignored. +// +// Subnets may only be removed when no compute resources are utilizing them. +func (r Network) DeleteSubnet(subnet *datatypes.Network_Subnet) (resp bool, err error) { + params := []interface{}{ + subnet, + } + err = r.Session.DoRequest("SoftLayer_Network", "deleteSubnet", params, &r.Options, &resp) + return +} + +// Modify either the ``name`` or ``notes`` properties of a Network. +func (r Network) EditObject(templateObject *datatypes.Network) (resp bool, err error) { + params := []interface{}{ + templateObject, + } + err = r.Session.DoRequest("SoftLayer_Network", "editObject", params, &r.Options, &resp) + return +} + +// no documentation yet +func (r Network) GetAllObjects() (resp []datatypes.Network, err error) { + err = r.Session.DoRequest("SoftLayer_Network", "getAllObjects", nil, &r.Options, &resp) + return +} + +// Retrieve The size of the Network specified in CIDR notation. Specified in conjunction with the ``networkIdentifier`` to describe the bounding subnet size for the Network. Required for creation. See [[SoftLayer_Network/createObject]] documentation for creation details. +func (r Network) GetCidr() (resp int, err error) { + err = r.Session.DoRequest("SoftLayer_Network", "getCidr", nil, &r.Options, &resp) + return +} + +// Retrieve A name for the Network. This is required during creation of a Network and is entirely user defined. +func (r Network) GetName() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_Network", "getName", nil, &r.Options, &resp) + return +} + +// Retrieve The starting IP address of the Network. Specified in conjunction with the ``cidr`` property to specify the bounding IP address space for the Network. Required for creation. See [[SoftLayer_Network/createObject]] documentation for creation details. +func (r Network) GetNetworkIdentifier() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_Network", "getNetworkIdentifier", nil, &r.Options, &resp) + return +} + +// Retrieve Notes, or a description of the Network. This is entirely user defined. +func (r Network) GetNotes() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_Network", "getNotes", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Network) GetObject() (resp datatypes.Network, err error) { + err = r.Session.DoRequest("SoftLayer_Network", "getObject", nil, &r.Options, &resp) + return +} + +// Retrieve The Subnets within the Network. These represent the realized segments of the Network and reside within a [[SoftLayer_Network_Pod|Pod]]. A Subnet must be specified when provisioning a compute resource within a Network. +func (r Network) GetSubnets() (resp []datatypes.Network_Subnet, err error) { + err = r.Session.DoRequest("SoftLayer_Network", "getSubnets", nil, &r.Options, &resp) + return +} + +// The SoftLayer_Network_Application_Delivery_Controller data type models a single instance of an application delivery controller. Local properties are read only, except for a ''notes'' property, which can be used to describe your application delivery controller service. The type's relational properties provide more information to the service's function and login information to the controller's backend management if advanced view is enabled. +type Network_Application_Delivery_Controller struct { + Session *session.Session + Options sl.Options +} + +// GetNetworkApplicationDeliveryControllerService returns an instance of the Network_Application_Delivery_Controller SoftLayer service +func GetNetworkApplicationDeliveryControllerService(sess *session.Session) Network_Application_Delivery_Controller { + return Network_Application_Delivery_Controller{Session: sess} +} + +func (r Network_Application_Delivery_Controller) Id(id int) Network_Application_Delivery_Controller { + r.Options.Id = &id + return r +} + +func (r Network_Application_Delivery_Controller) Mask(mask string) Network_Application_Delivery_Controller { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Network_Application_Delivery_Controller) Filter(filter string) Network_Application_Delivery_Controller { + r.Options.Filter = filter + return r +} + +func (r Network_Application_Delivery_Controller) Limit(limit int) Network_Application_Delivery_Controller { + r.Options.Limit = &limit + return r +} + +func (r Network_Application_Delivery_Controller) Offset(offset int) Network_Application_Delivery_Controller { + r.Options.Offset = &offset + return r +} + +// Create or add to an application delivery controller based load balancer service. The loadBalancer parameter must have its ''name'', ''type'', ''sourcePort'', and ''virtualIpAddress'' properties populated. Changes are reflected immediately in the application delivery controller. +func (r Network_Application_Delivery_Controller) CreateLiveLoadBalancer(loadBalancer *datatypes.Network_LoadBalancer_VirtualIpAddress) (resp bool, err error) { + params := []interface{}{ + loadBalancer, + } + err = r.Session.DoRequest("SoftLayer_Network_Application_Delivery_Controller", "createLiveLoadBalancer", params, &r.Options, &resp) + return +} + +// Remove a virtual IP address from an application delivery controller based load balancer. Only the ''name'' property in the loadBalancer parameter must be populated. Changes are reflected immediately in the application delivery controller. +func (r Network_Application_Delivery_Controller) DeleteLiveLoadBalancer(loadBalancer *datatypes.Network_LoadBalancer_VirtualIpAddress) (resp bool, err error) { + params := []interface{}{ + loadBalancer, + } + err = r.Session.DoRequest("SoftLayer_Network_Application_Delivery_Controller", "deleteLiveLoadBalancer", params, &r.Options, &resp) + return +} + +// Remove an entire load balancer service, including all virtual IP addresses, from and application delivery controller based load balancer. The ''name'' property the and ''name'' property within the ''vip'' property of the service parameter must be provided. Changes are reflected immediately in the application delivery controller. +func (r Network_Application_Delivery_Controller) DeleteLiveLoadBalancerService(service *datatypes.Network_LoadBalancer_Service) (err error) { + var resp datatypes.Void + params := []interface{}{ + service, + } + err = r.Session.DoRequest("SoftLayer_Network_Application_Delivery_Controller", "deleteLiveLoadBalancerService", params, &r.Options, &resp) + return +} + +// Edit an applications delivery controller record. Currently only a controller's notes property is editable. +func (r Network_Application_Delivery_Controller) EditObject(templateObject *datatypes.Network_Application_Delivery_Controller) (resp bool, err error) { + params := []interface{}{ + templateObject, + } + err = r.Session.DoRequest("SoftLayer_Network_Application_Delivery_Controller", "editObject", params, &r.Options, &resp) + return +} + +// Retrieve The SoftLayer customer account that owns an application delivery controller record. +func (r Network_Application_Delivery_Controller) GetAccount() (resp datatypes.Account, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Application_Delivery_Controller", "getAccount", nil, &r.Options, &resp) + return +} + +// Retrieve The average daily public bandwidth usage for the current billing cycle. +func (r Network_Application_Delivery_Controller) GetAverageDailyPublicBandwidthUsage() (resp datatypes.Float64, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Application_Delivery_Controller", "getAverageDailyPublicBandwidthUsage", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Network_Application_Delivery_Controller) GetBandwidthDataByDate(startDateTime *datatypes.Time, endDateTime *datatypes.Time, networkType *string) (resp []datatypes.Metric_Tracking_Object_Data, err error) { + params := []interface{}{ + startDateTime, + endDateTime, + networkType, + } + err = r.Session.DoRequest("SoftLayer_Network_Application_Delivery_Controller", "getBandwidthDataByDate", params, &r.Options, &resp) + return +} + +// Use this method when needing a bandwidth image for a single application delivery controller. It will gather the correct input parameters for the generic graphing utility based on the date ranges +func (r Network_Application_Delivery_Controller) GetBandwidthImageByDate(startDateTime *datatypes.Time, endDateTime *datatypes.Time, networkType *string) (resp datatypes.Container_Bandwidth_GraphOutputs, err error) { + params := []interface{}{ + startDateTime, + endDateTime, + networkType, + } + err = r.Session.DoRequest("SoftLayer_Network_Application_Delivery_Controller", "getBandwidthImageByDate", params, &r.Options, &resp) + return +} + +// Retrieve The billing item for a Application Delivery Controller. +func (r Network_Application_Delivery_Controller) GetBillingItem() (resp datatypes.Billing_Item_Network_Application_Delivery_Controller, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Application_Delivery_Controller", "getBillingItem", nil, &r.Options, &resp) + return +} + +// Retrieve Previous configurations for an Application Delivery Controller. +func (r Network_Application_Delivery_Controller) GetConfigurationHistory() (resp []datatypes.Network_Application_Delivery_Controller_Configuration_History, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Application_Delivery_Controller", "getConfigurationHistory", nil, &r.Options, &resp) + return +} + +// Retrieve bandwidth graph by date. +func (r Network_Application_Delivery_Controller) GetCustomBandwidthDataByDate(graphData *datatypes.Container_Graph) (resp datatypes.Container_Graph, err error) { + params := []interface{}{ + graphData, + } + err = r.Session.DoRequest("SoftLayer_Network_Application_Delivery_Controller", "getCustomBandwidthDataByDate", params, &r.Options, &resp) + return +} + +// Retrieve The datacenter that the application delivery controller resides in. +func (r Network_Application_Delivery_Controller) GetDatacenter() (resp datatypes.Location, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Application_Delivery_Controller", "getDatacenter", nil, &r.Options, &resp) + return +} + +// Retrieve A brief description of an application delivery controller record. +func (r Network_Application_Delivery_Controller) GetDescription() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Application_Delivery_Controller", "getDescription", nil, &r.Options, &resp) + return +} + +// Retrieve The date in which the license for this application delivery controller will expire. +func (r Network_Application_Delivery_Controller) GetLicenseExpirationDate() (resp datatypes.Time, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Application_Delivery_Controller", "getLicenseExpirationDate", nil, &r.Options, &resp) + return +} + +// Get the graph image for an application delivery controller service based on the supplied graph type and metric. The available graph types are: 'connections' and 'status', and the available metrics are: 'day', 'week' and 'month'. +// +// This method returns the raw binary image data. +func (r Network_Application_Delivery_Controller) GetLiveLoadBalancerServiceGraphImage(service *datatypes.Network_LoadBalancer_Service, graphType *string, metric *string) (resp []byte, err error) { + params := []interface{}{ + service, + graphType, + metric, + } + err = r.Session.DoRequest("SoftLayer_Network_Application_Delivery_Controller", "getLiveLoadBalancerServiceGraphImage", params, &r.Options, &resp) + return +} + +// Retrieve The virtual IP address records that belong to an application delivery controller based load balancer. +func (r Network_Application_Delivery_Controller) GetLoadBalancers() (resp []datatypes.Network_LoadBalancer_VirtualIpAddress, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Application_Delivery_Controller", "getLoadBalancers", nil, &r.Options, &resp) + return +} + +// Retrieve A flag indicating that this Application Delivery Controller is a managed resource. +func (r Network_Application_Delivery_Controller) GetManagedResourceFlag() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Application_Delivery_Controller", "getManagedResourceFlag", nil, &r.Options, &resp) + return +} + +// Retrieve An application delivery controller's management ip address. +func (r Network_Application_Delivery_Controller) GetManagementIpAddress() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Application_Delivery_Controller", "getManagementIpAddress", nil, &r.Options, &resp) + return +} + +// Retrieve The network VLAN that an application delivery controller resides on. +func (r Network_Application_Delivery_Controller) GetNetworkVlan() (resp datatypes.Network_Vlan, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Application_Delivery_Controller", "getNetworkVlan", nil, &r.Options, &resp) + return +} + +// Retrieve The network VLANs that an application delivery controller resides on. +func (r Network_Application_Delivery_Controller) GetNetworkVlans() (resp []datatypes.Network_Vlan, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Application_Delivery_Controller", "getNetworkVlans", nil, &r.Options, &resp) + return +} + +// getObject retrieves the SoftLayer_Network_Application_Delivery_Controller object whose ID number corresponds to the ID number of the init parameter passed to the SoftLayer_Network_Application_Delivery_Controller service. You can only retrieve application delivery controllers that are associated with your SoftLayer customer account. +func (r Network_Application_Delivery_Controller) GetObject() (resp datatypes.Network_Application_Delivery_Controller, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Application_Delivery_Controller", "getObject", nil, &r.Options, &resp) + return +} + +// Retrieve The total public outbound bandwidth for the current billing cycle. +func (r Network_Application_Delivery_Controller) GetOutboundPublicBandwidthUsage() (resp datatypes.Float64, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Application_Delivery_Controller", "getOutboundPublicBandwidthUsage", nil, &r.Options, &resp) + return +} + +// Retrieve The password used to connect to an application delivery controller's management interface when it is operating in advanced view mode. +func (r Network_Application_Delivery_Controller) GetPassword() (resp datatypes.Software_Component_Password, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Application_Delivery_Controller", "getPassword", nil, &r.Options, &resp) + return +} + +// Retrieve An application delivery controller's primary public IP address. +func (r Network_Application_Delivery_Controller) GetPrimaryIpAddress() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Application_Delivery_Controller", "getPrimaryIpAddress", nil, &r.Options, &resp) + return +} + +// Retrieve The projected public outbound bandwidth for the current billing cycle. +func (r Network_Application_Delivery_Controller) GetProjectedPublicBandwidthUsage() (resp datatypes.Float64, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Application_Delivery_Controller", "getProjectedPublicBandwidthUsage", nil, &r.Options, &resp) + return +} + +// Retrieve A network application controller's subnets. A subnet is a group of IP addresses +func (r Network_Application_Delivery_Controller) GetSubnets() (resp []datatypes.Network_Subnet, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Application_Delivery_Controller", "getSubnets", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Network_Application_Delivery_Controller) GetTagReferences() (resp []datatypes.Tag_Reference, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Application_Delivery_Controller", "getTagReferences", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Network_Application_Delivery_Controller) GetType() (resp datatypes.Network_Application_Delivery_Controller_Type, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Application_Delivery_Controller", "getType", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Network_Application_Delivery_Controller) GetVirtualIpAddresses() (resp []datatypes.Network_Application_Delivery_Controller_LoadBalancer_VirtualIpAddress, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Application_Delivery_Controller", "getVirtualIpAddresses", nil, &r.Options, &resp) + return +} + +// Restore an application delivery controller's base configuration state. The configuration will be set to what it was when initially provisioned. +func (r Network_Application_Delivery_Controller) RestoreBaseConfiguration() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Application_Delivery_Controller", "restoreBaseConfiguration", nil, &r.Options, &resp) + return +} + +// Restore an application delivery controller's configuration state. +func (r Network_Application_Delivery_Controller) RestoreConfiguration(configurationHistoryId *int) (resp bool, err error) { + params := []interface{}{ + configurationHistoryId, + } + err = r.Session.DoRequest("SoftLayer_Network_Application_Delivery_Controller", "restoreConfiguration", params, &r.Options, &resp) + return +} + +// Save an application delivery controller's configuration state. The notes property for this method is optional. +func (r Network_Application_Delivery_Controller) SaveCurrentConfiguration(notes *string) (resp datatypes.Network_Application_Delivery_Controller_Configuration_History, err error) { + params := []interface{}{ + notes, + } + err = r.Session.DoRequest("SoftLayer_Network_Application_Delivery_Controller", "saveCurrentConfiguration", params, &r.Options, &resp) + return +} + +// Update the the virtual IP address interface within an application delivery controller based load balancer identified by the ''name'' property in the loadBalancer parameter. You only need to set the properties in the loadBalancer parameter that you wish to change. Any virtual IP properties omitted or left empty are ignored. Changes are reflected immediately in the application delivery controller. +func (r Network_Application_Delivery_Controller) UpdateLiveLoadBalancer(loadBalancer *datatypes.Network_LoadBalancer_VirtualIpAddress) (resp bool, err error) { + params := []interface{}{ + loadBalancer, + } + err = r.Session.DoRequest("SoftLayer_Network_Application_Delivery_Controller", "updateLiveLoadBalancer", params, &r.Options, &resp) + return +} + +// Update the NetScaler VPX License. +// +// This service will create a transaction to update a NetScaler VPX License. After the license is updated the load balancer will reboot in order to apply the newly issued license +// +// The load balancer will be unavailable during the reboot. +func (r Network_Application_Delivery_Controller) UpdateNetScalerLicense() (resp datatypes.Provisioning_Version1_Transaction, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Application_Delivery_Controller", "updateNetScalerLicense", nil, &r.Options, &resp) + return +} + +// The SoftLayer_Network_Application_Delivery_Controller_Configuration_History data type models a single instance of a configuration history entry for an application delivery controller. The configuration history entries are used to support creating backups of an application delivery controller's configuration state in order to restore them later if needed. +type Network_Application_Delivery_Controller_Configuration_History struct { + Session *session.Session + Options sl.Options +} + +// GetNetworkApplicationDeliveryControllerConfigurationHistoryService returns an instance of the Network_Application_Delivery_Controller_Configuration_History SoftLayer service +func GetNetworkApplicationDeliveryControllerConfigurationHistoryService(sess *session.Session) Network_Application_Delivery_Controller_Configuration_History { + return Network_Application_Delivery_Controller_Configuration_History{Session: sess} +} + +func (r Network_Application_Delivery_Controller_Configuration_History) Id(id int) Network_Application_Delivery_Controller_Configuration_History { + r.Options.Id = &id + return r +} + +func (r Network_Application_Delivery_Controller_Configuration_History) Mask(mask string) Network_Application_Delivery_Controller_Configuration_History { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Network_Application_Delivery_Controller_Configuration_History) Filter(filter string) Network_Application_Delivery_Controller_Configuration_History { + r.Options.Filter = filter + return r +} + +func (r Network_Application_Delivery_Controller_Configuration_History) Limit(limit int) Network_Application_Delivery_Controller_Configuration_History { + r.Options.Limit = &limit + return r +} + +func (r Network_Application_Delivery_Controller_Configuration_History) Offset(offset int) Network_Application_Delivery_Controller_Configuration_History { + r.Options.Offset = &offset + return r +} + +// deleteObject permanently removes a configuration history record +func (r Network_Application_Delivery_Controller_Configuration_History) DeleteObject() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Application_Delivery_Controller_Configuration_History", "deleteObject", nil, &r.Options, &resp) + return +} + +// Retrieve The application delivery controller that a configuration history record belongs to. +func (r Network_Application_Delivery_Controller_Configuration_History) GetController() (resp datatypes.Network_Application_Delivery_Controller, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Application_Delivery_Controller_Configuration_History", "getController", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Network_Application_Delivery_Controller_Configuration_History) GetObject() (resp datatypes.Network_Application_Delivery_Controller_Configuration_History, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Application_Delivery_Controller_Configuration_History", "getObject", nil, &r.Options, &resp) + return +} + +// no documentation yet +type Network_Application_Delivery_Controller_LoadBalancer_Health_Attribute struct { + Session *session.Session + Options sl.Options +} + +// GetNetworkApplicationDeliveryControllerLoadBalancerHealthAttributeService returns an instance of the Network_Application_Delivery_Controller_LoadBalancer_Health_Attribute SoftLayer service +func GetNetworkApplicationDeliveryControllerLoadBalancerHealthAttributeService(sess *session.Session) Network_Application_Delivery_Controller_LoadBalancer_Health_Attribute { + return Network_Application_Delivery_Controller_LoadBalancer_Health_Attribute{Session: sess} +} + +func (r Network_Application_Delivery_Controller_LoadBalancer_Health_Attribute) Id(id int) Network_Application_Delivery_Controller_LoadBalancer_Health_Attribute { + r.Options.Id = &id + return r +} + +func (r Network_Application_Delivery_Controller_LoadBalancer_Health_Attribute) Mask(mask string) Network_Application_Delivery_Controller_LoadBalancer_Health_Attribute { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Network_Application_Delivery_Controller_LoadBalancer_Health_Attribute) Filter(filter string) Network_Application_Delivery_Controller_LoadBalancer_Health_Attribute { + r.Options.Filter = filter + return r +} + +func (r Network_Application_Delivery_Controller_LoadBalancer_Health_Attribute) Limit(limit int) Network_Application_Delivery_Controller_LoadBalancer_Health_Attribute { + r.Options.Limit = &limit + return r +} + +func (r Network_Application_Delivery_Controller_LoadBalancer_Health_Attribute) Offset(offset int) Network_Application_Delivery_Controller_LoadBalancer_Health_Attribute { + r.Options.Offset = &offset + return r +} + +// Retrieve +func (r Network_Application_Delivery_Controller_LoadBalancer_Health_Attribute) GetHealthCheck() (resp datatypes.Network_Application_Delivery_Controller_LoadBalancer_Health_Check, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Application_Delivery_Controller_LoadBalancer_Health_Attribute", "getHealthCheck", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Network_Application_Delivery_Controller_LoadBalancer_Health_Attribute) GetObject() (resp datatypes.Network_Application_Delivery_Controller_LoadBalancer_Health_Attribute, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Application_Delivery_Controller_LoadBalancer_Health_Attribute", "getObject", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Network_Application_Delivery_Controller_LoadBalancer_Health_Attribute) GetType() (resp datatypes.Network_Application_Delivery_Controller_LoadBalancer_Health_Attribute_Type, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Application_Delivery_Controller_LoadBalancer_Health_Attribute", "getType", nil, &r.Options, &resp) + return +} + +// no documentation yet +type Network_Application_Delivery_Controller_LoadBalancer_Health_Attribute_Type struct { + Session *session.Session + Options sl.Options +} + +// GetNetworkApplicationDeliveryControllerLoadBalancerHealthAttributeTypeService returns an instance of the Network_Application_Delivery_Controller_LoadBalancer_Health_Attribute_Type SoftLayer service +func GetNetworkApplicationDeliveryControllerLoadBalancerHealthAttributeTypeService(sess *session.Session) Network_Application_Delivery_Controller_LoadBalancer_Health_Attribute_Type { + return Network_Application_Delivery_Controller_LoadBalancer_Health_Attribute_Type{Session: sess} +} + +func (r Network_Application_Delivery_Controller_LoadBalancer_Health_Attribute_Type) Id(id int) Network_Application_Delivery_Controller_LoadBalancer_Health_Attribute_Type { + r.Options.Id = &id + return r +} + +func (r Network_Application_Delivery_Controller_LoadBalancer_Health_Attribute_Type) Mask(mask string) Network_Application_Delivery_Controller_LoadBalancer_Health_Attribute_Type { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Network_Application_Delivery_Controller_LoadBalancer_Health_Attribute_Type) Filter(filter string) Network_Application_Delivery_Controller_LoadBalancer_Health_Attribute_Type { + r.Options.Filter = filter + return r +} + +func (r Network_Application_Delivery_Controller_LoadBalancer_Health_Attribute_Type) Limit(limit int) Network_Application_Delivery_Controller_LoadBalancer_Health_Attribute_Type { + r.Options.Limit = &limit + return r +} + +func (r Network_Application_Delivery_Controller_LoadBalancer_Health_Attribute_Type) Offset(offset int) Network_Application_Delivery_Controller_LoadBalancer_Health_Attribute_Type { + r.Options.Offset = &offset + return r +} + +// no documentation yet +func (r Network_Application_Delivery_Controller_LoadBalancer_Health_Attribute_Type) GetAllObjects() (resp []datatypes.Network_Application_Delivery_Controller_LoadBalancer_Health_Attribute_Type, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Application_Delivery_Controller_LoadBalancer_Health_Attribute_Type", "getAllObjects", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Network_Application_Delivery_Controller_LoadBalancer_Health_Attribute_Type) GetObject() (resp datatypes.Network_Application_Delivery_Controller_LoadBalancer_Health_Attribute_Type, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Application_Delivery_Controller_LoadBalancer_Health_Attribute_Type", "getObject", nil, &r.Options, &resp) + return +} + +// no documentation yet +type Network_Application_Delivery_Controller_LoadBalancer_Health_Check struct { + Session *session.Session + Options sl.Options +} + +// GetNetworkApplicationDeliveryControllerLoadBalancerHealthCheckService returns an instance of the Network_Application_Delivery_Controller_LoadBalancer_Health_Check SoftLayer service +func GetNetworkApplicationDeliveryControllerLoadBalancerHealthCheckService(sess *session.Session) Network_Application_Delivery_Controller_LoadBalancer_Health_Check { + return Network_Application_Delivery_Controller_LoadBalancer_Health_Check{Session: sess} +} + +func (r Network_Application_Delivery_Controller_LoadBalancer_Health_Check) Id(id int) Network_Application_Delivery_Controller_LoadBalancer_Health_Check { + r.Options.Id = &id + return r +} + +func (r Network_Application_Delivery_Controller_LoadBalancer_Health_Check) Mask(mask string) Network_Application_Delivery_Controller_LoadBalancer_Health_Check { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Network_Application_Delivery_Controller_LoadBalancer_Health_Check) Filter(filter string) Network_Application_Delivery_Controller_LoadBalancer_Health_Check { + r.Options.Filter = filter + return r +} + +func (r Network_Application_Delivery_Controller_LoadBalancer_Health_Check) Limit(limit int) Network_Application_Delivery_Controller_LoadBalancer_Health_Check { + r.Options.Limit = &limit + return r +} + +func (r Network_Application_Delivery_Controller_LoadBalancer_Health_Check) Offset(offset int) Network_Application_Delivery_Controller_LoadBalancer_Health_Check { + r.Options.Offset = &offset + return r +} + +// Retrieve +func (r Network_Application_Delivery_Controller_LoadBalancer_Health_Check) GetAttributes() (resp []datatypes.Network_Application_Delivery_Controller_LoadBalancer_Health_Attribute, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Application_Delivery_Controller_LoadBalancer_Health_Check", "getAttributes", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Network_Application_Delivery_Controller_LoadBalancer_Health_Check) GetObject() (resp datatypes.Network_Application_Delivery_Controller_LoadBalancer_Health_Check, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Application_Delivery_Controller_LoadBalancer_Health_Check", "getObject", nil, &r.Options, &resp) + return +} + +// Retrieve Collection of scale load balancers that use this health check. +func (r Network_Application_Delivery_Controller_LoadBalancer_Health_Check) GetScaleLoadBalancers() (resp []datatypes.Scale_LoadBalancer, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Application_Delivery_Controller_LoadBalancer_Health_Check", "getScaleLoadBalancers", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Network_Application_Delivery_Controller_LoadBalancer_Health_Check) GetServices() (resp []datatypes.Network_Application_Delivery_Controller_LoadBalancer_Service, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Application_Delivery_Controller_LoadBalancer_Health_Check", "getServices", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Network_Application_Delivery_Controller_LoadBalancer_Health_Check) GetType() (resp datatypes.Network_Application_Delivery_Controller_LoadBalancer_Health_Check_Type, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Application_Delivery_Controller_LoadBalancer_Health_Check", "getType", nil, &r.Options, &resp) + return +} + +// no documentation yet +type Network_Application_Delivery_Controller_LoadBalancer_Health_Check_Type struct { + Session *session.Session + Options sl.Options +} + +// GetNetworkApplicationDeliveryControllerLoadBalancerHealthCheckTypeService returns an instance of the Network_Application_Delivery_Controller_LoadBalancer_Health_Check_Type SoftLayer service +func GetNetworkApplicationDeliveryControllerLoadBalancerHealthCheckTypeService(sess *session.Session) Network_Application_Delivery_Controller_LoadBalancer_Health_Check_Type { + return Network_Application_Delivery_Controller_LoadBalancer_Health_Check_Type{Session: sess} +} + +func (r Network_Application_Delivery_Controller_LoadBalancer_Health_Check_Type) Id(id int) Network_Application_Delivery_Controller_LoadBalancer_Health_Check_Type { + r.Options.Id = &id + return r +} + +func (r Network_Application_Delivery_Controller_LoadBalancer_Health_Check_Type) Mask(mask string) Network_Application_Delivery_Controller_LoadBalancer_Health_Check_Type { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Network_Application_Delivery_Controller_LoadBalancer_Health_Check_Type) Filter(filter string) Network_Application_Delivery_Controller_LoadBalancer_Health_Check_Type { + r.Options.Filter = filter + return r +} + +func (r Network_Application_Delivery_Controller_LoadBalancer_Health_Check_Type) Limit(limit int) Network_Application_Delivery_Controller_LoadBalancer_Health_Check_Type { + r.Options.Limit = &limit + return r +} + +func (r Network_Application_Delivery_Controller_LoadBalancer_Health_Check_Type) Offset(offset int) Network_Application_Delivery_Controller_LoadBalancer_Health_Check_Type { + r.Options.Offset = &offset + return r +} + +// no documentation yet +func (r Network_Application_Delivery_Controller_LoadBalancer_Health_Check_Type) GetAllObjects() (resp []datatypes.Network_Application_Delivery_Controller_LoadBalancer_Health_Check_Type, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Application_Delivery_Controller_LoadBalancer_Health_Check_Type", "getAllObjects", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Network_Application_Delivery_Controller_LoadBalancer_Health_Check_Type) GetObject() (resp datatypes.Network_Application_Delivery_Controller_LoadBalancer_Health_Check_Type, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Application_Delivery_Controller_LoadBalancer_Health_Check_Type", "getObject", nil, &r.Options, &resp) + return +} + +// no documentation yet +type Network_Application_Delivery_Controller_LoadBalancer_Routing_Method struct { + Session *session.Session + Options sl.Options +} + +// GetNetworkApplicationDeliveryControllerLoadBalancerRoutingMethodService returns an instance of the Network_Application_Delivery_Controller_LoadBalancer_Routing_Method SoftLayer service +func GetNetworkApplicationDeliveryControllerLoadBalancerRoutingMethodService(sess *session.Session) Network_Application_Delivery_Controller_LoadBalancer_Routing_Method { + return Network_Application_Delivery_Controller_LoadBalancer_Routing_Method{Session: sess} +} + +func (r Network_Application_Delivery_Controller_LoadBalancer_Routing_Method) Id(id int) Network_Application_Delivery_Controller_LoadBalancer_Routing_Method { + r.Options.Id = &id + return r +} + +func (r Network_Application_Delivery_Controller_LoadBalancer_Routing_Method) Mask(mask string) Network_Application_Delivery_Controller_LoadBalancer_Routing_Method { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Network_Application_Delivery_Controller_LoadBalancer_Routing_Method) Filter(filter string) Network_Application_Delivery_Controller_LoadBalancer_Routing_Method { + r.Options.Filter = filter + return r +} + +func (r Network_Application_Delivery_Controller_LoadBalancer_Routing_Method) Limit(limit int) Network_Application_Delivery_Controller_LoadBalancer_Routing_Method { + r.Options.Limit = &limit + return r +} + +func (r Network_Application_Delivery_Controller_LoadBalancer_Routing_Method) Offset(offset int) Network_Application_Delivery_Controller_LoadBalancer_Routing_Method { + r.Options.Offset = &offset + return r +} + +// no documentation yet +func (r Network_Application_Delivery_Controller_LoadBalancer_Routing_Method) GetAllObjects() (resp []datatypes.Network_Application_Delivery_Controller_LoadBalancer_Routing_Method, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Application_Delivery_Controller_LoadBalancer_Routing_Method", "getAllObjects", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Network_Application_Delivery_Controller_LoadBalancer_Routing_Method) GetObject() (resp datatypes.Network_Application_Delivery_Controller_LoadBalancer_Routing_Method, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Application_Delivery_Controller_LoadBalancer_Routing_Method", "getObject", nil, &r.Options, &resp) + return +} + +// no documentation yet +type Network_Application_Delivery_Controller_LoadBalancer_Routing_Type struct { + Session *session.Session + Options sl.Options +} + +// GetNetworkApplicationDeliveryControllerLoadBalancerRoutingTypeService returns an instance of the Network_Application_Delivery_Controller_LoadBalancer_Routing_Type SoftLayer service +func GetNetworkApplicationDeliveryControllerLoadBalancerRoutingTypeService(sess *session.Session) Network_Application_Delivery_Controller_LoadBalancer_Routing_Type { + return Network_Application_Delivery_Controller_LoadBalancer_Routing_Type{Session: sess} +} + +func (r Network_Application_Delivery_Controller_LoadBalancer_Routing_Type) Id(id int) Network_Application_Delivery_Controller_LoadBalancer_Routing_Type { + r.Options.Id = &id + return r +} + +func (r Network_Application_Delivery_Controller_LoadBalancer_Routing_Type) Mask(mask string) Network_Application_Delivery_Controller_LoadBalancer_Routing_Type { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Network_Application_Delivery_Controller_LoadBalancer_Routing_Type) Filter(filter string) Network_Application_Delivery_Controller_LoadBalancer_Routing_Type { + r.Options.Filter = filter + return r +} + +func (r Network_Application_Delivery_Controller_LoadBalancer_Routing_Type) Limit(limit int) Network_Application_Delivery_Controller_LoadBalancer_Routing_Type { + r.Options.Limit = &limit + return r +} + +func (r Network_Application_Delivery_Controller_LoadBalancer_Routing_Type) Offset(offset int) Network_Application_Delivery_Controller_LoadBalancer_Routing_Type { + r.Options.Offset = &offset + return r +} + +// no documentation yet +func (r Network_Application_Delivery_Controller_LoadBalancer_Routing_Type) GetAllObjects() (resp []datatypes.Network_Application_Delivery_Controller_LoadBalancer_Routing_Type, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Application_Delivery_Controller_LoadBalancer_Routing_Type", "getAllObjects", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Network_Application_Delivery_Controller_LoadBalancer_Routing_Type) GetObject() (resp datatypes.Network_Application_Delivery_Controller_LoadBalancer_Routing_Type, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Application_Delivery_Controller_LoadBalancer_Routing_Type", "getObject", nil, &r.Options, &resp) + return +} + +// no documentation yet +type Network_Application_Delivery_Controller_LoadBalancer_Service struct { + Session *session.Session + Options sl.Options +} + +// GetNetworkApplicationDeliveryControllerLoadBalancerServiceService returns an instance of the Network_Application_Delivery_Controller_LoadBalancer_Service SoftLayer service +func GetNetworkApplicationDeliveryControllerLoadBalancerServiceService(sess *session.Session) Network_Application_Delivery_Controller_LoadBalancer_Service { + return Network_Application_Delivery_Controller_LoadBalancer_Service{Session: sess} +} + +func (r Network_Application_Delivery_Controller_LoadBalancer_Service) Id(id int) Network_Application_Delivery_Controller_LoadBalancer_Service { + r.Options.Id = &id + return r +} + +func (r Network_Application_Delivery_Controller_LoadBalancer_Service) Mask(mask string) Network_Application_Delivery_Controller_LoadBalancer_Service { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Network_Application_Delivery_Controller_LoadBalancer_Service) Filter(filter string) Network_Application_Delivery_Controller_LoadBalancer_Service { + r.Options.Filter = filter + return r +} + +func (r Network_Application_Delivery_Controller_LoadBalancer_Service) Limit(limit int) Network_Application_Delivery_Controller_LoadBalancer_Service { + r.Options.Limit = &limit + return r +} + +func (r Network_Application_Delivery_Controller_LoadBalancer_Service) Offset(offset int) Network_Application_Delivery_Controller_LoadBalancer_Service { + r.Options.Offset = &offset + return r +} + +// no documentation yet +func (r Network_Application_Delivery_Controller_LoadBalancer_Service) DeleteObject() (err error) { + var resp datatypes.Void + err = r.Session.DoRequest("SoftLayer_Network_Application_Delivery_Controller_LoadBalancer_Service", "deleteObject", nil, &r.Options, &resp) + return +} + +// Get the graph image for a load balancer service based on the supplied graph type and metric. The available graph types are: 'connections' and 'status', and the available metrics are: 'day', 'week' and 'month'. +// +// This method returns the raw binary image data. +func (r Network_Application_Delivery_Controller_LoadBalancer_Service) GetGraphImage(graphType *string, metric *string) (resp []byte, err error) { + params := []interface{}{ + graphType, + metric, + } + err = r.Session.DoRequest("SoftLayer_Network_Application_Delivery_Controller_LoadBalancer_Service", "getGraphImage", params, &r.Options, &resp) + return +} + +// Retrieve +func (r Network_Application_Delivery_Controller_LoadBalancer_Service) GetGroupReferences() (resp []datatypes.Network_Application_Delivery_Controller_LoadBalancer_Service_Group_CrossReference, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Application_Delivery_Controller_LoadBalancer_Service", "getGroupReferences", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Network_Application_Delivery_Controller_LoadBalancer_Service) GetGroups() (resp []datatypes.Network_Application_Delivery_Controller_LoadBalancer_Service_Group, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Application_Delivery_Controller_LoadBalancer_Service", "getGroups", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Network_Application_Delivery_Controller_LoadBalancer_Service) GetHealthCheck() (resp datatypes.Network_Application_Delivery_Controller_LoadBalancer_Health_Check, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Application_Delivery_Controller_LoadBalancer_Service", "getHealthCheck", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Network_Application_Delivery_Controller_LoadBalancer_Service) GetHealthChecks() (resp []datatypes.Network_Application_Delivery_Controller_LoadBalancer_Health_Check, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Application_Delivery_Controller_LoadBalancer_Service", "getHealthChecks", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Network_Application_Delivery_Controller_LoadBalancer_Service) GetIpAddress() (resp datatypes.Network_Subnet_IpAddress, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Application_Delivery_Controller_LoadBalancer_Service", "getIpAddress", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Network_Application_Delivery_Controller_LoadBalancer_Service) GetObject() (resp datatypes.Network_Application_Delivery_Controller_LoadBalancer_Service, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Application_Delivery_Controller_LoadBalancer_Service", "getObject", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Network_Application_Delivery_Controller_LoadBalancer_Service) GetServiceGroup() (resp datatypes.Network_Application_Delivery_Controller_LoadBalancer_Service_Group, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Application_Delivery_Controller_LoadBalancer_Service", "getServiceGroup", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Network_Application_Delivery_Controller_LoadBalancer_Service) ToggleStatus() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Application_Delivery_Controller_LoadBalancer_Service", "toggleStatus", nil, &r.Options, &resp) + return +} + +// no documentation yet +type Network_Application_Delivery_Controller_LoadBalancer_Service_Group struct { + Session *session.Session + Options sl.Options +} + +// GetNetworkApplicationDeliveryControllerLoadBalancerServiceGroupService returns an instance of the Network_Application_Delivery_Controller_LoadBalancer_Service_Group SoftLayer service +func GetNetworkApplicationDeliveryControllerLoadBalancerServiceGroupService(sess *session.Session) Network_Application_Delivery_Controller_LoadBalancer_Service_Group { + return Network_Application_Delivery_Controller_LoadBalancer_Service_Group{Session: sess} +} + +func (r Network_Application_Delivery_Controller_LoadBalancer_Service_Group) Id(id int) Network_Application_Delivery_Controller_LoadBalancer_Service_Group { + r.Options.Id = &id + return r +} + +func (r Network_Application_Delivery_Controller_LoadBalancer_Service_Group) Mask(mask string) Network_Application_Delivery_Controller_LoadBalancer_Service_Group { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Network_Application_Delivery_Controller_LoadBalancer_Service_Group) Filter(filter string) Network_Application_Delivery_Controller_LoadBalancer_Service_Group { + r.Options.Filter = filter + return r +} + +func (r Network_Application_Delivery_Controller_LoadBalancer_Service_Group) Limit(limit int) Network_Application_Delivery_Controller_LoadBalancer_Service_Group { + r.Options.Limit = &limit + return r +} + +func (r Network_Application_Delivery_Controller_LoadBalancer_Service_Group) Offset(offset int) Network_Application_Delivery_Controller_LoadBalancer_Service_Group { + r.Options.Offset = &offset + return r +} + +// Get the graph image for a load balancer service group based on the supplied graph type and metric. The only available graph type currently is: 'connections', and the available metrics are: 'day', 'week' and 'month'. +// +// This method returns the raw binary image data. +func (r Network_Application_Delivery_Controller_LoadBalancer_Service_Group) GetGraphImage(graphType *string, metric *string) (resp []byte, err error) { + params := []interface{}{ + graphType, + metric, + } + err = r.Session.DoRequest("SoftLayer_Network_Application_Delivery_Controller_LoadBalancer_Service_Group", "getGraphImage", params, &r.Options, &resp) + return +} + +// no documentation yet +func (r Network_Application_Delivery_Controller_LoadBalancer_Service_Group) GetObject() (resp datatypes.Network_Application_Delivery_Controller_LoadBalancer_Service_Group, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Application_Delivery_Controller_LoadBalancer_Service_Group", "getObject", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Network_Application_Delivery_Controller_LoadBalancer_Service_Group) GetRoutingMethod() (resp datatypes.Network_Application_Delivery_Controller_LoadBalancer_Routing_Method, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Application_Delivery_Controller_LoadBalancer_Service_Group", "getRoutingMethod", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Network_Application_Delivery_Controller_LoadBalancer_Service_Group) GetRoutingType() (resp datatypes.Network_Application_Delivery_Controller_LoadBalancer_Routing_Type, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Application_Delivery_Controller_LoadBalancer_Service_Group", "getRoutingType", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Network_Application_Delivery_Controller_LoadBalancer_Service_Group) GetServiceReferences() (resp []datatypes.Network_Application_Delivery_Controller_LoadBalancer_Service_Group_CrossReference, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Application_Delivery_Controller_LoadBalancer_Service_Group", "getServiceReferences", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Network_Application_Delivery_Controller_LoadBalancer_Service_Group) GetServices() (resp []datatypes.Network_Application_Delivery_Controller_LoadBalancer_Service, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Application_Delivery_Controller_LoadBalancer_Service_Group", "getServices", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Network_Application_Delivery_Controller_LoadBalancer_Service_Group) GetVirtualServer() (resp datatypes.Network_Application_Delivery_Controller_LoadBalancer_VirtualServer, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Application_Delivery_Controller_LoadBalancer_Service_Group", "getVirtualServer", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Network_Application_Delivery_Controller_LoadBalancer_Service_Group) GetVirtualServers() (resp []datatypes.Network_Application_Delivery_Controller_LoadBalancer_VirtualServer, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Application_Delivery_Controller_LoadBalancer_Service_Group", "getVirtualServers", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Network_Application_Delivery_Controller_LoadBalancer_Service_Group) KickAllConnections() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Application_Delivery_Controller_LoadBalancer_Service_Group", "kickAllConnections", nil, &r.Options, &resp) + return +} + +// no documentation yet +type Network_Application_Delivery_Controller_LoadBalancer_VirtualIpAddress struct { + Session *session.Session + Options sl.Options +} + +// GetNetworkApplicationDeliveryControllerLoadBalancerVirtualIpAddressService returns an instance of the Network_Application_Delivery_Controller_LoadBalancer_VirtualIpAddress SoftLayer service +func GetNetworkApplicationDeliveryControllerLoadBalancerVirtualIpAddressService(sess *session.Session) Network_Application_Delivery_Controller_LoadBalancer_VirtualIpAddress { + return Network_Application_Delivery_Controller_LoadBalancer_VirtualIpAddress{Session: sess} +} + +func (r Network_Application_Delivery_Controller_LoadBalancer_VirtualIpAddress) Id(id int) Network_Application_Delivery_Controller_LoadBalancer_VirtualIpAddress { + r.Options.Id = &id + return r +} + +func (r Network_Application_Delivery_Controller_LoadBalancer_VirtualIpAddress) Mask(mask string) Network_Application_Delivery_Controller_LoadBalancer_VirtualIpAddress { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Network_Application_Delivery_Controller_LoadBalancer_VirtualIpAddress) Filter(filter string) Network_Application_Delivery_Controller_LoadBalancer_VirtualIpAddress { + r.Options.Filter = filter + return r +} + +func (r Network_Application_Delivery_Controller_LoadBalancer_VirtualIpAddress) Limit(limit int) Network_Application_Delivery_Controller_LoadBalancer_VirtualIpAddress { + r.Options.Limit = &limit + return r +} + +func (r Network_Application_Delivery_Controller_LoadBalancer_VirtualIpAddress) Offset(offset int) Network_Application_Delivery_Controller_LoadBalancer_VirtualIpAddress { + r.Options.Offset = &offset + return r +} + +// Like any other API object, the load balancers can have their exposed properties edited by passing in a modified version of the object. The load balancer object also can modify its services in this way. Simply request the load balancer object you wish to edit, then modify the objects in the services array and pass the modified object to this function. WARNING: Services cannot be deleted in this manner, you must call deleteObject() on the service to physically remove them from the load balancer. +func (r Network_Application_Delivery_Controller_LoadBalancer_VirtualIpAddress) EditObject(templateObject *datatypes.Network_Application_Delivery_Controller_LoadBalancer_VirtualIpAddress) (resp bool, err error) { + params := []interface{}{ + templateObject, + } + err = r.Session.DoRequest("SoftLayer_Network_Application_Delivery_Controller_LoadBalancer_VirtualIpAddress", "editObject", params, &r.Options, &resp) + return +} + +// Retrieve +func (r Network_Application_Delivery_Controller_LoadBalancer_VirtualIpAddress) GetAccount() (resp datatypes.Account, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Application_Delivery_Controller_LoadBalancer_VirtualIpAddress", "getAccount", nil, &r.Options, &resp) + return +} + +// Retrieve A virtual IP address's associated application delivery controller. +func (r Network_Application_Delivery_Controller_LoadBalancer_VirtualIpAddress) GetApplicationDeliveryController() (resp datatypes.Network_Application_Delivery_Controller, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Application_Delivery_Controller_LoadBalancer_VirtualIpAddress", "getApplicationDeliveryController", nil, &r.Options, &resp) + return +} + +// Retrieve A virtual IP address's associated application delivery controllers. +func (r Network_Application_Delivery_Controller_LoadBalancer_VirtualIpAddress) GetApplicationDeliveryControllers() (resp []datatypes.Network_Application_Delivery_Controller, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Application_Delivery_Controller_LoadBalancer_VirtualIpAddress", "getApplicationDeliveryControllers", nil, &r.Options, &resp) + return +} + +// Yields a list of the SSL/TLS encryption ciphers that are currently supported on this virtual IP address instance. +func (r Network_Application_Delivery_Controller_LoadBalancer_VirtualIpAddress) GetAvailableSecureTransportCiphers() (resp []datatypes.Security_SecureTransportCipher, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Application_Delivery_Controller_LoadBalancer_VirtualIpAddress", "getAvailableSecureTransportCiphers", nil, &r.Options, &resp) + return +} + +// Yields a list of the secure communication protocols that are currently supported on this virtual IP address instance. The list of supported ciphers for each protocol is culled to match availability. +func (r Network_Application_Delivery_Controller_LoadBalancer_VirtualIpAddress) GetAvailableSecureTransportProtocols() (resp []datatypes.Security_SecureTransportProtocol, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Application_Delivery_Controller_LoadBalancer_VirtualIpAddress", "getAvailableSecureTransportProtocols", nil, &r.Options, &resp) + return +} + +// Retrieve The current billing item for the load balancer virtual IP. This is only valid when dedicatedFlag is false. This is an independent virtual IP, and if canceled, will only affect the associated virtual IP. +func (r Network_Application_Delivery_Controller_LoadBalancer_VirtualIpAddress) GetBillingItem() (resp datatypes.Billing_Item, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Application_Delivery_Controller_LoadBalancer_VirtualIpAddress", "getBillingItem", nil, &r.Options, &resp) + return +} + +// Retrieve The current billing item for the load balancing device housing the virtual IP. This billing item represents a device which could contain other virtual IPs. Caution should be taken when canceling. This is only valid when dedicatedFlag is true. +func (r Network_Application_Delivery_Controller_LoadBalancer_VirtualIpAddress) GetDedicatedBillingItem() (resp datatypes.Billing_Item_Network_LoadBalancer, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Application_Delivery_Controller_LoadBalancer_VirtualIpAddress", "getDedicatedBillingItem", nil, &r.Options, &resp) + return +} + +// Retrieve Denotes whether the virtual IP is configured within a high availability cluster. +func (r Network_Application_Delivery_Controller_LoadBalancer_VirtualIpAddress) GetHighAvailabilityFlag() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Application_Delivery_Controller_LoadBalancer_VirtualIpAddress", "getHighAvailabilityFlag", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Network_Application_Delivery_Controller_LoadBalancer_VirtualIpAddress) GetIpAddress() (resp datatypes.Network_Subnet_IpAddress, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Application_Delivery_Controller_LoadBalancer_VirtualIpAddress", "getIpAddress", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Network_Application_Delivery_Controller_LoadBalancer_VirtualIpAddress) GetLoadBalancerHardware() (resp []datatypes.Hardware, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Application_Delivery_Controller_LoadBalancer_VirtualIpAddress", "getLoadBalancerHardware", nil, &r.Options, &resp) + return +} + +// Retrieve A flag indicating that the load balancer is a managed resource. +func (r Network_Application_Delivery_Controller_LoadBalancer_VirtualIpAddress) GetManagedResourceFlag() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Application_Delivery_Controller_LoadBalancer_VirtualIpAddress", "getManagedResourceFlag", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Network_Application_Delivery_Controller_LoadBalancer_VirtualIpAddress) GetObject() (resp datatypes.Network_Application_Delivery_Controller_LoadBalancer_VirtualIpAddress, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Application_Delivery_Controller_LoadBalancer_VirtualIpAddress", "getObject", nil, &r.Options, &resp) + return +} + +// Retrieve The list of security ciphers enabled for this virtual IP address +func (r Network_Application_Delivery_Controller_LoadBalancer_VirtualIpAddress) GetSecureTransportCiphers() (resp []datatypes.Network_Application_Delivery_Controller_LoadBalancer_VirtualIpAddress_SecureTransportCipher, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Application_Delivery_Controller_LoadBalancer_VirtualIpAddress", "getSecureTransportCiphers", nil, &r.Options, &resp) + return +} + +// Retrieve The list of secure transport protocols enabled for this virtual IP address +func (r Network_Application_Delivery_Controller_LoadBalancer_VirtualIpAddress) GetSecureTransportProtocols() (resp []datatypes.Network_Application_Delivery_Controller_LoadBalancer_VirtualIpAddress_SecureTransportProtocol, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Application_Delivery_Controller_LoadBalancer_VirtualIpAddress", "getSecureTransportProtocols", nil, &r.Options, &resp) + return +} + +// Retrieve The SSL certificate currently associated with the VIP. +func (r Network_Application_Delivery_Controller_LoadBalancer_VirtualIpAddress) GetSecurityCertificate() (resp datatypes.Security_Certificate, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Application_Delivery_Controller_LoadBalancer_VirtualIpAddress", "getSecurityCertificate", nil, &r.Options, &resp) + return +} + +// Retrieve The SSL certificate currently associated with the VIP. Provides chosen certificate visibility to unprivileged users. +func (r Network_Application_Delivery_Controller_LoadBalancer_VirtualIpAddress) GetSecurityCertificateEntry() (resp datatypes.Security_Certificate_Entry, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Application_Delivery_Controller_LoadBalancer_VirtualIpAddress", "getSecurityCertificateEntry", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Network_Application_Delivery_Controller_LoadBalancer_VirtualIpAddress) GetVirtualServers() (resp []datatypes.Network_Application_Delivery_Controller_LoadBalancer_VirtualServer, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Application_Delivery_Controller_LoadBalancer_VirtualIpAddress", "getVirtualServers", nil, &r.Options, &resp) + return +} + +// Start SSL acceleration on all SSL virtual services (those with a type of HTTPS). This action should be taken only after configuring an SSL certificate for the virtual IP. +func (r Network_Application_Delivery_Controller_LoadBalancer_VirtualIpAddress) StartSsl() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Application_Delivery_Controller_LoadBalancer_VirtualIpAddress", "startSsl", nil, &r.Options, &resp) + return +} + +// Stop SSL acceleration on all SSL virtual services (those with a type of HTTPS). +func (r Network_Application_Delivery_Controller_LoadBalancer_VirtualIpAddress) StopSsl() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Application_Delivery_Controller_LoadBalancer_VirtualIpAddress", "stopSsl", nil, &r.Options, &resp) + return +} + +// Upgrades the connection limit on the Virtual IP to Address to the next, higher connection limit of the same product. +func (r Network_Application_Delivery_Controller_LoadBalancer_VirtualIpAddress) UpgradeConnectionLimit() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Application_Delivery_Controller_LoadBalancer_VirtualIpAddress", "upgradeConnectionLimit", nil, &r.Options, &resp) + return +} + +// no documentation yet +type Network_Application_Delivery_Controller_LoadBalancer_VirtualServer struct { + Session *session.Session + Options sl.Options +} + +// GetNetworkApplicationDeliveryControllerLoadBalancerVirtualServerService returns an instance of the Network_Application_Delivery_Controller_LoadBalancer_VirtualServer SoftLayer service +func GetNetworkApplicationDeliveryControllerLoadBalancerVirtualServerService(sess *session.Session) Network_Application_Delivery_Controller_LoadBalancer_VirtualServer { + return Network_Application_Delivery_Controller_LoadBalancer_VirtualServer{Session: sess} +} + +func (r Network_Application_Delivery_Controller_LoadBalancer_VirtualServer) Id(id int) Network_Application_Delivery_Controller_LoadBalancer_VirtualServer { + r.Options.Id = &id + return r +} + +func (r Network_Application_Delivery_Controller_LoadBalancer_VirtualServer) Mask(mask string) Network_Application_Delivery_Controller_LoadBalancer_VirtualServer { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Network_Application_Delivery_Controller_LoadBalancer_VirtualServer) Filter(filter string) Network_Application_Delivery_Controller_LoadBalancer_VirtualServer { + r.Options.Filter = filter + return r +} + +func (r Network_Application_Delivery_Controller_LoadBalancer_VirtualServer) Limit(limit int) Network_Application_Delivery_Controller_LoadBalancer_VirtualServer { + r.Options.Limit = &limit + return r +} + +func (r Network_Application_Delivery_Controller_LoadBalancer_VirtualServer) Offset(offset int) Network_Application_Delivery_Controller_LoadBalancer_VirtualServer { + r.Options.Offset = &offset + return r +} + +// no documentation yet +func (r Network_Application_Delivery_Controller_LoadBalancer_VirtualServer) DeleteObject() (err error) { + var resp datatypes.Void + err = r.Session.DoRequest("SoftLayer_Network_Application_Delivery_Controller_LoadBalancer_VirtualServer", "deleteObject", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Network_Application_Delivery_Controller_LoadBalancer_VirtualServer) GetObject() (resp datatypes.Network_Application_Delivery_Controller_LoadBalancer_VirtualServer, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Application_Delivery_Controller_LoadBalancer_VirtualServer", "getObject", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Network_Application_Delivery_Controller_LoadBalancer_VirtualServer) GetRoutingMethod() (resp datatypes.Network_Application_Delivery_Controller_LoadBalancer_Routing_Method, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Application_Delivery_Controller_LoadBalancer_VirtualServer", "getRoutingMethod", nil, &r.Options, &resp) + return +} + +// Retrieve Collection of scale load balancers this virtual server applies to. +func (r Network_Application_Delivery_Controller_LoadBalancer_VirtualServer) GetScaleLoadBalancers() (resp []datatypes.Scale_LoadBalancer, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Application_Delivery_Controller_LoadBalancer_VirtualServer", "getScaleLoadBalancers", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Network_Application_Delivery_Controller_LoadBalancer_VirtualServer) GetServiceGroups() (resp []datatypes.Network_Application_Delivery_Controller_LoadBalancer_Service_Group, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Application_Delivery_Controller_LoadBalancer_VirtualServer", "getServiceGroups", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Network_Application_Delivery_Controller_LoadBalancer_VirtualServer) GetVirtualIpAddress() (resp datatypes.Network_Application_Delivery_Controller_LoadBalancer_VirtualIpAddress, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Application_Delivery_Controller_LoadBalancer_VirtualServer", "getVirtualIpAddress", nil, &r.Options, &resp) + return +} + +// Start SSL acceleration on all SSL virtual services (those with a type of HTTPS). This action should be taken only after configuring an SSL certificate for the virtual IP. +func (r Network_Application_Delivery_Controller_LoadBalancer_VirtualServer) StartSsl() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Application_Delivery_Controller_LoadBalancer_VirtualServer", "startSsl", nil, &r.Options, &resp) + return +} + +// Stop SSL acceleration on all SSL virtual services (those with a type of HTTPS). +func (r Network_Application_Delivery_Controller_LoadBalancer_VirtualServer) StopSsl() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Application_Delivery_Controller_LoadBalancer_VirtualServer", "stopSsl", nil, &r.Options, &resp) + return +} + +// A SoftLayer_Network_Backbone represents a single backbone connection from SoftLayer to the public Internet, from the Internet to the SoftLayer private network, or a link that connects the private networks between SoftLayer's datacenters. The SoftLayer_Network_Backbone data type is a collection of data associated with one of those connections. +type Network_Backbone struct { + Session *session.Session + Options sl.Options +} + +// GetNetworkBackboneService returns an instance of the Network_Backbone SoftLayer service +func GetNetworkBackboneService(sess *session.Session) Network_Backbone { + return Network_Backbone{Session: sess} +} + +func (r Network_Backbone) Id(id int) Network_Backbone { + r.Options.Id = &id + return r +} + +func (r Network_Backbone) Mask(mask string) Network_Backbone { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Network_Backbone) Filter(filter string) Network_Backbone { + r.Options.Filter = filter + return r +} + +func (r Network_Backbone) Limit(limit int) Network_Backbone { + r.Options.Limit = &limit + return r +} + +func (r Network_Backbone) Offset(offset int) Network_Backbone { + r.Options.Offset = &offset + return r +} + +// Retrieve a list of all SoftLayer backbone connections. Use this method if you need all backbones or don't know the id number of a specific backbone. +func (r Network_Backbone) GetAllBackbones() (resp []datatypes.Network_Backbone, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Backbone", "getAllBackbones", nil, &r.Options, &resp) + return +} + +// Retrieve a list of all SoftLayer backbone connections for a location name. +func (r Network_Backbone) GetBackbonesForLocationName(locationName *string) (resp []datatypes.Network_Backbone, err error) { + params := []interface{}{ + locationName, + } + err = r.Session.DoRequest("SoftLayer_Network_Backbone", "getBackbonesForLocationName", params, &r.Options, &resp) + return +} + +// Retrieve a graph of a SoftLayer backbone's last 24 hours of activity. getGraphImage returns a PNG image measuring 827 pixels by 293 pixels. +func (r Network_Backbone) GetGraphImage() (resp []byte, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Backbone", "getGraphImage", nil, &r.Options, &resp) + return +} + +// Retrieve A backbone's status. +func (r Network_Backbone) GetHealth() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Backbone", "getHealth", nil, &r.Options, &resp) + return +} + +// Retrieve Which of the SoftLayer datacenters a backbone is connected to. +func (r Network_Backbone) GetLocation() (resp datatypes.Location, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Backbone", "getLocation", nil, &r.Options, &resp) + return +} + +// Retrieve A backbone's primary network component. +func (r Network_Backbone) GetNetworkComponent() (resp datatypes.Network_Component, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Backbone", "getNetworkComponent", nil, &r.Options, &resp) + return +} + +// Retrieve an individual SoftLayer_Network_Backbone record. Use the getAllBackbones() method to retrieve a list of all SoftLayer network backbones. +func (r Network_Backbone) GetObject() (resp datatypes.Network_Backbone, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Backbone", "getObject", nil, &r.Options, &resp) + return +} + +// no documentation yet +type Network_Backbone_Location_Dependent struct { + Session *session.Session + Options sl.Options +} + +// GetNetworkBackboneLocationDependentService returns an instance of the Network_Backbone_Location_Dependent SoftLayer service +func GetNetworkBackboneLocationDependentService(sess *session.Session) Network_Backbone_Location_Dependent { + return Network_Backbone_Location_Dependent{Session: sess} +} + +func (r Network_Backbone_Location_Dependent) Id(id int) Network_Backbone_Location_Dependent { + r.Options.Id = &id + return r +} + +func (r Network_Backbone_Location_Dependent) Mask(mask string) Network_Backbone_Location_Dependent { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Network_Backbone_Location_Dependent) Filter(filter string) Network_Backbone_Location_Dependent { + r.Options.Filter = filter + return r +} + +func (r Network_Backbone_Location_Dependent) Limit(limit int) Network_Backbone_Location_Dependent { + r.Options.Limit = &limit + return r +} + +func (r Network_Backbone_Location_Dependent) Offset(offset int) Network_Backbone_Location_Dependent { + r.Options.Offset = &offset + return r +} + +// no documentation yet +func (r Network_Backbone_Location_Dependent) GetAllObjects() (resp []datatypes.Network_Backbone_Location_Dependent, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Backbone_Location_Dependent", "getAllObjects", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Network_Backbone_Location_Dependent) GetDependentLocation() (resp datatypes.Location, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Backbone_Location_Dependent", "getDependentLocation", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Network_Backbone_Location_Dependent) GetObject() (resp datatypes.Network_Backbone_Location_Dependent, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Backbone_Location_Dependent", "getObject", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Network_Backbone_Location_Dependent) GetSourceDependentsByName(locationName *string) (resp datatypes.Location, err error) { + params := []interface{}{ + locationName, + } + err = r.Session.DoRequest("SoftLayer_Network_Backbone_Location_Dependent", "getSourceDependentsByName", params, &r.Options, &resp) + return +} + +// Retrieve +func (r Network_Backbone_Location_Dependent) GetSourceLocation() (resp datatypes.Location, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Backbone_Location_Dependent", "getSourceLocation", nil, &r.Options, &resp) + return +} + +// The SoftLayer_Network_Bandwidth_Version1_Allotment class provides methods and data structures necessary to work with an array of hardware objects associated with a single Bandwidth Pooling. +type Network_Bandwidth_Version1_Allotment struct { + Session *session.Session + Options sl.Options +} + +// GetNetworkBandwidthVersion1AllotmentService returns an instance of the Network_Bandwidth_Version1_Allotment SoftLayer service +func GetNetworkBandwidthVersion1AllotmentService(sess *session.Session) Network_Bandwidth_Version1_Allotment { + return Network_Bandwidth_Version1_Allotment{Session: sess} +} + +func (r Network_Bandwidth_Version1_Allotment) Id(id int) Network_Bandwidth_Version1_Allotment { + r.Options.Id = &id + return r +} + +func (r Network_Bandwidth_Version1_Allotment) Mask(mask string) Network_Bandwidth_Version1_Allotment { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Network_Bandwidth_Version1_Allotment) Filter(filter string) Network_Bandwidth_Version1_Allotment { + r.Options.Filter = filter + return r +} + +func (r Network_Bandwidth_Version1_Allotment) Limit(limit int) Network_Bandwidth_Version1_Allotment { + r.Options.Limit = &limit + return r +} + +func (r Network_Bandwidth_Version1_Allotment) Offset(offset int) Network_Bandwidth_Version1_Allotment { + r.Options.Offset = &offset + return r +} + +// Create a allotment for servers to pool bandwidth and avoid overages in billing if they use more than there allocated bandwidth. +func (r Network_Bandwidth_Version1_Allotment) CreateObject(templateObject *datatypes.Network_Bandwidth_Version1_Allotment) (resp datatypes.Network_Bandwidth_Version1_Allotment, err error) { + params := []interface{}{ + templateObject, + } + err = r.Session.DoRequest("SoftLayer_Network_Bandwidth_Version1_Allotment", "createObject", params, &r.Options, &resp) + return +} + +// Edit a bandwidth allotment's local properties. Currently you may only change an allotment's name. Use the [[SoftLayer_Network_Bandwidth_Version1_Allotment::reassignServers|reassignServers()]] and [[SoftLayer_Network_Bandwidth_Version1_Allotment::unassignServers|unassignServers()]] methods to move servers in and out of your allotments. +func (r Network_Bandwidth_Version1_Allotment) EditObject(templateObject *datatypes.Network_Bandwidth_Version1_Allotment) (resp bool, err error) { + params := []interface{}{ + templateObject, + } + err = r.Session.DoRequest("SoftLayer_Network_Bandwidth_Version1_Allotment", "editObject", params, &r.Options, &resp) + return +} + +// Retrieve The account associated with this virtual rack. +func (r Network_Bandwidth_Version1_Allotment) GetAccount() (resp datatypes.Account, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Bandwidth_Version1_Allotment", "getAccount", nil, &r.Options, &resp) + return +} + +// Retrieve The bandwidth allotment detail records associated with this virtual rack. +func (r Network_Bandwidth_Version1_Allotment) GetActiveDetails() (resp []datatypes.Network_Bandwidth_Version1_Allotment_Detail, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Bandwidth_Version1_Allotment", "getActiveDetails", nil, &r.Options, &resp) + return +} + +// Retrieve The Application Delivery Controller contained within a virtual rack. +func (r Network_Bandwidth_Version1_Allotment) GetApplicationDeliveryControllers() (resp []datatypes.Network_Application_Delivery_Controller, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Bandwidth_Version1_Allotment", "getApplicationDeliveryControllers", nil, &r.Options, &resp) + return +} + +// Retrieve The average daily public bandwidth usage for the current billing cycle. +func (r Network_Bandwidth_Version1_Allotment) GetAverageDailyPublicBandwidthUsage() (resp datatypes.Float64, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Bandwidth_Version1_Allotment", "getAverageDailyPublicBandwidthUsage", nil, &r.Options, &resp) + return +} + +// This method recurses through all servers on a Bandwidth Pool for 24 hour time span starting at a given date/time. To get the private data set for all servers on a Bandwidth Pool from midnight Feb 1st, 2008 to 23:59 on Feb 1st, you would pass a parameter of '02/01/2008 0:00'. The ending date / time is calculated for you to prevent requesting data from the server for periods larger than 24 hours as this method requires processing a lot of data records and can get slow at times. +func (r Network_Bandwidth_Version1_Allotment) GetBackendBandwidthByHour(date *datatypes.Time) (resp []datatypes.Container_Network_Bandwidth_Version1_Usage, err error) { + params := []interface{}{ + date, + } + err = r.Session.DoRequest("SoftLayer_Network_Bandwidth_Version1_Allotment", "getBackendBandwidthByHour", params, &r.Options, &resp) + return +} + +// This method recurses through all servers on a Bandwidth Pool between the given start and end dates to retrieve public bandwidth data. +func (r Network_Bandwidth_Version1_Allotment) GetBackendBandwidthUse(startDate *datatypes.Time, endDate *datatypes.Time) (resp []datatypes.Network_Bandwidth_Version1_Usage_Detail, err error) { + params := []interface{}{ + startDate, + endDate, + } + err = r.Session.DoRequest("SoftLayer_Network_Bandwidth_Version1_Allotment", "getBackendBandwidthUse", params, &r.Options, &resp) + return +} + +// Retrieve The bandwidth allotment type of this virtual rack. +func (r Network_Bandwidth_Version1_Allotment) GetBandwidthAllotmentType() (resp datatypes.Network_Bandwidth_Version1_Allotment_Type, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Bandwidth_Version1_Allotment", "getBandwidthAllotmentType", nil, &r.Options, &resp) + return +} + +// Retrieve a collection of bandwidth data from an individual public or private network tracking object. Data is ideal if you with to employ your own traffic storage and graphing systems. +func (r Network_Bandwidth_Version1_Allotment) GetBandwidthForDateRange(startDate *datatypes.Time, endDate *datatypes.Time) (resp []datatypes.Metric_Tracking_Object_Data, err error) { + params := []interface{}{ + startDate, + endDate, + } + err = r.Session.DoRequest("SoftLayer_Network_Bandwidth_Version1_Allotment", "getBandwidthForDateRange", params, &r.Options, &resp) + return +} + +// This method recurses through all servers on a Bandwidth Pool for a given snapshot range, gathers the necessary parameters, and then calls the bandwidth graphing server. The return result is a container that includes the min and max dates for all servers to be used in the query, as well as an image in PNG format. This method uses the new and improved drawing routines which should return in a reasonable time frame now that the new backend data warehouse is used. +func (r Network_Bandwidth_Version1_Allotment) GetBandwidthImage(networkType *string, snapshotRange *string, draw *bool, dateSpecified *datatypes.Time, dateSpecifiedEnd *datatypes.Time) (resp datatypes.Container_Bandwidth_GraphOutputs, err error) { + params := []interface{}{ + networkType, + snapshotRange, + draw, + dateSpecified, + dateSpecifiedEnd, + } + err = r.Session.DoRequest("SoftLayer_Network_Bandwidth_Version1_Allotment", "getBandwidthImage", params, &r.Options, &resp) + return +} + +// Retrieve The bare metal server instances contained within a virtual rack. +func (r Network_Bandwidth_Version1_Allotment) GetBareMetalInstances() (resp []datatypes.Hardware, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Bandwidth_Version1_Allotment", "getBareMetalInstances", nil, &r.Options, &resp) + return +} + +// Retrieve A virtual rack's raw bandwidth usage data for an account's current billing cycle. One object is returned for each network this server is attached to. +func (r Network_Bandwidth_Version1_Allotment) GetBillingCycleBandwidthUsage() (resp []datatypes.Network_Bandwidth_Usage, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Bandwidth_Version1_Allotment", "getBillingCycleBandwidthUsage", nil, &r.Options, &resp) + return +} + +// Retrieve A virtual rack's raw private network bandwidth usage data for an account's current billing cycle. +func (r Network_Bandwidth_Version1_Allotment) GetBillingCyclePrivateBandwidthUsage() (resp datatypes.Network_Bandwidth_Usage, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Bandwidth_Version1_Allotment", "getBillingCyclePrivateBandwidthUsage", nil, &r.Options, &resp) + return +} + +// Retrieve A virtual rack's raw public network bandwidth usage data for an account's current billing cycle. +func (r Network_Bandwidth_Version1_Allotment) GetBillingCyclePublicBandwidthUsage() (resp datatypes.Network_Bandwidth_Usage, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Bandwidth_Version1_Allotment", "getBillingCyclePublicBandwidthUsage", nil, &r.Options, &resp) + return +} + +// Retrieve The total public bandwidth used in this virtual rack for an account's current billing cycle. +func (r Network_Bandwidth_Version1_Allotment) GetBillingCyclePublicUsageTotal() (resp uint, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Bandwidth_Version1_Allotment", "getBillingCyclePublicUsageTotal", nil, &r.Options, &resp) + return +} + +// Retrieve A virtual rack's billing item. +func (r Network_Bandwidth_Version1_Allotment) GetBillingItem() (resp datatypes.Billing_Item, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Bandwidth_Version1_Allotment", "getBillingItem", nil, &r.Options, &resp) + return +} + +// Retrieve An object that provides commonly used bandwidth summary components for the current billing cycle. +func (r Network_Bandwidth_Version1_Allotment) GetCurrentBandwidthSummary() (resp datatypes.Metric_Tracking_Object_Bandwidth_Summary, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Bandwidth_Version1_Allotment", "getCurrentBandwidthSummary", nil, &r.Options, &resp) + return +} + +// Retrieve bandwidth graph by date. +func (r Network_Bandwidth_Version1_Allotment) GetCustomBandwidthDataByDate(graphData *datatypes.Container_Graph) (resp datatypes.Container_Graph, err error) { + params := []interface{}{ + graphData, + } + err = r.Session.DoRequest("SoftLayer_Network_Bandwidth_Version1_Allotment", "getCustomBandwidthDataByDate", params, &r.Options, &resp) + return +} + +// Retrieve The bandwidth allotment detail records associated with this virtual rack. +func (r Network_Bandwidth_Version1_Allotment) GetDetails() (resp []datatypes.Network_Bandwidth_Version1_Allotment_Detail, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Bandwidth_Version1_Allotment", "getDetails", nil, &r.Options, &resp) + return +} + +// This method recurses through all servers on a Bandwidth Pool for 24 hour time span starting at a given date/time. To get the public data set for all servers on a Bandwidth Pool from midnight Feb 1st, 2008 to 23:59 on Feb 1st, you would pass a parameter of '02/01/2008 0:00'. The ending date / time is calculated for you to prevent requesting data from the server for periods larger than 24 hours as this method requires processing a lot of data records and can get slow at times. +func (r Network_Bandwidth_Version1_Allotment) GetFrontendBandwidthByHour(date *datatypes.Time) (resp []datatypes.Container_Network_Bandwidth_Version1_Usage, err error) { + params := []interface{}{ + date, + } + err = r.Session.DoRequest("SoftLayer_Network_Bandwidth_Version1_Allotment", "getFrontendBandwidthByHour", params, &r.Options, &resp) + return +} + +// This method recurses through all servers on a Bandwidth Pool between the given start and end dates to retrieve private bandwidth data. +func (r Network_Bandwidth_Version1_Allotment) GetFrontendBandwidthUse(startDate *datatypes.Time, endDate *datatypes.Time) (resp []datatypes.Network_Bandwidth_Version1_Usage_Detail, err error) { + params := []interface{}{ + startDate, + endDate, + } + err = r.Session.DoRequest("SoftLayer_Network_Bandwidth_Version1_Allotment", "getFrontendBandwidthUse", params, &r.Options, &resp) + return +} + +// Retrieve The hardware contained within a virtual rack. +func (r Network_Bandwidth_Version1_Allotment) GetHardware() (resp []datatypes.Hardware, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Bandwidth_Version1_Allotment", "getHardware", nil, &r.Options, &resp) + return +} + +// Retrieve The total public inbound bandwidth used in this virtual rack for an account's current billing cycle. +func (r Network_Bandwidth_Version1_Allotment) GetInboundPublicBandwidthUsage() (resp datatypes.Float64, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Bandwidth_Version1_Allotment", "getInboundPublicBandwidthUsage", nil, &r.Options, &resp) + return +} + +// Retrieve The location group associated with this virtual rack. +func (r Network_Bandwidth_Version1_Allotment) GetLocationGroup() (resp datatypes.Location_Group, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Bandwidth_Version1_Allotment", "getLocationGroup", nil, &r.Options, &resp) + return +} + +// Retrieve The managed bare metal server instances contained within a virtual rack. +func (r Network_Bandwidth_Version1_Allotment) GetManagedBareMetalInstances() (resp []datatypes.Hardware, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Bandwidth_Version1_Allotment", "getManagedBareMetalInstances", nil, &r.Options, &resp) + return +} + +// Retrieve The managed hardware contained within a virtual rack. +func (r Network_Bandwidth_Version1_Allotment) GetManagedHardware() (resp []datatypes.Hardware, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Bandwidth_Version1_Allotment", "getManagedHardware", nil, &r.Options, &resp) + return +} + +// Retrieve The managed Virtual Server contained within a virtual rack. +func (r Network_Bandwidth_Version1_Allotment) GetManagedVirtualGuests() (resp []datatypes.Virtual_Guest, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Bandwidth_Version1_Allotment", "getManagedVirtualGuests", nil, &r.Options, &resp) + return +} + +// Retrieve A virtual rack's metric tracking object. This object records all periodic polled data available to this rack. +func (r Network_Bandwidth_Version1_Allotment) GetMetricTrackingObject() (resp datatypes.Metric_Tracking_Object_VirtualDedicatedRack, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Bandwidth_Version1_Allotment", "getMetricTrackingObject", nil, &r.Options, &resp) + return +} + +// Retrieve The metric tracking object id for this allotment. +func (r Network_Bandwidth_Version1_Allotment) GetMetricTrackingObjectId() (resp int, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Bandwidth_Version1_Allotment", "getMetricTrackingObjectId", nil, &r.Options, &resp) + return +} + +// getObject retrieves the SoftLayer_Network_Bandwidth_Version1_Allotment object whose ID number corresponds to the ID number of the init parameter passed to the SoftLayer_Hardware service. You can only retrieve an allotment associated with the account that your portal user is assigned to. +func (r Network_Bandwidth_Version1_Allotment) GetObject() (resp datatypes.Network_Bandwidth_Version1_Allotment, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Bandwidth_Version1_Allotment", "getObject", nil, &r.Options, &resp) + return +} + +// Retrieve The total public outbound bandwidth used in this virtual rack for an account's current billing cycle. +func (r Network_Bandwidth_Version1_Allotment) GetOutboundPublicBandwidthUsage() (resp datatypes.Float64, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Bandwidth_Version1_Allotment", "getOutboundPublicBandwidthUsage", nil, &r.Options, &resp) + return +} + +// Retrieve Whether the bandwidth usage for this bandwidth pool for the current billing cycle exceeds the allocation. +func (r Network_Bandwidth_Version1_Allotment) GetOverBandwidthAllocationFlag() (resp int, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Bandwidth_Version1_Allotment", "getOverBandwidthAllocationFlag", nil, &r.Options, &resp) + return +} + +// Retrieve The private network only hardware contained within a virtual rack. +func (r Network_Bandwidth_Version1_Allotment) GetPrivateNetworkOnlyHardware() (resp []datatypes.Hardware, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Bandwidth_Version1_Allotment", "getPrivateNetworkOnlyHardware", nil, &r.Options, &resp) + return +} + +// Retrieve Whether the bandwidth usage for this bandwidth pool for the current billing cycle is projected to exceed the allocation. +func (r Network_Bandwidth_Version1_Allotment) GetProjectedOverBandwidthAllocationFlag() (resp int, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Bandwidth_Version1_Allotment", "getProjectedOverBandwidthAllocationFlag", nil, &r.Options, &resp) + return +} + +// Retrieve The projected public outbound bandwidth for this virtual server for the current billing cycle. +func (r Network_Bandwidth_Version1_Allotment) GetProjectedPublicBandwidthUsage() (resp datatypes.Float64, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Bandwidth_Version1_Allotment", "getProjectedPublicBandwidthUsage", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Network_Bandwidth_Version1_Allotment) GetServiceProvider() (resp datatypes.Service_Provider, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Bandwidth_Version1_Allotment", "getServiceProvider", nil, &r.Options, &resp) + return +} + +// Retrieve The combined allocated bandwidth for all servers in a virtual rack. +func (r Network_Bandwidth_Version1_Allotment) GetTotalBandwidthAllocated() (resp uint, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Bandwidth_Version1_Allotment", "getTotalBandwidthAllocated", nil, &r.Options, &resp) + return +} + +// Gets the monthly recurring fee of a pooled server. +func (r Network_Bandwidth_Version1_Allotment) GetVdrMemberRecurringFee() (resp datatypes.Float64, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Bandwidth_Version1_Allotment", "getVdrMemberRecurringFee", nil, &r.Options, &resp) + return +} + +// Retrieve The Virtual Server contained within a virtual rack. +func (r Network_Bandwidth_Version1_Allotment) GetVirtualGuests() (resp []datatypes.Virtual_Guest, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Bandwidth_Version1_Allotment", "getVirtualGuests", nil, &r.Options, &resp) + return +} + +// This method will reassign a collection of SoftLayer hardware to a bandwidth allotment Bandwidth Pool. +func (r Network_Bandwidth_Version1_Allotment) ReassignServers(templateObjects []datatypes.Hardware, newAllotmentId *int) (resp bool, err error) { + params := []interface{}{ + templateObjects, + newAllotmentId, + } + err = r.Session.DoRequest("SoftLayer_Network_Bandwidth_Version1_Allotment", "reassignServers", params, &r.Options, &resp) + return +} + +// This will remove a bandwidth pooling from a customer's allotments by cancelling the billing item. All servers in that allotment will get moved to the account's vpr. +func (r Network_Bandwidth_Version1_Allotment) RequestVdrCancellation() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Bandwidth_Version1_Allotment", "requestVdrCancellation", nil, &r.Options, &resp) + return +} + +// This will move servers into a bandwidth pool, removing them from their previous bandwidth pool and optionally remove the bandwidth pool on completion. +func (r Network_Bandwidth_Version1_Allotment) RequestVdrContentUpdates(hardwareToAdd []datatypes.Hardware, hardwareToRemove []datatypes.Hardware, cloudsToAdd []datatypes.Virtual_Guest, cloudsToRemove []datatypes.Virtual_Guest, optionalAllotmentId *int, adcToAdd []datatypes.Network_Application_Delivery_Controller, adcToRemove []datatypes.Network_Application_Delivery_Controller) (resp bool, err error) { + params := []interface{}{ + hardwareToAdd, + hardwareToRemove, + cloudsToAdd, + cloudsToRemove, + optionalAllotmentId, + adcToAdd, + adcToRemove, + } + err = r.Session.DoRequest("SoftLayer_Network_Bandwidth_Version1_Allotment", "requestVdrContentUpdates", params, &r.Options, &resp) + return +} + +// This will update the bandwidth pool to the servers provided. Servers currently in the bandwidth pool not provided on update will be removed. Servers provided on update not currently in the bandwidth pool will be added. If all servers are removed, this removes the bandwidth pool on completion. +func (r Network_Bandwidth_Version1_Allotment) SetVdrContent(hardware []datatypes.Hardware, bareMetalServers []datatypes.Hardware, virtualServerInstance []datatypes.Virtual_Guest, adc []datatypes.Network_Application_Delivery_Controller, optionalAllotmentId *int) (resp bool, err error) { + params := []interface{}{ + hardware, + bareMetalServers, + virtualServerInstance, + adc, + optionalAllotmentId, + } + err = r.Session.DoRequest("SoftLayer_Network_Bandwidth_Version1_Allotment", "setVdrContent", params, &r.Options, &resp) + return +} + +// This method will reassign a collection of SoftLayer hardware to the virtual private rack +func (r Network_Bandwidth_Version1_Allotment) UnassignServers(templateObjects []datatypes.Hardware) (resp bool, err error) { + params := []interface{}{ + templateObjects, + } + err = r.Session.DoRequest("SoftLayer_Network_Bandwidth_Version1_Allotment", "unassignServers", params, &r.Options, &resp) + return +} + +// This method will void a pending server removal from this bandwidth pooling. Pass in the id of the hardware object or virtual guest you wish to update. Assuming that object is currently pending removal from the bandwidth pool at the start of the next billing cycle, the bandwidth pool member status will be restored and the pending cancellation removed. +func (r Network_Bandwidth_Version1_Allotment) VoidPendingServerMove(id *int, typ *string) (resp bool, err error) { + params := []interface{}{ + id, + typ, + } + err = r.Session.DoRequest("SoftLayer_Network_Bandwidth_Version1_Allotment", "voidPendingServerMove", params, &r.Options, &resp) + return +} + +// This method will void a pending cancellation on a bandwidth pool. Note however any servers that belonged to the rack will have to be restored individually using the method voidPendingServerMove($id, $type). +func (r Network_Bandwidth_Version1_Allotment) VoidPendingVdrCancellation() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Bandwidth_Version1_Allotment", "voidPendingVdrCancellation", nil, &r.Options, &resp) + return +} + +// Every piece of hardware running in SoftLayer's datacenters connected to the public, private, or management networks (where applicable) have a corresponding network component. These network components are modeled by the SoftLayer_Network_Component data type. These data types reflect the servers' local ethernet and remote management interfaces. +type Network_Component struct { + Session *session.Session + Options sl.Options +} + +// GetNetworkComponentService returns an instance of the Network_Component SoftLayer service +func GetNetworkComponentService(sess *session.Session) Network_Component { + return Network_Component{Session: sess} +} + +func (r Network_Component) Id(id int) Network_Component { + r.Options.Id = &id + return r +} + +func (r Network_Component) Mask(mask string) Network_Component { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Network_Component) Filter(filter string) Network_Component { + r.Options.Filter = filter + return r +} + +func (r Network_Component) Limit(limit int) Network_Component { + r.Options.Limit = &limit + return r +} + +func (r Network_Component) Offset(offset int) Network_Component { + r.Options.Offset = &offset + return r +} + +// Add VLANs as trunks to a network component. The VLANs given must be assigned to your account, and on the router to which this network component is connected. The current native VLAN (networkVlanId/networkVlan) cannot be added as a trunk. This method should be called on a network component attached directly to customer assigned hardware, though all trunking operations will occur on the uplinkComponent. A current list of VLAN trunks for a network component on a customer server can be found at 'uplinkComponent->networkVlanTrunks'. +// +// This method returns an array of SoftLayer_Network_Vlans which were added as trunks. Any requested trunks which are already trunked will be silently ignored, and will not be returned. +// +// Configuration of network hardware is done asynchronously, do not depend on the return of this call as an indication that the newly trunked VLANs will be accessible. +func (r Network_Component) AddNetworkVlanTrunks(networkVlans []datatypes.Network_Vlan) (resp []datatypes.Network_Vlan, err error) { + params := []interface{}{ + networkVlans, + } + err = r.Session.DoRequest("SoftLayer_Network_Component", "addNetworkVlanTrunks", params, &r.Options, &resp) + return +} + +// This method will remove all VLANs trunked to this network component. The native VLAN (networkVlanId/networkVlan) will remain active, and cannot be removed via the API. Returns a list of SoftLayer_Network_Vlan objects for which the trunks were removed. +func (r Network_Component) ClearNetworkVlanTrunks() (resp []datatypes.Network_Vlan, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Component", "clearNetworkVlanTrunks", nil, &r.Options, &resp) + return +} + +// Retrieve Reboot/power (rebootDefault, rebootSoft, rebootHard, powerOn, powerOff and powerCycle) command currently executing by the server's remote management card. +func (r Network_Component) GetActiveCommand() (resp datatypes.Hardware_Component_RemoteManagement_Command_Request, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Component", "getActiveCommand", nil, &r.Options, &resp) + return +} + +// Retrieve bandwidth graph by date. +func (r Network_Component) GetCustomBandwidthDataByDate(graphData *datatypes.Container_Graph) (resp datatypes.Container_Graph, err error) { + params := []interface{}{ + graphData, + } + err = r.Session.DoRequest("SoftLayer_Network_Component", "getCustomBandwidthDataByDate", params, &r.Options, &resp) + return +} + +// Retrieve The network component linking this object to a child device +func (r Network_Component) GetDownlinkComponent() (resp datatypes.Network_Component, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Component", "getDownlinkComponent", nil, &r.Options, &resp) + return +} + +// Retrieve The duplex mode of a network component. +func (r Network_Component) GetDuplexMode() (resp datatypes.Network_Component_Duplex_Mode, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Component", "getDuplexMode", nil, &r.Options, &resp) + return +} + +// Retrieve The hardware that a network component resides in. +func (r Network_Component) GetHardware() (resp datatypes.Hardware, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Component", "getHardware", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Network_Component) GetHighAvailabilityFirewallFlag() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Component", "getHighAvailabilityFirewallFlag", nil, &r.Options, &resp) + return +} + +// Retrieve A hardware switch's interface to the bandwidth pod. +func (r Network_Component) GetInterface() (resp datatypes.Network_Bandwidth_Version1_Interface, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Component", "getInterface", nil, &r.Options, &resp) + return +} + +// Retrieve The records of all IP addresses bound to a network component. +func (r Network_Component) GetIpAddressBindings() (resp []datatypes.Network_Component_IpAddress, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Component", "getIpAddressBindings", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Network_Component) GetIpAddresses() (resp []datatypes.Network_Subnet_IpAddress, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Component", "getIpAddresses", nil, &r.Options, &resp) + return +} + +// Retrieve Last reboot/power (rebootDefault, rebootSoft, rebootHard, powerOn, powerOff and powerCycle) command issued to the server's remote management card. +func (r Network_Component) GetLastCommand() (resp datatypes.Hardware_Component_RemoteManagement_Command_Request, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Component", "getLastCommand", nil, &r.Options, &resp) + return +} + +// Retrieve The metric tracking object for this network component. +func (r Network_Component) GetMetricTrackingObject() (resp datatypes.Metric_Tracking_Object, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Component", "getMetricTrackingObject", nil, &r.Options, &resp) + return +} + +// Retrieve The upstream network component firewall. +func (r Network_Component) GetNetworkComponentFirewall() (resp datatypes.Network_Component_Firewall, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Component", "getNetworkComponentFirewall", nil, &r.Options, &resp) + return +} + +// Retrieve A network component's associated group. +func (r Network_Component) GetNetworkComponentGroup() (resp datatypes.Network_Component_Group, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Component", "getNetworkComponentGroup", nil, &r.Options, &resp) + return +} + +// Retrieve All network devices in SoftLayer's network hierarchy that this device is connected to. +func (r Network_Component) GetNetworkHardware() (resp []datatypes.Hardware, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Component", "getNetworkHardware", nil, &r.Options, &resp) + return +} + +// Retrieve The VLAN that a network component's subnet is associated with. +func (r Network_Component) GetNetworkVlan() (resp datatypes.Network_Vlan, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Component", "getNetworkVlan", nil, &r.Options, &resp) + return +} + +// Retrieve The VLANs that are trunked to this network component. +func (r Network_Component) GetNetworkVlanTrunks() (resp []datatypes.Network_Component_Network_Vlan_Trunk, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Component", "getNetworkVlanTrunks", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Network_Component) GetObject() (resp datatypes.Network_Component, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Component", "getObject", nil, &r.Options, &resp) + return +} + +// +// **DEPRECATED - This operation will cease to function after April 4th, 2016 and will be removed from v3.2** +// Retrieve various network statistics. The network statistics are retrieved from the network device using snmpget. Below is a list of statistics retrieved: +// * Administrative Status +// * Operational Status +// * Maximum Transmission Unit +// * In Octets +// * Out Octets +// * In Unicast Packets +// * Out Unicast Packets +// * In Multicast Packets +// * Out Multicast Packets +func (r Network_Component) GetPortStatistics() (resp datatypes.Container_Network_Port_Statistic, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Component", "getPortStatistics", nil, &r.Options, &resp) + return +} + +// Retrieve The primary IPv4 Address record for a network component. +func (r Network_Component) GetPrimaryIpAddressRecord() (resp datatypes.Network_Subnet_IpAddress, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Component", "getPrimaryIpAddressRecord", nil, &r.Options, &resp) + return +} + +// Retrieve The subnet of the primary IP address assigned to this network component. +func (r Network_Component) GetPrimarySubnet() (resp datatypes.Network_Subnet, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Component", "getPrimarySubnet", nil, &r.Options, &resp) + return +} + +// Retrieve The primary IPv6 Address record for a network component. +func (r Network_Component) GetPrimaryVersion6IpAddressRecord() (resp datatypes.Network_Subnet_IpAddress, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Component", "getPrimaryVersion6IpAddressRecord", nil, &r.Options, &resp) + return +} + +// Retrieve The last five reboot/power (rebootDefault, rebootSoft, rebootHard, powerOn, powerOff and powerCycle) commands issued to the server's remote management card. +func (r Network_Component) GetRecentCommands() (resp []datatypes.Hardware_Component_RemoteManagement_Command_Request, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Component", "getRecentCommands", nil, &r.Options, &resp) + return +} + +// Retrieve Indicates whether the network component is participating in a group of two or more components capable of being operationally redundant, if enabled. +func (r Network_Component) GetRedundancyCapableFlag() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Component", "getRedundancyCapableFlag", nil, &r.Options, &resp) + return +} + +// Retrieve Indicates whether the network component is participating in a group of two or more components which is actively providing link redundancy. +func (r Network_Component) GetRedundancyEnabledFlag() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Component", "getRedundancyEnabledFlag", nil, &r.Options, &resp) + return +} + +// Retrieve User(s) credentials to issue commands and/or interact with the server's remote management card. +func (r Network_Component) GetRemoteManagementUsers() (resp []datatypes.Hardware_Component_RemoteManagement_User, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Component", "getRemoteManagementUsers", nil, &r.Options, &resp) + return +} + +// Retrieve A network component's routers. +func (r Network_Component) GetRouter() (resp datatypes.Hardware, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Component", "getRouter", nil, &r.Options, &resp) + return +} + +// Retrieve Whether a network component's primary ip address is from a storage network subnet or not. +func (r Network_Component) GetStorageNetworkFlag() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Component", "getStorageNetworkFlag", nil, &r.Options, &resp) + return +} + +// Retrieve A network component's subnets. A subnet is a group of IP addresses +func (r Network_Component) GetSubnets() (resp []datatypes.Network_Subnet, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Component", "getSubnets", nil, &r.Options, &resp) + return +} + +// Retrieve The network component linking this object to parent +func (r Network_Component) GetUplinkComponent() (resp datatypes.Network_Component, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Component", "getUplinkComponent", nil, &r.Options, &resp) + return +} + +// Retrieve The duplex mode of the uplink network component linking to this object +func (r Network_Component) GetUplinkDuplexMode() (resp datatypes.Network_Component_Duplex_Mode, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Component", "getUplinkDuplexMode", nil, &r.Options, &resp) + return +} + +// Remove one or more VLANs currently attached to the uplinkComponent of this networkComponent. The VLANs given must be assigned to your account, and on the router the network component is connected to. If any VLANs not currently trunked are given, they will be silently ignored. +// +// This method should be called on a network component attached directly to customer assigned hardware, though all trunking operations will occur on the uplinkComponent. A current list of VLAN trunks for a network component on a customer server can be found at 'uplinkComponent->networkVlanTrunks'. +// +// Configuration of network hardware is done asynchronously, do not depend on the return of this call as an indication that the removed VLANs will be inaccessible. +func (r Network_Component) RemoveNetworkVlanTrunks(networkVlans []datatypes.Network_Vlan) (resp []datatypes.Network_Vlan, err error) { + params := []interface{}{ + networkVlans, + } + err = r.Session.DoRequest("SoftLayer_Network_Component", "removeNetworkVlanTrunks", params, &r.Options, &resp) + return +} + +// The SoftLayer_Network_Component_Firewall data type contains general information relating to a single SoftLayer network component firewall. This is the object which ties the running rules to a specific downstream server. Use the [[SoftLayer Network Firewall Template]] service to pull SoftLayer recommended rule set templates. Use the [[SoftLayer Network Firewall Update Request]] service to submit a firewall update request. +type Network_Component_Firewall struct { + Session *session.Session + Options sl.Options +} + +// GetNetworkComponentFirewallService returns an instance of the Network_Component_Firewall SoftLayer service +func GetNetworkComponentFirewallService(sess *session.Session) Network_Component_Firewall { + return Network_Component_Firewall{Session: sess} +} + +func (r Network_Component_Firewall) Id(id int) Network_Component_Firewall { + r.Options.Id = &id + return r +} + +func (r Network_Component_Firewall) Mask(mask string) Network_Component_Firewall { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Network_Component_Firewall) Filter(filter string) Network_Component_Firewall { + r.Options.Filter = filter + return r +} + +func (r Network_Component_Firewall) Limit(limit int) Network_Component_Firewall { + r.Options.Limit = &limit + return r +} + +func (r Network_Component_Firewall) Offset(offset int) Network_Component_Firewall { + r.Options.Offset = &offset + return r +} + +// Retrieve The additional subnets linked to this network component firewall, that inherit rules from the host that the context slot is attached to. +func (r Network_Component_Firewall) GetApplyServerRuleSubnets() (resp []datatypes.Network_Subnet, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Component_Firewall", "getApplyServerRuleSubnets", nil, &r.Options, &resp) + return +} + +// Retrieve The billing item for a Hardware Firewall (Dedicated). +func (r Network_Component_Firewall) GetBillingItem() (resp datatypes.Billing_Item, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Component_Firewall", "getBillingItem", nil, &r.Options, &resp) + return +} + +// Retrieve The network component of the guest virtual server that this network component firewall belongs to. +func (r Network_Component_Firewall) GetGuestNetworkComponent() (resp datatypes.Virtual_Guest_Network_Component, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Component_Firewall", "getGuestNetworkComponent", nil, &r.Options, &resp) + return +} + +// Retrieve The network component of the switch interface that this network component firewall belongs to. +func (r Network_Component_Firewall) GetNetworkComponent() (resp datatypes.Network_Component, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Component_Firewall", "getNetworkComponent", nil, &r.Options, &resp) + return +} + +// Retrieve The update requests made for this firewall. +func (r Network_Component_Firewall) GetNetworkFirewallUpdateRequest() (resp []datatypes.Network_Firewall_Update_Request, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Component_Firewall", "getNetworkFirewallUpdateRequest", nil, &r.Options, &resp) + return +} + +// getObject returns a SoftLayer_Network_Firewall_Module_Context_Interface_AccessControlList_Network_Component object. You can only get objects for servers attached to your account that have a network firewall enabled. +func (r Network_Component_Firewall) GetObject() (resp datatypes.Network_Component_Firewall, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Component_Firewall", "getObject", nil, &r.Options, &resp) + return +} + +// Retrieve The currently running rule set of this network component firewall. +func (r Network_Component_Firewall) GetRules() (resp []datatypes.Network_Component_Firewall_Rule, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Component_Firewall", "getRules", nil, &r.Options, &resp) + return +} + +// Retrieve The additional subnets linked to this network component firewall. +func (r Network_Component_Firewall) GetSubnets() (resp []datatypes.Network_Subnet, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Component_Firewall", "getSubnets", nil, &r.Options, &resp) + return +} + +// The SoftLayer_Network_ContentDelivery_Account data type models an individual CDN account. CDN accounts contain references to the SoftLayer customer account they belong to, login credentials for upload services, and a CDN account's status. Please contact SoftLayer sales to purchase or cancel a CDN account +type Network_ContentDelivery_Account struct { + Session *session.Session + Options sl.Options +} + +// GetNetworkContentDeliveryAccountService returns an instance of the Network_ContentDelivery_Account SoftLayer service +func GetNetworkContentDeliveryAccountService(sess *session.Session) Network_ContentDelivery_Account { + return Network_ContentDelivery_Account{Session: sess} +} + +func (r Network_ContentDelivery_Account) Id(id int) Network_ContentDelivery_Account { + r.Options.Id = &id + return r +} + +func (r Network_ContentDelivery_Account) Mask(mask string) Network_ContentDelivery_Account { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Network_ContentDelivery_Account) Filter(filter string) Network_ContentDelivery_Account { + r.Options.Filter = filter + return r +} + +func (r Network_ContentDelivery_Account) Limit(limit int) Network_ContentDelivery_Account { + r.Options.Limit = &limit + return r +} + +func (r Network_ContentDelivery_Account) Offset(offset int) Network_ContentDelivery_Account { + r.Options.Offset = &offset + return r +} + +// Internap servers attempts to validate a token before serving a protected content. SoftLayer customer does not need to invoke this method. Please refer to [[SoftLayer_Network_ContentDelivery_Authentication_Token|Authentication Token]] object for more details on Content Authentication Service. +func (r Network_ContentDelivery_Account) AuthenticateResourceRequest(parameter *datatypes.Container_Network_ContentDelivery_Authentication_Parameter) (resp bool, err error) { + params := []interface{}{ + parameter, + } + err = r.Session.DoRequest("SoftLayer_Network_ContentDelivery_Account", "authenticateResourceRequest", params, &r.Options, &resp) + return +} + +// You can further organize your contents on the CDN FTP server by creating sub directories. This method creates a directory on the CDN FTP server. A user must have CDN_FILE_MANAGE privilege to use this method. A directory name must be an absolute path and you can only create sub directories in /media folder. +func (r Network_ContentDelivery_Account) CreateDirectory(directoryName *string) (resp bool, err error) { + params := []interface{}{ + directoryName, + } + err = r.Session.DoRequest("SoftLayer_Network_ContentDelivery_Account", "createDirectory", params, &r.Options, &resp) + return +} + +// This method allows you to create a default CDN FTP user record on the ftp.cdnlayer.service.softlayer.com server. As with a CDN FTP user account, you can upload contents to the CDN host server through the SoftLayer private network. SoftLayer currently allows only one FTP user for each CDN account. Your default CDN FTP user record is created upon successful creation of a CDN account. You may not need to use this method at all. This is provided in support of the previous CDN customers. SoftLayer may offer multiple CDN FTP users for a single CDN account in the future. +// +// Optionally, you can provide a new password when invoking this method and a new password must follow the rules below: +// * ...must be between 8 and 20 characters long +// * ...must be an alphanumeric value +// * ...can contain these characters: - _ ! % # $ ^ & * +func (r Network_ContentDelivery_Account) CreateFtpUser(newPassword *string) (resp bool, err error) { + params := []interface{}{ + newPassword, + } + err = r.Session.DoRequest("SoftLayer_Network_ContentDelivery_Account", "createFtpUser", params, &r.Options, &resp) + return +} + +// With Origin Pull, content is pulled from your origin server as needed and then delivered to visitors. You do not need to upload your files to the CDN FTP: you can utilize the files that currently exist on your origin server. It will take 10 to 15 minutes for this to take effect after you create an Origin Pull rule. Origin Pull is only supported for HTTP protocol and you would continue to use the CDN FTP for Flash and Windows Media streaming services. +// +// A valid origin host can include a directory information. You may include an authentication username and password along with an origin host. If you set an authentication username and password, CDN servers will include "Authorization:" header in every request. You may use the "Authorization:" header to grant access to CDN servers or you may use it to distinguish CDN servers from normal visitors. Here is a list of valid origin hosts: +// * www.website.com +// * www.website.com/cdn_content +// * cdn_user:password@www.website.com +// * cdn_user:password@www.website.com/images +// +// +// An authentication username should be an alphanumeric string and allowed special characters are . - _
    An authentication password should be an alphanumeric string and allowed special characters are . - _ ! # $ % ^ & *
    Both username and password must be between 3 to 10 characters long. +// +// CDN nodes will cache your contents and you can control cache lifetime by modifying your web server's configuration. This method also creates a FTP directory restriction upon successful Origin Pull set up. You will not be able to access /media/http directory since contents will be pulled from your origin server. An origin domain must be a valid domain name and it can contain path information. This can help you organize contents on your origin server. For example, you could set an origin domain as: mydomain.com/cdn_contents +// +// A CNAME record allows you to have a customized URL. You can get rid of your CDN account name from the URL. A valid CNAME for the Origin Pull method must point to .http.cdn.softlayer.net. +// +// There are 2 types of origin pull mappings. The one with a CNAME record or the one without a CNAME record and they work very differently. +// +// gzip is supported if your web server sends a proper gzip header. For more details, visit our [http://knowledgelayer.softlayer.com/topic/cdn KnowledgeLayer] +func (r Network_ContentDelivery_Account) CreateOriginPullMapping(mappingObject *datatypes.Container_Network_ContentDelivery_OriginPull_Mapping) (resp bool, err error) { + params := []interface{}{ + mappingObject, + } + err = r.Session.DoRequest("SoftLayer_Network_ContentDelivery_Account", "createOriginPullMapping", params, &r.Options, &resp) + return +} + +// This method is deprecated, please use [[[[SoftLayer_Network_ContentDelivery_Account::createOriginPullMapping|createOriginPullMapping]] method instead. +func (r Network_ContentDelivery_Account) CreateOriginPullRule(originDomain *string, cnameRecord *string) (resp bool, err error) { + params := []interface{}{ + originDomain, + cnameRecord, + } + err = r.Session.DoRequest("SoftLayer_Network_ContentDelivery_Account", "createOriginPullRule", params, &r.Options, &resp) + return +} + +// You need to specify a directory on your CDN FTP or on your origin host in which your secure content resides to enable the token authentication . It will take about about 30 minutes for a newly configured token authentication directory to take effect. +func (r Network_ContentDelivery_Account) CreateTokenAuthenticationDirectory(directory *string, mediaType *string) (resp bool, err error) { + params := []interface{}{ + directory, + mediaType, + } + err = r.Session.DoRequest("SoftLayer_Network_ContentDelivery_Account", "createTokenAuthenticationDirectory", params, &r.Options, &resp) + return +} + +// This method deletes your FTP user record on the ftp.cdnlayer.service.softlayer.com server. Refer to the service overview of [[SoftLayer_Network_ContentDelivery_Account::createFtpUser|createFtpUser]] method for more information on the CDN FTP server. +func (r Network_ContentDelivery_Account) DeleteFtpUser() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Network_ContentDelivery_Account", "deleteFtpUser", nil, &r.Options, &resp) + return +} + +// This method removes an Origin Pull domain rule. Once an Origin Pull rule is removed, you will be able to access the /media/http directory. It will take 10 to 15 minutes for this to take effect after you remove your Origin Pull rule. Cached contents on CDN POPs may live longer than 15 minutes. +func (r Network_ContentDelivery_Account) DeleteOriginPullRule(originMappingId *string) (resp bool, err error) { + params := []interface{}{ + originMappingId, + } + err = r.Session.DoRequest("SoftLayer_Network_ContentDelivery_Account", "deleteOriginPullRule", params, &r.Options, &resp) + return +} + +// This method disables CDN access log. +func (r Network_ContentDelivery_Account) DisableLogging() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Network_ContentDelivery_Account", "disableLogging", nil, &r.Options, &resp) + return +} + +// This method enables CDN access log. +func (r Network_ContentDelivery_Account) EnableLogging() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Network_ContentDelivery_Account", "enableLogging", nil, &r.Options, &resp) + return +} + +// Retrieve The customer account that a CDN account belongs to. +func (r Network_ContentDelivery_Account) GetAccount() (resp datatypes.Account, err error) { + err = r.Session.DoRequest("SoftLayer_Network_ContentDelivery_Account", "getAccount", nil, &r.Options, &resp) + return +} + +// This method returns bandwidth data for each POP. [[SoftLayer_Container_Network_ContentDelivery_Bandwidth_PointsOfPresence_Summary|POP Bandwidth]] object contains a starting time, ending time, total bytes, POP name and bandwidth unit. +// +// POP bandwidth data is updated everyday at 22:50 CST (or CDT). It queries and stores POP data from the day before. It is a more resource intensive process than a regular CDN bandwidth update thus we run this once a day. Since the POP bandwidth data is delayed for a day, there is no correction process for POP data. The POP bandwidth is not associated with any billing process and is mainly used to generate a POP bandwidth graph. +func (r Network_ContentDelivery_Account) GetAllPopsBandwidthData(beginDateTime *datatypes.Time, endDateTime *datatypes.Time) (resp []datatypes.Container_Network_ContentDelivery_Bandwidth_PointsOfPresence_Summary, err error) { + params := []interface{}{ + beginDateTime, + endDateTime, + } + err = r.Session.DoRequest("SoftLayer_Network_ContentDelivery_Account", "getAllPopsBandwidthData", params, &r.Options, &resp) + return +} + +// This method returns a bandwidth graph for every POP wrapped in [[SoftLayer_Container_Bandwidth_GraphOutputsExtended|Bandwidth Graph]] object. A POP bandwidth graph shows bandwidth consumption per each POP in a bar graph. [[SoftLayer_Container_Bandwidth_GraphOutputsExtended|Bandwidth Graph]] object contains a begin time, end time, title of the graph, binary date, in and outbound total bandwidth in bytes +func (r Network_ContentDelivery_Account) GetAllPopsBandwidthImage(title *string, beginDateTime *datatypes.Time, endDateTime *datatypes.Time, unit *string) (resp datatypes.Container_Bandwidth_GraphOutputsExtended, err error) { + params := []interface{}{ + title, + beginDateTime, + endDateTime, + unit, + } + err = r.Session.DoRequest("SoftLayer_Network_ContentDelivery_Account", "getAllPopsBandwidthImage", params, &r.Options, &resp) + return +} + +// Retrieve The CDN account id that this CDN account is associated with. +func (r Network_ContentDelivery_Account) GetAssociatedCdnAccountId() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_Network_ContentDelivery_Account", "getAssociatedCdnAccountId", nil, &r.Options, &resp) + return +} + +// Retrieve The IP addresses that are used for the content authentication service. +func (r Network_ContentDelivery_Account) GetAuthenticationIpAddresses() (resp []datatypes.Network_ContentDelivery_Authentication_Address, err error) { + err = r.Session.DoRequest("SoftLayer_Network_ContentDelivery_Account", "getAuthenticationIpAddresses", nil, &r.Options, &resp) + return +} + +// CDN servers will invoke a Web Service method to validate a content authentication token. This method returns all token validation web service endpoints set for a CDN account. You can override the default web service by calling [[SoftLayer_Network_ContentDelivery_Authentication_Token|setContentAuthenticationWsdl setContentAuthenticationWsdl]] method. +func (r Network_ContentDelivery_Account) GetAuthenticationServiceEndpoints() (resp []datatypes.Container_Network_ContentDelivery_Authentication_ServiceEndpoint, err error) { + err = r.Session.DoRequest("SoftLayer_Network_ContentDelivery_Account", "getAuthenticationServiceEndpoints", nil, &r.Options, &resp) + return +} + +// This method returns bandwidth data for a given time range. It returns an array of [[SoftLayer_Container_Network_ContentDelivery_Bandwidth_Summary|bandwidth summary]] objects. [[SoftLayer_Container_Network_ContentDelivery_Bandwidth_Summary|Bandwidth summary]] object contains a beginning time, ending time, and bandwidth in bytes. +// +// A Beginning and ending date parameters have to be a timestamp in "yyyy-mm-dd HH24:mi:ss" format and it assumes the time is in Central Standard Time (CST) or Central Daylight Time (CDT) time zone. CDN bandwidth data is stored in Greenwich Mean Time (GMT) internally and converts a beginning and ending time to GMT before querying. +// +// Unlike server bandwidth, CDN bandwidth returns total bytes consumed within an hour. For example, if you pass "2008-10-10 00:00:00" for a beginning time and "2008-10-10 05:00:00" for an ending time, your return value will have 6 elements of bandwidth summary objects. The first bandwidth summary object will have the total bytes consumed between 2008-10-10 00:00:00 and 2008-10-10 05:00:00. And the last object will have the bandwidth consumed between 2008-10-10 05:00:00 and 2008-10-10 00:59:59. The bandwidth data is updated at 10 minutes after every hour. The queried data is on a two hour time delay. The two hour delay is required to gather bandwidth data from each POP and that is the minimum delay required to create a feasible graph. It usually takes about 8 hours to reconcile all the data from every CDN POP. This hourly data is corrected after 24 hours if necessary. If you consume a large amount of bandwidth, your bandwidth data will be updated the next day. +func (r Network_ContentDelivery_Account) GetBandwidthData(beginDateTime *datatypes.Time, endDateTime *datatypes.Time) (resp []datatypes.Container_Network_ContentDelivery_Bandwidth_Summary, err error) { + params := []interface{}{ + beginDateTime, + endDateTime, + } + err = r.Session.DoRequest("SoftLayer_Network_ContentDelivery_Account", "getBandwidthData", params, &r.Options, &resp) + return +} + +// This method returns bandwidth data for a given time range. It returns an array of [[SoftLayer_Container_Network_ContentDelivery_Report_Usage|bandwidth usage report]] objects. +// +// These will be first sorted by timestamp, and there will be one entry with that timestamp for each enabled region. The region type 'NONE' is provided only when non-region-specific data is returned. [[SoftLayer_Container_Network_ContentDelivery_Report_Usage|bandwidth usage report]] objects with a region will never contain non-region-specific data. Non-region-specific values are standardTotal and sslTotal; standardTotal is computed by adding the HTTP Large, Windows Media, Flash and Application Delivery Network bandwidth. The sslTotal is computed by adding the HTTP Large SSL bandwidth and the Application Delivery Network SSL bandwidth. +// +// A Beginning and ending date parameters have to be a timestamp in "yyyy-mm-dd HH24:mi:ss" format and it assumes the time is in Central Standard Time (CST) or Central Daylight Time (CDT) time zone. CDN bandwidth data is stored in Greenwich Mean Time (GMT) internally and converts a beginning and ending time to GMT before querying. +// +// Unlike server bandwidth, CDN bandwidth returns total bytes consumed within an hour. For example, if you pass "2008-10-10 00:00:00" for a beginning time and "2008-10-10 05:00:00" for an ending time, your return value will have 6 elements of bandwidth summary objects. The first bandwidth summary object will have the total bytes consumed between 2008-10-10 00:00:00 and 2008-10-10 05:00:00. And the last object will have the bandwidth consumed between 2008-10-10 05:00:00 and 2008-10-10 00:59:59. The bandwidth data is updated at 10 minutes after every hour. The queried data is on a two hour time delay. The two hour delay is required to gather bandwidth data from each POP and that is the minimum delay required to create a feasible graph. It usually takes about 8 hours to reconcile all the data from every CDN POP. This hourly data is corrected after 24 hours if necessary. If you consume a large amount of bandwidth, your bandwidth data will be updated the next day. +func (r Network_ContentDelivery_Account) GetBandwidthDataWithTypes(beginDateTime *datatypes.Time, endDateTime *datatypes.Time, period *string) (resp []datatypes.Container_Network_ContentDelivery_Report_Usage, err error) { + params := []interface{}{ + beginDateTime, + endDateTime, + period, + } + err = r.Session.DoRequest("SoftLayer_Network_ContentDelivery_Account", "getBandwidthDataWithTypes", params, &r.Options, &resp) + return +} + +// This method returns a bandwidth graph wrapped in [[SoftLayer_Container_Bandwidth_GraphOutputsExtended|Bandwidth Graph]] object. [[SoftLayer_Container_Bandwidth_GraphOutputsExtended|Bandwidth Graph]] object contains a starting time, ending time, graph title, graph binary data, and in and outbound total bytes. +func (r Network_ContentDelivery_Account) GetBandwidthImage(title *string, beginDateTime *datatypes.Time, endDateTime *datatypes.Time) (resp datatypes.Container_Bandwidth_GraphOutputsExtended, err error) { + params := []interface{}{ + title, + beginDateTime, + endDateTime, + } + err = r.Session.DoRequest("SoftLayer_Network_ContentDelivery_Account", "getBandwidthImage", params, &r.Options, &resp) + return +} + +// Retrieve The current billing item for a CDN account. +func (r Network_ContentDelivery_Account) GetBillingItem() (resp datatypes.Billing_Item, err error) { + err = r.Session.DoRequest("SoftLayer_Network_ContentDelivery_Account", "getBillingItem", nil, &r.Options, &resp) + return +} + +// Retrieve The name of a CDN account. +func (r Network_ContentDelivery_Account) GetCdnAccountName() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_Network_ContentDelivery_Account", "getCdnAccountName", nil, &r.Options, &resp) + return +} + +// Retrieve A brief note on a CDN account. +func (r Network_ContentDelivery_Account) GetCdnAccountNote() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_Network_ContentDelivery_Account", "getCdnAccountNote", nil, &r.Options, &resp) + return +} + +// Retrieve The solution type of a CDN account. +func (r Network_ContentDelivery_Account) GetCdnSolutionName() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_Network_ContentDelivery_Account", "getCdnSolutionName", nil, &r.Options, &resp) + return +} + +// An origin pull mapping is a combination of your customer origin record and a CNAME (optional) record. You can now keep track of your customer origin records separate from your CNAME records. This service returns your customer origin records. +func (r Network_ContentDelivery_Account) GetCustomerOrigins(mediaType *string) (resp []datatypes.Container_Network_ContentDelivery_OriginPull_Mapping, err error) { + params := []interface{}{ + mediaType, + } + err = r.Session.DoRequest("SoftLayer_Network_ContentDelivery_Account", "getCustomerOrigins", params, &r.Options, &resp) + return +} + +// Retrieve Indicates if CDN account is dependent on other service. If set, this CDN account is limited to these services: createOriginPullMapping, deleteOriginPullRule, getOriginPullMappingInformation, getCdnUrls, purgeCache, loadContent, manageHttpCompression +func (r Network_ContentDelivery_Account) GetDependantServiceFlag() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Network_ContentDelivery_Account", "getDependantServiceFlag", nil, &r.Options, &resp) + return +} + +// This method returns an array of [[SoftLayer_Container_Network_Directory_Listing|Directory Listing]] objects. You must have CDN_FILE_MANAGE privilege and you can only retrieve directory information within /media directory. A [[SoftLayer_Container_Network_Directory_Listing|Directory Listing]] object contains type (indicating whether it is a file or a directory), name and file count if it is a directory. +func (r Network_ContentDelivery_Account) GetDirectoryInformation(directoryName *string) (resp []datatypes.Container_Network_Directory_Listing, err error) { + params := []interface{}{ + directoryName, + } + err = r.Session.DoRequest("SoftLayer_Network_ContentDelivery_Account", "getDirectoryInformation", params, &r.Options, &resp) + return +} + +// This method returns disk space usage data for your CDN FTP. +func (r Network_ContentDelivery_Account) GetDiskSpaceUsageDataByDate(beginDateTime *datatypes.Time, endDateTime *datatypes.Time) (resp []datatypes.Metric_Tracking_Object_Data, err error) { + params := []interface{}{ + beginDateTime, + endDateTime, + } + err = r.Session.DoRequest("SoftLayer_Network_ContentDelivery_Account", "getDiskSpaceUsageDataByDate", params, &r.Options, &resp) + return +} + +// This method returns a disk usage graph wrapped in [[SoftLayer_Container_Bandwidth_GraphOutputsExtended|Bandwidth Graph]] object. [[SoftLayer_Container_Bandwidth_GraphOutputsExtended|Bandwidth Graph]] object contains a starting time, ending time, graph title, graph binary data, and in and outbound total bytes. +func (r Network_ContentDelivery_Account) GetDiskSpaceUsageImageByDate(beginDateTime *datatypes.Time, endDateTime *datatypes.Time) (resp datatypes.Container_Bandwidth_GraphOutputs, err error) { + params := []interface{}{ + beginDateTime, + endDateTime, + } + err = r.Session.DoRequest("SoftLayer_Network_ContentDelivery_Account", "getDiskSpaceUsageImageByDate", params, &r.Options, &resp) + return +} + +// This method returns your login credentials to the CDN FTP server (ftp.cdnlayer.service.softlayer.com server). You must have CDN_FILE_MANAGE privilege. Refer to the service overview of [[SoftLayer_Network_ContentDelivery_Account::createFtpUser|createFtpUser]] method for more information on the CDN FTP server. +// +// If you want to download raw log files, prefix the username with "LOGS-" (without quotes) when logging in. SoftLayer designed CDN accounts so they can have multiple CDN FTP users. However, this method returns the default CDN FTP user information: multi user support may be implemented in the future. +func (r Network_ContentDelivery_Account) GetFtpAttributes() (resp datatypes.Container_Network_Authentication_Data, err error) { + err = r.Session.DoRequest("SoftLayer_Network_ContentDelivery_Account", "getFtpAttributes", nil, &r.Options, &resp) + return +} + +// Retrieve Indicates if it is a legacy CDN or not +func (r Network_ContentDelivery_Account) GetLegacyCdnFlag() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Network_ContentDelivery_Account", "getLegacyCdnFlag", nil, &r.Options, &resp) + return +} + +// Retrieve Indicates if CDN logging is enabled. +func (r Network_ContentDelivery_Account) GetLogEnabledFlag() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_Network_ContentDelivery_Account", "getLogEnabledFlag", nil, &r.Options, &resp) + return +} + +// This method returns CDN URLs for static file (http), Flash streaming (rtmp) and Window Media (mms) streaming services. You can generate your CDN URLs based on the information retrieved by this method. +func (r Network_ContentDelivery_Account) GetMediaUrls() (resp []datatypes.Container_Network_ContentDelivery_SupportedProtocol, err error) { + err = r.Session.DoRequest("SoftLayer_Network_ContentDelivery_Account", "getMediaUrls", nil, &r.Options, &resp) + return +} + +// getObject retrieves the SoftLayer_Network_ContentDelivery_Account object whose ID number corresponds to the ID number of the initial parameter passed to the SoftLayer_Network_ContentDelivery_Account service. You can only retrieve CDN accounts assigned to your SoftLayer customer account. +func (r Network_ContentDelivery_Account) GetObject() (resp datatypes.Network_ContentDelivery_Account, err error) { + err = r.Session.DoRequest("SoftLayer_Network_ContentDelivery_Account", "getObject", nil, &r.Options, &resp) + return +} + +// This method returns a list of origin pull configuration data. +func (r Network_ContentDelivery_Account) GetOriginPullMappingInformation() (resp []datatypes.Container_Network_ContentDelivery_OriginPull_Mapping, err error) { + err = r.Session.DoRequest("SoftLayer_Network_ContentDelivery_Account", "getOriginPullMappingInformation", nil, &r.Options, &resp) + return +} + +// This method returns CDN URLs that supports Origin Pull mappings. +func (r Network_ContentDelivery_Account) GetOriginPullSupportedMediaUrls() (resp []datatypes.Container_Network_ContentDelivery_SupportedProtocol, err error) { + err = r.Session.DoRequest("SoftLayer_Network_ContentDelivery_Account", "getOriginPullSupportedMediaUrls", nil, &r.Options, &resp) + return +} + +// This method returns the domain name of your Origin Pull rule. It assumes you have already setup an Origin Pull rule. Otherwise, it will throw an exception. A returning value is the value of the first parameter (origin pull domain) you provided to [[SoftLayer_Network_ContentDelivery_Account::createOriginPullRule|createOriginPullRule]] method. See Error Handling section below for possible errors. +func (r Network_ContentDelivery_Account) GetOriginPullUrl() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_Network_ContentDelivery_Account", "getOriginPullUrl", nil, &r.Options, &resp) + return +} + +// This method returns an array of CDN POPs (Points of Presence) object. [[SoftLayer_Container_Network_ContentDelivery_PointsOfPresence|POP object]] object contains the POP id and name. +func (r Network_ContentDelivery_Account) GetPopNames() (resp []datatypes.Container_Network_ContentDelivery_PointsOfPresence, err error) { + err = r.Session.DoRequest("SoftLayer_Network_ContentDelivery_Account", "getPopNames", nil, &r.Options, &resp) + return +} + +// Retrieve Indicates if customer is allowed to access the CDN provider's management portal. +func (r Network_ContentDelivery_Account) GetProviderPortalAccessFlag() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Network_ContentDelivery_Account", "getProviderPortalAccessFlag", nil, &r.Options, &resp) + return +} + +// This method returns your login credentials to the CDN provider portal. +func (r Network_ContentDelivery_Account) GetProviderPortalCredentials() (resp datatypes.Container_Network_Authentication_Data, err error) { + err = r.Session.DoRequest("SoftLayer_Network_ContentDelivery_Account", "getProviderPortalCredentials", nil, &r.Options, &resp) + return +} + +// Retrieve A CDN account's status presented in a more detailed data type. +func (r Network_ContentDelivery_Account) GetStatus() (resp datatypes.Network_ContentDelivery_Account_Status, err error) { + err = r.Session.DoRequest("SoftLayer_Network_ContentDelivery_Account", "getStatus", nil, &r.Options, &resp) + return +} + +// This method returns all token authentication directories. +func (r Network_ContentDelivery_Account) GetTokenAuthenticationDirectories() (resp []datatypes.Container_Network_Directory_Listing, err error) { + err = r.Session.DoRequest("SoftLayer_Network_ContentDelivery_Account", "getTokenAuthenticationDirectories", nil, &r.Options, &resp) + return +} + +// Retrieve Indicates if the token authentication service is enabled or not. +func (r Network_ContentDelivery_Account) GetTokenAuthenticationEnabledFlag() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Network_ContentDelivery_Account", "getTokenAuthenticationEnabledFlag", nil, &r.Options, &resp) + return +} + +// This method returns your login credentials to the public CDN FTP. +func (r Network_ContentDelivery_Account) GetVendorFtpAttributes() (resp datatypes.Container_Network_Authentication_Data, err error) { + err = r.Session.DoRequest("SoftLayer_Network_ContentDelivery_Account", "getVendorFtpAttributes", nil, &r.Options, &resp) + return +} + +// Whether you are using Origin Pull or POP Pull, your content will be transferred and cached on CDN POP (node) on the initial request. If you wish to load your content to all CDN POPs, you may use this service to accomplish that. Please keep in mind, it will take about 10 to 15 minutes to load content to all CDN POPs depending on the load. +// +// You can only specify 5 URLs at a time. +func (r Network_ContentDelivery_Account) LoadContent(objectUrls []string) (resp bool, err error) { + params := []interface{}{ + objectUrls, + } + err = r.Session.DoRequest("SoftLayer_Network_ContentDelivery_Account", "loadContent", params, &r.Options, &resp) + return +} + +// HTTP Compression is used to reduce the bandwidth used to deliver an object. You can specify list of content types that needs to be compressed. If you omit the content type parameter, these values will be used by default: +// * text/plain +// * text/html +// * text/css +// * application/x-javascript +// * text/javascript +// +// +// Note that files larger than 1MB will never be served with compression regardless of whether their content-type is enabled for compression. +func (r Network_ContentDelivery_Account) ManageHttpCompression(enableFlag *bool, mimeTypes []string) (resp bool, err error) { + params := []interface{}{ + enableFlag, + mimeTypes, + } + err = r.Session.DoRequest("SoftLayer_Network_ContentDelivery_Account", "manageHttpCompression", params, &r.Options, &resp) + return +} + +// CDN's cache mechanism works similar to that of web browsers. When CDN pulls a file from your origin server or from your CDN FTP directory for the first time, it creates a cache file on itself. CDN re-uses cache files to save trips to the origin server and thus it speeds up delivering content to visitors. This method removes cached objects on every server in the CDN network. If you see a stale content or a file that send an incorrect header, purging cache will correct the issue. CDN will pull a fresh content from your origin server or your CDN FTP. +// +// This method takes an array of URLs. A URL must be exact as it is being requested by clients. An example URLs may look like this: +// * http://.http.cdn.softlayer.net/mycdnname/some_file.txt +// +// +// If you created a CNAME that points to CDN host, use your CNAME URL instead. +// * http://image.mydomain.com/some_file.txt +// +// +// It takes approximately 3-5 minutes for the system to delete the requested object on every CDN server from submission . +func (r Network_ContentDelivery_Account) PurgeCache(objectUrls []string) (resp []datatypes.Container_Network_ContentDelivery_PurgeService_Response, err error) { + params := []interface{}{ + objectUrls, + } + err = r.Session.DoRequest("SoftLayer_Network_ContentDelivery_Account", "purgeCache", params, &r.Options, &resp) + return +} + +// If you want to turn off the token authentication, use this method to remove a directory from the token authentication directory. +func (r Network_ContentDelivery_Account) RemoveAuthenticationDirectory(directory *string, mediaType *string) (resp bool, err error) { + params := []interface{}{ + directory, + mediaType, + } + err = r.Session.DoRequest("SoftLayer_Network_ContentDelivery_Account", "removeAuthenticationDirectory", params, &r.Options, &resp) + return +} + +// With this method you can remove a file or a directory on the CDN FTP server. If a source name ends with a slash (/), this method assumes it is a directory. A source name must be an absolute path. It does not check to see if a file or directory exists before deletion. You can only remove files and directories that are in /media folder. Be sure to catch an exception for the detail on an error. +func (r Network_ContentDelivery_Account) RemoveFile(source *string) (resp bool, err error) { + params := []interface{}{ + source, + } + err = r.Session.DoRequest("SoftLayer_Network_ContentDelivery_Account", "removeFile", params, &r.Options, &resp) + return +} + +// CDN servers will invoke a Web Service method to validate a content authentication token. CDN uses the default Web Service provided by SoftLayer to validate a token. A customer can use their own implementation of the token authentication Web Service. A valid SOAP WSDL will look similar [https://manage.softlayer.com/CdnService/authenticationWsdlExample/wsdl this]. +func (r Network_ContentDelivery_Account) SetAuthenticationServiceEndpoint(webserviceEndpoint *string, protocol *string) (resp bool, err error) { + params := []interface{}{ + webserviceEndpoint, + protocol, + } + err = r.Session.DoRequest("SoftLayer_Network_ContentDelivery_Account", "setAuthenticationServiceEndpoint", params, &r.Options, &resp) + return +} + +// With a CDN FTP, you can upload contents to CDN host server. Once you uploaded contents, your contents will be fetched by the CDN POP (Points of Presence) servers as needed. +// +// CDN supports three protocols: Flash streaming (rtmp), Window Media streaming (mms) and HTTP. Once you log in to the CDN FTP server, you will see three directories under /media directory. You have to upload your contents to a proper directory to use the different services. Refer to [[SoftLayer_Network_ContentDelivery_Account|CDN Account]] service overview for details on the CDN FTP server. "gzip" is supported if you compress your content before uploading and you have to change its extension to ".gz". [SoftLayer_Network_ContentDelivery_Account::createOriginPullRule|Origin Pull] also supports "gzip" contents and you don't have to modify file extension with Origin Pull. Once uploaded, your contents should be available almost immediately to visitors. However, it may take about 30 minutes to propagate files to the entire CDN network after uploading. For more details, visit our [hhttp://knowledgelayer.softlayer.com/topic/cdn KnowledgeLayer] +// +// This method updates the password for your CDN FTP account on the ftp.cdnlayer.service.softlayer.com server. You must provide an alphanumeric value for a new password. - _ ! % # $ ^ & * characters are allowed beside an alphanumeric string. +func (r Network_ContentDelivery_Account) SetFtpPassword(newPassword *string) (resp bool, err error) { + params := []interface{}{ + newPassword, + } + err = r.Session.DoRequest("SoftLayer_Network_ContentDelivery_Account", "setFtpPassword", params, &r.Options, &resp) + return +} + +// This method allows you to edit CDN account note. The maximum length for CDN account note is 30 characters. +func (r Network_ContentDelivery_Account) UpdateNote(note *string) (resp bool, err error) { + params := []interface{}{ + note, + } + err = r.Session.DoRequest("SoftLayer_Network_ContentDelivery_Account", "updateNote", params, &r.Options, &resp) + return +} + +// With this method, you can upload binary data to the CDN FTP server. This method supports files up to 20 Mega Bytes. You need to use the CDN FTP (ftp.cdnlayer.service.softlayer.com) to upload files larger than 20 MB. This method takes [[SoftLayer_Container_Utility_File_Attachment]] a first parameter. A target name must be an absolute path and you can only upload a file to a directory that is in /media folder. +func (r Network_ContentDelivery_Account) UploadStream(source *datatypes.Container_Utility_File_Attachment, target *string) (resp bool, err error) { + params := []interface{}{ + source, + target, + } + err = r.Session.DoRequest("SoftLayer_Network_ContentDelivery_Account", "uploadStream", params, &r.Options, &resp) + return +} + +// The SoftLayer_Network_ContentDelivery_Authentication_Address data type models an individual IP address that CDN allow or deny access from. +type Network_ContentDelivery_Authentication_Address struct { + Session *session.Session + Options sl.Options +} + +// GetNetworkContentDeliveryAuthenticationAddressService returns an instance of the Network_ContentDelivery_Authentication_Address SoftLayer service +func GetNetworkContentDeliveryAuthenticationAddressService(sess *session.Session) Network_ContentDelivery_Authentication_Address { + return Network_ContentDelivery_Authentication_Address{Session: sess} +} + +func (r Network_ContentDelivery_Authentication_Address) Id(id int) Network_ContentDelivery_Authentication_Address { + r.Options.Id = &id + return r +} + +func (r Network_ContentDelivery_Authentication_Address) Mask(mask string) Network_ContentDelivery_Authentication_Address { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Network_ContentDelivery_Authentication_Address) Filter(filter string) Network_ContentDelivery_Authentication_Address { + r.Options.Filter = filter + return r +} + +func (r Network_ContentDelivery_Authentication_Address) Limit(limit int) Network_ContentDelivery_Authentication_Address { + r.Options.Limit = &limit + return r +} + +func (r Network_ContentDelivery_Authentication_Address) Offset(offset int) Network_ContentDelivery_Authentication_Address { + r.Options.Offset = &offset + return r +} + +// This method creates an authentication IP record. Required parameters are +// +// +// * cdnAccountId - A CDN account id that belongs to your SoftLayer Account +// * ipAddress - An IP address or a IP range +// * accessType- It can be "ALLOW" or "DENY" +func (r Network_ContentDelivery_Authentication_Address) CreateObject(templateObject *datatypes.Network_ContentDelivery_Authentication_Address) (resp datatypes.Network_ContentDelivery_Authentication_Address, err error) { + params := []interface{}{ + templateObject, + } + err = r.Session.DoRequest("SoftLayer_Network_ContentDelivery_Authentication_Address", "createObject", params, &r.Options, &resp) + return +} + +// This method deletes an authentication IP address. +func (r Network_ContentDelivery_Authentication_Address) DeleteObject() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Network_ContentDelivery_Authentication_Address", "deleteObject", nil, &r.Options, &resp) + return +} + +// This method let you edit an authentication IP object by passing a modified object. +func (r Network_ContentDelivery_Authentication_Address) EditObject(templateObject *datatypes.Network_ContentDelivery_Authentication_Address) (resp bool, err error) { + params := []interface{}{ + templateObject, + } + err = r.Session.DoRequest("SoftLayer_Network_ContentDelivery_Authentication_Address", "editObject", params, &r.Options, &resp) + return +} + +// getObject retrieves the SoftLayer_Network_ContentDelivery_Authentication_Address object whose ID number corresponds to the ID number of the initial parameter passed to the SoftLayer_Network_ContentDelivery_Authentication_Address service. You can only retrieve authentication IP addresses assigned to one of your CDN account. +func (r Network_ContentDelivery_Authentication_Address) GetObject() (resp datatypes.Network_ContentDelivery_Authentication_Address, err error) { + err = r.Session.DoRequest("SoftLayer_Network_ContentDelivery_Authentication_Address", "getObject", nil, &r.Options, &resp) + return +} + +// The authentication IP address match occurs from the higher priority IP to the lower. This method will be helpful if you want to modify the order (priority) of the authentication IP addresses. You can use this method instead of editing individual authentication IP addresses. +// +// You can retrieve authentication IP address using [[SoftLayer_Network_ContentDelivery_Account::getAuthenticationIpAddresses|getAuthenticationIpAddresses]] method. Then, rearrange the authentication IP addresses and pass them to this method. When creating template objects as parameter, make sure to include the id of each authentication IP addresses. You must provide every authentication IP address. New priorities will be assigned to each authentication IP addresses in the order of they are passed. +func (r Network_ContentDelivery_Authentication_Address) RearrangeAuthenticationIp(cdnAccountId *int, templateObjects []datatypes.Network_ContentDelivery_Authentication_Address) (resp bool, err error) { + params := []interface{}{ + cdnAccountId, + templateObjects, + } + err = r.Session.DoRequest("SoftLayer_Network_ContentDelivery_Authentication_Address", "rearrangeAuthenticationIp", params, &r.Options, &resp) + return +} + +// The SoftLayer_Network_ContentDelivery_Authentication_Address data type models an individual IP address that CDN allow or deny access from. +type Network_ContentDelivery_Authentication_Token struct { + Session *session.Session + Options sl.Options +} + +// GetNetworkContentDeliveryAuthenticationTokenService returns an instance of the Network_ContentDelivery_Authentication_Token SoftLayer service +func GetNetworkContentDeliveryAuthenticationTokenService(sess *session.Session) Network_ContentDelivery_Authentication_Token { + return Network_ContentDelivery_Authentication_Token{Session: sess} +} + +func (r Network_ContentDelivery_Authentication_Token) Id(id int) Network_ContentDelivery_Authentication_Token { + r.Options.Id = &id + return r +} + +func (r Network_ContentDelivery_Authentication_Token) Mask(mask string) Network_ContentDelivery_Authentication_Token { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Network_ContentDelivery_Authentication_Token) Filter(filter string) Network_ContentDelivery_Authentication_Token { + r.Options.Filter = filter + return r +} + +func (r Network_ContentDelivery_Authentication_Token) Limit(limit int) Network_ContentDelivery_Authentication_Token { + r.Options.Limit = &limit + return r +} + +func (r Network_ContentDelivery_Authentication_Token) Offset(offset int) Network_ContentDelivery_Authentication_Token { + r.Options.Offset = &offset + return r +} + +// This method is deprecated! Use the [[SoftLayer_Network_ContentDelivery_Authentication_Token::getTimedToken|getTimedToken]] method. +// +// This method creates a managed authentication token. When passing a parameter, the only required value is your CDN account id which can be obtained from the [[SoftLayer_Account::getCdnAccounts|getCdnAccounts]] method. There are 3 optional parameters you can pass: +// +// +// * name - This helps you keep track of managed tokens. +// * referrer - If set, the token validation will check the client's referrer. Keep in mind, if a client doesn't have the referrer information, the token validation will fail. +// * clientIp - If set, the token validation will check the client's IP address. +// +// +func (r Network_ContentDelivery_Authentication_Token) CreateObject(templateObject *datatypes.Network_ContentDelivery_Authentication_Token) (resp datatypes.Network_ContentDelivery_Authentication_Token, err error) { + params := []interface{}{ + templateObject, + } + err = r.Session.DoRequest("SoftLayer_Network_ContentDelivery_Authentication_Token", "createObject", params, &r.Options, &resp) + return +} + +// This method is deprecated! +// +// This method returns all managed tokens for a CDN account. +func (r Network_ContentDelivery_Authentication_Token) GetAllManagedTokens(cdnAccountId *int) (resp []datatypes.Network_ContentDelivery_Authentication_Token, err error) { + params := []interface{}{ + cdnAccountId, + } + err = r.Session.DoRequest("SoftLayer_Network_ContentDelivery_Authentication_Token", "getAllManagedTokens", params, &r.Options, &resp) + return +} + +// This method is deprecated! +// +// getObject retrieves the SoftLayer_Network_ContentDelivery_Authentication_Token object whose ID number corresponds to the ID number of the initial parameter passed to the SoftLayer_Network_ContentDelivery_Authentication_Token service. You can only retrieve managed tokens assigned to one of your CDN account. +func (r Network_ContentDelivery_Authentication_Token) GetObject() (resp datatypes.Network_ContentDelivery_Authentication_Token, err error) { + err = r.Session.DoRequest("SoftLayer_Network_ContentDelivery_Authentication_Token", "getObject", nil, &r.Options, &resp) + return +} + +// This method returns an authentication token that expires after the seconds you specify. You can provide number of seconds to manage the token life. This parameter sets the expiration time for a token. A valid life time must be an integer between 60 and 604800 (1 week). A customer can also provide client ip and (or) referrer information. If used, a client from the same IP and referrer can view the protected contents. +// +// A valid IP address must be an IPv4 format or an IP block. if you want to block access from IP 211.37.0.0/16, you can enter "211.37." instead. IP blocks can be specified in the manner of "8bit times n". +// +// The referrer is the URL of the previous webpage from which a link was followed. A referrer should not include "http://" prefix and it can be maximum of 30 characters. +func (r Network_ContentDelivery_Authentication_Token) GetTimedToken(cdnAccountId *int, tokenLife *int, clientIp *string, referrer *string, mediaType *string) (resp string, err error) { + params := []interface{}{ + cdnAccountId, + tokenLife, + clientIp, + referrer, + mediaType, + } + err = r.Session.DoRequest("SoftLayer_Network_ContentDelivery_Authentication_Token", "getTimedToken", params, &r.Options, &resp) + return +} + +// This method is deprecated! +// +// This method revokes all managed tokens belong to a CDN account. +func (r Network_ContentDelivery_Authentication_Token) RevokeAllManagedTokens(cdnAccountId *int) (resp bool, err error) { + params := []interface{}{ + cdnAccountId, + } + err = r.Session.DoRequest("SoftLayer_Network_ContentDelivery_Authentication_Token", "revokeAllManagedTokens", params, &r.Options, &resp) + return +} + +// This method revokes all tokens belong to a CDN account. Valid media types are "HTTP", "FLASH" and "WM". +func (r Network_ContentDelivery_Authentication_Token) RevokeAllTokens(cdnAccountId *int, mediaType *string) (resp bool, err error) { + params := []interface{}{ + cdnAccountId, + mediaType, + } + err = r.Session.DoRequest("SoftLayer_Network_ContentDelivery_Authentication_Token", "revokeAllTokens", params, &r.Options, &resp) + return +} + +// This method is deprecated! +// +// Revokes a managed token. If you revoke a token, the token will be removed from SoftLayer's system but it will not remove your content on CDN FTP. The content that requires token validation will not be available to the visitor who is using a revoked token. +func (r Network_ContentDelivery_Authentication_Token) RevokeManagedToken(cdnAccountId *int, token *string) (resp bool, err error) { + params := []interface{}{ + cdnAccountId, + token, + } + err = r.Session.DoRequest("SoftLayer_Network_ContentDelivery_Authentication_Token", "revokeManagedToken", params, &r.Options, &resp) + return +} + +// This method is deprecated! +// +// Deletes multiple managed tokens +func (r Network_ContentDelivery_Authentication_Token) RevokeManagedTokens(templateObjects []datatypes.Network_ContentDelivery_Authentication_Token) (resp bool, err error) { + params := []interface{}{ + templateObjects, + } + err = r.Session.DoRequest("SoftLayer_Network_ContentDelivery_Authentication_Token", "revokeManagedTokens", params, &r.Options, &resp) + return +} + +// The SoftLayer_Network_Customer_Subnet data type contains general information relating to a single customer subnet (remote). +type Network_Customer_Subnet struct { + Session *session.Session + Options sl.Options +} + +// GetNetworkCustomerSubnetService returns an instance of the Network_Customer_Subnet SoftLayer service +func GetNetworkCustomerSubnetService(sess *session.Session) Network_Customer_Subnet { + return Network_Customer_Subnet{Session: sess} +} + +func (r Network_Customer_Subnet) Id(id int) Network_Customer_Subnet { + r.Options.Id = &id + return r +} + +func (r Network_Customer_Subnet) Mask(mask string) Network_Customer_Subnet { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Network_Customer_Subnet) Filter(filter string) Network_Customer_Subnet { + r.Options.Filter = filter + return r +} + +func (r Network_Customer_Subnet) Limit(limit int) Network_Customer_Subnet { + r.Options.Limit = &limit + return r +} + +func (r Network_Customer_Subnet) Offset(offset int) Network_Customer_Subnet { + r.Options.Offset = &offset + return r +} + +// For IPSec network tunnels, customers can create their local subnets using this method. After the customer is created successfully, the customer subnet can then be added to the IPSec network tunnel. +func (r Network_Customer_Subnet) CreateObject(templateObject *datatypes.Network_Customer_Subnet) (resp datatypes.Network_Customer_Subnet, err error) { + params := []interface{}{ + templateObject, + } + err = r.Session.DoRequest("SoftLayer_Network_Customer_Subnet", "createObject", params, &r.Options, &resp) + return +} + +// Retrieve All ip addresses associated with a subnet. +func (r Network_Customer_Subnet) GetIpAddresses() (resp []datatypes.Network_Customer_Subnet_IpAddress, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Customer_Subnet", "getIpAddresses", nil, &r.Options, &resp) + return +} + +// getObject retrieves the SoftLayer_Network_Customer_Subnet object whose ID number corresponds to the ID number of the init parameter passed to the SoftLayer_Network_Customer_Subnet service. You can only retrieve the subnet whose account matches the account that your portal user is assigned to. +func (r Network_Customer_Subnet) GetObject() (resp datatypes.Network_Customer_Subnet, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Customer_Subnet", "getObject", nil, &r.Options, &resp) + return +} + +// The SoftLayer_Network_Firewall_AccessControlList data type contains general information relating to a single SoftLayer firewall access to controll list. This is the object which ties the running rules to a specific context. Use the [[SoftLayer Network Firewall Template]] service to pull SoftLayer recommended rule set templates. Use the [[SoftLayer Network Firewall Update Request]] service to submit a firewall update request. +type Network_Firewall_AccessControlList struct { + Session *session.Session + Options sl.Options +} + +// GetNetworkFirewallAccessControlListService returns an instance of the Network_Firewall_AccessControlList SoftLayer service +func GetNetworkFirewallAccessControlListService(sess *session.Session) Network_Firewall_AccessControlList { + return Network_Firewall_AccessControlList{Session: sess} +} + +func (r Network_Firewall_AccessControlList) Id(id int) Network_Firewall_AccessControlList { + r.Options.Id = &id + return r +} + +func (r Network_Firewall_AccessControlList) Mask(mask string) Network_Firewall_AccessControlList { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Network_Firewall_AccessControlList) Filter(filter string) Network_Firewall_AccessControlList { + r.Options.Filter = filter + return r +} + +func (r Network_Firewall_AccessControlList) Limit(limit int) Network_Firewall_AccessControlList { + r.Options.Limit = &limit + return r +} + +func (r Network_Firewall_AccessControlList) Offset(offset int) Network_Firewall_AccessControlList { + r.Options.Offset = &offset + return r +} + +// Retrieve The update requests made for this firewall. +func (r Network_Firewall_AccessControlList) GetNetworkFirewallUpdateRequests() (resp []datatypes.Network_Firewall_Update_Request, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Firewall_AccessControlList", "getNetworkFirewallUpdateRequests", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Network_Firewall_AccessControlList) GetNetworkVlan() (resp datatypes.Network_Vlan, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Firewall_AccessControlList", "getNetworkVlan", nil, &r.Options, &resp) + return +} + +// getObject returns a SoftLayer_Network_Firewall_AccessControlList object. You can only get objects for servers attached to your account that have a network firewall enabled. +func (r Network_Firewall_AccessControlList) GetObject() (resp datatypes.Network_Firewall_AccessControlList, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Firewall_AccessControlList", "getObject", nil, &r.Options, &resp) + return +} + +// Retrieve The currently running rule set of this context access control list firewall. +func (r Network_Firewall_AccessControlList) GetRules() (resp []datatypes.Network_Vlan_Firewall_Rule, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Firewall_AccessControlList", "getRules", nil, &r.Options, &resp) + return +} + +// The SoftLayer_Network_Firewall_Interface data type contains general information relating to a single SoftLayer firewall interface. This is the object which ties the firewall context access control list to a firewall. Use the [[SoftLayer Network Firewall Template]] service to pull SoftLayer recommended rule set templates. Use the [[SoftLayer Network Firewall Update Request]] service to submit a firewall update request. +type Network_Firewall_Interface struct { + Session *session.Session + Options sl.Options +} + +// GetNetworkFirewallInterfaceService returns an instance of the Network_Firewall_Interface SoftLayer service +func GetNetworkFirewallInterfaceService(sess *session.Session) Network_Firewall_Interface { + return Network_Firewall_Interface{Session: sess} +} + +func (r Network_Firewall_Interface) Id(id int) Network_Firewall_Interface { + r.Options.Id = &id + return r +} + +func (r Network_Firewall_Interface) Mask(mask string) Network_Firewall_Interface { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Network_Firewall_Interface) Filter(filter string) Network_Firewall_Interface { + r.Options.Filter = filter + return r +} + +func (r Network_Firewall_Interface) Limit(limit int) Network_Firewall_Interface { + r.Options.Limit = &limit + return r +} + +func (r Network_Firewall_Interface) Offset(offset int) Network_Firewall_Interface { + r.Options.Offset = &offset + return r +} + +// Retrieve +func (r Network_Firewall_Interface) GetFirewallContextAccessControlLists() (resp []datatypes.Network_Firewall_AccessControlList, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Firewall_Interface", "getFirewallContextAccessControlLists", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Network_Firewall_Interface) GetNetworkVlan() (resp datatypes.Network_Vlan, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Firewall_Interface", "getNetworkVlan", nil, &r.Options, &resp) + return +} + +// getObject returns a SoftLayer_Network_Firewall_Interface object. You can only get objects for servers attached to your account that have a network firewall enabled. +func (r Network_Firewall_Interface) GetObject() (resp datatypes.Network_Firewall_Interface, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Firewall_Interface", "getObject", nil, &r.Options, &resp) + return +} + +// no documentation yet +type Network_Firewall_Module_Context_Interface struct { + Session *session.Session + Options sl.Options +} + +// GetNetworkFirewallModuleContextInterfaceService returns an instance of the Network_Firewall_Module_Context_Interface SoftLayer service +func GetNetworkFirewallModuleContextInterfaceService(sess *session.Session) Network_Firewall_Module_Context_Interface { + return Network_Firewall_Module_Context_Interface{Session: sess} +} + +func (r Network_Firewall_Module_Context_Interface) Id(id int) Network_Firewall_Module_Context_Interface { + r.Options.Id = &id + return r +} + +func (r Network_Firewall_Module_Context_Interface) Mask(mask string) Network_Firewall_Module_Context_Interface { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Network_Firewall_Module_Context_Interface) Filter(filter string) Network_Firewall_Module_Context_Interface { + r.Options.Filter = filter + return r +} + +func (r Network_Firewall_Module_Context_Interface) Limit(limit int) Network_Firewall_Module_Context_Interface { + r.Options.Limit = &limit + return r +} + +func (r Network_Firewall_Module_Context_Interface) Offset(offset int) Network_Firewall_Module_Context_Interface { + r.Options.Offset = &offset + return r +} + +// Retrieve +func (r Network_Firewall_Module_Context_Interface) GetFirewallContextAccessControlLists() (resp []datatypes.Network_Firewall_AccessControlList, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Firewall_Module_Context_Interface", "getFirewallContextAccessControlLists", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Network_Firewall_Module_Context_Interface) GetNetworkVlan() (resp datatypes.Network_Vlan, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Firewall_Module_Context_Interface", "getNetworkVlan", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Network_Firewall_Module_Context_Interface) GetObject() (resp datatypes.Network_Firewall_Module_Context_Interface, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Firewall_Module_Context_Interface", "getObject", nil, &r.Options, &resp) + return +} + +// The SoftLayer_Network_Firewall_Template type contains general information for a SoftLayer network firewall template. +// +// Firewall templates are recommend rule sets for use with SoftLayer Hardware Firewall (Dedicated). These optimized templates are designed to balance security restriction with application availability. The templates given may be altered to provide custom network security, or may be used as-is for basic security. At least one rule set MUST be applied for the firewall to block traffic. Use the [[SoftLayer Network Component Firewall]] service to view current rules. Use the [[SoftLayer Network Firewall Update Request]] service to submit a firewall update request. +type Network_Firewall_Template struct { + Session *session.Session + Options sl.Options +} + +// GetNetworkFirewallTemplateService returns an instance of the Network_Firewall_Template SoftLayer service +func GetNetworkFirewallTemplateService(sess *session.Session) Network_Firewall_Template { + return Network_Firewall_Template{Session: sess} +} + +func (r Network_Firewall_Template) Id(id int) Network_Firewall_Template { + r.Options.Id = &id + return r +} + +func (r Network_Firewall_Template) Mask(mask string) Network_Firewall_Template { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Network_Firewall_Template) Filter(filter string) Network_Firewall_Template { + r.Options.Filter = filter + return r +} + +func (r Network_Firewall_Template) Limit(limit int) Network_Firewall_Template { + r.Options.Limit = &limit + return r +} + +func (r Network_Firewall_Template) Offset(offset int) Network_Firewall_Template { + r.Options.Offset = &offset + return r +} + +// Get all available firewall template objects. +// +// ''getAllObjects'' returns an array of SoftLayer_Network_Firewall_Template objects upon success. +func (r Network_Firewall_Template) GetAllObjects() (resp []datatypes.Network_Firewall_Template, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Firewall_Template", "getAllObjects", nil, &r.Options, &resp) + return +} + +// getObject returns a SoftLayer_Network_Firewall_Template object. You can retrieve all available firewall templates. getAllObjects returns an array of all available SoftLayer_Network_Firewall_Template objects. You can use these templates to generate a [[SoftLayer Network Firewall Update Request]]. +// +// @SLDNDocumentation Service See Also SoftLayer_Network_Firewall_Update_Request +func (r Network_Firewall_Template) GetObject() (resp datatypes.Network_Firewall_Template, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Firewall_Template", "getObject", nil, &r.Options, &resp) + return +} + +// Retrieve The rule set that belongs to this firewall rules template. +func (r Network_Firewall_Template) GetRules() (resp []datatypes.Network_Firewall_Template_Rule, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Firewall_Template", "getRules", nil, &r.Options, &resp) + return +} + +// The SoftLayer_Network_Firewall_Update_Request data type contains information relating to a SoftLayer network firewall update request. Use the [[SoftLayer Network Component Firewall]] service to view current rules. Use the [[SoftLayer Network Firewall Template]] service to pull SoftLayer recommended rule set templates. +type Network_Firewall_Update_Request struct { + Session *session.Session + Options sl.Options +} + +// GetNetworkFirewallUpdateRequestService returns an instance of the Network_Firewall_Update_Request SoftLayer service +func GetNetworkFirewallUpdateRequestService(sess *session.Session) Network_Firewall_Update_Request { + return Network_Firewall_Update_Request{Session: sess} +} + +func (r Network_Firewall_Update_Request) Id(id int) Network_Firewall_Update_Request { + r.Options.Id = &id + return r +} + +func (r Network_Firewall_Update_Request) Mask(mask string) Network_Firewall_Update_Request { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Network_Firewall_Update_Request) Filter(filter string) Network_Firewall_Update_Request { + r.Options.Filter = filter + return r +} + +func (r Network_Firewall_Update_Request) Limit(limit int) Network_Firewall_Update_Request { + r.Options.Limit = &limit + return r +} + +func (r Network_Firewall_Update_Request) Offset(offset int) Network_Firewall_Update_Request { + r.Options.Offset = &offset + return r +} + +// Create a new firewall update request. The SoftLayer_Network_Firewall_Update_Request object passed to this function must have at least one rule. +// +// ''createObject'' returns a Boolean ''true'' on successful object creation or ''false'' if your firewall update request was unable to be created. +func (r Network_Firewall_Update_Request) CreateObject(templateObject *datatypes.Network_Firewall_Update_Request) (resp datatypes.Network_Firewall_Update_Request, err error) { + params := []interface{}{ + templateObject, + } + err = r.Session.DoRequest("SoftLayer_Network_Firewall_Update_Request", "createObject", params, &r.Options, &resp) + return +} + +// Retrieve The user that authorized this firewall update request. +func (r Network_Firewall_Update_Request) GetAuthorizingUser() (resp datatypes.User_Interface, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Firewall_Update_Request", "getAuthorizingUser", nil, &r.Options, &resp) + return +} + +// Get the possible attribute values for a firewall update request rule. These are the valid values which may be submitted as rule parameters for a firewall update request. +// +// ''getFirewallUpdateRequestRuleAttributes'' returns a SoftLayer_Container_Utility_Network_Firewall_Rule_Attribute object upon success. +func (r Network_Firewall_Update_Request) GetFirewallUpdateRequestRuleAttributes() (resp datatypes.Container_Utility_Network_Firewall_Rule_Attribute, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Firewall_Update_Request", "getFirewallUpdateRequestRuleAttributes", nil, &r.Options, &resp) + return +} + +// Retrieve The downstream virtual server that the rule set will be applied to. +func (r Network_Firewall_Update_Request) GetGuest() (resp datatypes.Virtual_Guest, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Firewall_Update_Request", "getGuest", nil, &r.Options, &resp) + return +} + +// Retrieve The downstream server that the rule set will be applied to. +func (r Network_Firewall_Update_Request) GetHardware() (resp datatypes.Hardware, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Firewall_Update_Request", "getHardware", nil, &r.Options, &resp) + return +} + +// Retrieve The network component firewall that the rule set will be applied to. +func (r Network_Firewall_Update_Request) GetNetworkComponentFirewall() (resp datatypes.Network_Component_Firewall, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Firewall_Update_Request", "getNetworkComponentFirewall", nil, &r.Options, &resp) + return +} + +// ''getObject'' returns a SoftLayer_Network_Firewall_Update_Request object. You can only get historical objects for servers attached to your account that have a network firewall enabled. ''createObject'' inserts a new SoftLayer_Network_Firewall_Update_Request object. You can only insert requests for servers attached to your account that have a network firewall enabled. ''getFirewallUpdateRequestRuleAttributes'' Get the possible attribute values for a firewall update request rule. +func (r Network_Firewall_Update_Request) GetObject() (resp datatypes.Network_Firewall_Update_Request, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Firewall_Update_Request", "getObject", nil, &r.Options, &resp) + return +} + +// Retrieve The group of rules contained within the update request. +func (r Network_Firewall_Update_Request) GetRules() (resp []datatypes.Network_Firewall_Update_Request_Rule, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Firewall_Update_Request", "getRules", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Network_Firewall_Update_Request) UpdateRuleNote(fwRule *datatypes.Network_Component_Firewall_Rule, note *string) (resp bool, err error) { + params := []interface{}{ + fwRule, + note, + } + err = r.Session.DoRequest("SoftLayer_Network_Firewall_Update_Request", "updateRuleNote", params, &r.Options, &resp) + return +} + +// The SoftLayer_Network_Firewall_Update_Request_Rule type contains information relating to a SoftLayer network firewall update request rule. This rule is a member of a [[SoftLayer Network Firewall Update Request]]. Use the [[SoftLayer Network Component Firewall]] service to view current rules. Use the [[SoftLayer Network Firewall Template]] service to pull SoftLayer recommended rule set templates. +type Network_Firewall_Update_Request_Rule struct { + Session *session.Session + Options sl.Options +} + +// GetNetworkFirewallUpdateRequestRuleService returns an instance of the Network_Firewall_Update_Request_Rule SoftLayer service +func GetNetworkFirewallUpdateRequestRuleService(sess *session.Session) Network_Firewall_Update_Request_Rule { + return Network_Firewall_Update_Request_Rule{Session: sess} +} + +func (r Network_Firewall_Update_Request_Rule) Id(id int) Network_Firewall_Update_Request_Rule { + r.Options.Id = &id + return r +} + +func (r Network_Firewall_Update_Request_Rule) Mask(mask string) Network_Firewall_Update_Request_Rule { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Network_Firewall_Update_Request_Rule) Filter(filter string) Network_Firewall_Update_Request_Rule { + r.Options.Filter = filter + return r +} + +func (r Network_Firewall_Update_Request_Rule) Limit(limit int) Network_Firewall_Update_Request_Rule { + r.Options.Limit = &limit + return r +} + +func (r Network_Firewall_Update_Request_Rule) Offset(offset int) Network_Firewall_Update_Request_Rule { + r.Options.Offset = &offset + return r +} + +// Create a new firewall update request. The SoftLayer_Network_Firewall_Update_Request object passed to this function must have at least one rule. +// +// ''createObject'' returns a Boolean ''true'' on successful object creation or ''false'' if your firewall update request was unable to be created.. +func (r Network_Firewall_Update_Request_Rule) CreateObject(templateObject *datatypes.Network_Firewall_Update_Request_Rule) (resp datatypes.Network_Firewall_Update_Request_Rule, err error) { + params := []interface{}{ + templateObject, + } + err = r.Session.DoRequest("SoftLayer_Network_Firewall_Update_Request_Rule", "createObject", params, &r.Options, &resp) + return +} + +// Retrieve The update request that this rule belongs to. +func (r Network_Firewall_Update_Request_Rule) GetFirewallUpdateRequest() (resp datatypes.Network_Firewall_Update_Request, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Firewall_Update_Request_Rule", "getFirewallUpdateRequest", nil, &r.Options, &resp) + return +} + +// getObject returns a SoftLayer_Network_Firewall_Update_Request_Rule object. You can only get historical objects for servers attached to your account that have a network firewall enabled. createObject inserts a new SoftLayer_Network_Firewall_Update_Request_Rule object. Use the SoftLayer_Network_Firewall_Update_Request to create groups of rules for an update request. +func (r Network_Firewall_Update_Request_Rule) GetObject() (resp datatypes.Network_Firewall_Update_Request_Rule, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Firewall_Update_Request_Rule", "getObject", nil, &r.Options, &resp) + return +} + +// Validate the supplied firewall request rule against the object it will apply to. For IPv4 rules, pass in an instance of SoftLayer_Network_Firewall_Update_Request_Rule. for IPv6 rules, pass in an instance of SoftLayer_Network_Firewall_Update_Request_Rule_Version6. The ID of the applied to object can either be applyToComponentId (an ID of a SoftLayer_Network_Component_Firewall) or applyToAclId (an ID of a SoftLayer_Network_Firewall_Module_Context_Interface_AccessControlList). One, and only one, of applyToComponentId and applyToAclId can be specified. +// +// If validation is successful, nothing is returned. If validation is unsuccessful, an exception is thrown explaining the nature of the validation error. +func (r Network_Firewall_Update_Request_Rule) ValidateRule(rule *datatypes.Network_Firewall_Update_Request_Rule, applyToComponentId *int, applyToAclId *int) (err error) { + var resp datatypes.Void + params := []interface{}{ + rule, + applyToComponentId, + applyToAclId, + } + err = r.Session.DoRequest("SoftLayer_Network_Firewall_Update_Request_Rule", "validateRule", params, &r.Options, &resp) + return +} + +// no documentation yet +type Network_Gateway struct { + Session *session.Session + Options sl.Options +} + +// GetNetworkGatewayService returns an instance of the Network_Gateway SoftLayer service +func GetNetworkGatewayService(sess *session.Session) Network_Gateway { + return Network_Gateway{Session: sess} +} + +func (r Network_Gateway) Id(id int) Network_Gateway { + r.Options.Id = &id + return r +} + +func (r Network_Gateway) Mask(mask string) Network_Gateway { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Network_Gateway) Filter(filter string) Network_Gateway { + r.Options.Filter = filter + return r +} + +func (r Network_Gateway) Limit(limit int) Network_Gateway { + r.Options.Limit = &limit + return r +} + +func (r Network_Gateway) Offset(offset int) Network_Gateway { + r.Options.Offset = &offset + return r +} + +// Start the asynchronous process to bypass all VLANs. Any VLANs that are already bypassed will be ignored. The status field can be checked for progress. +func (r Network_Gateway) BypassAllVlans() (err error) { + var resp datatypes.Void + err = r.Session.DoRequest("SoftLayer_Network_Gateway", "bypassAllVlans", nil, &r.Options, &resp) + return +} + +// Start the asynchronous process to bypass the provided VLANs. The VLANs must already be attached. Any VLANs that are already bypassed will be ignored. The status field can be checked for progress. +func (r Network_Gateway) BypassVlans(vlans []datatypes.Network_Gateway_Vlan) (err error) { + var resp datatypes.Void + params := []interface{}{ + vlans, + } + err = r.Session.DoRequest("SoftLayer_Network_Gateway", "bypassVlans", params, &r.Options, &resp) + return +} + +// Create and return a new gateway. This object can be created with any number of members or VLANs, but they all must be in the same pod. By creating a gateway with members and/or VLANs attached, it is the equivalent of individually calling their createObject methods except this will start a single asynchronous process to setup the gateway. The status of this process can be checked using the status field. +func (r Network_Gateway) CreateObject(templateObject *datatypes.Network_Gateway) (resp datatypes.Network_Gateway, err error) { + params := []interface{}{ + templateObject, + } + err = r.Session.DoRequest("SoftLayer_Network_Gateway", "createObject", params, &r.Options, &resp) + return +} + +// Edit this gateway. Currently, the only value that can be edited is the name. +func (r Network_Gateway) EditObject(templateObject *datatypes.Network_Gateway) (resp bool, err error) { + params := []interface{}{ + templateObject, + } + err = r.Session.DoRequest("SoftLayer_Network_Gateway", "editObject", params, &r.Options, &resp) + return +} + +// Retrieve The account for this gateway. +func (r Network_Gateway) GetAccount() (resp datatypes.Account, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Gateway", "getAccount", nil, &r.Options, &resp) + return +} + +// Retrieve All VLANs trunked to this gateway. +func (r Network_Gateway) GetInsideVlans() (resp []datatypes.Network_Gateway_Vlan, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Gateway", "getInsideVlans", nil, &r.Options, &resp) + return +} + +// Retrieve The members for this gateway. +func (r Network_Gateway) GetMembers() (resp []datatypes.Network_Gateway_Member, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Gateway", "getMembers", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Network_Gateway) GetObject() (resp datatypes.Network_Gateway, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Gateway", "getObject", nil, &r.Options, &resp) + return +} + +// Get all VLANs that can become inside VLANs on this gateway. This means the VLAN must not already be an inside VLAN, on the same router as this gateway, not a gateway transit VLAN, and not firewalled. +func (r Network_Gateway) GetPossibleInsideVlans() (resp []datatypes.Network_Vlan, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Gateway", "getPossibleInsideVlans", nil, &r.Options, &resp) + return +} + +// Retrieve The private gateway IP address. +func (r Network_Gateway) GetPrivateIpAddress() (resp datatypes.Network_Subnet_IpAddress, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Gateway", "getPrivateIpAddress", nil, &r.Options, &resp) + return +} + +// Retrieve The private VLAN for accessing this gateway. +func (r Network_Gateway) GetPrivateVlan() (resp datatypes.Network_Vlan, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Gateway", "getPrivateVlan", nil, &r.Options, &resp) + return +} + +// Retrieve The public gateway IP address. +func (r Network_Gateway) GetPublicIpAddress() (resp datatypes.Network_Subnet_IpAddress, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Gateway", "getPublicIpAddress", nil, &r.Options, &resp) + return +} + +// Retrieve The public gateway IPv6 address. +func (r Network_Gateway) GetPublicIpv6Address() (resp datatypes.Network_Subnet_IpAddress, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Gateway", "getPublicIpv6Address", nil, &r.Options, &resp) + return +} + +// Retrieve The public VLAN for accessing this gateway. +func (r Network_Gateway) GetPublicVlan() (resp datatypes.Network_Vlan, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Gateway", "getPublicVlan", nil, &r.Options, &resp) + return +} + +// Retrieve The current status of the gateway. +func (r Network_Gateway) GetStatus() (resp datatypes.Network_Gateway_Status, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Gateway", "getStatus", nil, &r.Options, &resp) + return +} + +// Start the asynchronous process to unbypass all VLANs. Any VLANs that are already unbypassed will be ignored. The status field can be checked for progress. +func (r Network_Gateway) UnbypassAllVlans() (err error) { + var resp datatypes.Void + err = r.Session.DoRequest("SoftLayer_Network_Gateway", "unbypassAllVlans", nil, &r.Options, &resp) + return +} + +// Start the asynchronous process to unbypass the provided VLANs. The VLANs must already be attached. Any VLANs that are already unbypassed will be ignored. The status field can be checked for progress. +func (r Network_Gateway) UnbypassVlans(vlans []datatypes.Network_Gateway_Vlan) (err error) { + var resp datatypes.Void + params := []interface{}{ + vlans, + } + err = r.Session.DoRequest("SoftLayer_Network_Gateway", "unbypassVlans", params, &r.Options, &resp) + return +} + +// no documentation yet +type Network_Gateway_Member struct { + Session *session.Session + Options sl.Options +} + +// GetNetworkGatewayMemberService returns an instance of the Network_Gateway_Member SoftLayer service +func GetNetworkGatewayMemberService(sess *session.Session) Network_Gateway_Member { + return Network_Gateway_Member{Session: sess} +} + +func (r Network_Gateway_Member) Id(id int) Network_Gateway_Member { + r.Options.Id = &id + return r +} + +func (r Network_Gateway_Member) Mask(mask string) Network_Gateway_Member { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Network_Gateway_Member) Filter(filter string) Network_Gateway_Member { + r.Options.Filter = filter + return r +} + +func (r Network_Gateway_Member) Limit(limit int) Network_Gateway_Member { + r.Options.Limit = &limit + return r +} + +func (r Network_Gateway_Member) Offset(offset int) Network_Gateway_Member { + r.Options.Offset = &offset + return r +} + +// Create a new hardware member on the gateway. This also asynchronously sets up the network for this member. Progress of this process can be monitored via the gateway status. All members created with this object must have no VLANs attached. +func (r Network_Gateway_Member) CreateObject(templateObject *datatypes.Network_Gateway_Member) (resp datatypes.Network_Gateway_Member, err error) { + params := []interface{}{ + templateObject, + } + err = r.Session.DoRequest("SoftLayer_Network_Gateway_Member", "createObject", params, &r.Options, &resp) + return +} + +// Create multiple new hardware members on the gateway. This also asynchronously sets up the network for the members. Progress of this process can be monitored via the gateway status. All members created with this object must have no VLANs attached. +func (r Network_Gateway_Member) CreateObjects(templateObjects []datatypes.Network_Gateway_Member) (resp []datatypes.Network_Gateway_Member, err error) { + params := []interface{}{ + templateObjects, + } + err = r.Session.DoRequest("SoftLayer_Network_Gateway_Member", "createObjects", params, &r.Options, &resp) + return +} + +// Retrieve The device for this member. +func (r Network_Gateway_Member) GetHardware() (resp datatypes.Hardware, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Gateway_Member", "getHardware", nil, &r.Options, &resp) + return +} + +// Retrieve The gateway this member belongs to. +func (r Network_Gateway_Member) GetNetworkGateway() (resp datatypes.Network_Gateway, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Gateway_Member", "getNetworkGateway", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Network_Gateway_Member) GetObject() (resp datatypes.Network_Gateway_Member, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Gateway_Member", "getObject", nil, &r.Options, &resp) + return +} + +// no documentation yet +type Network_Gateway_Status struct { + Session *session.Session + Options sl.Options +} + +// GetNetworkGatewayStatusService returns an instance of the Network_Gateway_Status SoftLayer service +func GetNetworkGatewayStatusService(sess *session.Session) Network_Gateway_Status { + return Network_Gateway_Status{Session: sess} +} + +func (r Network_Gateway_Status) Id(id int) Network_Gateway_Status { + r.Options.Id = &id + return r +} + +func (r Network_Gateway_Status) Mask(mask string) Network_Gateway_Status { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Network_Gateway_Status) Filter(filter string) Network_Gateway_Status { + r.Options.Filter = filter + return r +} + +func (r Network_Gateway_Status) Limit(limit int) Network_Gateway_Status { + r.Options.Limit = &limit + return r +} + +func (r Network_Gateway_Status) Offset(offset int) Network_Gateway_Status { + r.Options.Offset = &offset + return r +} + +// no documentation yet +func (r Network_Gateway_Status) GetObject() (resp datatypes.Network_Gateway_Status, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Gateway_Status", "getObject", nil, &r.Options, &resp) + return +} + +// no documentation yet +type Network_Gateway_Vlan struct { + Session *session.Session + Options sl.Options +} + +// GetNetworkGatewayVlanService returns an instance of the Network_Gateway_Vlan SoftLayer service +func GetNetworkGatewayVlanService(sess *session.Session) Network_Gateway_Vlan { + return Network_Gateway_Vlan{Session: sess} +} + +func (r Network_Gateway_Vlan) Id(id int) Network_Gateway_Vlan { + r.Options.Id = &id + return r +} + +func (r Network_Gateway_Vlan) Mask(mask string) Network_Gateway_Vlan { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Network_Gateway_Vlan) Filter(filter string) Network_Gateway_Vlan { + r.Options.Filter = filter + return r +} + +func (r Network_Gateway_Vlan) Limit(limit int) Network_Gateway_Vlan { + r.Options.Limit = &limit + return r +} + +func (r Network_Gateway_Vlan) Offset(offset int) Network_Gateway_Vlan { + r.Options.Offset = &offset + return r +} + +// Start the asynchronous process to bypass/unroute the VLAN from this gateway. +func (r Network_Gateway_Vlan) Bypass() (err error) { + var resp datatypes.Void + err = r.Session.DoRequest("SoftLayer_Network_Gateway_Vlan", "bypass", nil, &r.Options, &resp) + return +} + +// Create a new VLAN attachment. If the bypassFlag is false, this will also create an asynchronous process to route the VLAN through the gateway. +func (r Network_Gateway_Vlan) CreateObject(templateObject *datatypes.Network_Gateway_Vlan) (resp datatypes.Network_Gateway_Vlan, err error) { + params := []interface{}{ + templateObject, + } + err = r.Session.DoRequest("SoftLayer_Network_Gateway_Vlan", "createObject", params, &r.Options, &resp) + return +} + +// Create multiple new VLAN attachments. If the bypassFlag is false, this will also create an asynchronous process to route the VLANs through the gateway. +func (r Network_Gateway_Vlan) CreateObjects(templateObjects []datatypes.Network_Gateway_Vlan) (resp []datatypes.Network_Gateway_Vlan, err error) { + params := []interface{}{ + templateObjects, + } + err = r.Session.DoRequest("SoftLayer_Network_Gateway_Vlan", "createObjects", params, &r.Options, &resp) + return +} + +// Start the asynchronous process to detach this VLANs from the gateway. +func (r Network_Gateway_Vlan) DeleteObject() (err error) { + var resp datatypes.Void + err = r.Session.DoRequest("SoftLayer_Network_Gateway_Vlan", "deleteObject", nil, &r.Options, &resp) + return +} + +// Detach several VLANs. This will not detach them right away, but rather start an asynchronous process to detach. +func (r Network_Gateway_Vlan) DeleteObjects(templateObjects []datatypes.Network_Gateway_Vlan) (resp bool, err error) { + params := []interface{}{ + templateObjects, + } + err = r.Session.DoRequest("SoftLayer_Network_Gateway_Vlan", "deleteObjects", params, &r.Options, &resp) + return +} + +// Retrieve The gateway this VLAN is attached to. +func (r Network_Gateway_Vlan) GetNetworkGateway() (resp datatypes.Network_Gateway, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Gateway_Vlan", "getNetworkGateway", nil, &r.Options, &resp) + return +} + +// Retrieve The network VLAN record. +func (r Network_Gateway_Vlan) GetNetworkVlan() (resp datatypes.Network_Vlan, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Gateway_Vlan", "getNetworkVlan", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Network_Gateway_Vlan) GetObject() (resp datatypes.Network_Gateway_Vlan, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Gateway_Vlan", "getObject", nil, &r.Options, &resp) + return +} + +// Start the asynchronous process to route the VLAN to this gateway. +func (r Network_Gateway_Vlan) Unbypass() (err error) { + var resp datatypes.Void + err = r.Session.DoRequest("SoftLayer_Network_Gateway_Vlan", "unbypass", nil, &r.Options, &resp) + return +} + +// The SoftLayer_Network_LBaaS_Listener type presents a data structure for a load balancers listener, also called frontend. +type Network_LBaaS_Listener struct { + Session *session.Session + Options sl.Options +} + +// GetNetworkLBaaSListenerService returns an instance of the Network_LBaaS_Listener SoftLayer service +func GetNetworkLBaaSListenerService(sess *session.Session) Network_LBaaS_Listener { + return Network_LBaaS_Listener{Session: sess} +} + +func (r Network_LBaaS_Listener) Id(id int) Network_LBaaS_Listener { + r.Options.Id = &id + return r +} + +func (r Network_LBaaS_Listener) Mask(mask string) Network_LBaaS_Listener { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Network_LBaaS_Listener) Filter(filter string) Network_LBaaS_Listener { + r.Options.Filter = filter + return r +} + +func (r Network_LBaaS_Listener) Limit(limit int) Network_LBaaS_Listener { + r.Options.Limit = &limit + return r +} + +func (r Network_LBaaS_Listener) Offset(offset int) Network_LBaaS_Listener { + r.Options.Offset = &offset + return r +} + +// Delete load balancers front- and backend protocols and return load balancer object with listeners (frontend), pools (backend), server instances (members) and datacenter populated. +func (r Network_LBaaS_Listener) DeleteLoadBalancerProtocols(loadBalancerUuid *string, listenerUuids []string) (resp datatypes.Network_LBaaS_LoadBalancer, err error) { + params := []interface{}{ + loadBalancerUuid, + listenerUuids, + } + err = r.Session.DoRequest("SoftLayer_Network_LBaaS_Listener", "deleteLoadBalancerProtocols", params, &r.Options, &resp) + return +} + +// Retrieve +func (r Network_LBaaS_Listener) GetDefaultPool() (resp datatypes.Network_LBaaS_Pool, err error) { + err = r.Session.DoRequest("SoftLayer_Network_LBaaS_Listener", "getDefaultPool", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Network_LBaaS_Listener) GetLoadBalancer() (resp datatypes.Network_LBaaS_LoadBalancer, err error) { + err = r.Session.DoRequest("SoftLayer_Network_LBaaS_Listener", "getLoadBalancer", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Network_LBaaS_Listener) GetObject() (resp datatypes.Network_LBaaS_Listener, err error) { + err = r.Session.DoRequest("SoftLayer_Network_LBaaS_Listener", "getObject", nil, &r.Options, &resp) + return +} + +// Update (create) load balancers front- and backend protocols and return load balancer object with listeners (frontend), pools (backend), server instances (members) and datacenter populated. Note if a protocolConfiguration has no listenerUuid set, this function will create the specified front- and backend accordingly. Otherwise the given front- and backend will be updated with the new protocol and port. +func (r Network_LBaaS_Listener) UpdateLoadBalancerProtocols(loadBalancerUuid *string, protocolConfigurations []datatypes.Network_LBaaS_LoadBalancerProtocolConfiguration) (resp datatypes.Network_LBaaS_LoadBalancer, err error) { + params := []interface{}{ + loadBalancerUuid, + protocolConfigurations, + } + err = r.Session.DoRequest("SoftLayer_Network_LBaaS_Listener", "updateLoadBalancerProtocols", params, &r.Options, &resp) + return +} + +// The SoftLayer_Network_LBaaS_LoadBalancer type presents a structure containing attributes of a load balancer, and its related objects including listeners, pools and members. +type Network_LBaaS_LoadBalancer struct { + Session *session.Session + Options sl.Options +} + +// GetNetworkLBaaSLoadBalancerService returns an instance of the Network_LBaaS_LoadBalancer SoftLayer service +func GetNetworkLBaaSLoadBalancerService(sess *session.Session) Network_LBaaS_LoadBalancer { + return Network_LBaaS_LoadBalancer{Session: sess} +} + +func (r Network_LBaaS_LoadBalancer) Id(id int) Network_LBaaS_LoadBalancer { + r.Options.Id = &id + return r +} + +func (r Network_LBaaS_LoadBalancer) Mask(mask string) Network_LBaaS_LoadBalancer { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Network_LBaaS_LoadBalancer) Filter(filter string) Network_LBaaS_LoadBalancer { + r.Options.Filter = filter + return r +} + +func (r Network_LBaaS_LoadBalancer) Limit(limit int) Network_LBaaS_LoadBalancer { + r.Options.Limit = &limit + return r +} + +func (r Network_LBaaS_LoadBalancer) Offset(offset int) Network_LBaaS_LoadBalancer { + r.Options.Offset = &offset + return r +} + +// Cancel a load balancer with the given uuid. The billing system will execute the deletion of load balancer and all objects associated with it such as load balancer appliances, listeners, pools and members in the background. +func (r Network_LBaaS_LoadBalancer) CancelLoadBalancer(uuid *string) (resp bool, err error) { + params := []interface{}{ + uuid, + } + err = r.Session.DoRequest("SoftLayer_Network_LBaaS_LoadBalancer", "cancelLoadBalancer", params, &r.Options, &resp) + return +} + +// Return all existing load balancers +func (r Network_LBaaS_LoadBalancer) GetAllObjects() (resp []datatypes.Network_LBaaS_LoadBalancer, err error) { + err = r.Session.DoRequest("SoftLayer_Network_LBaaS_LoadBalancer", "getAllObjects", nil, &r.Options, &resp) + return +} + +// Retrieve Datacenter, where load balancer is located. +func (r Network_LBaaS_LoadBalancer) GetDatacenter() (resp datatypes.Location, err error) { + err = r.Session.DoRequest("SoftLayer_Network_LBaaS_LoadBalancer", "getDatacenter", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Network_LBaaS_LoadBalancer) GetIpAddress() (resp datatypes.Network_Subnet_IpAddress, err error) { + err = r.Session.DoRequest("SoftLayer_Network_LBaaS_LoadBalancer", "getIpAddress", nil, &r.Options, &resp) + return +} + +// Retrieve Listeners assigned to load balancer. +func (r Network_LBaaS_LoadBalancer) GetListeners() (resp []datatypes.Network_LBaaS_Listener, err error) { + err = r.Session.DoRequest("SoftLayer_Network_LBaaS_LoadBalancer", "getListeners", nil, &r.Options, &resp) + return +} + +// Get the load balancer object with given uuid. +func (r Network_LBaaS_LoadBalancer) GetLoadBalancer(uuid *string) (resp datatypes.Network_LBaaS_LoadBalancer, err error) { + params := []interface{}{ + uuid, + } + err = r.Session.DoRequest("SoftLayer_Network_LBaaS_LoadBalancer", "getLoadBalancer", params, &r.Options, &resp) + return +} + +// Return load balancer members health +func (r Network_LBaaS_LoadBalancer) GetLoadBalancerMemberHealth(uuid *string) (resp []datatypes.Network_LBaaS_PoolMembersHealth, err error) { + params := []interface{}{ + uuid, + } + err = r.Session.DoRequest("SoftLayer_Network_LBaaS_LoadBalancer", "getLoadBalancerMemberHealth", params, &r.Options, &resp) + return +} + +// Return load balancers statistics such as total number of current sessions and total number of accumulated connections. +func (r Network_LBaaS_LoadBalancer) GetLoadBalancerStatistics(uuid *string) (resp datatypes.Network_LBaaS_LoadBalancerStatistics, err error) { + params := []interface{}{ + uuid, + } + err = r.Session.DoRequest("SoftLayer_Network_LBaaS_LoadBalancer", "getLoadBalancerStatistics", params, &r.Options, &resp) + return +} + +// Retrieve Members assigned to load balancer. +func (r Network_LBaaS_LoadBalancer) GetMembers() (resp []datatypes.Network_LBaaS_Member, err error) { + err = r.Session.DoRequest("SoftLayer_Network_LBaaS_LoadBalancer", "getMembers", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Network_LBaaS_LoadBalancer) GetObject() (resp datatypes.Network_LBaaS_LoadBalancer, err error) { + err = r.Session.DoRequest("SoftLayer_Network_LBaaS_LoadBalancer", "getObject", nil, &r.Options, &resp) + return +} + +// Update load balancer's description, and return the load balancer object containing all listeners, pools, members and datacenter. +func (r Network_LBaaS_LoadBalancer) UpdateLoadBalancer(uuid *string, newDescription *string) (resp datatypes.Network_LBaaS_LoadBalancer, err error) { + params := []interface{}{ + uuid, + newDescription, + } + err = r.Session.DoRequest("SoftLayer_Network_LBaaS_LoadBalancer", "updateLoadBalancer", params, &r.Options, &resp) + return +} + +// The SoftLayer_Network_LBaaS_Member represents the backend member for a load balancer. It can be either a virtual server or a bare metal machine. +type Network_LBaaS_Member struct { + Session *session.Session + Options sl.Options +} + +// GetNetworkLBaaSMemberService returns an instance of the Network_LBaaS_Member SoftLayer service +func GetNetworkLBaaSMemberService(sess *session.Session) Network_LBaaS_Member { + return Network_LBaaS_Member{Session: sess} +} + +func (r Network_LBaaS_Member) Id(id int) Network_LBaaS_Member { + r.Options.Id = &id + return r +} + +func (r Network_LBaaS_Member) Mask(mask string) Network_LBaaS_Member { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Network_LBaaS_Member) Filter(filter string) Network_LBaaS_Member { + r.Options.Filter = filter + return r +} + +func (r Network_LBaaS_Member) Limit(limit int) Network_LBaaS_Member { + r.Options.Limit = &limit + return r +} + +func (r Network_LBaaS_Member) Offset(offset int) Network_LBaaS_Member { + r.Options.Offset = &offset + return r +} + +// Add server instances as members to load balancer and return it with listeners, pools and members populated +func (r Network_LBaaS_Member) AddLoadBalancerMembers(loadBalancerUuid *string, serverInstances []datatypes.Network_LBaaS_LoadBalancerServerInstanceInfo) (resp datatypes.Network_LBaaS_LoadBalancer, err error) { + params := []interface{}{ + loadBalancerUuid, + serverInstances, + } + err = r.Session.DoRequest("SoftLayer_Network_LBaaS_Member", "addLoadBalancerMembers", params, &r.Options, &resp) + return +} + +// Delete given members from load balancer and return load balancer object with listeners, pools and members populated +func (r Network_LBaaS_Member) DeleteLoadBalancerMembers(loadBalancerUuid *string, memberUuids []string) (resp datatypes.Network_LBaaS_LoadBalancer, err error) { + params := []interface{}{ + loadBalancerUuid, + memberUuids, + } + err = r.Session.DoRequest("SoftLayer_Network_LBaaS_Member", "deleteLoadBalancerMembers", params, &r.Options, &resp) + return +} + +// Retrieve +func (r Network_LBaaS_Member) GetLoadBalancer() (resp datatypes.Network_LBaaS_LoadBalancer, err error) { + err = r.Session.DoRequest("SoftLayer_Network_LBaaS_Member", "getLoadBalancer", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Network_LBaaS_Member) GetObject() (resp datatypes.Network_LBaaS_Member, err error) { + err = r.Session.DoRequest("SoftLayer_Network_LBaaS_Member", "getObject", nil, &r.Options, &resp) + return +} + +// Update members weight and return load balancer object with listeners, pools and members populated +func (r Network_LBaaS_Member) UpdateLoadBalancerMembers(loadBalancerUuid *string, members []datatypes.Network_LBaaS_Member) (resp datatypes.Network_LBaaS_LoadBalancer, err error) { + params := []interface{}{ + loadBalancerUuid, + members, + } + err = r.Session.DoRequest("SoftLayer_Network_LBaaS_Member", "updateLoadBalancerMembers", params, &r.Options, &resp) + return +} + +// The SoftLayer_Network_LoadBalancer_Global_Account data type contains the properties for a single global load balancer account. The properties you are able to edit are fallbackIp, loadBalanceTypeId, and notes. The hosts relational property can be used for creating and editing hosts that belong to the global load balancer account. The [[SoftLayer_Network_LoadBalancer_Global_Account::editObject|editObject]] method contains details on creating and edited hosts through the hosts relational property. +type Network_LoadBalancer_Global_Account struct { + Session *session.Session + Options sl.Options +} + +// GetNetworkLoadBalancerGlobalAccountService returns an instance of the Network_LoadBalancer_Global_Account SoftLayer service +func GetNetworkLoadBalancerGlobalAccountService(sess *session.Session) Network_LoadBalancer_Global_Account { + return Network_LoadBalancer_Global_Account{Session: sess} +} + +func (r Network_LoadBalancer_Global_Account) Id(id int) Network_LoadBalancer_Global_Account { + r.Options.Id = &id + return r +} + +func (r Network_LoadBalancer_Global_Account) Mask(mask string) Network_LoadBalancer_Global_Account { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Network_LoadBalancer_Global_Account) Filter(filter string) Network_LoadBalancer_Global_Account { + r.Options.Filter = filter + return r +} + +func (r Network_LoadBalancer_Global_Account) Limit(limit int) Network_LoadBalancer_Global_Account { + r.Options.Limit = &limit + return r +} + +func (r Network_LoadBalancer_Global_Account) Offset(offset int) Network_LoadBalancer_Global_Account { + r.Options.Offset = &offset + return r +} + +// If your globally load balanced domain is hosted on the SoftLayer nameservers this method will add the required NS resource record to your DNS zone file and remove any A records that match the host portion of a global load balancer account hostname. A NS resource record is required to be able to use your SoftLayer global load balancer account. Please make sure the zone file for the hostname listed on your SoftLayer global load balancer account is setup prior to using this method. If your globally load balanced domain is hosted on any other nameservers this method will not be able to add the required NS record. +func (r Network_LoadBalancer_Global_Account) AddNsRecord() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Network_LoadBalancer_Global_Account", "addNsRecord", nil, &r.Options, &resp) + return +} + +// Edit the properties of a global load balancer account by passing in a modified instance of the object. The global load balancer account properties you are able to edit are: fallback ip, load balance type id, and notes. Hosts that belong to your SoftLayer global load balancer account are created and modified through this method. An example templateObject that updates global load balancer account properties, updates the properties of a host, and adds a new host is shown below: +// +// +// * id: 2 +// * loadBalanceTypeId: 2 +// * notes: Notes updated +// * fallbackIp: 1.1.1.1 +// * hosts: +// ** id: 19 +// ** destinationIp: 2.2.2.2 +// ** weight: 25 +// ** healthCheck: http +// ** destinationPort: 80 +// ** enabled: 1

    +// ** destinationIp: 3.3.3.3 +// ** weight: 25 +// ** healthCheck: http +// ** destinationPort: 80 +// ** enabled: 1 +// +// +// +// +// The first section contains the properties of the global load balancer account that will be updated, while the second section contains the elements of the 'hosts' property of the global load balancer account. The first host listed will have its properties updated because the 'id' property of the host is set, meaning the global load balancer host with an id of 19 will be updated. The second host listed will be created because it lacks the 'id' property. +// +// There is a limit to the maximum number of hosts that you are allowed to add, and is defined by the allowedNumberOfHosts property on the global load balancer account. The destination IP address of a host must be an IP address that belongs to your SoftLayer Account, or a local load balancer virtual IP address that belongs to your account. The destination IP address and destination port are required and must be provided when creating a host. +func (r Network_LoadBalancer_Global_Account) EditObject(templateObject *datatypes.Network_LoadBalancer_Global_Account) (resp bool, err error) { + params := []interface{}{ + templateObject, + } + err = r.Session.DoRequest("SoftLayer_Network_LoadBalancer_Global_Account", "editObject", params, &r.Options, &resp) + return +} + +// Retrieve Your SoftLayer customer account. +func (r Network_LoadBalancer_Global_Account) GetAccount() (resp datatypes.Account, err error) { + err = r.Session.DoRequest("SoftLayer_Network_LoadBalancer_Global_Account", "getAccount", nil, &r.Options, &resp) + return +} + +// Retrieve The current billing item for a Global Load Balancer account. +func (r Network_LoadBalancer_Global_Account) GetBillingItem() (resp datatypes.Billing_Item, err error) { + err = r.Session.DoRequest("SoftLayer_Network_LoadBalancer_Global_Account", "getBillingItem", nil, &r.Options, &resp) + return +} + +// Retrieve The hosts in the load balancing pool for a global load balancer account. +func (r Network_LoadBalancer_Global_Account) GetHosts() (resp []datatypes.Network_LoadBalancer_Global_Host, err error) { + err = r.Session.DoRequest("SoftLayer_Network_LoadBalancer_Global_Account", "getHosts", nil, &r.Options, &resp) + return +} + +// Retrieve The load balance method of a global load balancer account +func (r Network_LoadBalancer_Global_Account) GetLoadBalanceType() (resp datatypes.Network_LoadBalancer_Global_Type, err error) { + err = r.Session.DoRequest("SoftLayer_Network_LoadBalancer_Global_Account", "getLoadBalanceType", nil, &r.Options, &resp) + return +} + +// Retrieve A flag indicating that the global load balancer is a managed resource. +func (r Network_LoadBalancer_Global_Account) GetManagedResourceFlag() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Network_LoadBalancer_Global_Account", "getManagedResourceFlag", nil, &r.Options, &resp) + return +} + +// getObject retrieves the SoftLayer_Network_LoadBalancer_Global_Account object whose ID number corresponds to the ID number of the init paramater passed to the SoftLayer_Network_LoadBalancer_Global_Account service. You can only retrieve a global load balancer account that is assigned to your SoftLayer customer account. +func (r Network_LoadBalancer_Global_Account) GetObject() (resp datatypes.Network_LoadBalancer_Global_Account, err error) { + err = r.Session.DoRequest("SoftLayer_Network_LoadBalancer_Global_Account", "getObject", nil, &r.Options, &resp) + return +} + +// If your globally load balanced domain is hosted on the SoftLayer nameservers this method will remove the NS resource record from your DNS zone file. Removing the NS resource record will basically disable your global load balancer account since no DNS requests will be forwarded to the global load balancers. Any A records that were removed when the NS resource record was added will not be created for you. If your globally load balanced domain is hosted on any other nameservers this method will not be able to remove the required NS record. +func (r Network_LoadBalancer_Global_Account) RemoveNsRecord() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Network_LoadBalancer_Global_Account", "removeNsRecord", nil, &r.Options, &resp) + return +} + +// The SoftLayer_Network_LoadBalancer_Global_Host data type represents a single host that belongs to a global load balancer account's load balancing pool. +// +// The destination IP address of a host must be one that belongs to your SoftLayer customer account, or to a datacenter load balancer virtual ip that belongs to your SoftLayer customer account. The destination IP address and port of a global load balancer host is a required field and must exist during creation and can not be removed. The acceptable values for the health check type are 'none', 'http', and 'tcp'. The status property is updated in 5 minute intervals and the hits property is updated in 10 minute intervals. +// +// The order of the host is only important if you are using the 'failover' load balance method, and the weight is only important if you are using the 'weighted round robin' load balance method. +type Network_LoadBalancer_Global_Host struct { + Session *session.Session + Options sl.Options +} + +// GetNetworkLoadBalancerGlobalHostService returns an instance of the Network_LoadBalancer_Global_Host SoftLayer service +func GetNetworkLoadBalancerGlobalHostService(sess *session.Session) Network_LoadBalancer_Global_Host { + return Network_LoadBalancer_Global_Host{Session: sess} +} + +func (r Network_LoadBalancer_Global_Host) Id(id int) Network_LoadBalancer_Global_Host { + r.Options.Id = &id + return r +} + +func (r Network_LoadBalancer_Global_Host) Mask(mask string) Network_LoadBalancer_Global_Host { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Network_LoadBalancer_Global_Host) Filter(filter string) Network_LoadBalancer_Global_Host { + r.Options.Filter = filter + return r +} + +func (r Network_LoadBalancer_Global_Host) Limit(limit int) Network_LoadBalancer_Global_Host { + r.Options.Limit = &limit + return r +} + +func (r Network_LoadBalancer_Global_Host) Offset(offset int) Network_LoadBalancer_Global_Host { + r.Options.Offset = &offset + return r +} + +// Remove a host from the load balancing pool of a global load balancer account. +func (r Network_LoadBalancer_Global_Host) DeleteObject() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Network_LoadBalancer_Global_Host", "deleteObject", nil, &r.Options, &resp) + return +} + +// Retrieve The global load balancer account a host belongs to. +func (r Network_LoadBalancer_Global_Host) GetLoadBalancerAccount() (resp datatypes.Network_LoadBalancer_Global_Account, err error) { + err = r.Session.DoRequest("SoftLayer_Network_LoadBalancer_Global_Host", "getLoadBalancerAccount", nil, &r.Options, &resp) + return +} + +// getObject retrieves the SoftLayer_Network_LoadBalancer_Global_Host object whose ID number corresponds to the ID number of the init paramater passed to the SoftLayer_Network_LoadBalancer_Global_Host service. You can only retrieve a global load balancer host that is assigned to your SoftLayer global load balancer account. +func (r Network_LoadBalancer_Global_Host) GetObject() (resp datatypes.Network_LoadBalancer_Global_Host, err error) { + err = r.Session.DoRequest("SoftLayer_Network_LoadBalancer_Global_Host", "getObject", nil, &r.Options, &resp) + return +} + +// The SoftLayer_Network_LoadBalancer_Service data type contains all the information relating to a specific service (destination) on a particular load balancer. +// +// Information retained on the object itself is the the source and destination of the service, routing type, weight, and whether or not the service is currently enabled. +type Network_LoadBalancer_Service struct { + Session *session.Session + Options sl.Options +} + +// GetNetworkLoadBalancerServiceService returns an instance of the Network_LoadBalancer_Service SoftLayer service +func GetNetworkLoadBalancerServiceService(sess *session.Session) Network_LoadBalancer_Service { + return Network_LoadBalancer_Service{Session: sess} +} + +func (r Network_LoadBalancer_Service) Id(id int) Network_LoadBalancer_Service { + r.Options.Id = &id + return r +} + +func (r Network_LoadBalancer_Service) Mask(mask string) Network_LoadBalancer_Service { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Network_LoadBalancer_Service) Filter(filter string) Network_LoadBalancer_Service { + r.Options.Filter = filter + return r +} + +func (r Network_LoadBalancer_Service) Limit(limit int) Network_LoadBalancer_Service { + r.Options.Limit = &limit + return r +} + +func (r Network_LoadBalancer_Service) Offset(offset int) Network_LoadBalancer_Service { + r.Options.Offset = &offset + return r +} + +// Calling deleteObject on a particular server will remove it from the load balancer. This is the only way to remove a service from your load balancer. If you wish to remove a server, first call this function, then reload the virtualIpAddress object and edit the remaining services to reflect the other changes that you wish to make. +func (r Network_LoadBalancer_Service) DeleteObject() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Network_LoadBalancer_Service", "deleteObject", nil, &r.Options, &resp) + return +} + +// Get the graph image for a load balancer service based on the supplied graph type and metric. The available graph types are: 'connections' and 'status', and the available metrics are: 'day', 'week' and 'month'. +// +// This method returns the raw binary image data. +func (r Network_LoadBalancer_Service) GetGraphImage(graphType *string, metric *string) (resp []byte, err error) { + params := []interface{}{ + graphType, + metric, + } + err = r.Session.DoRequest("SoftLayer_Network_LoadBalancer_Service", "getGraphImage", params, &r.Options, &resp) + return +} + +// getObject retrieves the SoftLayer_Network_LoadBalancer_Service object whose ID number corresponds to the ID number of the init parameter passed to the SoftLayer_Network_LoadBalancer_Service service. You can only retrieve services on load balancers assigned to your account, and it is recommended that you simply retrieve the entire load balancer, as an individual service has no explicit purpose without its "siblings". +func (r Network_LoadBalancer_Service) GetObject() (resp datatypes.Network_LoadBalancer_Service, err error) { + err = r.Session.DoRequest("SoftLayer_Network_LoadBalancer_Service", "getObject", nil, &r.Options, &resp) + return +} + +// Returns an array of SoftLayer_Container_Network_LoadBalancer_StatusEntry objects. A SoftLayer_Container_Network_LoadBalancer_StatusEntry object has two variables, "Label" and "Value" +// +// Calling this function executes a command on the physical load balancer itself, and therefore should be called infrequently. For a general idea of the load balancer service, use the "peakConnections" variable on the Type +// +// Possible values for "Label" are: +// +// +// * IP Address +// * Port +// * Server Status +// * Load Status +// * Current Connections +// * Total Hits +// +// +// Not all labels are guaranteed to be returned. +func (r Network_LoadBalancer_Service) GetStatus() (resp []datatypes.Container_Network_LoadBalancer_StatusEntry, err error) { + err = r.Session.DoRequest("SoftLayer_Network_LoadBalancer_Service", "getStatus", nil, &r.Options, &resp) + return +} + +// Retrieve The load balancer that this service belongs to. +func (r Network_LoadBalancer_Service) GetVip() (resp datatypes.Network_LoadBalancer_VirtualIpAddress, err error) { + err = r.Session.DoRequest("SoftLayer_Network_LoadBalancer_Service", "getVip", nil, &r.Options, &resp) + return +} + +// Calling resetPeakConnections will set the peakConnections variable to zero on this particular object. Peak connections will continue to increase normally after this method call, it will only temporarily reset the statistic to zero, until the next time it is polled. +func (r Network_LoadBalancer_Service) ResetPeakConnections() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Network_LoadBalancer_Service", "resetPeakConnections", nil, &r.Options, &resp) + return +} + +// The SoftLayer_Network_LoadBalancer_VirtualIpAddress data type contains all the information relating to a specific load balancer assigned to a customer account. +// +// Information retained on the object itself is the virtual IP address, load balancing method, and any notes that are related to the load balancer. There is also an array of SoftLayer_Network_LoadBalancer_Service objects, which represent the load balancer services, explained more fully in the SoftLayer_Network_LoadBalancer_Service documentation. +type Network_LoadBalancer_VirtualIpAddress struct { + Session *session.Session + Options sl.Options +} + +// GetNetworkLoadBalancerVirtualIpAddressService returns an instance of the Network_LoadBalancer_VirtualIpAddress SoftLayer service +func GetNetworkLoadBalancerVirtualIpAddressService(sess *session.Session) Network_LoadBalancer_VirtualIpAddress { + return Network_LoadBalancer_VirtualIpAddress{Session: sess} +} + +func (r Network_LoadBalancer_VirtualIpAddress) Id(id int) Network_LoadBalancer_VirtualIpAddress { + r.Options.Id = &id + return r +} + +func (r Network_LoadBalancer_VirtualIpAddress) Mask(mask string) Network_LoadBalancer_VirtualIpAddress { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Network_LoadBalancer_VirtualIpAddress) Filter(filter string) Network_LoadBalancer_VirtualIpAddress { + r.Options.Filter = filter + return r +} + +func (r Network_LoadBalancer_VirtualIpAddress) Limit(limit int) Network_LoadBalancer_VirtualIpAddress { + r.Options.Limit = &limit + return r +} + +func (r Network_LoadBalancer_VirtualIpAddress) Offset(offset int) Network_LoadBalancer_VirtualIpAddress { + r.Options.Offset = &offset + return r +} + +// Disable a Virtual IP Address, removing it from load balancer rotation and denying all connections to that IP address. +func (r Network_LoadBalancer_VirtualIpAddress) Disable() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Network_LoadBalancer_VirtualIpAddress", "disable", nil, &r.Options, &resp) + return +} + +// Like any other API object, the load balancers can have their exposed properties edited by passing in a modified version of the object. The load balancer object also can modify its services in this way. Simply request the load balancer object you wish to edit, then modify the objects in the services array and pass the modified object to this function. WARNING: Services cannot be deleted in this manner, you must call deleteObject() on the service to physically remove them from the load balancer. +func (r Network_LoadBalancer_VirtualIpAddress) EditObject(templateObject *datatypes.Network_LoadBalancer_VirtualIpAddress) (resp bool, err error) { + params := []interface{}{ + templateObject, + } + err = r.Session.DoRequest("SoftLayer_Network_LoadBalancer_VirtualIpAddress", "editObject", params, &r.Options, &resp) + return +} + +// Enable a disabled Virtual IP Address, allowing connections back to the IP address. +func (r Network_LoadBalancer_VirtualIpAddress) Enable() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Network_LoadBalancer_VirtualIpAddress", "enable", nil, &r.Options, &resp) + return +} + +// Retrieve The account that owns this load balancer. +func (r Network_LoadBalancer_VirtualIpAddress) GetAccount() (resp datatypes.Account, err error) { + err = r.Session.DoRequest("SoftLayer_Network_LoadBalancer_VirtualIpAddress", "getAccount", nil, &r.Options, &resp) + return +} + +// Retrieve The current billing item for the Load Balancer. +func (r Network_LoadBalancer_VirtualIpAddress) GetBillingItem() (resp datatypes.Billing_Item, err error) { + err = r.Session.DoRequest("SoftLayer_Network_LoadBalancer_VirtualIpAddress", "getBillingItem", nil, &r.Options, &resp) + return +} + +// Retrieve If false, this VIP and associated services may be edited via the portal or the API. If true, you must configure this VIP manually on the device. +func (r Network_LoadBalancer_VirtualIpAddress) GetCustomerManagedFlag() (resp int, err error) { + err = r.Session.DoRequest("SoftLayer_Network_LoadBalancer_VirtualIpAddress", "getCustomerManagedFlag", nil, &r.Options, &resp) + return +} + +// Retrieve A flag indicating that the load balancer is a managed resource. +func (r Network_LoadBalancer_VirtualIpAddress) GetManagedResourceFlag() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Network_LoadBalancer_VirtualIpAddress", "getManagedResourceFlag", nil, &r.Options, &resp) + return +} + +// getObject retrieves the SoftLayer_Network_LoadBalancer_VirtualIpAddress object whose ID number corresponds to the ID number of the init parameter passed to the SoftLayer_Network_LoadBalancer_VirtualIpAddress service. You can only retrieve Load Balancers assigned to your account. +func (r Network_LoadBalancer_VirtualIpAddress) GetObject() (resp datatypes.Network_LoadBalancer_VirtualIpAddress, err error) { + err = r.Session.DoRequest("SoftLayer_Network_LoadBalancer_VirtualIpAddress", "getObject", nil, &r.Options, &resp) + return +} + +// Retrieve the services on this load balancer. +func (r Network_LoadBalancer_VirtualIpAddress) GetServices() (resp []datatypes.Network_LoadBalancer_Service, err error) { + err = r.Session.DoRequest("SoftLayer_Network_LoadBalancer_VirtualIpAddress", "getServices", nil, &r.Options, &resp) + return +} + +// Quickly remove all active external connections to a Virtual IP Address. +func (r Network_LoadBalancer_VirtualIpAddress) KickAllConnections() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Network_LoadBalancer_VirtualIpAddress", "kickAllConnections", nil, &r.Options, &resp) + return +} + +// Upgrades the connection limit on the VirtualIp and changes the billing item on your account to reflect the change. This function will only upgrade you to the next "level" of service. The next level follows this pattern Current Level => Next Level 50 100 100 200 200 500 500 1000 1000 1200 1200 1500 1500 2000 2000 2500 2500 3000 +func (r Network_LoadBalancer_VirtualIpAddress) UpgradeConnectionLimit() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Network_LoadBalancer_VirtualIpAddress", "upgradeConnectionLimit", nil, &r.Options, &resp) + return +} + +// The SoftLayer_Network_Media_Transcode_Account contains information regarding a transcode account. +type Network_Media_Transcode_Account struct { + Session *session.Session + Options sl.Options +} + +// GetNetworkMediaTranscodeAccountService returns an instance of the Network_Media_Transcode_Account SoftLayer service +func GetNetworkMediaTranscodeAccountService(sess *session.Session) Network_Media_Transcode_Account { + return Network_Media_Transcode_Account{Session: sess} +} + +func (r Network_Media_Transcode_Account) Id(id int) Network_Media_Transcode_Account { + r.Options.Id = &id + return r +} + +func (r Network_Media_Transcode_Account) Mask(mask string) Network_Media_Transcode_Account { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Network_Media_Transcode_Account) Filter(filter string) Network_Media_Transcode_Account { + r.Options.Filter = filter + return r +} + +func (r Network_Media_Transcode_Account) Limit(limit int) Network_Media_Transcode_Account { + r.Options.Limit = &limit + return r +} + +func (r Network_Media_Transcode_Account) Offset(offset int) Network_Media_Transcode_Account { + r.Options.Offset = &offset + return r +} + +// With this method, you can create a transcode account. Individual SoftLayer account can have a single Transcode account. You have to pass your SoftLayer account id as a parameter. +func (r Network_Media_Transcode_Account) CreateTranscodeAccount() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Media_Transcode_Account", "createTranscodeAccount", nil, &r.Options, &resp) + return +} + +// '''Note'''. This method is obsolete. Please use the [[SoftLayer_Network_Media_Transcode_Job::createObject|createObject]] method on SoftLayer_Network_Media_Transcode_Job object instead. SoftLayer_Network_Media_Transcode_Job::createObject returns an object of a newly created Transcode Job. +// +// With this method, you can create a transcode job. +// +// The very first step of creating a transcode job is to upload your media files to the /in directory on your Transcode FTP space. Then, you have to pass a [[SoftLayer_Network_Media_Transcode_Job|Transcode job]] object as a parameter for this method. +// +// There are 4 required properties of SoftLayer_Network_Media_Transcode_Job object: transcodePresetName, transcodePresetGuid, inputFile, and outputFile. A transcode preset is a configuration that defines a certain media output. You can retrieve all the supported presets with the [[SoftLayer_Network_Media_Transcode_Account::getPresets|getPresets]] method. You can also use [[SoftLayer_Network_Media_Transcode_Account::getPresetDetail|getPresetDetail]] method to get more information on a preset. Use these two methods to determine appropriate values for "transcodePresetName" and "transcodePresetGuid" properties. For an "inputFile", you must specify a file that exists in the /in directory of your Transcode FTP space. An "outputFile" name will be used by the Transcode server for naming a transcoded file. An output file name must be in /out directory. If your outputFile name already exists in the /out directory, the Transcode server will append a file name with _n (an underscore and the total number of files with the identical name plus 1). +// +// The "name" property is optional and it can help you keep track of transcode jobs easily. "autoDeleteDuration" is another optional property that you can specify. It determines how soon your input file will be deleted. If autoDeleteDuration is set to zero, your input file will be removed immediately after the last transcode job running on it is completed. A value for autoDeleteDuration property is in seconds and the maximum value is 259200 which is 3 days. +// +// An example SoftLayer_Network_Media_Transcode_Job parameter looks like this: +// +// +// * name: My transcoding +// * transcodePresetName: F4V 896kbps 640x352 16x9 29.97fps +// * transcodePresetGuid: {87E01268-C3E3-4A85-9701-052C9AC42BD4} +// * inputFile: /in/my_birthday.wmv +// * outputFile: /out/my_birthday_flash +// +// +// Notice that an output file does not have a file extension. The Transcode server will append a file extension based on an output format. A newly created transcode job will be in "Pending" status and it will be added to the Transcoding queue. You will receive a notification email whenever there is a status change on your transcode job. For example, the Transcode server starts to process your transcode job, you will be notified via an email. +// +// You can add up to 3 pending jobs at a time. Transcode jobs with any other status such as "Complete" or "Error" will not be counted toward your pending jobs. +// +// Once a job is complete, the Transcode server will place the output file into the /out directory along with a notification email. The files in the /out directory will be removed 3 days after they were created. You will need to use an FTP client to download transcoded files. +// +// +func (r Network_Media_Transcode_Account) CreateTranscodeJob(newJob *datatypes.Network_Media_Transcode_Job) (resp bool, err error) { + params := []interface{}{ + newJob, + } + err = r.Session.DoRequest("SoftLayer_Network_Media_Transcode_Account", "createTranscodeJob", params, &r.Options, &resp) + return +} + +// Retrieve The SoftLayer account information +func (r Network_Media_Transcode_Account) GetAccount() (resp datatypes.Account, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Media_Transcode_Account", "getAccount", nil, &r.Options, &resp) + return +} + +// This method returns a collection of SoftLayer_Container_Network_Ftp_Directory objects. You can retrieve directory information for /in and /out directories. A [[SoftLayer_Container_Network_Directory_Listing|Directory Listing]] object contains a type (indicating whether it is a file or a directory), name and file count if it is a directory. +func (r Network_Media_Transcode_Account) GetDirectoryInformation(directoryName *string, extensionFilter *string) (resp []datatypes.Container_Network_Directory_Listing, err error) { + params := []interface{}{ + directoryName, + extensionFilter, + } + err = r.Session.DoRequest("SoftLayer_Network_Media_Transcode_Account", "getDirectoryInformation", params, &r.Options, &resp) + return +} + +// This method returns detailed information of a media file that resides in the Transcode FTP server. A [[SoftLayer_Container_Network_Media_Information|media information]] object contains media details such as file size, media format, frame rate, aspect ratio and so on. This information is merely for reference purposes. You should not rely on this data. Our library grabs small pieces of data from a media file to gather media details. This information may not be available for some files. +func (r Network_Media_Transcode_Account) GetFileDetail(source *string) (resp datatypes.Container_Network_Media_Information, err error) { + params := []interface{}{ + source, + } + err = r.Session.DoRequest("SoftLayer_Network_Media_Transcode_Account", "getFileDetail", params, &r.Options, &resp) + return +} + +// This method returns your Transcode FTP login credentials to the transcode.service.softlayer.com server. +// +// The Transcode FTP server is available via the SoftLayer private network. There is no API method that you can upload a file to Transcode server so you need to use an FTP client. You will have /in and /out directories on the Transcode FTP server. You will have read-write privileges for /in directory and read-only privilege for /out directory. All the files in both /in and /out directories will be deleted after 72 hours from the creation date. +func (r Network_Media_Transcode_Account) GetFtpAttributes() (resp datatypes.Container_Network_Authentication_Data, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Media_Transcode_Account", "getFtpAttributes", nil, &r.Options, &resp) + return +} + +// getObject method retrieves the SoftLayer_Network_Media_Transcode_Account object whose ID number corresponds to the ID number of the initial parameter passed to the SoftLayer_Network_Media_Transcode_Account service. You can only retrieve a Transcode account assigned to your SoftLayer customer account. +func (r Network_Media_Transcode_Account) GetObject() (resp datatypes.Network_Media_Transcode_Account, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Media_Transcode_Account", "getObject", nil, &r.Options, &resp) + return +} + +// This method returns an array of [[SoftLayer_Container_Network_Media_Transcode_Preset_Element|preset element]] objects. Each preset has its own collection of preset elements such as encoder, frame rate, aspect ratio and so on. Each element object has a default value for itself and an array of [[SoftLayer_Container_Network_Media_Transcode_Preset_Element_Option|element option]] objects. For example, "Frame Rate" element for "Windows Media 9 - Download - 1 Mbps - NTSC - Constrained VBR" preset has 19 element options. 15.0 frame rate is selected by default. Currently, you are not able to change the default value. Customizing these values may be possible in the future. +func (r Network_Media_Transcode_Account) GetPresetDetail(guid *string) (resp []datatypes.Container_Network_Media_Transcode_Preset_Element, err error) { + params := []interface{}{ + guid, + } + err = r.Session.DoRequest("SoftLayer_Network_Media_Transcode_Account", "getPresetDetail", params, &r.Options, &resp) + return +} + +// A transcode preset is a configuration that defines a certain media output. This method returns an array of transcoding preset objects supported by SoftLayer's Transcode server. Each [[SoftLayer_Container_Network_Media_Transcode_Preset|preset object]] contains a GUID property. You will need a GUID string when you create a new transcode job. +func (r Network_Media_Transcode_Account) GetPresets() (resp []datatypes.Container_Network_Media_Transcode_Preset, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Media_Transcode_Account", "getPresets", nil, &r.Options, &resp) + return +} + +// Retrieve Transcode jobs +func (r Network_Media_Transcode_Account) GetTranscodeJobs() (resp []datatypes.Network_Media_Transcode_Job, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Media_Transcode_Account", "getTranscodeJobs", nil, &r.Options, &resp) + return +} + +// The SoftLayer_Network_Media_Transcode_Job contains information regarding a transcode job such as input file, output format, user id and so on. +type Network_Media_Transcode_Job struct { + Session *session.Session + Options sl.Options +} + +// GetNetworkMediaTranscodeJobService returns an instance of the Network_Media_Transcode_Job SoftLayer service +func GetNetworkMediaTranscodeJobService(sess *session.Session) Network_Media_Transcode_Job { + return Network_Media_Transcode_Job{Session: sess} +} + +func (r Network_Media_Transcode_Job) Id(id int) Network_Media_Transcode_Job { + r.Options.Id = &id + return r +} + +func (r Network_Media_Transcode_Job) Mask(mask string) Network_Media_Transcode_Job { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Network_Media_Transcode_Job) Filter(filter string) Network_Media_Transcode_Job { + r.Options.Filter = filter + return r +} + +func (r Network_Media_Transcode_Job) Limit(limit int) Network_Media_Transcode_Job { + r.Options.Limit = &limit + return r +} + +func (r Network_Media_Transcode_Job) Offset(offset int) Network_Media_Transcode_Job { + r.Options.Offset = &offset + return r +} + +// With this method, you can create a transcode job. +// +// The very first step of creating a transcode job is to upload your media files to the /in directory on your Transcode FTP space. Then, you have to pass a [[SoftLayer_Network_Media_Transcode_Job|Transcode job]] object as a parameter for this method. +// +// There are 4 required properties of SoftLayer_Network_Media_Transcode_Job object: transcodePresetName, transcodePresetGuid, inputFile, and outputFile. A transcode preset is a configuration that defines a certain media output. You can retrieve all the supported presets with the [[SoftLayer_Network_Media_Transcode_Account::getPresets|getPresets]] method. You can also use [[SoftLayer_Network_Media_Transcode_Account::getPresetDetail|getPresetDetail]] method to get more information on a preset. Use these two methods to determine appropriate values for "transcodePresetName" and "transcodePresetGuid" properties. For an "inputFile", you must specify a file that exists in the /in directory of your Transcode FTP space. An "outputFile" name will be used by the Transcode server for naming a transcoded file. An output file name must be in /out directory. If your outputFile name already exists in the /out directory, the Transcode server will append a file name with _n (an underscore and the total number of files with the identical name plus 1). +// +// The "name" property is optional and it can help you keep track of transcode jobs easily. "autoDeleteDuration" is another optional property that you can specify. It determines how soon your input file will be deleted. If autoDeleteDuration is set to zero, your input file will be removed immediately after the last transcode job running on it is completed. A value for autoDeleteDuration property is in seconds and the maximum value is 259200 which is 3 days. +// +// An example SoftLayer_Network_Media_Transcode_Job parameter looks like this: +// +// +// * name: My transcoding +// * transcodePresetName: F4V 896kbps 640x352 16x9 29.97fps +// * transcodePresetGuid: {87E01268-C3E3-4A85-9701-052C9AC42BD4} +// * inputFile: /in/my_birthday.wmv +// * outputFile: /out/my_birthday_flash +// +// +// Notice that an output file does not have a file extension. The Transcode server will append a file extension based on an output format. A newly created transcode job will be in "Pending" status and it will be added to the Transcoding queue. You will receive a notification email whenever there is a status change on your transcode job. For example, the Transcode server starts to process your transcode job, you will be notified via an email. +// +// You can add up to 3 pending jobs at a time. Transcode jobs with any other status such as "Complete" or "Error" will not be counted toward your pending jobs. +// +// Once a job is complete, the Transcode server will place the output file into the /out directory along with a notification email. The files in the /out directory will be removed 3 days after they were created. You will need to use an FTP client to download transcoded files. +// +// +func (r Network_Media_Transcode_Job) CreateObject(templateObject *datatypes.Network_Media_Transcode_Job) (resp datatypes.Network_Media_Transcode_Job, err error) { + params := []interface{}{ + templateObject, + } + err = r.Session.DoRequest("SoftLayer_Network_Media_Transcode_Job", "createObject", params, &r.Options, &resp) + return +} + +// Retrieve +func (r Network_Media_Transcode_Job) GetHistory() (resp []datatypes.Network_Media_Transcode_Job_History, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Media_Transcode_Job", "getHistory", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Network_Media_Transcode_Job) GetObject() (resp datatypes.Network_Media_Transcode_Job, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Media_Transcode_Job", "getObject", nil, &r.Options, &resp) + return +} + +// Retrieve The transcode service account +func (r Network_Media_Transcode_Job) GetTranscodeAccount() (resp datatypes.Network_Media_Transcode_Account, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Media_Transcode_Job", "getTranscodeAccount", nil, &r.Options, &resp) + return +} + +// Retrieve The status information of a transcode job +func (r Network_Media_Transcode_Job) GetTranscodeStatus() (resp datatypes.Network_Media_Transcode_Job_Status, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Media_Transcode_Job", "getTranscodeStatus", nil, &r.Options, &resp) + return +} + +// Retrieve The status of a transcode job +func (r Network_Media_Transcode_Job) GetTranscodeStatusName() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Media_Transcode_Job", "getTranscodeStatusName", nil, &r.Options, &resp) + return +} + +// Retrieve The SoftLayer user that created the transcode job +func (r Network_Media_Transcode_Job) GetUser() (resp datatypes.User_Customer, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Media_Transcode_Job", "getUser", nil, &r.Options, &resp) + return +} + +// The SoftLayer_Network_Media_Transcode_Job_Status contains information on a transcode job status. +type Network_Media_Transcode_Job_Status struct { + Session *session.Session + Options sl.Options +} + +// GetNetworkMediaTranscodeJobStatusService returns an instance of the Network_Media_Transcode_Job_Status SoftLayer service +func GetNetworkMediaTranscodeJobStatusService(sess *session.Session) Network_Media_Transcode_Job_Status { + return Network_Media_Transcode_Job_Status{Session: sess} +} + +func (r Network_Media_Transcode_Job_Status) Id(id int) Network_Media_Transcode_Job_Status { + r.Options.Id = &id + return r +} + +func (r Network_Media_Transcode_Job_Status) Mask(mask string) Network_Media_Transcode_Job_Status { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Network_Media_Transcode_Job_Status) Filter(filter string) Network_Media_Transcode_Job_Status { + r.Options.Filter = filter + return r +} + +func (r Network_Media_Transcode_Job_Status) Limit(limit int) Network_Media_Transcode_Job_Status { + r.Options.Limit = &limit + return r +} + +func (r Network_Media_Transcode_Job_Status) Offset(offset int) Network_Media_Transcode_Job_Status { + r.Options.Offset = &offset + return r +} + +// This method returns all transcode job statuses. +func (r Network_Media_Transcode_Job_Status) GetAllStatuses() (resp []datatypes.Network_Media_Transcode_Job_Status, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Media_Transcode_Job_Status", "getAllStatuses", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Network_Media_Transcode_Job_Status) GetObject() (resp datatypes.Network_Media_Transcode_Job_Status, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Media_Transcode_Job_Status", "getObject", nil, &r.Options, &resp) + return +} + +// no documentation yet +type Network_Message_Delivery struct { + Session *session.Session + Options sl.Options +} + +// GetNetworkMessageDeliveryService returns an instance of the Network_Message_Delivery SoftLayer service +func GetNetworkMessageDeliveryService(sess *session.Session) Network_Message_Delivery { + return Network_Message_Delivery{Session: sess} +} + +func (r Network_Message_Delivery) Id(id int) Network_Message_Delivery { + r.Options.Id = &id + return r +} + +func (r Network_Message_Delivery) Mask(mask string) Network_Message_Delivery { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Network_Message_Delivery) Filter(filter string) Network_Message_Delivery { + r.Options.Filter = filter + return r +} + +func (r Network_Message_Delivery) Limit(limit int) Network_Message_Delivery { + r.Options.Limit = &limit + return r +} + +func (r Network_Message_Delivery) Offset(offset int) Network_Message_Delivery { + r.Options.Offset = &offset + return r +} + +// no documentation yet +func (r Network_Message_Delivery) EditObject(templateObject *datatypes.Network_Message_Delivery) (resp bool, err error) { + params := []interface{}{ + templateObject, + } + err = r.Session.DoRequest("SoftLayer_Network_Message_Delivery", "editObject", params, &r.Options, &resp) + return +} + +// Retrieve The SoftLayer customer account that a network message delivery account belongs to. +func (r Network_Message_Delivery) GetAccount() (resp datatypes.Account, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Message_Delivery", "getAccount", nil, &r.Options, &resp) + return +} + +// Retrieve The billing item for a network message delivery account. +func (r Network_Message_Delivery) GetBillingItem() (resp datatypes.Billing_Item, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Message_Delivery", "getBillingItem", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Network_Message_Delivery) GetObject() (resp datatypes.Network_Message_Delivery, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Message_Delivery", "getObject", nil, &r.Options, &resp) + return +} + +// Retrieve The message delivery type of a network message delivery account. +func (r Network_Message_Delivery) GetType() (resp datatypes.Network_Message_Delivery_Type, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Message_Delivery", "getType", nil, &r.Options, &resp) + return +} + +// Retrieve The vendor for a network message delivery account. +func (r Network_Message_Delivery) GetVendor() (resp datatypes.Network_Message_Delivery_Vendor, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Message_Delivery", "getVendor", nil, &r.Options, &resp) + return +} + +// no documentation yet +type Network_Message_Delivery_Email_Sendgrid struct { + Session *session.Session + Options sl.Options +} + +// GetNetworkMessageDeliveryEmailSendgridService returns an instance of the Network_Message_Delivery_Email_Sendgrid SoftLayer service +func GetNetworkMessageDeliveryEmailSendgridService(sess *session.Session) Network_Message_Delivery_Email_Sendgrid { + return Network_Message_Delivery_Email_Sendgrid{Session: sess} +} + +func (r Network_Message_Delivery_Email_Sendgrid) Id(id int) Network_Message_Delivery_Email_Sendgrid { + r.Options.Id = &id + return r +} + +func (r Network_Message_Delivery_Email_Sendgrid) Mask(mask string) Network_Message_Delivery_Email_Sendgrid { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Network_Message_Delivery_Email_Sendgrid) Filter(filter string) Network_Message_Delivery_Email_Sendgrid { + r.Options.Filter = filter + return r +} + +func (r Network_Message_Delivery_Email_Sendgrid) Limit(limit int) Network_Message_Delivery_Email_Sendgrid { + r.Options.Limit = &limit + return r +} + +func (r Network_Message_Delivery_Email_Sendgrid) Offset(offset int) Network_Message_Delivery_Email_Sendgrid { + r.Options.Offset = &offset + return r +} + +// no documentation yet +func (r Network_Message_Delivery_Email_Sendgrid) AddUnsubscribeEmailAddress(emailAddress *string) (resp bool, err error) { + params := []interface{}{ + emailAddress, + } + err = r.Session.DoRequest("SoftLayer_Network_Message_Delivery_Email_Sendgrid", "addUnsubscribeEmailAddress", params, &r.Options, &resp) + return +} + +// no documentation yet +func (r Network_Message_Delivery_Email_Sendgrid) DeleteEmailListEntries(list *string, entries []string) (resp bool, err error) { + params := []interface{}{ + list, + entries, + } + err = r.Session.DoRequest("SoftLayer_Network_Message_Delivery_Email_Sendgrid", "deleteEmailListEntries", params, &r.Options, &resp) + return +} + +// no documentation yet +func (r Network_Message_Delivery_Email_Sendgrid) DisableSmtpAccess() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Message_Delivery_Email_Sendgrid", "disableSmtpAccess", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Network_Message_Delivery_Email_Sendgrid) EditObject(templateObject *datatypes.Network_Message_Delivery) (resp bool, err error) { + params := []interface{}{ + templateObject, + } + err = r.Session.DoRequest("SoftLayer_Network_Message_Delivery_Email_Sendgrid", "editObject", params, &r.Options, &resp) + return +} + +// no documentation yet +func (r Network_Message_Delivery_Email_Sendgrid) EnableSmtpAccess() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Message_Delivery_Email_Sendgrid", "enableSmtpAccess", nil, &r.Options, &resp) + return +} + +// Retrieve The SoftLayer customer account that a network message delivery account belongs to. +func (r Network_Message_Delivery_Email_Sendgrid) GetAccount() (resp datatypes.Account, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Message_Delivery_Email_Sendgrid", "getAccount", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Network_Message_Delivery_Email_Sendgrid) GetAccountOverview() (resp datatypes.Container_Network_Message_Delivery_Email_Sendgrid_Account_Overview, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Message_Delivery_Email_Sendgrid", "getAccountOverview", nil, &r.Options, &resp) + return +} + +// Retrieve The billing item for a network message delivery account. +func (r Network_Message_Delivery_Email_Sendgrid) GetBillingItem() (resp datatypes.Billing_Item, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Message_Delivery_Email_Sendgrid", "getBillingItem", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Network_Message_Delivery_Email_Sendgrid) GetCategoryList() (resp []string, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Message_Delivery_Email_Sendgrid", "getCategoryList", nil, &r.Options, &resp) + return +} + +// Retrieve The contact e-mail address used by SendGrid. +func (r Network_Message_Delivery_Email_Sendgrid) GetEmailAddress() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Message_Delivery_Email_Sendgrid", "getEmailAddress", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Network_Message_Delivery_Email_Sendgrid) GetEmailList(list *string) (resp []datatypes.Container_Network_Message_Delivery_Email_Sendgrid_List_Entry, err error) { + params := []interface{}{ + list, + } + err = r.Session.DoRequest("SoftLayer_Network_Message_Delivery_Email_Sendgrid", "getEmailList", params, &r.Options, &resp) + return +} + +// no documentation yet +func (r Network_Message_Delivery_Email_Sendgrid) GetObject() (resp datatypes.Network_Message_Delivery_Email_Sendgrid, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Message_Delivery_Email_Sendgrid", "getObject", nil, &r.Options, &resp) + return +} + +// Retrieve A flag that determines if a SendGrid e-mail delivery account has access to send mail through the SendGrid SMTP server. +func (r Network_Message_Delivery_Email_Sendgrid) GetSmtpAccess() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Message_Delivery_Email_Sendgrid", "getSmtpAccess", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Network_Message_Delivery_Email_Sendgrid) GetStatistics(options *datatypes.Container_Network_Message_Delivery_Email_Sendgrid_Statistics_Options) (resp []datatypes.Container_Network_Message_Delivery_Email_Sendgrid_Statistics, err error) { + params := []interface{}{ + options, + } + err = r.Session.DoRequest("SoftLayer_Network_Message_Delivery_Email_Sendgrid", "getStatistics", params, &r.Options, &resp) + return +} + +// no documentation yet +func (r Network_Message_Delivery_Email_Sendgrid) GetStatisticsGraph(options *datatypes.Container_Network_Message_Delivery_Email_Sendgrid_Statistics_Options) (resp datatypes.Container_Network_Message_Delivery_Email_Sendgrid_Statistics_Graph, err error) { + params := []interface{}{ + options, + } + err = r.Session.DoRequest("SoftLayer_Network_Message_Delivery_Email_Sendgrid", "getStatisticsGraph", params, &r.Options, &resp) + return +} + +// Retrieve The message delivery type of a network message delivery account. +func (r Network_Message_Delivery_Email_Sendgrid) GetType() (resp datatypes.Network_Message_Delivery_Type, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Message_Delivery_Email_Sendgrid", "getType", nil, &r.Options, &resp) + return +} + +// Retrieve The vendor for a network message delivery account. +func (r Network_Message_Delivery_Email_Sendgrid) GetVendor() (resp datatypes.Network_Message_Delivery_Vendor, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Message_Delivery_Email_Sendgrid", "getVendor", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Network_Message_Delivery_Email_Sendgrid) GetVendorPortalUrl() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Message_Delivery_Email_Sendgrid", "getVendorPortalUrl", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Network_Message_Delivery_Email_Sendgrid) SendEmail(emailContainer *datatypes.Container_Network_Message_Delivery_Email) (resp bool, err error) { + params := []interface{}{ + emailContainer, + } + err = r.Session.DoRequest("SoftLayer_Network_Message_Delivery_Email_Sendgrid", "sendEmail", params, &r.Options, &resp) + return +} + +// no documentation yet +func (r Network_Message_Delivery_Email_Sendgrid) UpdateEmailAddress(emailAddress *string) (resp bool, err error) { + params := []interface{}{ + emailAddress, + } + err = r.Session.DoRequest("SoftLayer_Network_Message_Delivery_Email_Sendgrid", "updateEmailAddress", params, &r.Options, &resp) + return +} + +// The SoftLayer_Network_Message_Queue data type contains general information relating to Message Queue account +type Network_Message_Queue struct { + Session *session.Session + Options sl.Options +} + +// GetNetworkMessageQueueService returns an instance of the Network_Message_Queue SoftLayer service +func GetNetworkMessageQueueService(sess *session.Session) Network_Message_Queue { + return Network_Message_Queue{Session: sess} +} + +func (r Network_Message_Queue) Id(id int) Network_Message_Queue { + r.Options.Id = &id + return r +} + +func (r Network_Message_Queue) Mask(mask string) Network_Message_Queue { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Network_Message_Queue) Filter(filter string) Network_Message_Queue { + r.Options.Filter = filter + return r +} + +func (r Network_Message_Queue) Limit(limit int) Network_Message_Queue { + r.Options.Limit = &limit + return r +} + +func (r Network_Message_Queue) Offset(offset int) Network_Message_Queue { + r.Options.Offset = &offset + return r +} + +// Retrieve The account that a message queue belongs to. +func (r Network_Message_Queue) GetAccount() (resp datatypes.Account, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Message_Queue", "getAccount", nil, &r.Options, &resp) + return +} + +// Retrieve The current billing item for this message queue account. +func (r Network_Message_Queue) GetBillingItem() (resp datatypes.Billing_Item, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Message_Queue", "getBillingItem", nil, &r.Options, &resp) + return +} + +// Retrieve All available message queue nodes +func (r Network_Message_Queue) GetNodes() (resp []datatypes.Network_Message_Queue_Node, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Message_Queue", "getNodes", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Network_Message_Queue) GetObject() (resp datatypes.Network_Message_Queue, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Message_Queue", "getObject", nil, &r.Options, &resp) + return +} + +// Retrieve A message queue account status. +func (r Network_Message_Queue) GetStatus() (resp datatypes.Network_Message_Queue_Status, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Message_Queue", "getStatus", nil, &r.Options, &resp) + return +} + +// The SoftLayer_Network_Message_Queue_Node data type contains general information relating to Message Queue node +type Network_Message_Queue_Node struct { + Session *session.Session + Options sl.Options +} + +// GetNetworkMessageQueueNodeService returns an instance of the Network_Message_Queue_Node SoftLayer service +func GetNetworkMessageQueueNodeService(sess *session.Session) Network_Message_Queue_Node { + return Network_Message_Queue_Node{Session: sess} +} + +func (r Network_Message_Queue_Node) Id(id int) Network_Message_Queue_Node { + r.Options.Id = &id + return r +} + +func (r Network_Message_Queue_Node) Mask(mask string) Network_Message_Queue_Node { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Network_Message_Queue_Node) Filter(filter string) Network_Message_Queue_Node { + r.Options.Filter = filter + return r +} + +func (r Network_Message_Queue_Node) Limit(limit int) Network_Message_Queue_Node { + r.Options.Limit = &limit + return r +} + +func (r Network_Message_Queue_Node) Offset(offset int) Network_Message_Queue_Node { + r.Options.Offset = &offset + return r +} + +// no documentation yet +func (r Network_Message_Queue_Node) AddUser(username *string) (resp bool, err error) { + params := []interface{}{ + username, + } + err = r.Session.DoRequest("SoftLayer_Network_Message_Queue_Node", "addUser", params, &r.Options, &resp) + return +} + +// no documentation yet +func (r Network_Message_Queue_Node) DeleteUser(username *string) (resp bool, err error) { + params := []interface{}{ + username, + } + err = r.Session.DoRequest("SoftLayer_Network_Message_Queue_Node", "deleteUser", params, &r.Options, &resp) + return +} + +// no documentation yet +func (r Network_Message_Queue_Node) GetAllUsers() (resp []string, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Message_Queue_Node", "getAllUsers", nil, &r.Options, &resp) + return +} + +// Retrieve The message queue account this node belongs to. +func (r Network_Message_Queue_Node) GetMessageQueue() (resp datatypes.Network_Message_Queue, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Message_Queue_Node", "getMessageQueue", nil, &r.Options, &resp) + return +} + +// Retrieve A message queue node's metric tracking object. This object records all request and notification count data for this message queue node. +func (r Network_Message_Queue_Node) GetMetricTrackingObject() (resp datatypes.Metric_Tracking_Object, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Message_Queue_Node", "getMetricTrackingObject", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Network_Message_Queue_Node) GetObject() (resp datatypes.Network_Message_Queue_Node, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Message_Queue_Node", "getObject", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Network_Message_Queue_Node) GetServiceResource() (resp datatypes.Network_Service_Resource, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Message_Queue_Node", "getServiceResource", nil, &r.Options, &resp) + return +} + +// Retrieve usage graph by date. +func (r Network_Message_Queue_Node) GetUsage(startDate *datatypes.Time, endDate *datatypes.Time) (resp []datatypes.Metric_Tracking_Object_Data, err error) { + params := []interface{}{ + startDate, + endDate, + } + err = r.Session.DoRequest("SoftLayer_Network_Message_Queue_Node", "getUsage", params, &r.Options, &resp) + return +} + +// Retrieve usage graph by date. +func (r Network_Message_Queue_Node) GetUsageGraph(graphData *datatypes.Container_Graph) (resp datatypes.Container_Graph, err error) { + params := []interface{}{ + graphData, + } + err = r.Session.DoRequest("SoftLayer_Network_Message_Queue_Node", "getUsageGraph", params, &r.Options, &resp) + return +} + +// The SoftLayer_Network_Message_Queue_Status data type contains general information relating to Message Queue account status. +type Network_Message_Queue_Status struct { + Session *session.Session + Options sl.Options +} + +// GetNetworkMessageQueueStatusService returns an instance of the Network_Message_Queue_Status SoftLayer service +func GetNetworkMessageQueueStatusService(sess *session.Session) Network_Message_Queue_Status { + return Network_Message_Queue_Status{Session: sess} +} + +func (r Network_Message_Queue_Status) Id(id int) Network_Message_Queue_Status { + r.Options.Id = &id + return r +} + +func (r Network_Message_Queue_Status) Mask(mask string) Network_Message_Queue_Status { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Network_Message_Queue_Status) Filter(filter string) Network_Message_Queue_Status { + r.Options.Filter = filter + return r +} + +func (r Network_Message_Queue_Status) Limit(limit int) Network_Message_Queue_Status { + r.Options.Limit = &limit + return r +} + +func (r Network_Message_Queue_Status) Offset(offset int) Network_Message_Queue_Status { + r.Options.Offset = &offset + return r +} + +// no documentation yet +func (r Network_Message_Queue_Status) GetObject() (resp datatypes.Network_Message_Queue_Status, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Message_Queue_Status", "getObject", nil, &r.Options, &resp) + return +} + +// no documentation yet +type Network_Monitor struct { + Session *session.Session + Options sl.Options +} + +// GetNetworkMonitorService returns an instance of the Network_Monitor SoftLayer service +func GetNetworkMonitorService(sess *session.Session) Network_Monitor { + return Network_Monitor{Session: sess} +} + +func (r Network_Monitor) Id(id int) Network_Monitor { + r.Options.Id = &id + return r +} + +func (r Network_Monitor) Mask(mask string) Network_Monitor { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Network_Monitor) Filter(filter string) Network_Monitor { + r.Options.Filter = filter + return r +} + +func (r Network_Monitor) Limit(limit int) Network_Monitor { + r.Options.Limit = &limit + return r +} + +func (r Network_Monitor) Offset(offset int) Network_Monitor { + r.Options.Offset = &offset + return r +} + +// This will return an arrayObject of objects containing the ipaddresses. Using an string parameter you can send a partial ipaddress to search within a given ipaddress. You can also set the max limit as well using the setting the resultLimit. +func (r Network_Monitor) GetIpAddressesByHardware(hardware *datatypes.Hardware, partialIpAddress *string) (resp []datatypes.Network_Subnet_IpAddress, err error) { + params := []interface{}{ + hardware, + partialIpAddress, + } + err = r.Session.DoRequest("SoftLayer_Network_Monitor", "getIpAddressesByHardware", params, &r.Options, &resp) + return +} + +// This will return an arrayObject of objects containing the ipaddresses. Using an string parameter you can send a partial ipaddress to search within a given ipaddress. You can also set the max limit as well using the setting the resultLimit. +func (r Network_Monitor) GetIpAddressesByVirtualGuest(guest *datatypes.Virtual_Guest, partialIpAddress *string) (resp []datatypes.Network_Subnet_IpAddress, err error) { + params := []interface{}{ + guest, + partialIpAddress, + } + err = r.Session.DoRequest("SoftLayer_Network_Monitor", "getIpAddressesByVirtualGuest", params, &r.Options, &resp) + return +} + +// The Monitoring_Query_Host type represents a monitoring instance. It consists of a hardware ID to monitor, an IP address attached to that hardware ID, a method of monitoring, and what to do in the instance that the monitor ever fails. +type Network_Monitor_Version1_Query_Host struct { + Session *session.Session + Options sl.Options +} + +// GetNetworkMonitorVersion1QueryHostService returns an instance of the Network_Monitor_Version1_Query_Host SoftLayer service +func GetNetworkMonitorVersion1QueryHostService(sess *session.Session) Network_Monitor_Version1_Query_Host { + return Network_Monitor_Version1_Query_Host{Session: sess} +} + +func (r Network_Monitor_Version1_Query_Host) Id(id int) Network_Monitor_Version1_Query_Host { + r.Options.Id = &id + return r +} + +func (r Network_Monitor_Version1_Query_Host) Mask(mask string) Network_Monitor_Version1_Query_Host { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Network_Monitor_Version1_Query_Host) Filter(filter string) Network_Monitor_Version1_Query_Host { + r.Options.Filter = filter + return r +} + +func (r Network_Monitor_Version1_Query_Host) Limit(limit int) Network_Monitor_Version1_Query_Host { + r.Options.Limit = &limit + return r +} + +func (r Network_Monitor_Version1_Query_Host) Offset(offset int) Network_Monitor_Version1_Query_Host { + r.Options.Offset = &offset + return r +} + +// Passing in an unsaved instances of a Query_Host object into this function will create the object and return the results to the user. +func (r Network_Monitor_Version1_Query_Host) CreateObject(templateObject *datatypes.Network_Monitor_Version1_Query_Host) (resp datatypes.Network_Monitor_Version1_Query_Host, err error) { + params := []interface{}{ + templateObject, + } + err = r.Session.DoRequest("SoftLayer_Network_Monitor_Version1_Query_Host", "createObject", params, &r.Options, &resp) + return +} + +// Passing in a collection of unsaved instances of Query_Host objects into this function will create all objects and return the results to the user. +func (r Network_Monitor_Version1_Query_Host) CreateObjects(templateObjects []datatypes.Network_Monitor_Version1_Query_Host) (resp []datatypes.Network_Monitor_Version1_Query_Host, err error) { + params := []interface{}{ + templateObjects, + } + err = r.Session.DoRequest("SoftLayer_Network_Monitor_Version1_Query_Host", "createObjects", params, &r.Options, &resp) + return +} + +// Like any other API object, the monitoring objects can be deleted by passing an instance of them into this function. The ID on the object must be set. +func (r Network_Monitor_Version1_Query_Host) DeleteObject() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Monitor_Version1_Query_Host", "deleteObject", nil, &r.Options, &resp) + return +} + +// Like any other API object, the monitoring objects can be deleted by passing an instance of them into this function. The ID on the object must be set. +func (r Network_Monitor_Version1_Query_Host) DeleteObjects(templateObjects []datatypes.Network_Monitor_Version1_Query_Host) (resp bool, err error) { + params := []interface{}{ + templateObjects, + } + err = r.Session.DoRequest("SoftLayer_Network_Monitor_Version1_Query_Host", "deleteObjects", params, &r.Options, &resp) + return +} + +// Like any other API object, the monitoring objects can have their exposed properties edited by passing in a modified version of the object. +func (r Network_Monitor_Version1_Query_Host) EditObject(templateObject *datatypes.Network_Monitor_Version1_Query_Host) (resp bool, err error) { + params := []interface{}{ + templateObject, + } + err = r.Session.DoRequest("SoftLayer_Network_Monitor_Version1_Query_Host", "editObject", params, &r.Options, &resp) + return +} + +// Like any other API object, the monitoring objects can have their exposed properties edited by passing in a modified version of the object. +func (r Network_Monitor_Version1_Query_Host) EditObjects(templateObjects []datatypes.Network_Monitor_Version1_Query_Host) (resp bool, err error) { + params := []interface{}{ + templateObjects, + } + err = r.Session.DoRequest("SoftLayer_Network_Monitor_Version1_Query_Host", "editObjects", params, &r.Options, &resp) + return +} + +// This method returns all Query_Host objects associated with the passed in hardware ID as long as that hardware ID is owned by the current user's account. +// +// This behavior can also be accomplished by simply tapping networkMonitors on the Hardware_Server object. +func (r Network_Monitor_Version1_Query_Host) FindByHardwareId(hardwareId *int) (resp []datatypes.Network_Monitor_Version1_Query_Host, err error) { + params := []interface{}{ + hardwareId, + } + err = r.Session.DoRequest("SoftLayer_Network_Monitor_Version1_Query_Host", "findByHardwareId", params, &r.Options, &resp) + return +} + +// Retrieve The hardware that is being monitored by this monitoring instance +func (r Network_Monitor_Version1_Query_Host) GetHardware() (resp datatypes.Hardware, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Monitor_Version1_Query_Host", "getHardware", nil, &r.Options, &resp) + return +} + +// Retrieve The most recent result for this particular monitoring instance. +func (r Network_Monitor_Version1_Query_Host) GetLastResult() (resp datatypes.Network_Monitor_Version1_Query_Result, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Monitor_Version1_Query_Host", "getLastResult", nil, &r.Options, &resp) + return +} + +// getObject retrieves the SoftLayer_Network_Monitor_Version1_Query_Host object whose ID number corresponds to the ID number of the init parameter passed to the SoftLayer_Network_Monitor_Version1_Query_Host service. You can only retrieve query hosts attached to hardware that belong to your account. +func (r Network_Monitor_Version1_Query_Host) GetObject() (resp datatypes.Network_Monitor_Version1_Query_Host, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Monitor_Version1_Query_Host", "getObject", nil, &r.Options, &resp) + return +} + +// Retrieve The type of monitoring query that is executed when this hardware is monitored. +func (r Network_Monitor_Version1_Query_Host) GetQueryType() (resp datatypes.Network_Monitor_Version1_Query_Type, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Monitor_Version1_Query_Host", "getQueryType", nil, &r.Options, &resp) + return +} + +// Retrieve The action taken when a monitor fails. +func (r Network_Monitor_Version1_Query_Host) GetResponseAction() (resp datatypes.Network_Monitor_Version1_Query_ResponseType, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Monitor_Version1_Query_Host", "getResponseAction", nil, &r.Options, &resp) + return +} + +// The monitoring stratum type stores the maximum level of the various components of the monitoring system that a particular hardware object has access to. This object cannot be accessed by ID, and cannot be modified. The user can access this object through Hardware_Server->availableMonitoring. +// +// There are two values on this object that are important: +// # monitorLevel determines the highest level of SoftLayer_Network_Monitor_Version1_Query_Type object that can be placed in a monitoring instance on this server +// # responseLevel determines the highest level of SoftLayer_Network_Monitor_Version1_Query_ResponseType object that can be placed in a monitoring instance on this server +// +// +// Also note that the query type and response types are available through getAllQueryTypes and getAllResponseTypes, respectively. +type Network_Monitor_Version1_Query_Host_Stratum struct { + Session *session.Session + Options sl.Options +} + +// GetNetworkMonitorVersion1QueryHostStratumService returns an instance of the Network_Monitor_Version1_Query_Host_Stratum SoftLayer service +func GetNetworkMonitorVersion1QueryHostStratumService(sess *session.Session) Network_Monitor_Version1_Query_Host_Stratum { + return Network_Monitor_Version1_Query_Host_Stratum{Session: sess} +} + +func (r Network_Monitor_Version1_Query_Host_Stratum) Id(id int) Network_Monitor_Version1_Query_Host_Stratum { + r.Options.Id = &id + return r +} + +func (r Network_Monitor_Version1_Query_Host_Stratum) Mask(mask string) Network_Monitor_Version1_Query_Host_Stratum { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Network_Monitor_Version1_Query_Host_Stratum) Filter(filter string) Network_Monitor_Version1_Query_Host_Stratum { + r.Options.Filter = filter + return r +} + +func (r Network_Monitor_Version1_Query_Host_Stratum) Limit(limit int) Network_Monitor_Version1_Query_Host_Stratum { + r.Options.Limit = &limit + return r +} + +func (r Network_Monitor_Version1_Query_Host_Stratum) Offset(offset int) Network_Monitor_Version1_Query_Host_Stratum { + r.Options.Offset = &offset + return r +} + +// Calling this function returns all possible query type objects. These objects are to be used to set the values on the SoftLayer_Network_Monitor_Version1_Query_Host when creating new monitoring instances. +func (r Network_Monitor_Version1_Query_Host_Stratum) GetAllQueryTypes() (resp []datatypes.Network_Monitor_Version1_Query_Type, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Monitor_Version1_Query_Host_Stratum", "getAllQueryTypes", nil, &r.Options, &resp) + return +} + +// Calling this function returns all possible response type objects. These objects are to be used to set the values on the SoftLayer_Network_Monitor_Version1_Query_Host when creating new monitoring instances. +func (r Network_Monitor_Version1_Query_Host_Stratum) GetAllResponseTypes() (resp []datatypes.Network_Monitor_Version1_Query_ResponseType, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Monitor_Version1_Query_Host_Stratum", "getAllResponseTypes", nil, &r.Options, &resp) + return +} + +// Retrieve The hardware object that these monitoring permissions applies to. +func (r Network_Monitor_Version1_Query_Host_Stratum) GetHardware() (resp datatypes.Hardware, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Monitor_Version1_Query_Host_Stratum", "getHardware", nil, &r.Options, &resp) + return +} + +// getObject retrieves the SoftLayer_Network_Monitor_Version1_Query_Host_Stratum object whose ID number corresponds to the ID number of the init parameter passed to the SoftLayer_Network_Monitor_Version1_Query_Host_Stratum service. You can only retrieve strata attached to hardware that belong to your account. +func (r Network_Monitor_Version1_Query_Host_Stratum) GetObject() (resp datatypes.Network_Monitor_Version1_Query_Host_Stratum, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Monitor_Version1_Query_Host_Stratum", "getObject", nil, &r.Options, &resp) + return +} + +// SoftLayer_Network_Pod refers to a portion of a data center that share a Backend Customer Router (BCR) and usually a front-end counterpart known as a Frontend Customer Router (FCR). A Pod primarily denotes a logical location within the network and the physical aspects that support networks. This is in contrast to representing a specific physical location. +// +// A ``Pod`` is identified by a ``name``, which is unique. A Pod name follows the format 'dddnn.podii', where 'ddd' is a data center code, 'nn' is the data center number, 'pod' is a literal string and 'ii' is a two digit, left-zero- padded number which corresponds to a Backend Customer Router (BCR) of the desired data center. Examples: +// * dal09.pod01 = Dallas 9, Pod 1 (ie. bcr01) +// * sjc01.pod04 = San Jose 1, Pod 4 (ie. bcr04) +// * ams01.pod01 = Amsterdam 1, Pod 1 (ie. bcr01) +type Network_Pod struct { + Session *session.Session + Options sl.Options +} + +// GetNetworkPodService returns an instance of the Network_Pod SoftLayer service +func GetNetworkPodService(sess *session.Session) Network_Pod { + return Network_Pod{Session: sess} +} + +func (r Network_Pod) Id(id int) Network_Pod { + r.Options.Id = &id + return r +} + +func (r Network_Pod) Mask(mask string) Network_Pod { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Network_Pod) Filter(filter string) Network_Pod { + r.Options.Filter = filter + return r +} + +func (r Network_Pod) Limit(limit int) Network_Pod { + r.Options.Limit = &limit + return r +} + +func (r Network_Pod) Offset(offset int) Network_Pod { + r.Options.Offset = &offset + return r +} + +// no documentation yet +func (r Network_Pod) GetAllObjects() (resp []datatypes.Network_Pod, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Pod", "getAllObjects", nil, &r.Options, &resp) + return +} + +// Provides the list of capabilities a Pod fulfills. See [[SoftLayer_Network_Pod/listCapabilities]] for more information on capabilities. +func (r Network_Pod) GetCapabilities() (resp []string, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Pod", "getCapabilities", nil, &r.Options, &resp) + return +} + +// Set the initialization parameter to the ``name`` of the Pod to retrieve. +func (r Network_Pod) GetObject() (resp datatypes.Network_Pod, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Pod", "getObject", nil, &r.Options, &resp) + return +} + +// A capability is simply a string literal that denotes the availability of a feature. Capabilities are generally self describing, but any additional details concerning the implications of a capability will be documented elsewhere; usually by the Service or Operation related to it. +func (r Network_Pod) ListCapabilities() (resp []string, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Pod", "listCapabilities", nil, &r.Options, &resp) + return +} + +// +// This is a Beta release of the Security Group feature. The use of this feature is restricted to select +// users. When the Beta period is over, security groups will be available for all users. Contact sgbeta@us.ibm.com +// using 'Security Groups' in the subject line with any questions. +// +// +// The SoftLayer_Network_SecurityGroup data type contains general information for a single security group. +// Security groups contain a set of [[SoftLayer_Network_SecurityGroup_Rule (type)|rules]] that handle traffic +// to virtual guest instances and a set of +// [[SoftLayer_Virtual_Network_SecurityGroup_NetworkComponentBinding (type)|bindings]] to associate virtual guest +// network components with the security group. +type Network_SecurityGroup struct { + Session *session.Session + Options sl.Options +} + +// GetNetworkSecurityGroupService returns an instance of the Network_SecurityGroup SoftLayer service +func GetNetworkSecurityGroupService(sess *session.Session) Network_SecurityGroup { + return Network_SecurityGroup{Session: sess} +} + +func (r Network_SecurityGroup) Id(id int) Network_SecurityGroup { + r.Options.Id = &id + return r +} + +func (r Network_SecurityGroup) Mask(mask string) Network_SecurityGroup { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Network_SecurityGroup) Filter(filter string) Network_SecurityGroup { + r.Options.Filter = filter + return r +} + +func (r Network_SecurityGroup) Limit(limit int) Network_SecurityGroup { + r.Options.Limit = &limit + return r +} + +func (r Network_SecurityGroup) Offset(offset int) Network_SecurityGroup { + r.Options.Offset = &offset + return r +} + +// Add new rules to a security group by sending in an array of template [[SoftLayer_Network_SecurityGroup_Rule (type)]] objects to be created. +func (r Network_SecurityGroup) AddRules(ruleTemplates []datatypes.Network_SecurityGroup_Rule) (resp bool, err error) { + params := []interface{}{ + ruleTemplates, + } + err = r.Session.DoRequest("SoftLayer_Network_SecurityGroup", "addRules", params, &r.Options, &resp) + return +} + +// Attach virtual guest network components to a security group by creating [[SoftLayer_Virtual_Network_SecurityGroup_NetworkComponentBinding (type)]] objects. +func (r Network_SecurityGroup) AttachNetworkComponents(networkComponentIds []int) (resp bool, err error) { + params := []interface{}{ + networkComponentIds, + } + err = r.Session.DoRequest("SoftLayer_Network_SecurityGroup", "attachNetworkComponents", params, &r.Options, &resp) + return +} + +// Create new security groups +func (r Network_SecurityGroup) CreateObjects(templateObjects []datatypes.Network_SecurityGroup) (resp []datatypes.Network_SecurityGroup, err error) { + params := []interface{}{ + templateObjects, + } + err = r.Session.DoRequest("SoftLayer_Network_SecurityGroup", "createObjects", params, &r.Options, &resp) + return +} + +// Delete security groups for an account. A security group cannot be deleted if any network components are attached or if the security group is a remote security group for a [[SoftLayer_Network_SecurityGroup_Rule (type)|rule]]. +func (r Network_SecurityGroup) DeleteObjects(templateObjects []datatypes.Network_SecurityGroup) (resp bool, err error) { + params := []interface{}{ + templateObjects, + } + err = r.Session.DoRequest("SoftLayer_Network_SecurityGroup", "deleteObjects", params, &r.Options, &resp) + return +} + +// Detach virtual guest network components from a security group by deleting its [[SoftLayer_Virtual_Network_SecurityGroup_NetworkComponentBinding (type)]] +func (r Network_SecurityGroup) DetachNetworkComponents(networkComponentIds []int) (resp bool, err error) { + params := []interface{}{ + networkComponentIds, + } + err = r.Session.DoRequest("SoftLayer_Network_SecurityGroup", "detachNetworkComponents", params, &r.Options, &resp) + return +} + +// Edit security groups +func (r Network_SecurityGroup) EditObjects(templateObjects []datatypes.Network_SecurityGroup) (resp bool, err error) { + params := []interface{}{ + templateObjects, + } + err = r.Session.DoRequest("SoftLayer_Network_SecurityGroup", "editObjects", params, &r.Options, &resp) + return +} + +// Edit rules that belong to the security group. An array of skeleton [SoftLayer_Network_SecurityGroup_Rule]] objects must be sent in with only the properties defined that you want to change. Unchanged properties are left alone. +func (r Network_SecurityGroup) EditRules(rules []datatypes.Network_SecurityGroup_Rule) (resp bool, err error) { + params := []interface{}{ + rules, + } + err = r.Session.DoRequest("SoftLayer_Network_SecurityGroup", "editRules", params, &r.Options, &resp) + return +} + +// Retrieve The account for this security group +func (r Network_SecurityGroup) GetAccount() (resp datatypes.Account, err error) { + err = r.Session.DoRequest("SoftLayer_Network_SecurityGroup", "getAccount", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Network_SecurityGroup) GetAllObjects() (resp []datatypes.Network_SecurityGroup, err error) { + err = r.Session.DoRequest("SoftLayer_Network_SecurityGroup", "getAllObjects", nil, &r.Options, &resp) + return +} + +// Retrieve The network component bindings for this security group +func (r Network_SecurityGroup) GetNetworkComponentBindings() (resp []datatypes.Virtual_Network_SecurityGroup_NetworkComponentBinding, err error) { + err = r.Session.DoRequest("SoftLayer_Network_SecurityGroup", "getNetworkComponentBindings", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Network_SecurityGroup) GetObject() (resp datatypes.Network_SecurityGroup, err error) { + err = r.Session.DoRequest("SoftLayer_Network_SecurityGroup", "getObject", nil, &r.Options, &resp) + return +} + +// Retrieve The rules for this security group +func (r Network_SecurityGroup) GetRules() (resp []datatypes.Network_SecurityGroup_Rule, err error) { + err = r.Session.DoRequest("SoftLayer_Network_SecurityGroup", "getRules", nil, &r.Options, &resp) + return +} + +// Remove rules from a security group +func (r Network_SecurityGroup) RemoveRules(ruleIds []int) (resp bool, err error) { + params := []interface{}{ + ruleIds, + } + err = r.Session.DoRequest("SoftLayer_Network_SecurityGroup", "removeRules", params, &r.Options, &resp) + return +} + +// The SoftLayer_Network_Security_Scanner_Request data type represents a single vulnerability scan request. It provides information on when the scan was created, last updated, and the current status. The status messages are as follows: +// *Scan Pending +// *Scan Processing +// *Scan Complete +// *Scan Cancelled +// *Generating Report. +type Network_Security_Scanner_Request struct { + Session *session.Session + Options sl.Options +} + +// GetNetworkSecurityScannerRequestService returns an instance of the Network_Security_Scanner_Request SoftLayer service +func GetNetworkSecurityScannerRequestService(sess *session.Session) Network_Security_Scanner_Request { + return Network_Security_Scanner_Request{Session: sess} +} + +func (r Network_Security_Scanner_Request) Id(id int) Network_Security_Scanner_Request { + r.Options.Id = &id + return r +} + +func (r Network_Security_Scanner_Request) Mask(mask string) Network_Security_Scanner_Request { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Network_Security_Scanner_Request) Filter(filter string) Network_Security_Scanner_Request { + r.Options.Filter = filter + return r +} + +func (r Network_Security_Scanner_Request) Limit(limit int) Network_Security_Scanner_Request { + r.Options.Limit = &limit + return r +} + +func (r Network_Security_Scanner_Request) Offset(offset int) Network_Security_Scanner_Request { + r.Options.Offset = &offset + return r +} + +// Create a new vulnerability scan request. New scan requests are picked up every five minutes, and the time to complete an actual scan may vary. Once the scan is finished, it can take up to another five minutes for the report to be generated and accessible. +func (r Network_Security_Scanner_Request) CreateObject(templateObject *datatypes.Network_Security_Scanner_Request) (resp datatypes.Network_Security_Scanner_Request, err error) { + params := []interface{}{ + templateObject, + } + err = r.Session.DoRequest("SoftLayer_Network_Security_Scanner_Request", "createObject", params, &r.Options, &resp) + return +} + +// Retrieve The account associated with a security scan request. +func (r Network_Security_Scanner_Request) GetAccount() (resp datatypes.Account, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Security_Scanner_Request", "getAccount", nil, &r.Options, &resp) + return +} + +// Retrieve The virtual guest a security scan is run against. +func (r Network_Security_Scanner_Request) GetGuest() (resp datatypes.Virtual_Guest, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Security_Scanner_Request", "getGuest", nil, &r.Options, &resp) + return +} + +// Retrieve The hardware a security scan is run against. +func (r Network_Security_Scanner_Request) GetHardware() (resp datatypes.Hardware, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Security_Scanner_Request", "getHardware", nil, &r.Options, &resp) + return +} + +// getObject retrieves the SoftLayer_Network_Security_Scanner_Request object whose ID number corresponds to the ID number of the init parameter passed to the SoftLayer_Network_Security_Scanner_Request service. You can only retrieve requests and reports that are assigned to your SoftLayer account. +func (r Network_Security_Scanner_Request) GetObject() (resp datatypes.Network_Security_Scanner_Request, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Security_Scanner_Request", "getObject", nil, &r.Options, &resp) + return +} + +// Get the vulnerability report for a scan request, formatted as HTML string. Previous scan reports are held indefinitely. +func (r Network_Security_Scanner_Request) GetReport() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Security_Scanner_Request", "getReport", nil, &r.Options, &resp) + return +} + +// Retrieve Flag whether the requestor owns the hardware the scan was run on. This flag will return for hardware servers only, virtual servers will result in a null return even if you have a request out for them. +func (r Network_Security_Scanner_Request) GetRequestorOwnedFlag() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Security_Scanner_Request", "getRequestorOwnedFlag", nil, &r.Options, &resp) + return +} + +// Retrieve A security scan request's status. +func (r Network_Security_Scanner_Request) GetStatus() (resp datatypes.Network_Security_Scanner_Request_Status, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Security_Scanner_Request", "getStatus", nil, &r.Options, &resp) + return +} + +// The SoftLayer_Network_Service_Vpn_Overrides data type contains information relating user ids to subnet ids when VPN access is manually configured. It is essentially an entry in a 'white list' of subnets a SoftLayer portal VPN user may access. +type Network_Service_Vpn_Overrides struct { + Session *session.Session + Options sl.Options +} + +// GetNetworkServiceVpnOverridesService returns an instance of the Network_Service_Vpn_Overrides SoftLayer service +func GetNetworkServiceVpnOverridesService(sess *session.Session) Network_Service_Vpn_Overrides { + return Network_Service_Vpn_Overrides{Session: sess} +} + +func (r Network_Service_Vpn_Overrides) Id(id int) Network_Service_Vpn_Overrides { + r.Options.Id = &id + return r +} + +func (r Network_Service_Vpn_Overrides) Mask(mask string) Network_Service_Vpn_Overrides { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Network_Service_Vpn_Overrides) Filter(filter string) Network_Service_Vpn_Overrides { + r.Options.Filter = filter + return r +} + +func (r Network_Service_Vpn_Overrides) Limit(limit int) Network_Service_Vpn_Overrides { + r.Options.Limit = &limit + return r +} + +func (r Network_Service_Vpn_Overrides) Offset(offset int) Network_Service_Vpn_Overrides { + r.Options.Offset = &offset + return r +} + +// Create Softlayer portal user VPN overrides. +func (r Network_Service_Vpn_Overrides) CreateObjects(templateObjects []datatypes.Network_Service_Vpn_Overrides) (resp bool, err error) { + params := []interface{}{ + templateObjects, + } + err = r.Session.DoRequest("SoftLayer_Network_Service_Vpn_Overrides", "createObjects", params, &r.Options, &resp) + return +} + +// Use this method to delete a single SoftLayer portal VPN user subnet override. +func (r Network_Service_Vpn_Overrides) DeleteObject() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Service_Vpn_Overrides", "deleteObject", nil, &r.Options, &resp) + return +} + +// Use this method to delete a collection of SoftLayer portal VPN user subnet overrides. +func (r Network_Service_Vpn_Overrides) DeleteObjects(templateObjects []datatypes.Network_Service_Vpn_Overrides) (resp bool, err error) { + params := []interface{}{ + templateObjects, + } + err = r.Session.DoRequest("SoftLayer_Network_Service_Vpn_Overrides", "deleteObjects", params, &r.Options, &resp) + return +} + +// no documentation yet +func (r Network_Service_Vpn_Overrides) GetObject() (resp datatypes.Network_Service_Vpn_Overrides, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Service_Vpn_Overrides", "getObject", nil, &r.Options, &resp) + return +} + +// Retrieve Subnet components accessible by a SoftLayer VPN portal user. +func (r Network_Service_Vpn_Overrides) GetSubnet() (resp datatypes.Network_Subnet, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Service_Vpn_Overrides", "getSubnet", nil, &r.Options, &resp) + return +} + +// Retrieve SoftLayer VPN portal user. +func (r Network_Service_Vpn_Overrides) GetUser() (resp datatypes.User_Customer, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Service_Vpn_Overrides", "getUser", nil, &r.Options, &resp) + return +} + +// The SoftLayer_Network_Storage data type contains general information regarding a Storage product such as account id, access username and password, the Storage product type, and the server the Storage service is associated with. Currently, only EVault backup storage has an associated server. +type Network_Storage struct { + Session *session.Session + Options sl.Options +} + +// GetNetworkStorageService returns an instance of the Network_Storage SoftLayer service +func GetNetworkStorageService(sess *session.Session) Network_Storage { + return Network_Storage{Session: sess} +} + +func (r Network_Storage) Id(id int) Network_Storage { + r.Options.Id = &id + return r +} + +func (r Network_Storage) Mask(mask string) Network_Storage { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Network_Storage) Filter(filter string) Network_Storage { + r.Options.Filter = filter + return r +} + +func (r Network_Storage) Limit(limit int) Network_Storage { + r.Options.Limit = &limit + return r +} + +func (r Network_Storage) Offset(offset int) Network_Storage { + r.Options.Offset = &offset + return r +} + +// This method is used to modify the access control list for this Storage volume. The SoftLayer_Hardware objects which have been allowed access to this storage will be listed in the allowedHardware property of this storage volume. +func (r Network_Storage) AllowAccessFromHardware(hardwareObjectTemplate *datatypes.Hardware) (resp bool, err error) { + params := []interface{}{ + hardwareObjectTemplate, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage", "allowAccessFromHardware", params, &r.Options, &resp) + return +} + +// no documentation yet +func (r Network_Storage) AllowAccessFromHardwareList(hardwareObjectTemplates []datatypes.Hardware) (resp bool, err error) { + params := []interface{}{ + hardwareObjectTemplates, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage", "allowAccessFromHardwareList", params, &r.Options, &resp) + return +} + +// This method is used to modify the access control list for this Storage volume. The [[SoftLayer_Hardware|SoftLayer_Virtual_Guest|SoftLayer_Network_Subnet|SoftLayer_Network_Subnet_IpAddress]] objects which have been allowed access to this storage will be listed in the [[allowedHardware|allowedVirtualGuests|allowedSubnets|allowedIpAddresses]] property of this storage volume. +func (r Network_Storage) AllowAccessFromHost(typeClassName *string, hostId *int) (resp datatypes.Network_Storage_Allowed_Host, err error) { + params := []interface{}{ + typeClassName, + hostId, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage", "allowAccessFromHost", params, &r.Options, &resp) + return +} + +// This method is used to modify the access control list for this Storage volume. The [[SoftLayer_Hardware|SoftLayer_Virtual_Guest|SoftLayer_Network_Subnet|SoftLayer_Network_Subnet_IpAddress]] objects which have been allowed access to this storage volume will be listed in the [[allowedHardware|allowedVirtualGuests|allowedSubnets|allowedIpAddresses]] property of this storage volume. +func (r Network_Storage) AllowAccessFromHostList(hostObjectTemplates []datatypes.Container_Network_Storage_Host) (resp []datatypes.Network_Storage_Allowed_Host, err error) { + params := []interface{}{ + hostObjectTemplates, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage", "allowAccessFromHostList", params, &r.Options, &resp) + return +} + +// This method is used to modify the access control list for this Storage volume. The SoftLayer_Network_Subnet_IpAddress objects which have been allowed access to this storage will be listed in the allowedIpAddresses property of this storage volume. +func (r Network_Storage) AllowAccessFromIpAddress(ipAddressObjectTemplate *datatypes.Network_Subnet_IpAddress) (resp bool, err error) { + params := []interface{}{ + ipAddressObjectTemplate, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage", "allowAccessFromIpAddress", params, &r.Options, &resp) + return +} + +// no documentation yet +func (r Network_Storage) AllowAccessFromIpAddressList(ipAddressObjectTemplates []datatypes.Network_Subnet_IpAddress) (resp bool, err error) { + params := []interface{}{ + ipAddressObjectTemplates, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage", "allowAccessFromIpAddressList", params, &r.Options, &resp) + return +} + +// This method is used to modify the access control list for this Storage volume. The SoftLayer_Network_Subnet objects which have been allowed access to this storage will be listed in the allowedHardware property of this storage volume. +func (r Network_Storage) AllowAccessFromSubnet(subnetObjectTemplate *datatypes.Network_Subnet) (resp bool, err error) { + params := []interface{}{ + subnetObjectTemplate, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage", "allowAccessFromSubnet", params, &r.Options, &resp) + return +} + +// no documentation yet +func (r Network_Storage) AllowAccessFromSubnetList(subnetObjectTemplates []datatypes.Network_Subnet) (resp bool, err error) { + params := []interface{}{ + subnetObjectTemplates, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage", "allowAccessFromSubnetList", params, &r.Options, &resp) + return +} + +// This method is used to modify the access control list for this Storage volume. The SoftLayer_Virtual_Guest objects which have been allowed access to this storage will be listed in the allowedVirtualGuests property of this storage volume. +func (r Network_Storage) AllowAccessFromVirtualGuest(virtualGuestObjectTemplate *datatypes.Virtual_Guest) (resp bool, err error) { + params := []interface{}{ + virtualGuestObjectTemplate, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage", "allowAccessFromVirtualGuest", params, &r.Options, &resp) + return +} + +// This method is used to modify the access control list for this Storage volume. The SoftLayer_Virtual_Guest objects which have been allowed access to this storage will be listed in the allowedVirtualGuests property of this storage volume. +func (r Network_Storage) AllowAccessFromVirtualGuestList(virtualGuestObjectTemplates []datatypes.Virtual_Guest) (resp bool, err error) { + params := []interface{}{ + virtualGuestObjectTemplates, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage", "allowAccessFromVirtualGuestList", params, &r.Options, &resp) + return +} + +// This method is used to modify the access control list for this Storage replicant volume. The SoftLayer_Hardware objects which have been allowed access to this storage will be listed in the allowedHardware property of this storage replicant volume. +func (r Network_Storage) AllowAccessToReplicantFromHardware(hardwareObjectTemplate *datatypes.Hardware) (resp bool, err error) { + params := []interface{}{ + hardwareObjectTemplate, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage", "allowAccessToReplicantFromHardware", params, &r.Options, &resp) + return +} + +// This method is used to modify the access control list for this Storage volume's replica. The SoftLayer_Hardware objects which have been allowed access to this storage volume's replica will be listed in the allowedReplicationHardware property of this storage volume. +func (r Network_Storage) AllowAccessToReplicantFromHardwareList(hardwareObjectTemplates []datatypes.Hardware) (resp bool, err error) { + params := []interface{}{ + hardwareObjectTemplates, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage", "allowAccessToReplicantFromHardwareList", params, &r.Options, &resp) + return +} + +// no documentation yet +func (r Network_Storage) AllowAccessToReplicantFromIpAddress(ipAddressObjectTemplate *datatypes.Network_Subnet_IpAddress) (resp bool, err error) { + params := []interface{}{ + ipAddressObjectTemplate, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage", "allowAccessToReplicantFromIpAddress", params, &r.Options, &resp) + return +} + +// This method is used to modify the access control list for this Storage volume's replica. The SoftLayer_Network_Subnet_IpAddress objects which have been allowed access to this storage volume's replica will be listed in the allowedReplicationIpAddresses property of this storage volume. +func (r Network_Storage) AllowAccessToReplicantFromIpAddressList(ipAddressObjectTemplates []datatypes.Network_Subnet_IpAddress) (resp bool, err error) { + params := []interface{}{ + ipAddressObjectTemplates, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage", "allowAccessToReplicantFromIpAddressList", params, &r.Options, &resp) + return +} + +// This method is used to modify the access control list for this Storage replicant volume. The SoftLayer_Network_Subnet objects which have been allowed access to this storage will be listed in the allowedHardware property of this storage replicant volume. +func (r Network_Storage) AllowAccessToReplicantFromSubnet(subnetObjectTemplate *datatypes.Network_Subnet) (resp bool, err error) { + params := []interface{}{ + subnetObjectTemplate, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage", "allowAccessToReplicantFromSubnet", params, &r.Options, &resp) + return +} + +// This method is used to modify the access control list for this Storage volume's replica. The SoftLayer_Network_Subnet objects which have been allowed access to this storage volume's replica will be listed in the allowedReplicationSubnets property of this storage volume. +func (r Network_Storage) AllowAccessToReplicantFromSubnetList(subnetObjectTemplates []datatypes.Network_Subnet) (resp bool, err error) { + params := []interface{}{ + subnetObjectTemplates, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage", "allowAccessToReplicantFromSubnetList", params, &r.Options, &resp) + return +} + +// This method is used to modify the access control list for this Storage replicant volume. The SoftLayer_Virtual_Guest objects which have been allowed access to this storage will be listed in the allowedVirtualGuests property of this storage replicant volume. +func (r Network_Storage) AllowAccessToReplicantFromVirtualGuest(virtualGuestObjectTemplate *datatypes.Virtual_Guest) (resp bool, err error) { + params := []interface{}{ + virtualGuestObjectTemplate, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage", "allowAccessToReplicantFromVirtualGuest", params, &r.Options, &resp) + return +} + +// This method is used to modify the access control list for this Storage volume's replica. The SoftLayer_Virtual_Guest objects which have been allowed access to this storage volume's replica will be listed in the allowedReplicationVirtualGuests property of this storage volume. +func (r Network_Storage) AllowAccessToReplicantFromVirtualGuestList(virtualGuestObjectTemplates []datatypes.Virtual_Guest) (resp bool, err error) { + params := []interface{}{ + virtualGuestObjectTemplates, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage", "allowAccessToReplicantFromVirtualGuestList", params, &r.Options, &resp) + return +} + +// This method will assign an existing credential to the current volume. The credential must have been created using the 'addNewCredential' method. The volume type must support an additional credential. +func (r Network_Storage) AssignCredential(username *string) (resp bool, err error) { + params := []interface{}{ + username, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage", "assignCredential", params, &r.Options, &resp) + return +} + +// This method will set up a new credential for the remote storage volume. The storage volume must support an additional credential. Once created, the credential will be automatically assigned to the current volume. If there are no volumes assigned to the credential it will be automatically deleted. +func (r Network_Storage) AssignNewCredential(typ *string) (resp datatypes.Network_Storage_Credential, err error) { + params := []interface{}{ + typ, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage", "assignNewCredential", params, &r.Options, &resp) + return +} + +// The method will change the password for the given Storage/Virtual Server Storage account. +func (r Network_Storage) ChangePassword(username *string, currentPassword *string, newPassword *string) (resp bool, err error) { + params := []interface{}{ + username, + currentPassword, + newPassword, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage", "changePassword", params, &r.Options, &resp) + return +} + +// {{CloudLayerOnlyMethod}} +// +// collectBandwidth() Retrieve the bandwidth usage for the current billing cycle. +func (r Network_Storage) CollectBandwidth(typ *string, startDate *datatypes.Time, endDate *datatypes.Time) (resp uint, err error) { + params := []interface{}{ + typ, + startDate, + endDate, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage", "collectBandwidth", params, &r.Options, &resp) + return +} + +// {{CloudLayerOnlyMethod}} +// +// collectBytesUsed() retrieves the number of bytes capacity currently in use on a Storage account. +func (r Network_Storage) CollectBytesUsed() (resp uint, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage", "collectBytesUsed", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Network_Storage) CreateFolder(folder *string) (resp bool, err error) { + params := []interface{}{ + folder, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage", "createFolder", params, &r.Options, &resp) + return +} + +// no documentation yet +func (r Network_Storage) CreateSnapshot(notes *string) (resp datatypes.Network_Storage, err error) { + params := []interface{}{ + notes, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage", "createSnapshot", params, &r.Options, &resp) + return +} + +// {{CloudLayerOnlyMethod}} Delete all files within a Storage account. Depending on the type of Storage account, Deleting either deletes files permanently or sends files to your account's recycle bin. +// +// Currently, Virtual Server storage is the only type of Storage account that sends files to a recycle bin when deleted. When called against a Virtual Server storage account , this method also determines if the files are in the account's recycle bin. If the files exist in the recycle bin, then they are permanently deleted. +// +// Please note, files can not be restored once they are permanently deleted. +func (r Network_Storage) DeleteAllFiles() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage", "deleteAllFiles", nil, &r.Options, &resp) + return +} + +// {{CloudLayerOnlyMethod}} Delete an individual file within a Storage account. Depending on the type of Storage account, Deleting a file either deletes the file permanently or sends the file to your account's recycle bin. +// +// Currently, Virtual Server storage is the only type of Storage account that sends files to a recycle bin when deleted. When called against a Virtual Server storage account , this method also determines if the file is in the account's recycle bin. If the file exist in the recycle bin, then it is permanently deleted. +// +// Please note, a file can not be restored once it is permanently deleted. +func (r Network_Storage) DeleteFile(fileId *string) (resp bool, err error) { + params := []interface{}{ + fileId, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage", "deleteFile", params, &r.Options, &resp) + return +} + +// {{CloudLayerOnlyMethod}} Delete multiple files within a Storage account. Depending on the type of Storage account, Deleting either deletes files permanently or sends files to your account's recycle bin. +// +// Currently, Virtual Server storage is the only type of Storage account that sends files to a recycle bin when deleted. When called against a Virtual Server storage account , this method also determines if the files are in the account's recycle bin. If the files exist in the recycle bin, then they are permanently deleted. +// +// Please note, files can not be restored once they are permanently deleted. +func (r Network_Storage) DeleteFiles(fileIds []string) (resp bool, err error) { + params := []interface{}{ + fileIds, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage", "deleteFiles", params, &r.Options, &resp) + return +} + +// no documentation yet +func (r Network_Storage) DeleteFolder(folder *string) (resp bool, err error) { + params := []interface{}{ + folder, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage", "deleteFolder", params, &r.Options, &resp) + return +} + +// Delete a network storage volume. '''This cannot be undone.''' At this time only network storage snapshots may be deleted with this method. +// +// ''deleteObject'' returns Boolean ''true'' on successful deletion or ''false'' if it was unable to remove a volume; +func (r Network_Storage) DeleteObject() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage", "deleteObject", nil, &r.Options, &resp) + return +} + +// This method is not valid for Legacy iSCSI Storage Volumes. +// +// Disable scheduled snapshots of this storage volume. Scheduling options include HOURLY, DAILY and WEEKLY schedules. +func (r Network_Storage) DisableSnapshots(scheduleType *string) (resp bool, err error) { + params := []interface{}{ + scheduleType, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage", "disableSnapshots", params, &r.Options, &resp) + return +} + +// {{CloudLayerOnlyMethod}} Download a file from a Storage account. This method returns a file's details including the file's raw content. +func (r Network_Storage) DownloadFile(fileId *string) (resp datatypes.Container_Utility_File_Entity, err error) { + params := []interface{}{ + fileId, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage", "downloadFile", params, &r.Options, &resp) + return +} + +// This method will change the password of a credential created using the 'addNewCredential' method. If the credential exists on multiple storage volumes it will change for those volumes as well. +func (r Network_Storage) EditCredential(username *string, newPassword *string) (resp bool, err error) { + params := []interface{}{ + username, + newPassword, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage", "editCredential", params, &r.Options, &resp) + return +} + +// The password and/or notes may be modified for the Storage service except evault passwords and notes. +func (r Network_Storage) EditObject(templateObject *datatypes.Network_Storage) (resp bool, err error) { + params := []interface{}{ + templateObject, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage", "editObject", params, &r.Options, &resp) + return +} + +// This method is not valid for Legacy iSCSI Storage Volumes. +// +// Enable scheduled snapshots of this storage volume. Scheduling options include HOURLY, DAILY and WEEKLY schedules. For HOURLY schedules, provide relevant data for $scheduleType, $retentionCount and $minute. For DAILY schedules, provide relevant data for $scheduleType, $retentionCount, $minute, and $hour. For WEEKLY schedules, provide relevant data for all parameters of this method. +func (r Network_Storage) EnableSnapshots(scheduleType *string, retentionCount *int, minute *int, hour *int, dayOfWeek *string) (resp bool, err error) { + params := []interface{}{ + scheduleType, + retentionCount, + minute, + hour, + dayOfWeek, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage", "enableSnapshots", params, &r.Options, &resp) + return +} + +// Failback from a volume replicant. In order to failback the volume must have already been failed over to a replicant. +func (r Network_Storage) FailbackFromReplicant() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage", "failbackFromReplicant", nil, &r.Options, &resp) + return +} + +// Failover to a volume replicant. During the time which the replicant is in use the local nas volume will not be available. +func (r Network_Storage) FailoverToReplicant(replicantId *int) (resp bool, err error) { + params := []interface{}{ + replicantId, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage", "failoverToReplicant", params, &r.Options, &resp) + return +} + +// Retrieve The account that a Storage services belongs to. +func (r Network_Storage) GetAccount() (resp datatypes.Account, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage", "getAccount", nil, &r.Options, &resp) + return +} + +// Retrieve Other usernames and passwords associated with a Storage volume. +func (r Network_Storage) GetAccountPassword() (resp datatypes.Account_Password, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage", "getAccountPassword", nil, &r.Options, &resp) + return +} + +// Retrieve The currently active transactions on a network storage volume. +func (r Network_Storage) GetActiveTransactions() (resp []datatypes.Provisioning_Version1_Transaction, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage", "getActiveTransactions", nil, &r.Options, &resp) + return +} + +// {{CloudLayerOnlyMethod}} Retrieve details such as id, name, size, create date for all files in a Storage account's root directory. This does not download file content. +func (r Network_Storage) GetAllFiles() (resp []datatypes.Container_Utility_File_Entity, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage", "getAllFiles", nil, &r.Options, &resp) + return +} + +// {{CloudLayerOnlyMethod}} Retrieve details such as id, name, size, create date for all files matching the filter's criteria in a Storage account's root directory. This does not download file content. +func (r Network_Storage) GetAllFilesByFilter(filter *datatypes.Container_Utility_File_Entity) (resp []datatypes.Container_Utility_File_Entity, err error) { + params := []interface{}{ + filter, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage", "getAllFilesByFilter", params, &r.Options, &resp) + return +} + +// This method retrieves a list of SoftLayer_Hardware that can be authorized to this SoftLayer_Network_Storage. +func (r Network_Storage) GetAllowableHardware(filterHostname *string) (resp []datatypes.Hardware, err error) { + params := []interface{}{ + filterHostname, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage", "getAllowableHardware", params, &r.Options, &resp) + return +} + +// This method retrieves a list of SoftLayer_Network_Subnet_IpAddress that can be authorized to this SoftLayer_Network_Storage. +func (r Network_Storage) GetAllowableIpAddresses(subnetId *int, filterIpAddress *string) (resp []datatypes.Network_Subnet_IpAddress, err error) { + params := []interface{}{ + subnetId, + filterIpAddress, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage", "getAllowableIpAddresses", params, &r.Options, &resp) + return +} + +// This method retrieves a list of SoftLayer_Network_Subnet that can be authorized to this SoftLayer_Network_Storage. +func (r Network_Storage) GetAllowableSubnets(filterNetworkIdentifier *string) (resp []datatypes.Network_Subnet, err error) { + params := []interface{}{ + filterNetworkIdentifier, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage", "getAllowableSubnets", params, &r.Options, &resp) + return +} + +// This method retrieves a list of SoftLayer_Virtual_Guest that can be authorized to this SoftLayer_Network_Storage. +func (r Network_Storage) GetAllowableVirtualGuests(filterHostname *string) (resp []datatypes.Virtual_Guest, err error) { + params := []interface{}{ + filterHostname, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage", "getAllowableVirtualGuests", params, &r.Options, &resp) + return +} + +// Retrieve The SoftLayer_Hardware objects which are allowed access to this storage volume. +func (r Network_Storage) GetAllowedHardware() (resp []datatypes.Hardware, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage", "getAllowedHardware", nil, &r.Options, &resp) + return +} + +// Retrieves the total number of allowed hosts limit per volume. +func (r Network_Storage) GetAllowedHostsLimit() (resp int, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage", "getAllowedHostsLimit", nil, &r.Options, &resp) + return +} + +// Retrieve The SoftLayer_Network_Subnet_IpAddress objects which are allowed access to this storage volume. +func (r Network_Storage) GetAllowedIpAddresses() (resp []datatypes.Network_Subnet_IpAddress, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage", "getAllowedIpAddresses", nil, &r.Options, &resp) + return +} + +// Retrieve The SoftLayer_Hardware objects which are allowed access to this storage volume's Replicant. +func (r Network_Storage) GetAllowedReplicationHardware() (resp []datatypes.Hardware, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage", "getAllowedReplicationHardware", nil, &r.Options, &resp) + return +} + +// Retrieve The SoftLayer_Network_Subnet_IpAddress objects which are allowed access to this storage volume's Replicant. +func (r Network_Storage) GetAllowedReplicationIpAddresses() (resp []datatypes.Network_Subnet_IpAddress, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage", "getAllowedReplicationIpAddresses", nil, &r.Options, &resp) + return +} + +// Retrieve The SoftLayer_Network_Subnet objects which are allowed access to this storage volume's Replicant. +func (r Network_Storage) GetAllowedReplicationSubnets() (resp []datatypes.Network_Subnet, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage", "getAllowedReplicationSubnets", nil, &r.Options, &resp) + return +} + +// Retrieve The SoftLayer_Hardware objects which are allowed access to this storage volume's Replicant. +func (r Network_Storage) GetAllowedReplicationVirtualGuests() (resp []datatypes.Virtual_Guest, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage", "getAllowedReplicationVirtualGuests", nil, &r.Options, &resp) + return +} + +// Retrieve The SoftLayer_Network_Subnet objects which are allowed access to this storage volume. +func (r Network_Storage) GetAllowedSubnets() (resp []datatypes.Network_Subnet, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage", "getAllowedSubnets", nil, &r.Options, &resp) + return +} + +// Retrieve The SoftLayer_Virtual_Guest objects which are allowed access to this storage volume. +func (r Network_Storage) GetAllowedVirtualGuests() (resp []datatypes.Virtual_Guest, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage", "getAllowedVirtualGuests", nil, &r.Options, &resp) + return +} + +// Retrieve The current billing item for a Storage volume. +func (r Network_Storage) GetBillingItem() (resp datatypes.Billing_Item, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage", "getBillingItem", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Network_Storage) GetBillingItemCategory() (resp datatypes.Product_Item_Category, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage", "getBillingItemCategory", nil, &r.Options, &resp) + return +} + +// Retrieve network storage accounts by username and storage account type. Use this method if you wish to retrieve a storage record by username rather than by id. The ''type'' parameter must correspond to one of the available ''nasType'' values in the SoftLayer_Network_Storage data type. +func (r Network_Storage) GetByUsername(username *string, typ *string) (resp []datatypes.Network_Storage, err error) { + params := []interface{}{ + username, + typ, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage", "getByUsername", params, &r.Options, &resp) + return +} + +// Retrieve The amount of space used by the volume, in bytes. +func (r Network_Storage) GetBytesUsed() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage", "getBytesUsed", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Network_Storage) GetCdnUrls() (resp []datatypes.Container_Network_Storage_Hub_ObjectStorage_ContentDeliveryUrl, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage", "getCdnUrls", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Network_Storage) GetClusterResource() (resp datatypes.Network_Service_Resource, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage", "getClusterResource", nil, &r.Options, &resp) + return +} + +// Retrieve The schedule id which was executed to create a snapshot. +func (r Network_Storage) GetCreationScheduleId() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage", "getCreationScheduleId", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Network_Storage) GetCredentials() (resp []datatypes.Network_Storage_Credential, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage", "getCredentials", nil, &r.Options, &resp) + return +} + +// Retrieve The Daily Schedule which is associated with this network storage volume. +func (r Network_Storage) GetDailySchedule() (resp datatypes.Network_Storage_Schedule, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage", "getDailySchedule", nil, &r.Options, &resp) + return +} + +// Retrieve The events which have taken place on a network storage volume. +func (r Network_Storage) GetEvents() (resp []datatypes.Network_Storage_Event, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage", "getEvents", nil, &r.Options, &resp) + return +} + +// +// +// +func (r Network_Storage) GetFileBlockEncryptedLocations() (resp []datatypes.Location, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage", "getFileBlockEncryptedLocations", nil, &r.Options, &resp) + return +} + +// {{CloudLayerOnlyMethod}} Retrieve details such as id, name, size, create date of a file within a Storage account. This does not download file content. +func (r Network_Storage) GetFileByIdentifier(identifier *string) (resp datatypes.Container_Utility_File_Entity, err error) { + params := []interface{}{ + identifier, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage", "getFileByIdentifier", params, &r.Options, &resp) + return +} + +// {{CloudLayerOnlyMethod}} Retrieve the file number of files in a Virtual Server Storage account's root directory. This does not include the files stored in the recycle bin. +func (r Network_Storage) GetFileCount() (resp int, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage", "getFileCount", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Network_Storage) GetFileList(folder *string, path *string) (resp []datatypes.Container_Utility_File_Entity, err error) { + params := []interface{}{ + folder, + path, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage", "getFileList", params, &r.Options, &resp) + return +} + +// Retrieve Retrieves the NFS Network Mount Address Name for a given File Storage Volume. +func (r Network_Storage) GetFileNetworkMountAddress() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage", "getFileNetworkMountAddress", nil, &r.Options, &resp) + return +} + +// {{CloudLayerOnlyMethod}} Retrieve the number of files pending deletion in a Storage account's recycle bin. Files in an account's recycle bin may either be restored to the account's root directory or permanently deleted. +func (r Network_Storage) GetFilePendingDeleteCount() (resp int, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage", "getFilePendingDeleteCount", nil, &r.Options, &resp) + return +} + +// {{CloudLayerOnlyMethod}} Retrieve a list of files that are pending deletion in a Storage account's recycle bin. Files in an account's recycle bin may either be restored to the account's root directory or permanently deleted. This method does not download file content. +func (r Network_Storage) GetFilesPendingDelete() (resp []datatypes.Container_Utility_File_Entity, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage", "getFilesPendingDelete", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Network_Storage) GetFolderList() (resp []datatypes.Container_Network_Storage_Hub_ObjectStorage_Folder, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage", "getFolderList", nil, &r.Options, &resp) + return +} + +// {{CloudLayerOnlyMethod}} +// +// getGraph() retrieves a Storage account's usage and returns a PNG graph image, title, and the minimum and maximum dates included in the graphed date range. Virtual Server storage accounts can also graph upload and download bandwidth usage. +func (r Network_Storage) GetGraph(startDate *datatypes.Time, endDate *datatypes.Time, typ *string) (resp datatypes.Container_Bandwidth_GraphOutputs, err error) { + params := []interface{}{ + startDate, + endDate, + typ, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage", "getGraph", params, &r.Options, &resp) + return +} + +// Retrieve When applicable, the hardware associated with a Storage service. +func (r Network_Storage) GetHardware() (resp datatypes.Hardware, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage", "getHardware", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Network_Storage) GetHasEncryptionAtRest() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage", "getHasEncryptionAtRest", nil, &r.Options, &resp) + return +} + +// Retrieve The Hourly Schedule which is associated with this network storage volume. +func (r Network_Storage) GetHourlySchedule() (resp datatypes.Network_Storage_Schedule, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage", "getHourlySchedule", nil, &r.Options, &resp) + return +} + +// Retrieve The maximum number of IOPs selected for this volume. +func (r Network_Storage) GetIops() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage", "getIops", nil, &r.Options, &resp) + return +} + +// Retrieve Determines whether a volume is ready to order snapshot space, or, if snapshot space is already available, to assign a snapshot schedule, or to take a manual snapshot. +func (r Network_Storage) GetIsReadyForSnapshot() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage", "getIsReadyForSnapshot", nil, &r.Options, &resp) + return +} + +// Retrieve Determines whether a volume is ready to have Hosts authorized to access it. This does not indicate whether another operation may be blocking, please refer to this volume's volumeStatus property for details. +func (r Network_Storage) GetIsReadyToMount() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage", "getIsReadyToMount", nil, &r.Options, &resp) + return +} + +// Retrieve Relationship between a container volume and iSCSI LUNs. +func (r Network_Storage) GetIscsiLuns() (resp []datatypes.Network_Storage, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage", "getIscsiLuns", nil, &r.Options, &resp) + return +} + +// Retrieve The ID of the LUN volume. +func (r Network_Storage) GetLunId() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage", "getLunId", nil, &r.Options, &resp) + return +} + +// Retrieve The manually-created snapshots associated with this SoftLayer_Network_Storage volume. Does not support pagination by result limit and offset. +func (r Network_Storage) GetManualSnapshots() (resp []datatypes.Network_Storage, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage", "getManualSnapshots", nil, &r.Options, &resp) + return +} + +// Retrieve A network storage volume's metric tracking object. This object records all periodic polled data available to this volume. +func (r Network_Storage) GetMetricTrackingObject() (resp datatypes.Metric_Tracking_Object, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage", "getMetricTrackingObject", nil, &r.Options, &resp) + return +} + +// Retrieve Whether or not a network storage volume may be mounted. +func (r Network_Storage) GetMountableFlag() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage", "getMountableFlag", nil, &r.Options, &resp) + return +} + +// Retrieve The current status of split or move operation as a part of volume duplication. +func (r Network_Storage) GetMoveAndSplitStatus() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage", "getMoveAndSplitStatus", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Network_Storage) GetNetworkConnectionDetails() (resp datatypes.Container_Network_Storage_NetworkConnectionInformation, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage", "getNetworkConnectionDetails", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Network_Storage) GetNetworkMountAddress() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage", "getNetworkMountAddress", nil, &r.Options, &resp) + return +} + +// Retrieve The subscribers that will be notified for usage amount warnings and overages. +func (r Network_Storage) GetNotificationSubscribers() (resp []datatypes.Notification_User_Subscriber, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage", "getNotificationSubscribers", nil, &r.Options, &resp) + return +} + +// getObject retrieves the SoftLayer_Network_Storage object whose ID corresponds to the ID number of the init parameter passed to the SoftLayer_Network_Storage service. +// +// Please use the associated methods in the [[SoftLayer_Network_Storage]] service to retrieve a Storage account's id. +func (r Network_Storage) GetObject() (resp datatypes.Network_Storage, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage", "getObject", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Network_Storage) GetObjectStorageConnectionInformation() (resp []datatypes.Container_Network_Service_Resource_ObjectStorage_ConnectionInformation, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage", "getObjectStorageConnectionInformation", nil, &r.Options, &resp) + return +} + +// Retrieve network storage accounts by SoftLayer_Network_Storage_Credential object. Use this method if you wish to retrieve a storage record by a credential rather than by id. +func (r Network_Storage) GetObjectsByCredential(credentialObject *datatypes.Network_Storage_Credential) (resp []datatypes.Network_Storage, err error) { + params := []interface{}{ + credentialObject, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage", "getObjectsByCredential", params, &r.Options, &resp) + return +} + +// Retrieve The name of the snapshot that this volume was duplicated from. +func (r Network_Storage) GetOriginalSnapshotName() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage", "getOriginalSnapshotName", nil, &r.Options, &resp) + return +} + +// Retrieve The name of the volume that this volume was duplicated from. +func (r Network_Storage) GetOriginalVolumeName() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage", "getOriginalVolumeName", nil, &r.Options, &resp) + return +} + +// Retrieve The size (in GB) of the volume that this volume was duplicated from, or in the case of iSCSI LUNs, the size of the base originally-provisioned LUN. +func (r Network_Storage) GetOriginalVolumeSize() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage", "getOriginalVolumeSize", nil, &r.Options, &resp) + return +} + +// Retrieve A volume's configured SoftLayer_Network_Storage_Iscsi_OS_Type. +func (r Network_Storage) GetOsType() (resp datatypes.Network_Storage_Iscsi_OS_Type, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage", "getOsType", nil, &r.Options, &resp) + return +} + +// Retrieve A volume's configured SoftLayer_Network_Storage_Iscsi_OS_Type ID. +func (r Network_Storage) GetOsTypeId() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage", "getOsTypeId", nil, &r.Options, &resp) + return +} + +// Retrieve The volumes or snapshots partnered with a network storage volume in a parental role. +func (r Network_Storage) GetParentPartnerships() (resp []datatypes.Network_Storage_Partnership, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage", "getParentPartnerships", nil, &r.Options, &resp) + return +} + +// Retrieve The parent volume of a volume in a complex storage relationship. +func (r Network_Storage) GetParentVolume() (resp datatypes.Network_Storage, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage", "getParentVolume", nil, &r.Options, &resp) + return +} + +// Retrieve The volumes or snapshots partnered with a network storage volume. +func (r Network_Storage) GetPartnerships() (resp []datatypes.Network_Storage_Partnership, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage", "getPartnerships", nil, &r.Options, &resp) + return +} + +// Retrieve All permissions group(s) this volume is in. +func (r Network_Storage) GetPermissionsGroups() (resp []datatypes.Network_Storage_Group, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage", "getPermissionsGroups", nil, &r.Options, &resp) + return +} + +// Retrieve The properties used to provide additional details about a network storage volume. +func (r Network_Storage) GetProperties() (resp []datatypes.Network_Storage_Property, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage", "getProperties", nil, &r.Options, &resp) + return +} + +// Retrieve The number of IOPs provisioned for this volume. +func (r Network_Storage) GetProvisionedIops() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage", "getProvisionedIops", nil, &r.Options, &resp) + return +} + +// {{CloudLayerOnlyMethod}} Retrieve the details of a file that is pending deletion in a Storage account's a recycle bin. +func (r Network_Storage) GetRecycleBinFileByIdentifier(fileId *string) (resp datatypes.Container_Utility_File_Entity, err error) { + params := []interface{}{ + fileId, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage", "getRecycleBinFileByIdentifier", params, &r.Options, &resp) + return +} + +// Retrieves the remaining number of allowed hosts per volume. +func (r Network_Storage) GetRemainingAllowedHosts() (resp int, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage", "getRemainingAllowedHosts", nil, &r.Options, &resp) + return +} + +// Retrieve The iSCSI LUN volumes being replicated by this network storage volume. +func (r Network_Storage) GetReplicatingLuns() (resp []datatypes.Network_Storage, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage", "getReplicatingLuns", nil, &r.Options, &resp) + return +} + +// Retrieve The network storage volume being replicated by a volume. +func (r Network_Storage) GetReplicatingVolume() (resp datatypes.Network_Storage, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage", "getReplicatingVolume", nil, &r.Options, &resp) + return +} + +// Retrieve The volume replication events. +func (r Network_Storage) GetReplicationEvents() (resp []datatypes.Network_Storage_Event, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage", "getReplicationEvents", nil, &r.Options, &resp) + return +} + +// Retrieve The network storage volumes configured to be replicants of a volume. +func (r Network_Storage) GetReplicationPartners() (resp []datatypes.Network_Storage, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage", "getReplicationPartners", nil, &r.Options, &resp) + return +} + +// Retrieve The Replication Schedule associated with a network storage volume. +func (r Network_Storage) GetReplicationSchedule() (resp datatypes.Network_Storage_Schedule, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage", "getReplicationSchedule", nil, &r.Options, &resp) + return +} + +// Retrieve The current replication status of a network storage volume. Indicates Failover or Failback status. +func (r Network_Storage) GetReplicationStatus() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage", "getReplicationStatus", nil, &r.Options, &resp) + return +} + +// Retrieve The schedules which are associated with a network storage volume. +func (r Network_Storage) GetSchedules() (resp []datatypes.Network_Storage_Schedule, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage", "getSchedules", nil, &r.Options, &resp) + return +} + +// Retrieve The network resource a Storage service is connected to. +func (r Network_Storage) GetServiceResource() (resp datatypes.Network_Service_Resource, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage", "getServiceResource", nil, &r.Options, &resp) + return +} + +// Retrieve The IP address of a Storage resource. +func (r Network_Storage) GetServiceResourceBackendIpAddress() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage", "getServiceResourceBackendIpAddress", nil, &r.Options, &resp) + return +} + +// Retrieve The name of a Storage's network resource. +func (r Network_Storage) GetServiceResourceName() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage", "getServiceResourceName", nil, &r.Options, &resp) + return +} + +// Retrieve A volume's configured snapshot space size. +func (r Network_Storage) GetSnapshotCapacityGb() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage", "getSnapshotCapacityGb", nil, &r.Options, &resp) + return +} + +// Retrieve The creation timestamp of the snapshot on the storage platform. +func (r Network_Storage) GetSnapshotCreationTimestamp() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage", "getSnapshotCreationTimestamp", nil, &r.Options, &resp) + return +} + +// Retrieve The percentage of used snapshot space after which to delete automated snapshots. +func (r Network_Storage) GetSnapshotDeletionThresholdPercentage() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage", "getSnapshotDeletionThresholdPercentage", nil, &r.Options, &resp) + return +} + +// Retrieve The snapshot size in bytes. +func (r Network_Storage) GetSnapshotSizeBytes() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage", "getSnapshotSizeBytes", nil, &r.Options, &resp) + return +} + +// Retrieve A volume's available snapshot reservation space. +func (r Network_Storage) GetSnapshotSpaceAvailable() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage", "getSnapshotSpaceAvailable", nil, &r.Options, &resp) + return +} + +// Retrieve The snapshots associated with this SoftLayer_Network_Storage volume. +func (r Network_Storage) GetSnapshots() (resp []datatypes.Network_Storage, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage", "getSnapshots", nil, &r.Options, &resp) + return +} + +// Retrieves a list of snapshots for this SoftLayer_Network_Storage volume. This method works with the result limits and offset to support pagination. +func (r Network_Storage) GetSnapshotsForVolume() (resp []datatypes.Network_Storage, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage", "getSnapshotsForVolume", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Network_Storage) GetStaasVersion() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage", "getStaasVersion", nil, &r.Options, &resp) + return +} + +// Retrieve The network storage groups this volume is attached to. +func (r Network_Storage) GetStorageGroups() (resp []datatypes.Network_Storage_Group, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage", "getStorageGroups", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Network_Storage) GetStorageGroupsNetworkConnectionDetails() (resp []datatypes.Container_Network_Storage_NetworkConnectionInformation, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage", "getStorageGroupsNetworkConnectionDetails", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Network_Storage) GetStorageTierLevel() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage", "getStorageTierLevel", nil, &r.Options, &resp) + return +} + +// Retrieve A description of the Storage object. +func (r Network_Storage) GetStorageType() (resp datatypes.Network_Storage_Type, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage", "getStorageType", nil, &r.Options, &resp) + return +} + +// Retrieve The amount of space used by the volume. +func (r Network_Storage) GetTotalBytesUsed() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage", "getTotalBytesUsed", nil, &r.Options, &resp) + return +} + +// Retrieve The total snapshot retention count of all schedules on this network storage volume. +func (r Network_Storage) GetTotalScheduleSnapshotRetentionCount() (resp uint, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage", "getTotalScheduleSnapshotRetentionCount", nil, &r.Options, &resp) + return +} + +// Retrieve The usage notification for SL Storage services. +func (r Network_Storage) GetUsageNotification() (resp datatypes.Notification, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage", "getUsageNotification", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Network_Storage) GetValidReplicationTargetDatacenterLocations() (resp []datatypes.Location, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage", "getValidReplicationTargetDatacenterLocations", nil, &r.Options, &resp) + return +} + +// Retrieve The type of network storage service. +func (r Network_Storage) GetVendorName() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage", "getVendorName", nil, &r.Options, &resp) + return +} + +// Retrieve When applicable, the virtual guest associated with a Storage service. +func (r Network_Storage) GetVirtualGuest() (resp datatypes.Virtual_Guest, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage", "getVirtualGuest", nil, &r.Options, &resp) + return +} + +// This method returns the parameters for cloning a volume +func (r Network_Storage) GetVolumeDuplicateParameters() (resp datatypes.Container_Network_Storage_VolumeDuplicateParameters, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage", "getVolumeDuplicateParameters", nil, &r.Options, &resp) + return +} + +// Retrieve The username and password history for a Storage service. +func (r Network_Storage) GetVolumeHistory() (resp []datatypes.Network_Storage_History, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage", "getVolumeHistory", nil, &r.Options, &resp) + return +} + +// Retrieve The current status of a network storage volume. +func (r Network_Storage) GetVolumeStatus() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage", "getVolumeStatus", nil, &r.Options, &resp) + return +} + +// Retrieve The account username and password for the EVault webCC interface. +func (r Network_Storage) GetWebccAccount() (resp datatypes.Account_Password, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage", "getWebccAccount", nil, &r.Options, &resp) + return +} + +// Retrieve The Weekly Schedule which is associated with this network storage volume. +func (r Network_Storage) GetWeeklySchedule() (resp datatypes.Network_Storage_Schedule, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage", "getWeeklySchedule", nil, &r.Options, &resp) + return +} + +// Immediate Failover to a volume replicant. During the time which the replicant is in use the local nas volume will not be available. +func (r Network_Storage) ImmediateFailoverToReplicant(replicantId *int) (resp bool, err error) { + params := []interface{}{ + replicantId, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage", "immediateFailoverToReplicant", params, &r.Options, &resp) + return +} + +// no documentation yet +func (r Network_Storage) IsBlockingOperationInProgress(exemptStatusKeyNames []string) (resp bool, err error) { + params := []interface{}{ + exemptStatusKeyNames, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage", "isBlockingOperationInProgress", params, &r.Options, &resp) + return +} + +// This method returns a boolean indicating whether the clone volume is ready for snapshot. +func (r Network_Storage) IsDuplicateReadyForSnapshot() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage", "isDuplicateReadyForSnapshot", nil, &r.Options, &resp) + return +} + +// This method returns a boolean indicating whether the clone volume is ready to mount. +func (r Network_Storage) IsDuplicateReadyToMount() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage", "isDuplicateReadyToMount", nil, &r.Options, &resp) + return +} + +// This method is used to modify the access control list for this Storage volume. The SoftLayer_Hardware objects which have been allowed access to this storage will be listed in the allowedHardware property of this storage volume. +func (r Network_Storage) RemoveAccessFromHardware(hardwareObjectTemplate *datatypes.Hardware) (resp bool, err error) { + params := []interface{}{ + hardwareObjectTemplate, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage", "removeAccessFromHardware", params, &r.Options, &resp) + return +} + +// This method is used to modify the access control list for this Storage volume. The SoftLayer_Hardware objects which have been allowed access to this storage will be listed in the allowedHardware property of this storage volume. +func (r Network_Storage) RemoveAccessFromHardwareList(hardwareObjectTemplates []datatypes.Hardware) (resp bool, err error) { + params := []interface{}{ + hardwareObjectTemplates, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage", "removeAccessFromHardwareList", params, &r.Options, &resp) + return +} + +// This method is used to modify the access control list for this Storage volume. The [[SoftLayer_Hardware|SoftLayer_Virtual_Guest|SoftLayer_Network_Subnet|SoftLayer_Network_Subnet_IpAddress]] objects which have been allowed access to this storage will be listed in the [[allowedHardware|allowedVirtualGuests|allowedSubnets|allowedIpAddresses]] property of this storage volume. +func (r Network_Storage) RemoveAccessFromHost(typeClassName *string, hostId *int) (resp datatypes.Network_Storage_Allowed_Host, err error) { + params := []interface{}{ + typeClassName, + hostId, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage", "removeAccessFromHost", params, &r.Options, &resp) + return +} + +// This method is used to modify the access control list for this Storage volume. The [[SoftLayer_Hardware|SoftLayer_Virtual_Guest|SoftLayer_Network_Subnet|SoftLayer_Network_Subnet_IpAddress]] objects which have been allowed access to this storage will be listed in the [[allowedHardware|allowedVirtualGuests|allowedSubnets|allowedIpAddresses]] property of this storage volume. +func (r Network_Storage) RemoveAccessFromHostList(hostObjectTemplates []datatypes.Container_Network_Storage_Host) (resp []datatypes.Network_Storage_Allowed_Host, err error) { + params := []interface{}{ + hostObjectTemplates, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage", "removeAccessFromHostList", params, &r.Options, &resp) + return +} + +// This method is used to modify the access control list for this Storage volume. The SoftLayer_Network_Subnet_IpAddress objects which have been allowed access to this storage will be listed in the allowedIpAddresses property of this storage volume. +func (r Network_Storage) RemoveAccessFromIpAddress(ipAddressObjectTemplate *datatypes.Network_Subnet_IpAddress) (resp bool, err error) { + params := []interface{}{ + ipAddressObjectTemplate, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage", "removeAccessFromIpAddress", params, &r.Options, &resp) + return +} + +// no documentation yet +func (r Network_Storage) RemoveAccessFromIpAddressList(ipAddressObjectTemplates []datatypes.Network_Subnet_IpAddress) (resp bool, err error) { + params := []interface{}{ + ipAddressObjectTemplates, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage", "removeAccessFromIpAddressList", params, &r.Options, &resp) + return +} + +// no documentation yet +func (r Network_Storage) RemoveAccessFromSubnet(subnetObjectTemplate *datatypes.Network_Subnet) (resp bool, err error) { + params := []interface{}{ + subnetObjectTemplate, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage", "removeAccessFromSubnet", params, &r.Options, &resp) + return +} + +// no documentation yet +func (r Network_Storage) RemoveAccessFromSubnetList(subnetObjectTemplates []datatypes.Network_Subnet) (resp bool, err error) { + params := []interface{}{ + subnetObjectTemplates, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage", "removeAccessFromSubnetList", params, &r.Options, &resp) + return +} + +// This method is used to modify the access control list for this Storage volume. The SoftLayer_Virtual_Guest objects which have been allowed access to this storage will be listed in the allowedVirtualGuests property of this storage volume. +func (r Network_Storage) RemoveAccessFromVirtualGuest(virtualGuestObjectTemplate *datatypes.Virtual_Guest) (resp bool, err error) { + params := []interface{}{ + virtualGuestObjectTemplate, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage", "removeAccessFromVirtualGuest", params, &r.Options, &resp) + return +} + +// This method is used to modify the access control list for this Storage volume. The SoftLayer_Virtual_Guest objects which have been allowed access to this storage will be listed in the allowedVirtualGuests property of this storage volume. +func (r Network_Storage) RemoveAccessFromVirtualGuestList(virtualGuestObjectTemplates []datatypes.Virtual_Guest) (resp bool, err error) { + params := []interface{}{ + virtualGuestObjectTemplates, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage", "removeAccessFromVirtualGuestList", params, &r.Options, &resp) + return +} + +// This method is used to modify the access control list for this Storage volume's replica. The SoftLayer_Hardware objects which have been allowed access to this storage volume's replica will be listed in the allowedReplicationHardware property of this storage volume. +func (r Network_Storage) RemoveAccessToReplicantFromHardwareList(hardwareObjectTemplates []datatypes.Hardware) (resp bool, err error) { + params := []interface{}{ + hardwareObjectTemplates, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage", "removeAccessToReplicantFromHardwareList", params, &r.Options, &resp) + return +} + +// This method is used to modify the access control list for this Storage volume's replica. The SoftLayer_Network_Subnet_IpAddress objects which have been allowed access to this storage volume's replica will be listed in the allowedReplicationIpAddresses property of this storage volume. +func (r Network_Storage) RemoveAccessToReplicantFromIpAddressList(ipAddressObjectTemplates []datatypes.Network_Subnet_IpAddress) (resp bool, err error) { + params := []interface{}{ + ipAddressObjectTemplates, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage", "removeAccessToReplicantFromIpAddressList", params, &r.Options, &resp) + return +} + +// no documentation yet +func (r Network_Storage) RemoveAccessToReplicantFromSubnet(subnetObjectTemplate *datatypes.Network_Subnet) (resp bool, err error) { + params := []interface{}{ + subnetObjectTemplate, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage", "removeAccessToReplicantFromSubnet", params, &r.Options, &resp) + return +} + +// This method is used to modify the access control list for this Storage volume's replica. The SoftLayer_Network_Subnet objects which have been allowed access to this storage volume's replica will be listed in the allowedReplicationSubnets property of this storage volume. +func (r Network_Storage) RemoveAccessToReplicantFromSubnetList(subnetObjectTemplates []datatypes.Network_Subnet) (resp bool, err error) { + params := []interface{}{ + subnetObjectTemplates, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage", "removeAccessToReplicantFromSubnetList", params, &r.Options, &resp) + return +} + +// This method is used to modify the access control list for this Storage volume's replica. The SoftLayer_Virtual_Guest objects which have been allowed access to this storage volume's replica will be listed in the allowedReplicationVirtualGuests property of this storage volume. +func (r Network_Storage) RemoveAccessToReplicantFromVirtualGuestList(virtualGuestObjectTemplates []datatypes.Virtual_Guest) (resp bool, err error) { + params := []interface{}{ + virtualGuestObjectTemplates, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage", "removeAccessToReplicantFromVirtualGuestList", params, &r.Options, &resp) + return +} + +// This method will remove a credential from the current volume. The credential must have been created using the 'addNewCredential' method. +func (r Network_Storage) RemoveCredential(username *string) (resp bool, err error) { + params := []interface{}{ + username, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage", "removeCredential", params, &r.Options, &resp) + return +} + +// {{CloudLayerOnlyMethod}} Restore an individual file so that it may be used as it was before it was deleted. +// +// If a file is deleted from a Virtual Server Storage account, the file is placed into the account's recycle bin and not permanently deleted. Therefore, restoreFile can be used to place the file back into your Virtual Server account's root directory. +func (r Network_Storage) RestoreFile(fileId *string) (resp datatypes.Container_Utility_File_Entity, err error) { + params := []interface{}{ + fileId, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage", "restoreFile", params, &r.Options, &resp) + return +} + +// Restore the volume from a snapshot that was previously taken. +func (r Network_Storage) RestoreFromSnapshot(snapshotId *int) (resp bool, err error) { + params := []interface{}{ + snapshotId, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage", "restoreFromSnapshot", params, &r.Options, &resp) + return +} + +// The method will retrieve the password for the StorageLayer or Virtual Server Storage Account and email the password. The Storage Account passwords will be emailed to the master user. For Virtual Server Storage, the password will be sent to the email address used as the username. +func (r Network_Storage) SendPasswordReminderEmail(username *string) (resp bool, err error) { + params := []interface{}{ + username, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage", "sendPasswordReminderEmail", params, &r.Options, &resp) + return +} + +// Enable or disable the mounting of a Storage volume. When mounting is enabled the Storage volume will be mountable or available for use. +// +// For Virtual Server volumes, disabling mounting will deny access to the Virtual Server Account, remove published material and deny all file interaction including uploads and downloads. +// +// Enabling or disabling mounting for Storage volumes is not possible if mounting has been disabled by SoftLayer or a parent account. +func (r Network_Storage) SetMountable(mountable *bool) (resp bool, err error) { + params := []interface{}{ + mountable, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage", "setMountable", params, &r.Options, &resp) + return +} + +// no documentation yet +func (r Network_Storage) SetSnapshotAllocation(capacityGb *int) (err error) { + var resp datatypes.Void + params := []interface{}{ + capacityGb, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage", "setSnapshotAllocation", params, &r.Options, &resp) + return +} + +// Upgrade the Storage volume to one of the upgradable packages (for example from 10 Gigs of EVault storage to 100 Gigs of EVault storage). +func (r Network_Storage) UpgradeVolumeCapacity(itemId *int) (resp bool, err error) { + params := []interface{}{ + itemId, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage", "upgradeVolumeCapacity", params, &r.Options, &resp) + return +} + +// {{CloudLayerOnlyMethod}} Upload a file to a Storage account's root directory. Once uploaded, this method returns new file entity identifier for the upload file. +// +// The following properties are required in the ''file'' parameter. +// *'''name''': The name of the file you wish to upload +// *'''content''': The raw contents of the file you wish to upload. +// *'''contentType''': The MIME-type of content that you wish to upload. +func (r Network_Storage) UploadFile(file *datatypes.Container_Utility_File_Entity) (resp datatypes.Container_Utility_File_Entity, err error) { + params := []interface{}{ + file, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage", "uploadFile", params, &r.Options, &resp) + return +} + +// no documentation yet +type Network_Storage_Allowed_Host struct { + Session *session.Session + Options sl.Options +} + +// GetNetworkStorageAllowedHostService returns an instance of the Network_Storage_Allowed_Host SoftLayer service +func GetNetworkStorageAllowedHostService(sess *session.Session) Network_Storage_Allowed_Host { + return Network_Storage_Allowed_Host{Session: sess} +} + +func (r Network_Storage_Allowed_Host) Id(id int) Network_Storage_Allowed_Host { + r.Options.Id = &id + return r +} + +func (r Network_Storage_Allowed_Host) Mask(mask string) Network_Storage_Allowed_Host { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Network_Storage_Allowed_Host) Filter(filter string) Network_Storage_Allowed_Host { + r.Options.Filter = filter + return r +} + +func (r Network_Storage_Allowed_Host) Limit(limit int) Network_Storage_Allowed_Host { + r.Options.Limit = &limit + return r +} + +func (r Network_Storage_Allowed_Host) Offset(offset int) Network_Storage_Allowed_Host { + r.Options.Offset = &offset + return r +} + +// no documentation yet +func (r Network_Storage_Allowed_Host) CreateObject(templateObject *datatypes.Network_Storage_Allowed_Host) (resp bool, err error) { + params := []interface{}{ + templateObject, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage_Allowed_Host", "createObject", params, &r.Options, &resp) + return +} + +// no documentation yet +func (r Network_Storage_Allowed_Host) DeleteObject() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Allowed_Host", "deleteObject", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Network_Storage_Allowed_Host) EditObject(templateObject *datatypes.Network_Storage_Allowed_Host) (resp bool, err error) { + params := []interface{}{ + templateObject, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage_Allowed_Host", "editObject", params, &r.Options, &resp) + return +} + +// Retrieve The SoftLayer_Network_Storage_Group objects this SoftLayer_Network_Storage_Allowed_Host is present in. +func (r Network_Storage_Allowed_Host) GetAssignedGroups() (resp []datatypes.Network_Storage_Group, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Allowed_Host", "getAssignedGroups", nil, &r.Options, &resp) + return +} + +// Retrieve The SoftLayer_Network_Storage primary volumes whose replicas are allowed access. +func (r Network_Storage_Allowed_Host) GetAssignedReplicationVolumes() (resp []datatypes.Network_Storage, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Allowed_Host", "getAssignedReplicationVolumes", nil, &r.Options, &resp) + return +} + +// Retrieve The SoftLayer_Network_Storage volumes to which this SoftLayer_Network_Storage_Allowed_Host is allowed access. +func (r Network_Storage_Allowed_Host) GetAssignedVolumes() (resp []datatypes.Network_Storage, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Allowed_Host", "getAssignedVolumes", nil, &r.Options, &resp) + return +} + +// Retrieve The SoftLayer_Network_Storage_Credential this allowed host uses. +func (r Network_Storage_Allowed_Host) GetCredential() (resp datatypes.Network_Storage_Credential, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Allowed_Host", "getCredential", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Network_Storage_Allowed_Host) GetObject() (resp datatypes.Network_Storage_Allowed_Host, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Allowed_Host", "getObject", nil, &r.Options, &resp) + return +} + +// Use this method to modify the credential password for a SoftLayer_Network_Storage_Allowed_Host object. +func (r Network_Storage_Allowed_Host) SetCredentialPassword(password *string) (resp bool, err error) { + params := []interface{}{ + password, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage_Allowed_Host", "setCredentialPassword", params, &r.Options, &resp) + return +} + +// no documentation yet +type Network_Storage_Allowed_Host_Hardware struct { + Session *session.Session + Options sl.Options +} + +// GetNetworkStorageAllowedHostHardwareService returns an instance of the Network_Storage_Allowed_Host_Hardware SoftLayer service +func GetNetworkStorageAllowedHostHardwareService(sess *session.Session) Network_Storage_Allowed_Host_Hardware { + return Network_Storage_Allowed_Host_Hardware{Session: sess} +} + +func (r Network_Storage_Allowed_Host_Hardware) Id(id int) Network_Storage_Allowed_Host_Hardware { + r.Options.Id = &id + return r +} + +func (r Network_Storage_Allowed_Host_Hardware) Mask(mask string) Network_Storage_Allowed_Host_Hardware { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Network_Storage_Allowed_Host_Hardware) Filter(filter string) Network_Storage_Allowed_Host_Hardware { + r.Options.Filter = filter + return r +} + +func (r Network_Storage_Allowed_Host_Hardware) Limit(limit int) Network_Storage_Allowed_Host_Hardware { + r.Options.Limit = &limit + return r +} + +func (r Network_Storage_Allowed_Host_Hardware) Offset(offset int) Network_Storage_Allowed_Host_Hardware { + r.Options.Offset = &offset + return r +} + +// no documentation yet +func (r Network_Storage_Allowed_Host_Hardware) CreateObject(templateObject *datatypes.Network_Storage_Allowed_Host) (resp bool, err error) { + params := []interface{}{ + templateObject, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage_Allowed_Host_Hardware", "createObject", params, &r.Options, &resp) + return +} + +// no documentation yet +func (r Network_Storage_Allowed_Host_Hardware) DeleteObject() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Allowed_Host_Hardware", "deleteObject", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Network_Storage_Allowed_Host_Hardware) EditObject(templateObject *datatypes.Network_Storage_Allowed_Host) (resp bool, err error) { + params := []interface{}{ + templateObject, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage_Allowed_Host_Hardware", "editObject", params, &r.Options, &resp) + return +} + +// Retrieve The SoftLayer_Network_Storage_Group objects this SoftLayer_Network_Storage_Allowed_Host is present in. +func (r Network_Storage_Allowed_Host_Hardware) GetAssignedGroups() (resp []datatypes.Network_Storage_Group, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Allowed_Host_Hardware", "getAssignedGroups", nil, &r.Options, &resp) + return +} + +// Retrieve The SoftLayer_Network_Storage primary volumes whose replicas are allowed access. +func (r Network_Storage_Allowed_Host_Hardware) GetAssignedReplicationVolumes() (resp []datatypes.Network_Storage, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Allowed_Host_Hardware", "getAssignedReplicationVolumes", nil, &r.Options, &resp) + return +} + +// Retrieve The SoftLayer_Network_Storage volumes to which this SoftLayer_Network_Storage_Allowed_Host is allowed access. +func (r Network_Storage_Allowed_Host_Hardware) GetAssignedVolumes() (resp []datatypes.Network_Storage, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Allowed_Host_Hardware", "getAssignedVolumes", nil, &r.Options, &resp) + return +} + +// Retrieve The SoftLayer_Network_Storage_Credential this allowed host uses. +func (r Network_Storage_Allowed_Host_Hardware) GetCredential() (resp datatypes.Network_Storage_Credential, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Allowed_Host_Hardware", "getCredential", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Network_Storage_Allowed_Host_Hardware) GetObject() (resp datatypes.Network_Storage_Allowed_Host_Hardware, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Allowed_Host_Hardware", "getObject", nil, &r.Options, &resp) + return +} + +// Retrieve The SoftLayer_Hardware object which this SoftLayer_Network_Storage_Allowed_Host is referencing. +func (r Network_Storage_Allowed_Host_Hardware) GetResource() (resp datatypes.Hardware, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Allowed_Host_Hardware", "getResource", nil, &r.Options, &resp) + return +} + +// Use this method to modify the credential password for a SoftLayer_Network_Storage_Allowed_Host object. +func (r Network_Storage_Allowed_Host_Hardware) SetCredentialPassword(password *string) (resp bool, err error) { + params := []interface{}{ + password, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage_Allowed_Host_Hardware", "setCredentialPassword", params, &r.Options, &resp) + return +} + +// no documentation yet +type Network_Storage_Allowed_Host_IpAddress struct { + Session *session.Session + Options sl.Options +} + +// GetNetworkStorageAllowedHostIpAddressService returns an instance of the Network_Storage_Allowed_Host_IpAddress SoftLayer service +func GetNetworkStorageAllowedHostIpAddressService(sess *session.Session) Network_Storage_Allowed_Host_IpAddress { + return Network_Storage_Allowed_Host_IpAddress{Session: sess} +} + +func (r Network_Storage_Allowed_Host_IpAddress) Id(id int) Network_Storage_Allowed_Host_IpAddress { + r.Options.Id = &id + return r +} + +func (r Network_Storage_Allowed_Host_IpAddress) Mask(mask string) Network_Storage_Allowed_Host_IpAddress { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Network_Storage_Allowed_Host_IpAddress) Filter(filter string) Network_Storage_Allowed_Host_IpAddress { + r.Options.Filter = filter + return r +} + +func (r Network_Storage_Allowed_Host_IpAddress) Limit(limit int) Network_Storage_Allowed_Host_IpAddress { + r.Options.Limit = &limit + return r +} + +func (r Network_Storage_Allowed_Host_IpAddress) Offset(offset int) Network_Storage_Allowed_Host_IpAddress { + r.Options.Offset = &offset + return r +} + +// no documentation yet +func (r Network_Storage_Allowed_Host_IpAddress) CreateObject(templateObject *datatypes.Network_Storage_Allowed_Host) (resp bool, err error) { + params := []interface{}{ + templateObject, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage_Allowed_Host_IpAddress", "createObject", params, &r.Options, &resp) + return +} + +// no documentation yet +func (r Network_Storage_Allowed_Host_IpAddress) DeleteObject() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Allowed_Host_IpAddress", "deleteObject", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Network_Storage_Allowed_Host_IpAddress) EditObject(templateObject *datatypes.Network_Storage_Allowed_Host) (resp bool, err error) { + params := []interface{}{ + templateObject, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage_Allowed_Host_IpAddress", "editObject", params, &r.Options, &resp) + return +} + +// Retrieve The SoftLayer_Network_Storage_Group objects this SoftLayer_Network_Storage_Allowed_Host is present in. +func (r Network_Storage_Allowed_Host_IpAddress) GetAssignedGroups() (resp []datatypes.Network_Storage_Group, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Allowed_Host_IpAddress", "getAssignedGroups", nil, &r.Options, &resp) + return +} + +// Retrieve The SoftLayer_Network_Storage primary volumes whose replicas are allowed access. +func (r Network_Storage_Allowed_Host_IpAddress) GetAssignedReplicationVolumes() (resp []datatypes.Network_Storage, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Allowed_Host_IpAddress", "getAssignedReplicationVolumes", nil, &r.Options, &resp) + return +} + +// Retrieve The SoftLayer_Network_Storage volumes to which this SoftLayer_Network_Storage_Allowed_Host is allowed access. +func (r Network_Storage_Allowed_Host_IpAddress) GetAssignedVolumes() (resp []datatypes.Network_Storage, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Allowed_Host_IpAddress", "getAssignedVolumes", nil, &r.Options, &resp) + return +} + +// Retrieve The SoftLayer_Network_Storage_Credential this allowed host uses. +func (r Network_Storage_Allowed_Host_IpAddress) GetCredential() (resp datatypes.Network_Storage_Credential, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Allowed_Host_IpAddress", "getCredential", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Network_Storage_Allowed_Host_IpAddress) GetObject() (resp datatypes.Network_Storage_Allowed_Host_IpAddress, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Allowed_Host_IpAddress", "getObject", nil, &r.Options, &resp) + return +} + +// Retrieve The SoftLayer_Network_Subnet_IpAddress object which this SoftLayer_Network_Storage_Allowed_Host is referencing. +func (r Network_Storage_Allowed_Host_IpAddress) GetResource() (resp datatypes.Network_Subnet_IpAddress, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Allowed_Host_IpAddress", "getResource", nil, &r.Options, &resp) + return +} + +// Use this method to modify the credential password for a SoftLayer_Network_Storage_Allowed_Host object. +func (r Network_Storage_Allowed_Host_IpAddress) SetCredentialPassword(password *string) (resp bool, err error) { + params := []interface{}{ + password, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage_Allowed_Host_IpAddress", "setCredentialPassword", params, &r.Options, &resp) + return +} + +// no documentation yet +type Network_Storage_Allowed_Host_Subnet struct { + Session *session.Session + Options sl.Options +} + +// GetNetworkStorageAllowedHostSubnetService returns an instance of the Network_Storage_Allowed_Host_Subnet SoftLayer service +func GetNetworkStorageAllowedHostSubnetService(sess *session.Session) Network_Storage_Allowed_Host_Subnet { + return Network_Storage_Allowed_Host_Subnet{Session: sess} +} + +func (r Network_Storage_Allowed_Host_Subnet) Id(id int) Network_Storage_Allowed_Host_Subnet { + r.Options.Id = &id + return r +} + +func (r Network_Storage_Allowed_Host_Subnet) Mask(mask string) Network_Storage_Allowed_Host_Subnet { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Network_Storage_Allowed_Host_Subnet) Filter(filter string) Network_Storage_Allowed_Host_Subnet { + r.Options.Filter = filter + return r +} + +func (r Network_Storage_Allowed_Host_Subnet) Limit(limit int) Network_Storage_Allowed_Host_Subnet { + r.Options.Limit = &limit + return r +} + +func (r Network_Storage_Allowed_Host_Subnet) Offset(offset int) Network_Storage_Allowed_Host_Subnet { + r.Options.Offset = &offset + return r +} + +// no documentation yet +func (r Network_Storage_Allowed_Host_Subnet) CreateObject(templateObject *datatypes.Network_Storage_Allowed_Host) (resp bool, err error) { + params := []interface{}{ + templateObject, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage_Allowed_Host_Subnet", "createObject", params, &r.Options, &resp) + return +} + +// no documentation yet +func (r Network_Storage_Allowed_Host_Subnet) DeleteObject() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Allowed_Host_Subnet", "deleteObject", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Network_Storage_Allowed_Host_Subnet) EditObject(templateObject *datatypes.Network_Storage_Allowed_Host) (resp bool, err error) { + params := []interface{}{ + templateObject, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage_Allowed_Host_Subnet", "editObject", params, &r.Options, &resp) + return +} + +// Retrieve The SoftLayer_Network_Storage_Group objects this SoftLayer_Network_Storage_Allowed_Host is present in. +func (r Network_Storage_Allowed_Host_Subnet) GetAssignedGroups() (resp []datatypes.Network_Storage_Group, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Allowed_Host_Subnet", "getAssignedGroups", nil, &r.Options, &resp) + return +} + +// Retrieve The SoftLayer_Network_Storage primary volumes whose replicas are allowed access. +func (r Network_Storage_Allowed_Host_Subnet) GetAssignedReplicationVolumes() (resp []datatypes.Network_Storage, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Allowed_Host_Subnet", "getAssignedReplicationVolumes", nil, &r.Options, &resp) + return +} + +// Retrieve The SoftLayer_Network_Storage volumes to which this SoftLayer_Network_Storage_Allowed_Host is allowed access. +func (r Network_Storage_Allowed_Host_Subnet) GetAssignedVolumes() (resp []datatypes.Network_Storage, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Allowed_Host_Subnet", "getAssignedVolumes", nil, &r.Options, &resp) + return +} + +// Retrieve The SoftLayer_Network_Storage_Credential this allowed host uses. +func (r Network_Storage_Allowed_Host_Subnet) GetCredential() (resp datatypes.Network_Storage_Credential, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Allowed_Host_Subnet", "getCredential", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Network_Storage_Allowed_Host_Subnet) GetObject() (resp datatypes.Network_Storage_Allowed_Host_Subnet, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Allowed_Host_Subnet", "getObject", nil, &r.Options, &resp) + return +} + +// Retrieve The SoftLayer_Network_Subnet object which this SoftLayer_Network_Storage_Allowed_Host is referencing. +func (r Network_Storage_Allowed_Host_Subnet) GetResource() (resp datatypes.Network_Subnet, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Allowed_Host_Subnet", "getResource", nil, &r.Options, &resp) + return +} + +// Use this method to modify the credential password for a SoftLayer_Network_Storage_Allowed_Host object. +func (r Network_Storage_Allowed_Host_Subnet) SetCredentialPassword(password *string) (resp bool, err error) { + params := []interface{}{ + password, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage_Allowed_Host_Subnet", "setCredentialPassword", params, &r.Options, &resp) + return +} + +// no documentation yet +type Network_Storage_Allowed_Host_VirtualGuest struct { + Session *session.Session + Options sl.Options +} + +// GetNetworkStorageAllowedHostVirtualGuestService returns an instance of the Network_Storage_Allowed_Host_VirtualGuest SoftLayer service +func GetNetworkStorageAllowedHostVirtualGuestService(sess *session.Session) Network_Storage_Allowed_Host_VirtualGuest { + return Network_Storage_Allowed_Host_VirtualGuest{Session: sess} +} + +func (r Network_Storage_Allowed_Host_VirtualGuest) Id(id int) Network_Storage_Allowed_Host_VirtualGuest { + r.Options.Id = &id + return r +} + +func (r Network_Storage_Allowed_Host_VirtualGuest) Mask(mask string) Network_Storage_Allowed_Host_VirtualGuest { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Network_Storage_Allowed_Host_VirtualGuest) Filter(filter string) Network_Storage_Allowed_Host_VirtualGuest { + r.Options.Filter = filter + return r +} + +func (r Network_Storage_Allowed_Host_VirtualGuest) Limit(limit int) Network_Storage_Allowed_Host_VirtualGuest { + r.Options.Limit = &limit + return r +} + +func (r Network_Storage_Allowed_Host_VirtualGuest) Offset(offset int) Network_Storage_Allowed_Host_VirtualGuest { + r.Options.Offset = &offset + return r +} + +// no documentation yet +func (r Network_Storage_Allowed_Host_VirtualGuest) CreateObject(templateObject *datatypes.Network_Storage_Allowed_Host) (resp bool, err error) { + params := []interface{}{ + templateObject, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage_Allowed_Host_VirtualGuest", "createObject", params, &r.Options, &resp) + return +} + +// no documentation yet +func (r Network_Storage_Allowed_Host_VirtualGuest) DeleteObject() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Allowed_Host_VirtualGuest", "deleteObject", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Network_Storage_Allowed_Host_VirtualGuest) EditObject(templateObject *datatypes.Network_Storage_Allowed_Host) (resp bool, err error) { + params := []interface{}{ + templateObject, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage_Allowed_Host_VirtualGuest", "editObject", params, &r.Options, &resp) + return +} + +// Retrieve The SoftLayer_Network_Storage_Group objects this SoftLayer_Network_Storage_Allowed_Host is present in. +func (r Network_Storage_Allowed_Host_VirtualGuest) GetAssignedGroups() (resp []datatypes.Network_Storage_Group, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Allowed_Host_VirtualGuest", "getAssignedGroups", nil, &r.Options, &resp) + return +} + +// Retrieve The SoftLayer_Network_Storage primary volumes whose replicas are allowed access. +func (r Network_Storage_Allowed_Host_VirtualGuest) GetAssignedReplicationVolumes() (resp []datatypes.Network_Storage, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Allowed_Host_VirtualGuest", "getAssignedReplicationVolumes", nil, &r.Options, &resp) + return +} + +// Retrieve The SoftLayer_Network_Storage volumes to which this SoftLayer_Network_Storage_Allowed_Host is allowed access. +func (r Network_Storage_Allowed_Host_VirtualGuest) GetAssignedVolumes() (resp []datatypes.Network_Storage, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Allowed_Host_VirtualGuest", "getAssignedVolumes", nil, &r.Options, &resp) + return +} + +// Retrieve The SoftLayer_Network_Storage_Credential this allowed host uses. +func (r Network_Storage_Allowed_Host_VirtualGuest) GetCredential() (resp datatypes.Network_Storage_Credential, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Allowed_Host_VirtualGuest", "getCredential", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Network_Storage_Allowed_Host_VirtualGuest) GetObject() (resp datatypes.Network_Storage_Allowed_Host_VirtualGuest, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Allowed_Host_VirtualGuest", "getObject", nil, &r.Options, &resp) + return +} + +// Retrieve The SoftLayer_Virtual_Guest object which this SoftLayer_Network_Storage_Allowed_Host is referencing. +func (r Network_Storage_Allowed_Host_VirtualGuest) GetResource() (resp datatypes.Virtual_Guest, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Allowed_Host_VirtualGuest", "getResource", nil, &r.Options, &resp) + return +} + +// Use this method to modify the credential password for a SoftLayer_Network_Storage_Allowed_Host object. +func (r Network_Storage_Allowed_Host_VirtualGuest) SetCredentialPassword(password *string) (resp bool, err error) { + params := []interface{}{ + password, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage_Allowed_Host_VirtualGuest", "setCredentialPassword", params, &r.Options, &resp) + return +} + +// The SoftLayer_Network_Storage_Backup_Evault contains general information regarding an EVault Storage service such as account id, username, maximum capacity, password, Storage's product type and the server id. +type Network_Storage_Backup_Evault struct { + Session *session.Session + Options sl.Options +} + +// GetNetworkStorageBackupEvaultService returns an instance of the Network_Storage_Backup_Evault SoftLayer service +func GetNetworkStorageBackupEvaultService(sess *session.Session) Network_Storage_Backup_Evault { + return Network_Storage_Backup_Evault{Session: sess} +} + +func (r Network_Storage_Backup_Evault) Id(id int) Network_Storage_Backup_Evault { + r.Options.Id = &id + return r +} + +func (r Network_Storage_Backup_Evault) Mask(mask string) Network_Storage_Backup_Evault { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Network_Storage_Backup_Evault) Filter(filter string) Network_Storage_Backup_Evault { + r.Options.Filter = filter + return r +} + +func (r Network_Storage_Backup_Evault) Limit(limit int) Network_Storage_Backup_Evault { + r.Options.Limit = &limit + return r +} + +func (r Network_Storage_Backup_Evault) Offset(offset int) Network_Storage_Backup_Evault { + r.Options.Offset = &offset + return r +} + +// This method is used to modify the access control list for this Storage volume. The SoftLayer_Hardware objects which have been allowed access to this storage will be listed in the allowedHardware property of this storage volume. +func (r Network_Storage_Backup_Evault) AllowAccessFromHardware(hardwareObjectTemplate *datatypes.Hardware) (resp bool, err error) { + params := []interface{}{ + hardwareObjectTemplate, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage_Backup_Evault", "allowAccessFromHardware", params, &r.Options, &resp) + return +} + +// no documentation yet +func (r Network_Storage_Backup_Evault) AllowAccessFromHardwareList(hardwareObjectTemplates []datatypes.Hardware) (resp bool, err error) { + params := []interface{}{ + hardwareObjectTemplates, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage_Backup_Evault", "allowAccessFromHardwareList", params, &r.Options, &resp) + return +} + +// This method is used to modify the access control list for this Storage volume. The [[SoftLayer_Hardware|SoftLayer_Virtual_Guest|SoftLayer_Network_Subnet|SoftLayer_Network_Subnet_IpAddress]] objects which have been allowed access to this storage will be listed in the [[allowedHardware|allowedVirtualGuests|allowedSubnets|allowedIpAddresses]] property of this storage volume. +func (r Network_Storage_Backup_Evault) AllowAccessFromHost(typeClassName *string, hostId *int) (resp datatypes.Network_Storage_Allowed_Host, err error) { + params := []interface{}{ + typeClassName, + hostId, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage_Backup_Evault", "allowAccessFromHost", params, &r.Options, &resp) + return +} + +// This method is used to modify the access control list for this Storage volume. The [[SoftLayer_Hardware|SoftLayer_Virtual_Guest|SoftLayer_Network_Subnet|SoftLayer_Network_Subnet_IpAddress]] objects which have been allowed access to this storage volume will be listed in the [[allowedHardware|allowedVirtualGuests|allowedSubnets|allowedIpAddresses]] property of this storage volume. +func (r Network_Storage_Backup_Evault) AllowAccessFromHostList(hostObjectTemplates []datatypes.Container_Network_Storage_Host) (resp []datatypes.Network_Storage_Allowed_Host, err error) { + params := []interface{}{ + hostObjectTemplates, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage_Backup_Evault", "allowAccessFromHostList", params, &r.Options, &resp) + return +} + +// This method is used to modify the access control list for this Storage volume. The SoftLayer_Network_Subnet_IpAddress objects which have been allowed access to this storage will be listed in the allowedIpAddresses property of this storage volume. +func (r Network_Storage_Backup_Evault) AllowAccessFromIpAddress(ipAddressObjectTemplate *datatypes.Network_Subnet_IpAddress) (resp bool, err error) { + params := []interface{}{ + ipAddressObjectTemplate, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage_Backup_Evault", "allowAccessFromIpAddress", params, &r.Options, &resp) + return +} + +// no documentation yet +func (r Network_Storage_Backup_Evault) AllowAccessFromIpAddressList(ipAddressObjectTemplates []datatypes.Network_Subnet_IpAddress) (resp bool, err error) { + params := []interface{}{ + ipAddressObjectTemplates, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage_Backup_Evault", "allowAccessFromIpAddressList", params, &r.Options, &resp) + return +} + +// This method is used to modify the access control list for this Storage volume. The SoftLayer_Network_Subnet objects which have been allowed access to this storage will be listed in the allowedHardware property of this storage volume. +func (r Network_Storage_Backup_Evault) AllowAccessFromSubnet(subnetObjectTemplate *datatypes.Network_Subnet) (resp bool, err error) { + params := []interface{}{ + subnetObjectTemplate, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage_Backup_Evault", "allowAccessFromSubnet", params, &r.Options, &resp) + return +} + +// no documentation yet +func (r Network_Storage_Backup_Evault) AllowAccessFromSubnetList(subnetObjectTemplates []datatypes.Network_Subnet) (resp bool, err error) { + params := []interface{}{ + subnetObjectTemplates, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage_Backup_Evault", "allowAccessFromSubnetList", params, &r.Options, &resp) + return +} + +// This method is used to modify the access control list for this Storage volume. The SoftLayer_Virtual_Guest objects which have been allowed access to this storage will be listed in the allowedVirtualGuests property of this storage volume. +func (r Network_Storage_Backup_Evault) AllowAccessFromVirtualGuest(virtualGuestObjectTemplate *datatypes.Virtual_Guest) (resp bool, err error) { + params := []interface{}{ + virtualGuestObjectTemplate, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage_Backup_Evault", "allowAccessFromVirtualGuest", params, &r.Options, &resp) + return +} + +// This method is used to modify the access control list for this Storage volume. The SoftLayer_Virtual_Guest objects which have been allowed access to this storage will be listed in the allowedVirtualGuests property of this storage volume. +func (r Network_Storage_Backup_Evault) AllowAccessFromVirtualGuestList(virtualGuestObjectTemplates []datatypes.Virtual_Guest) (resp bool, err error) { + params := []interface{}{ + virtualGuestObjectTemplates, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage_Backup_Evault", "allowAccessFromVirtualGuestList", params, &r.Options, &resp) + return +} + +// This method is used to modify the access control list for this Storage replicant volume. The SoftLayer_Hardware objects which have been allowed access to this storage will be listed in the allowedHardware property of this storage replicant volume. +func (r Network_Storage_Backup_Evault) AllowAccessToReplicantFromHardware(hardwareObjectTemplate *datatypes.Hardware) (resp bool, err error) { + params := []interface{}{ + hardwareObjectTemplate, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage_Backup_Evault", "allowAccessToReplicantFromHardware", params, &r.Options, &resp) + return +} + +// This method is used to modify the access control list for this Storage volume's replica. The SoftLayer_Hardware objects which have been allowed access to this storage volume's replica will be listed in the allowedReplicationHardware property of this storage volume. +func (r Network_Storage_Backup_Evault) AllowAccessToReplicantFromHardwareList(hardwareObjectTemplates []datatypes.Hardware) (resp bool, err error) { + params := []interface{}{ + hardwareObjectTemplates, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage_Backup_Evault", "allowAccessToReplicantFromHardwareList", params, &r.Options, &resp) + return +} + +// no documentation yet +func (r Network_Storage_Backup_Evault) AllowAccessToReplicantFromIpAddress(ipAddressObjectTemplate *datatypes.Network_Subnet_IpAddress) (resp bool, err error) { + params := []interface{}{ + ipAddressObjectTemplate, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage_Backup_Evault", "allowAccessToReplicantFromIpAddress", params, &r.Options, &resp) + return +} + +// This method is used to modify the access control list for this Storage volume's replica. The SoftLayer_Network_Subnet_IpAddress objects which have been allowed access to this storage volume's replica will be listed in the allowedReplicationIpAddresses property of this storage volume. +func (r Network_Storage_Backup_Evault) AllowAccessToReplicantFromIpAddressList(ipAddressObjectTemplates []datatypes.Network_Subnet_IpAddress) (resp bool, err error) { + params := []interface{}{ + ipAddressObjectTemplates, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage_Backup_Evault", "allowAccessToReplicantFromIpAddressList", params, &r.Options, &resp) + return +} + +// This method is used to modify the access control list for this Storage replicant volume. The SoftLayer_Network_Subnet objects which have been allowed access to this storage will be listed in the allowedHardware property of this storage replicant volume. +func (r Network_Storage_Backup_Evault) AllowAccessToReplicantFromSubnet(subnetObjectTemplate *datatypes.Network_Subnet) (resp bool, err error) { + params := []interface{}{ + subnetObjectTemplate, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage_Backup_Evault", "allowAccessToReplicantFromSubnet", params, &r.Options, &resp) + return +} + +// This method is used to modify the access control list for this Storage volume's replica. The SoftLayer_Network_Subnet objects which have been allowed access to this storage volume's replica will be listed in the allowedReplicationSubnets property of this storage volume. +func (r Network_Storage_Backup_Evault) AllowAccessToReplicantFromSubnetList(subnetObjectTemplates []datatypes.Network_Subnet) (resp bool, err error) { + params := []interface{}{ + subnetObjectTemplates, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage_Backup_Evault", "allowAccessToReplicantFromSubnetList", params, &r.Options, &resp) + return +} + +// This method is used to modify the access control list for this Storage replicant volume. The SoftLayer_Virtual_Guest objects which have been allowed access to this storage will be listed in the allowedVirtualGuests property of this storage replicant volume. +func (r Network_Storage_Backup_Evault) AllowAccessToReplicantFromVirtualGuest(virtualGuestObjectTemplate *datatypes.Virtual_Guest) (resp bool, err error) { + params := []interface{}{ + virtualGuestObjectTemplate, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage_Backup_Evault", "allowAccessToReplicantFromVirtualGuest", params, &r.Options, &resp) + return +} + +// This method is used to modify the access control list for this Storage volume's replica. The SoftLayer_Virtual_Guest objects which have been allowed access to this storage volume's replica will be listed in the allowedReplicationVirtualGuests property of this storage volume. +func (r Network_Storage_Backup_Evault) AllowAccessToReplicantFromVirtualGuestList(virtualGuestObjectTemplates []datatypes.Virtual_Guest) (resp bool, err error) { + params := []interface{}{ + virtualGuestObjectTemplates, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage_Backup_Evault", "allowAccessToReplicantFromVirtualGuestList", params, &r.Options, &resp) + return +} + +// This method will assign an existing credential to the current volume. The credential must have been created using the 'addNewCredential' method. The volume type must support an additional credential. +func (r Network_Storage_Backup_Evault) AssignCredential(username *string) (resp bool, err error) { + params := []interface{}{ + username, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage_Backup_Evault", "assignCredential", params, &r.Options, &resp) + return +} + +// This method will set up a new credential for the remote storage volume. The storage volume must support an additional credential. Once created, the credential will be automatically assigned to the current volume. If there are no volumes assigned to the credential it will be automatically deleted. +func (r Network_Storage_Backup_Evault) AssignNewCredential(typ *string) (resp datatypes.Network_Storage_Credential, err error) { + params := []interface{}{ + typ, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage_Backup_Evault", "assignNewCredential", params, &r.Options, &resp) + return +} + +// The method will change the password for the given Storage/Virtual Server Storage account. +func (r Network_Storage_Backup_Evault) ChangePassword(username *string, currentPassword *string, newPassword *string) (resp bool, err error) { + params := []interface{}{ + username, + currentPassword, + newPassword, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage_Backup_Evault", "changePassword", params, &r.Options, &resp) + return +} + +// {{CloudLayerOnlyMethod}} +// +// collectBandwidth() Retrieve the bandwidth usage for the current billing cycle. +func (r Network_Storage_Backup_Evault) CollectBandwidth(typ *string, startDate *datatypes.Time, endDate *datatypes.Time) (resp uint, err error) { + params := []interface{}{ + typ, + startDate, + endDate, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage_Backup_Evault", "collectBandwidth", params, &r.Options, &resp) + return +} + +// {{CloudLayerOnlyMethod}} +// +// collectBytesUsed() retrieves the number of bytes capacity currently in use on a Storage account. +func (r Network_Storage_Backup_Evault) CollectBytesUsed() (resp uint, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Backup_Evault", "collectBytesUsed", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Network_Storage_Backup_Evault) CreateFolder(folder *string) (resp bool, err error) { + params := []interface{}{ + folder, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage_Backup_Evault", "createFolder", params, &r.Options, &resp) + return +} + +// no documentation yet +func (r Network_Storage_Backup_Evault) CreateSnapshot(notes *string) (resp datatypes.Network_Storage, err error) { + params := []interface{}{ + notes, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage_Backup_Evault", "createSnapshot", params, &r.Options, &resp) + return +} + +// {{CloudLayerOnlyMethod}} Delete all files within a Storage account. Depending on the type of Storage account, Deleting either deletes files permanently or sends files to your account's recycle bin. +// +// Currently, Virtual Server storage is the only type of Storage account that sends files to a recycle bin when deleted. When called against a Virtual Server storage account , this method also determines if the files are in the account's recycle bin. If the files exist in the recycle bin, then they are permanently deleted. +// +// Please note, files can not be restored once they are permanently deleted. +func (r Network_Storage_Backup_Evault) DeleteAllFiles() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Backup_Evault", "deleteAllFiles", nil, &r.Options, &resp) + return +} + +// {{CloudLayerOnlyMethod}} Delete an individual file within a Storage account. Depending on the type of Storage account, Deleting a file either deletes the file permanently or sends the file to your account's recycle bin. +// +// Currently, Virtual Server storage is the only type of Storage account that sends files to a recycle bin when deleted. When called against a Virtual Server storage account , this method also determines if the file is in the account's recycle bin. If the file exist in the recycle bin, then it is permanently deleted. +// +// Please note, a file can not be restored once it is permanently deleted. +func (r Network_Storage_Backup_Evault) DeleteFile(fileId *string) (resp bool, err error) { + params := []interface{}{ + fileId, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage_Backup_Evault", "deleteFile", params, &r.Options, &resp) + return +} + +// {{CloudLayerOnlyMethod}} Delete multiple files within a Storage account. Depending on the type of Storage account, Deleting either deletes files permanently or sends files to your account's recycle bin. +// +// Currently, Virtual Server storage is the only type of Storage account that sends files to a recycle bin when deleted. When called against a Virtual Server storage account , this method also determines if the files are in the account's recycle bin. If the files exist in the recycle bin, then they are permanently deleted. +// +// Please note, files can not be restored once they are permanently deleted. +func (r Network_Storage_Backup_Evault) DeleteFiles(fileIds []string) (resp bool, err error) { + params := []interface{}{ + fileIds, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage_Backup_Evault", "deleteFiles", params, &r.Options, &resp) + return +} + +// no documentation yet +func (r Network_Storage_Backup_Evault) DeleteFolder(folder *string) (resp bool, err error) { + params := []interface{}{ + folder, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage_Backup_Evault", "deleteFolder", params, &r.Options, &resp) + return +} + +// Delete a network storage volume. '''This cannot be undone.''' At this time only network storage snapshots may be deleted with this method. +// +// ''deleteObject'' returns Boolean ''true'' on successful deletion or ''false'' if it was unable to remove a volume; +func (r Network_Storage_Backup_Evault) DeleteObject() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Backup_Evault", "deleteObject", nil, &r.Options, &resp) + return +} + +// This method can be used to help maintain the storage space on a vault. When a job is removed from the Webcc, the task and stored usage still exists on the vault. This method can be used to delete the associated task and its usage. +// +// All that is required for the use of the method is to pass in an integer array of task(s). +// +// +func (r Network_Storage_Backup_Evault) DeleteTasks(tasks []int) (resp bool, err error) { + params := []interface{}{ + tasks, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage_Backup_Evault", "deleteTasks", params, &r.Options, &resp) + return +} + +// This method is not valid for Legacy iSCSI Storage Volumes. +// +// Disable scheduled snapshots of this storage volume. Scheduling options include HOURLY, DAILY and WEEKLY schedules. +func (r Network_Storage_Backup_Evault) DisableSnapshots(scheduleType *string) (resp bool, err error) { + params := []interface{}{ + scheduleType, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage_Backup_Evault", "disableSnapshots", params, &r.Options, &resp) + return +} + +// {{CloudLayerOnlyMethod}} Download a file from a Storage account. This method returns a file's details including the file's raw content. +func (r Network_Storage_Backup_Evault) DownloadFile(fileId *string) (resp datatypes.Container_Utility_File_Entity, err error) { + params := []interface{}{ + fileId, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage_Backup_Evault", "downloadFile", params, &r.Options, &resp) + return +} + +// This method will change the password of a credential created using the 'addNewCredential' method. If the credential exists on multiple storage volumes it will change for those volumes as well. +func (r Network_Storage_Backup_Evault) EditCredential(username *string, newPassword *string) (resp bool, err error) { + params := []interface{}{ + username, + newPassword, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage_Backup_Evault", "editCredential", params, &r.Options, &resp) + return +} + +// The password and/or notes may be modified for the Storage service except evault passwords and notes. +func (r Network_Storage_Backup_Evault) EditObject(templateObject *datatypes.Network_Storage) (resp bool, err error) { + params := []interface{}{ + templateObject, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage_Backup_Evault", "editObject", params, &r.Options, &resp) + return +} + +// This method is not valid for Legacy iSCSI Storage Volumes. +// +// Enable scheduled snapshots of this storage volume. Scheduling options include HOURLY, DAILY and WEEKLY schedules. For HOURLY schedules, provide relevant data for $scheduleType, $retentionCount and $minute. For DAILY schedules, provide relevant data for $scheduleType, $retentionCount, $minute, and $hour. For WEEKLY schedules, provide relevant data for all parameters of this method. +func (r Network_Storage_Backup_Evault) EnableSnapshots(scheduleType *string, retentionCount *int, minute *int, hour *int, dayOfWeek *string) (resp bool, err error) { + params := []interface{}{ + scheduleType, + retentionCount, + minute, + hour, + dayOfWeek, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage_Backup_Evault", "enableSnapshots", params, &r.Options, &resp) + return +} + +// Failback from a volume replicant. In order to failback the volume must have already been failed over to a replicant. +func (r Network_Storage_Backup_Evault) FailbackFromReplicant() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Backup_Evault", "failbackFromReplicant", nil, &r.Options, &resp) + return +} + +// Failover to a volume replicant. During the time which the replicant is in use the local nas volume will not be available. +func (r Network_Storage_Backup_Evault) FailoverToReplicant(replicantId *int) (resp bool, err error) { + params := []interface{}{ + replicantId, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage_Backup_Evault", "failoverToReplicant", params, &r.Options, &resp) + return +} + +// Retrieve The account that a Storage services belongs to. +func (r Network_Storage_Backup_Evault) GetAccount() (resp datatypes.Account, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Backup_Evault", "getAccount", nil, &r.Options, &resp) + return +} + +// Retrieve Other usernames and passwords associated with a Storage volume. +func (r Network_Storage_Backup_Evault) GetAccountPassword() (resp datatypes.Account_Password, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Backup_Evault", "getAccountPassword", nil, &r.Options, &resp) + return +} + +// Retrieve The currently active transactions on a network storage volume. +func (r Network_Storage_Backup_Evault) GetActiveTransactions() (resp []datatypes.Provisioning_Version1_Transaction, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Backup_Evault", "getActiveTransactions", nil, &r.Options, &resp) + return +} + +// {{CloudLayerOnlyMethod}} Retrieve details such as id, name, size, create date for all files in a Storage account's root directory. This does not download file content. +func (r Network_Storage_Backup_Evault) GetAllFiles() (resp []datatypes.Container_Utility_File_Entity, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Backup_Evault", "getAllFiles", nil, &r.Options, &resp) + return +} + +// {{CloudLayerOnlyMethod}} Retrieve details such as id, name, size, create date for all files matching the filter's criteria in a Storage account's root directory. This does not download file content. +func (r Network_Storage_Backup_Evault) GetAllFilesByFilter(filter *datatypes.Container_Utility_File_Entity) (resp []datatypes.Container_Utility_File_Entity, err error) { + params := []interface{}{ + filter, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage_Backup_Evault", "getAllFilesByFilter", params, &r.Options, &resp) + return +} + +// This method retrieves a list of SoftLayer_Hardware that can be authorized to this SoftLayer_Network_Storage. +func (r Network_Storage_Backup_Evault) GetAllowableHardware(filterHostname *string) (resp []datatypes.Hardware, err error) { + params := []interface{}{ + filterHostname, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage_Backup_Evault", "getAllowableHardware", params, &r.Options, &resp) + return +} + +// This method retrieves a list of SoftLayer_Network_Subnet_IpAddress that can be authorized to this SoftLayer_Network_Storage. +func (r Network_Storage_Backup_Evault) GetAllowableIpAddresses(subnetId *int, filterIpAddress *string) (resp []datatypes.Network_Subnet_IpAddress, err error) { + params := []interface{}{ + subnetId, + filterIpAddress, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage_Backup_Evault", "getAllowableIpAddresses", params, &r.Options, &resp) + return +} + +// This method retrieves a list of SoftLayer_Network_Subnet that can be authorized to this SoftLayer_Network_Storage. +func (r Network_Storage_Backup_Evault) GetAllowableSubnets(filterNetworkIdentifier *string) (resp []datatypes.Network_Subnet, err error) { + params := []interface{}{ + filterNetworkIdentifier, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage_Backup_Evault", "getAllowableSubnets", params, &r.Options, &resp) + return +} + +// This method retrieves a list of SoftLayer_Virtual_Guest that can be authorized to this SoftLayer_Network_Storage. +func (r Network_Storage_Backup_Evault) GetAllowableVirtualGuests(filterHostname *string) (resp []datatypes.Virtual_Guest, err error) { + params := []interface{}{ + filterHostname, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage_Backup_Evault", "getAllowableVirtualGuests", params, &r.Options, &resp) + return +} + +// Retrieve The SoftLayer_Hardware objects which are allowed access to this storage volume. +func (r Network_Storage_Backup_Evault) GetAllowedHardware() (resp []datatypes.Hardware, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Backup_Evault", "getAllowedHardware", nil, &r.Options, &resp) + return +} + +// Retrieves the total number of allowed hosts limit per volume. +func (r Network_Storage_Backup_Evault) GetAllowedHostsLimit() (resp int, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Backup_Evault", "getAllowedHostsLimit", nil, &r.Options, &resp) + return +} + +// Retrieve The SoftLayer_Network_Subnet_IpAddress objects which are allowed access to this storage volume. +func (r Network_Storage_Backup_Evault) GetAllowedIpAddresses() (resp []datatypes.Network_Subnet_IpAddress, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Backup_Evault", "getAllowedIpAddresses", nil, &r.Options, &resp) + return +} + +// Retrieve The SoftLayer_Hardware objects which are allowed access to this storage volume's Replicant. +func (r Network_Storage_Backup_Evault) GetAllowedReplicationHardware() (resp []datatypes.Hardware, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Backup_Evault", "getAllowedReplicationHardware", nil, &r.Options, &resp) + return +} + +// Retrieve The SoftLayer_Network_Subnet_IpAddress objects which are allowed access to this storage volume's Replicant. +func (r Network_Storage_Backup_Evault) GetAllowedReplicationIpAddresses() (resp []datatypes.Network_Subnet_IpAddress, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Backup_Evault", "getAllowedReplicationIpAddresses", nil, &r.Options, &resp) + return +} + +// Retrieve The SoftLayer_Network_Subnet objects which are allowed access to this storage volume's Replicant. +func (r Network_Storage_Backup_Evault) GetAllowedReplicationSubnets() (resp []datatypes.Network_Subnet, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Backup_Evault", "getAllowedReplicationSubnets", nil, &r.Options, &resp) + return +} + +// Retrieve The SoftLayer_Hardware objects which are allowed access to this storage volume's Replicant. +func (r Network_Storage_Backup_Evault) GetAllowedReplicationVirtualGuests() (resp []datatypes.Virtual_Guest, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Backup_Evault", "getAllowedReplicationVirtualGuests", nil, &r.Options, &resp) + return +} + +// Retrieve The SoftLayer_Network_Subnet objects which are allowed access to this storage volume. +func (r Network_Storage_Backup_Evault) GetAllowedSubnets() (resp []datatypes.Network_Subnet, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Backup_Evault", "getAllowedSubnets", nil, &r.Options, &resp) + return +} + +// Retrieve The SoftLayer_Virtual_Guest objects which are allowed access to this storage volume. +func (r Network_Storage_Backup_Evault) GetAllowedVirtualGuests() (resp []datatypes.Virtual_Guest, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Backup_Evault", "getAllowedVirtualGuests", nil, &r.Options, &resp) + return +} + +// Retrieve The current billing item for a Storage volume. +func (r Network_Storage_Backup_Evault) GetBillingItem() (resp datatypes.Billing_Item, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Backup_Evault", "getBillingItem", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Network_Storage_Backup_Evault) GetBillingItemCategory() (resp datatypes.Product_Item_Category, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Backup_Evault", "getBillingItemCategory", nil, &r.Options, &resp) + return +} + +// Retrieve network storage accounts by username and storage account type. Use this method if you wish to retrieve a storage record by username rather than by id. The ''type'' parameter must correspond to one of the available ''nasType'' values in the SoftLayer_Network_Storage data type. +func (r Network_Storage_Backup_Evault) GetByUsername(username *string, typ *string) (resp []datatypes.Network_Storage, err error) { + params := []interface{}{ + username, + typ, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage_Backup_Evault", "getByUsername", params, &r.Options, &resp) + return +} + +// Retrieve The amount of space used by the volume, in bytes. +func (r Network_Storage_Backup_Evault) GetBytesUsed() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Backup_Evault", "getBytesUsed", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Network_Storage_Backup_Evault) GetCdnUrls() (resp []datatypes.Container_Network_Storage_Hub_ObjectStorage_ContentDeliveryUrl, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Backup_Evault", "getCdnUrls", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Network_Storage_Backup_Evault) GetClusterResource() (resp datatypes.Network_Service_Resource, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Backup_Evault", "getClusterResource", nil, &r.Options, &resp) + return +} + +// Retrieve The schedule id which was executed to create a snapshot. +func (r Network_Storage_Backup_Evault) GetCreationScheduleId() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Backup_Evault", "getCreationScheduleId", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Network_Storage_Backup_Evault) GetCredentials() (resp []datatypes.Network_Storage_Credential, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Backup_Evault", "getCredentials", nil, &r.Options, &resp) + return +} + +// Retrieve The Daily Schedule which is associated with this network storage volume. +func (r Network_Storage_Backup_Evault) GetDailySchedule() (resp datatypes.Network_Storage_Schedule, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Backup_Evault", "getDailySchedule", nil, &r.Options, &resp) + return +} + +// Retrieve The events which have taken place on a network storage volume. +func (r Network_Storage_Backup_Evault) GetEvents() (resp []datatypes.Network_Storage_Event, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Backup_Evault", "getEvents", nil, &r.Options, &resp) + return +} + +// +// +// +func (r Network_Storage_Backup_Evault) GetFileBlockEncryptedLocations() (resp []datatypes.Location, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Backup_Evault", "getFileBlockEncryptedLocations", nil, &r.Options, &resp) + return +} + +// {{CloudLayerOnlyMethod}} Retrieve details such as id, name, size, create date of a file within a Storage account. This does not download file content. +func (r Network_Storage_Backup_Evault) GetFileByIdentifier(identifier *string) (resp datatypes.Container_Utility_File_Entity, err error) { + params := []interface{}{ + identifier, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage_Backup_Evault", "getFileByIdentifier", params, &r.Options, &resp) + return +} + +// {{CloudLayerOnlyMethod}} Retrieve the file number of files in a Virtual Server Storage account's root directory. This does not include the files stored in the recycle bin. +func (r Network_Storage_Backup_Evault) GetFileCount() (resp int, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Backup_Evault", "getFileCount", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Network_Storage_Backup_Evault) GetFileList(folder *string, path *string) (resp []datatypes.Container_Utility_File_Entity, err error) { + params := []interface{}{ + folder, + path, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage_Backup_Evault", "getFileList", params, &r.Options, &resp) + return +} + +// Retrieve Retrieves the NFS Network Mount Address Name for a given File Storage Volume. +func (r Network_Storage_Backup_Evault) GetFileNetworkMountAddress() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Backup_Evault", "getFileNetworkMountAddress", nil, &r.Options, &resp) + return +} + +// {{CloudLayerOnlyMethod}} Retrieve the number of files pending deletion in a Storage account's recycle bin. Files in an account's recycle bin may either be restored to the account's root directory or permanently deleted. +func (r Network_Storage_Backup_Evault) GetFilePendingDeleteCount() (resp int, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Backup_Evault", "getFilePendingDeleteCount", nil, &r.Options, &resp) + return +} + +// {{CloudLayerOnlyMethod}} Retrieve a list of files that are pending deletion in a Storage account's recycle bin. Files in an account's recycle bin may either be restored to the account's root directory or permanently deleted. This method does not download file content. +func (r Network_Storage_Backup_Evault) GetFilesPendingDelete() (resp []datatypes.Container_Utility_File_Entity, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Backup_Evault", "getFilesPendingDelete", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Network_Storage_Backup_Evault) GetFolderList() (resp []datatypes.Container_Network_Storage_Hub_ObjectStorage_Folder, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Backup_Evault", "getFolderList", nil, &r.Options, &resp) + return +} + +// {{CloudLayerOnlyMethod}} +// +// getGraph() retrieves a Storage account's usage and returns a PNG graph image, title, and the minimum and maximum dates included in the graphed date range. Virtual Server storage accounts can also graph upload and download bandwidth usage. +func (r Network_Storage_Backup_Evault) GetGraph(startDate *datatypes.Time, endDate *datatypes.Time, typ *string) (resp datatypes.Container_Bandwidth_GraphOutputs, err error) { + params := []interface{}{ + startDate, + endDate, + typ, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage_Backup_Evault", "getGraph", params, &r.Options, &resp) + return +} + +// Retrieve When applicable, the hardware associated with a Storage service. +func (r Network_Storage_Backup_Evault) GetHardware() (resp datatypes.Hardware, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Backup_Evault", "getHardware", nil, &r.Options, &resp) + return +} + +// Retrieve a list of hardware associated with a SoftLayer customer account, placing all hardware with associated EVault storage accounts at the beginning of the list. The return type is SoftLayer_Hardware_Server[] contains the results; the number of items returned in the result will be returned in the soap header (totalItems). ''getHardwareWithEvaultFirst'' is useful in situations where you wish to search for hardware and provide paginated output. +// +// +// +// +// +// Results are only returned for hardware belonging to the account of the user making the API call. +// +// This method drives the backup page of the SoftLayer customer portal. It serves a very specific function, but we have exposed it as it may prove useful for API developers too. +func (r Network_Storage_Backup_Evault) GetHardwareWithEvaultFirst(option *string, exactMatch *bool, criteria *string, mode *string) (resp []datatypes.Hardware, err error) { + params := []interface{}{ + option, + exactMatch, + criteria, + mode, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage_Backup_Evault", "getHardwareWithEvaultFirst", params, &r.Options, &resp) + return +} + +// Retrieve +func (r Network_Storage_Backup_Evault) GetHasEncryptionAtRest() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Backup_Evault", "getHasEncryptionAtRest", nil, &r.Options, &resp) + return +} + +// Retrieve The Hourly Schedule which is associated with this network storage volume. +func (r Network_Storage_Backup_Evault) GetHourlySchedule() (resp datatypes.Network_Storage_Schedule, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Backup_Evault", "getHourlySchedule", nil, &r.Options, &resp) + return +} + +// Retrieve The maximum number of IOPs selected for this volume. +func (r Network_Storage_Backup_Evault) GetIops() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Backup_Evault", "getIops", nil, &r.Options, &resp) + return +} + +// Retrieve Determines whether a volume is ready to order snapshot space, or, if snapshot space is already available, to assign a snapshot schedule, or to take a manual snapshot. +func (r Network_Storage_Backup_Evault) GetIsReadyForSnapshot() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Backup_Evault", "getIsReadyForSnapshot", nil, &r.Options, &resp) + return +} + +// Retrieve Determines whether a volume is ready to have Hosts authorized to access it. This does not indicate whether another operation may be blocking, please refer to this volume's volumeStatus property for details. +func (r Network_Storage_Backup_Evault) GetIsReadyToMount() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Backup_Evault", "getIsReadyToMount", nil, &r.Options, &resp) + return +} + +// Retrieve Relationship between a container volume and iSCSI LUNs. +func (r Network_Storage_Backup_Evault) GetIscsiLuns() (resp []datatypes.Network_Storage, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Backup_Evault", "getIscsiLuns", nil, &r.Options, &resp) + return +} + +// Retrieve The ID of the LUN volume. +func (r Network_Storage_Backup_Evault) GetLunId() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Backup_Evault", "getLunId", nil, &r.Options, &resp) + return +} + +// Retrieve The manually-created snapshots associated with this SoftLayer_Network_Storage volume. Does not support pagination by result limit and offset. +func (r Network_Storage_Backup_Evault) GetManualSnapshots() (resp []datatypes.Network_Storage, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Backup_Evault", "getManualSnapshots", nil, &r.Options, &resp) + return +} + +// Retrieve A network storage volume's metric tracking object. This object records all periodic polled data available to this volume. +func (r Network_Storage_Backup_Evault) GetMetricTrackingObject() (resp datatypes.Metric_Tracking_Object, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Backup_Evault", "getMetricTrackingObject", nil, &r.Options, &resp) + return +} + +// Retrieve Whether or not a network storage volume may be mounted. +func (r Network_Storage_Backup_Evault) GetMountableFlag() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Backup_Evault", "getMountableFlag", nil, &r.Options, &resp) + return +} + +// Retrieve The current status of split or move operation as a part of volume duplication. +func (r Network_Storage_Backup_Evault) GetMoveAndSplitStatus() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Backup_Evault", "getMoveAndSplitStatus", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Network_Storage_Backup_Evault) GetNetworkConnectionDetails() (resp datatypes.Container_Network_Storage_NetworkConnectionInformation, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Backup_Evault", "getNetworkConnectionDetails", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Network_Storage_Backup_Evault) GetNetworkMountAddress() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Backup_Evault", "getNetworkMountAddress", nil, &r.Options, &resp) + return +} + +// Retrieve The subscribers that will be notified for usage amount warnings and overages. +func (r Network_Storage_Backup_Evault) GetNotificationSubscribers() (resp []datatypes.Notification_User_Subscriber, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Backup_Evault", "getNotificationSubscribers", nil, &r.Options, &resp) + return +} + +// getObject retrieves the SoftLayer_Network_Storage_Backup_Evault object whose ID corresponds to the ID number of the init parameter passed to the SoftLayer_Network_Storage_Backup_Evault service. +func (r Network_Storage_Backup_Evault) GetObject() (resp datatypes.Network_Storage_Backup_Evault, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Backup_Evault", "getObject", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Network_Storage_Backup_Evault) GetObjectStorageConnectionInformation() (resp []datatypes.Container_Network_Service_Resource_ObjectStorage_ConnectionInformation, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Backup_Evault", "getObjectStorageConnectionInformation", nil, &r.Options, &resp) + return +} + +// Retrieve network storage accounts by SoftLayer_Network_Storage_Credential object. Use this method if you wish to retrieve a storage record by a credential rather than by id. +func (r Network_Storage_Backup_Evault) GetObjectsByCredential(credentialObject *datatypes.Network_Storage_Credential) (resp []datatypes.Network_Storage, err error) { + params := []interface{}{ + credentialObject, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage_Backup_Evault", "getObjectsByCredential", params, &r.Options, &resp) + return +} + +// Retrieve The name of the snapshot that this volume was duplicated from. +func (r Network_Storage_Backup_Evault) GetOriginalSnapshotName() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Backup_Evault", "getOriginalSnapshotName", nil, &r.Options, &resp) + return +} + +// Retrieve The name of the volume that this volume was duplicated from. +func (r Network_Storage_Backup_Evault) GetOriginalVolumeName() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Backup_Evault", "getOriginalVolumeName", nil, &r.Options, &resp) + return +} + +// Retrieve The size (in GB) of the volume that this volume was duplicated from, or in the case of iSCSI LUNs, the size of the base originally-provisioned LUN. +func (r Network_Storage_Backup_Evault) GetOriginalVolumeSize() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Backup_Evault", "getOriginalVolumeSize", nil, &r.Options, &resp) + return +} + +// Retrieve A volume's configured SoftLayer_Network_Storage_Iscsi_OS_Type. +func (r Network_Storage_Backup_Evault) GetOsType() (resp datatypes.Network_Storage_Iscsi_OS_Type, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Backup_Evault", "getOsType", nil, &r.Options, &resp) + return +} + +// Retrieve A volume's configured SoftLayer_Network_Storage_Iscsi_OS_Type ID. +func (r Network_Storage_Backup_Evault) GetOsTypeId() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Backup_Evault", "getOsTypeId", nil, &r.Options, &resp) + return +} + +// Retrieve The volumes or snapshots partnered with a network storage volume in a parental role. +func (r Network_Storage_Backup_Evault) GetParentPartnerships() (resp []datatypes.Network_Storage_Partnership, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Backup_Evault", "getParentPartnerships", nil, &r.Options, &resp) + return +} + +// Retrieve The parent volume of a volume in a complex storage relationship. +func (r Network_Storage_Backup_Evault) GetParentVolume() (resp datatypes.Network_Storage, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Backup_Evault", "getParentVolume", nil, &r.Options, &resp) + return +} + +// Retrieve The volumes or snapshots partnered with a network storage volume. +func (r Network_Storage_Backup_Evault) GetPartnerships() (resp []datatypes.Network_Storage_Partnership, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Backup_Evault", "getPartnerships", nil, &r.Options, &resp) + return +} + +// Retrieve All permissions group(s) this volume is in. +func (r Network_Storage_Backup_Evault) GetPermissionsGroups() (resp []datatypes.Network_Storage_Group, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Backup_Evault", "getPermissionsGroups", nil, &r.Options, &resp) + return +} + +// Retrieve The properties used to provide additional details about a network storage volume. +func (r Network_Storage_Backup_Evault) GetProperties() (resp []datatypes.Network_Storage_Property, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Backup_Evault", "getProperties", nil, &r.Options, &resp) + return +} + +// Retrieve The number of IOPs provisioned for this volume. +func (r Network_Storage_Backup_Evault) GetProvisionedIops() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Backup_Evault", "getProvisionedIops", nil, &r.Options, &resp) + return +} + +// {{CloudLayerOnlyMethod}} Retrieve the details of a file that is pending deletion in a Storage account's a recycle bin. +func (r Network_Storage_Backup_Evault) GetRecycleBinFileByIdentifier(fileId *string) (resp datatypes.Container_Utility_File_Entity, err error) { + params := []interface{}{ + fileId, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage_Backup_Evault", "getRecycleBinFileByIdentifier", params, &r.Options, &resp) + return +} + +// Retrieves the remaining number of allowed hosts per volume. +func (r Network_Storage_Backup_Evault) GetRemainingAllowedHosts() (resp int, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Backup_Evault", "getRemainingAllowedHosts", nil, &r.Options, &resp) + return +} + +// Retrieve The iSCSI LUN volumes being replicated by this network storage volume. +func (r Network_Storage_Backup_Evault) GetReplicatingLuns() (resp []datatypes.Network_Storage, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Backup_Evault", "getReplicatingLuns", nil, &r.Options, &resp) + return +} + +// Retrieve The network storage volume being replicated by a volume. +func (r Network_Storage_Backup_Evault) GetReplicatingVolume() (resp datatypes.Network_Storage, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Backup_Evault", "getReplicatingVolume", nil, &r.Options, &resp) + return +} + +// Retrieve The volume replication events. +func (r Network_Storage_Backup_Evault) GetReplicationEvents() (resp []datatypes.Network_Storage_Event, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Backup_Evault", "getReplicationEvents", nil, &r.Options, &resp) + return +} + +// Retrieve The network storage volumes configured to be replicants of a volume. +func (r Network_Storage_Backup_Evault) GetReplicationPartners() (resp []datatypes.Network_Storage, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Backup_Evault", "getReplicationPartners", nil, &r.Options, &resp) + return +} + +// Retrieve The Replication Schedule associated with a network storage volume. +func (r Network_Storage_Backup_Evault) GetReplicationSchedule() (resp datatypes.Network_Storage_Schedule, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Backup_Evault", "getReplicationSchedule", nil, &r.Options, &resp) + return +} + +// Retrieve The current replication status of a network storage volume. Indicates Failover or Failback status. +func (r Network_Storage_Backup_Evault) GetReplicationStatus() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Backup_Evault", "getReplicationStatus", nil, &r.Options, &resp) + return +} + +// Retrieve The schedules which are associated with a network storage volume. +func (r Network_Storage_Backup_Evault) GetSchedules() (resp []datatypes.Network_Storage_Schedule, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Backup_Evault", "getSchedules", nil, &r.Options, &resp) + return +} + +// Retrieve The network resource a Storage service is connected to. +func (r Network_Storage_Backup_Evault) GetServiceResource() (resp datatypes.Network_Service_Resource, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Backup_Evault", "getServiceResource", nil, &r.Options, &resp) + return +} + +// Retrieve The IP address of a Storage resource. +func (r Network_Storage_Backup_Evault) GetServiceResourceBackendIpAddress() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Backup_Evault", "getServiceResourceBackendIpAddress", nil, &r.Options, &resp) + return +} + +// Retrieve The name of a Storage's network resource. +func (r Network_Storage_Backup_Evault) GetServiceResourceName() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Backup_Evault", "getServiceResourceName", nil, &r.Options, &resp) + return +} + +// Retrieve A volume's configured snapshot space size. +func (r Network_Storage_Backup_Evault) GetSnapshotCapacityGb() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Backup_Evault", "getSnapshotCapacityGb", nil, &r.Options, &resp) + return +} + +// Retrieve The creation timestamp of the snapshot on the storage platform. +func (r Network_Storage_Backup_Evault) GetSnapshotCreationTimestamp() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Backup_Evault", "getSnapshotCreationTimestamp", nil, &r.Options, &resp) + return +} + +// Retrieve The percentage of used snapshot space after which to delete automated snapshots. +func (r Network_Storage_Backup_Evault) GetSnapshotDeletionThresholdPercentage() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Backup_Evault", "getSnapshotDeletionThresholdPercentage", nil, &r.Options, &resp) + return +} + +// Retrieve The snapshot size in bytes. +func (r Network_Storage_Backup_Evault) GetSnapshotSizeBytes() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Backup_Evault", "getSnapshotSizeBytes", nil, &r.Options, &resp) + return +} + +// Retrieve A volume's available snapshot reservation space. +func (r Network_Storage_Backup_Evault) GetSnapshotSpaceAvailable() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Backup_Evault", "getSnapshotSpaceAvailable", nil, &r.Options, &resp) + return +} + +// Retrieve The snapshots associated with this SoftLayer_Network_Storage volume. +func (r Network_Storage_Backup_Evault) GetSnapshots() (resp []datatypes.Network_Storage, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Backup_Evault", "getSnapshots", nil, &r.Options, &resp) + return +} + +// Retrieves a list of snapshots for this SoftLayer_Network_Storage volume. This method works with the result limits and offset to support pagination. +func (r Network_Storage_Backup_Evault) GetSnapshotsForVolume() (resp []datatypes.Network_Storage, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Backup_Evault", "getSnapshotsForVolume", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Network_Storage_Backup_Evault) GetStaasVersion() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Backup_Evault", "getStaasVersion", nil, &r.Options, &resp) + return +} + +// Retrieve The network storage groups this volume is attached to. +func (r Network_Storage_Backup_Evault) GetStorageGroups() (resp []datatypes.Network_Storage_Group, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Backup_Evault", "getStorageGroups", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Network_Storage_Backup_Evault) GetStorageGroupsNetworkConnectionDetails() (resp []datatypes.Container_Network_Storage_NetworkConnectionInformation, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Backup_Evault", "getStorageGroupsNetworkConnectionDetails", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Network_Storage_Backup_Evault) GetStorageTierLevel() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Backup_Evault", "getStorageTierLevel", nil, &r.Options, &resp) + return +} + +// Retrieve A description of the Storage object. +func (r Network_Storage_Backup_Evault) GetStorageType() (resp datatypes.Network_Storage_Type, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Backup_Evault", "getStorageType", nil, &r.Options, &resp) + return +} + +// Retrieve The amount of space used by the volume. +func (r Network_Storage_Backup_Evault) GetTotalBytesUsed() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Backup_Evault", "getTotalBytesUsed", nil, &r.Options, &resp) + return +} + +// Retrieve The total snapshot retention count of all schedules on this network storage volume. +func (r Network_Storage_Backup_Evault) GetTotalScheduleSnapshotRetentionCount() (resp uint, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Backup_Evault", "getTotalScheduleSnapshotRetentionCount", nil, &r.Options, &resp) + return +} + +// Retrieve The usage notification for SL Storage services. +func (r Network_Storage_Backup_Evault) GetUsageNotification() (resp datatypes.Notification, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Backup_Evault", "getUsageNotification", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Network_Storage_Backup_Evault) GetValidReplicationTargetDatacenterLocations() (resp []datatypes.Location, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Backup_Evault", "getValidReplicationTargetDatacenterLocations", nil, &r.Options, &resp) + return +} + +// Retrieve The type of network storage service. +func (r Network_Storage_Backup_Evault) GetVendorName() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Backup_Evault", "getVendorName", nil, &r.Options, &resp) + return +} + +// Retrieve When applicable, the virtual guest associated with a Storage service. +func (r Network_Storage_Backup_Evault) GetVirtualGuest() (resp datatypes.Virtual_Guest, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Backup_Evault", "getVirtualGuest", nil, &r.Options, &resp) + return +} + +// This method returns the parameters for cloning a volume +func (r Network_Storage_Backup_Evault) GetVolumeDuplicateParameters() (resp datatypes.Container_Network_Storage_VolumeDuplicateParameters, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Backup_Evault", "getVolumeDuplicateParameters", nil, &r.Options, &resp) + return +} + +// Retrieve The username and password history for a Storage service. +func (r Network_Storage_Backup_Evault) GetVolumeHistory() (resp []datatypes.Network_Storage_History, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Backup_Evault", "getVolumeHistory", nil, &r.Options, &resp) + return +} + +// Retrieve The current status of a network storage volume. +func (r Network_Storage_Backup_Evault) GetVolumeStatus() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Backup_Evault", "getVolumeStatus", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Network_Storage_Backup_Evault) GetWebCCAuthenticationDetails() (resp datatypes.Container_Network_Storage_Backup_Evault_WebCc_Authentication_Details, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Backup_Evault", "getWebCCAuthenticationDetails", nil, &r.Options, &resp) + return +} + +// Retrieve The account username and password for the EVault webCC interface. +func (r Network_Storage_Backup_Evault) GetWebccAccount() (resp datatypes.Account_Password, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Backup_Evault", "getWebccAccount", nil, &r.Options, &resp) + return +} + +// Retrieve The Weekly Schedule which is associated with this network storage volume. +func (r Network_Storage_Backup_Evault) GetWeeklySchedule() (resp datatypes.Network_Storage_Schedule, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Backup_Evault", "getWeeklySchedule", nil, &r.Options, &resp) + return +} + +// Immediate Failover to a volume replicant. During the time which the replicant is in use the local nas volume will not be available. +func (r Network_Storage_Backup_Evault) ImmediateFailoverToReplicant(replicantId *int) (resp bool, err error) { + params := []interface{}{ + replicantId, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage_Backup_Evault", "immediateFailoverToReplicant", params, &r.Options, &resp) + return +} + +// Evault Bare Metal Restore is a special version of Rescue Kernel designed specifically for making full system restores made with Evault's BMR backup. This process works very similar to Rescue Kernel, except only the Evault restore program is available. The process takes approximately 10 minutes. Once completed you will be able to access your server to do a restore through VNC or your servers KVM-over-IP. IP information and credentials can be found on the hardware page of the customer portal. The Evault Application will be running automatically upon startup, and will walk you through the restore process. +func (r Network_Storage_Backup_Evault) InitiateBareMetalRestore() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Backup_Evault", "initiateBareMetalRestore", nil, &r.Options, &resp) + return +} + +// This method operates the same as the initiateBareMetalRestore() method. However, using this method, the Bare Metal Restore can be initiated on any Windows server under the account. +func (r Network_Storage_Backup_Evault) InitiateBareMetalRestoreForServer(hardwareId *int) (resp bool, err error) { + params := []interface{}{ + hardwareId, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage_Backup_Evault", "initiateBareMetalRestoreForServer", params, &r.Options, &resp) + return +} + +// no documentation yet +func (r Network_Storage_Backup_Evault) IsBlockingOperationInProgress(exemptStatusKeyNames []string) (resp bool, err error) { + params := []interface{}{ + exemptStatusKeyNames, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage_Backup_Evault", "isBlockingOperationInProgress", params, &r.Options, &resp) + return +} + +// This method returns a boolean indicating whether the clone volume is ready for snapshot. +func (r Network_Storage_Backup_Evault) IsDuplicateReadyForSnapshot() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Backup_Evault", "isDuplicateReadyForSnapshot", nil, &r.Options, &resp) + return +} + +// This method returns a boolean indicating whether the clone volume is ready to mount. +func (r Network_Storage_Backup_Evault) IsDuplicateReadyToMount() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Backup_Evault", "isDuplicateReadyToMount", nil, &r.Options, &resp) + return +} + +// This method is used to modify the access control list for this Storage volume. The SoftLayer_Hardware objects which have been allowed access to this storage will be listed in the allowedHardware property of this storage volume. +func (r Network_Storage_Backup_Evault) RemoveAccessFromHardware(hardwareObjectTemplate *datatypes.Hardware) (resp bool, err error) { + params := []interface{}{ + hardwareObjectTemplate, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage_Backup_Evault", "removeAccessFromHardware", params, &r.Options, &resp) + return +} + +// This method is used to modify the access control list for this Storage volume. The SoftLayer_Hardware objects which have been allowed access to this storage will be listed in the allowedHardware property of this storage volume. +func (r Network_Storage_Backup_Evault) RemoveAccessFromHardwareList(hardwareObjectTemplates []datatypes.Hardware) (resp bool, err error) { + params := []interface{}{ + hardwareObjectTemplates, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage_Backup_Evault", "removeAccessFromHardwareList", params, &r.Options, &resp) + return +} + +// This method is used to modify the access control list for this Storage volume. The [[SoftLayer_Hardware|SoftLayer_Virtual_Guest|SoftLayer_Network_Subnet|SoftLayer_Network_Subnet_IpAddress]] objects which have been allowed access to this storage will be listed in the [[allowedHardware|allowedVirtualGuests|allowedSubnets|allowedIpAddresses]] property of this storage volume. +func (r Network_Storage_Backup_Evault) RemoveAccessFromHost(typeClassName *string, hostId *int) (resp datatypes.Network_Storage_Allowed_Host, err error) { + params := []interface{}{ + typeClassName, + hostId, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage_Backup_Evault", "removeAccessFromHost", params, &r.Options, &resp) + return +} + +// This method is used to modify the access control list for this Storage volume. The [[SoftLayer_Hardware|SoftLayer_Virtual_Guest|SoftLayer_Network_Subnet|SoftLayer_Network_Subnet_IpAddress]] objects which have been allowed access to this storage will be listed in the [[allowedHardware|allowedVirtualGuests|allowedSubnets|allowedIpAddresses]] property of this storage volume. +func (r Network_Storage_Backup_Evault) RemoveAccessFromHostList(hostObjectTemplates []datatypes.Container_Network_Storage_Host) (resp []datatypes.Network_Storage_Allowed_Host, err error) { + params := []interface{}{ + hostObjectTemplates, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage_Backup_Evault", "removeAccessFromHostList", params, &r.Options, &resp) + return +} + +// This method is used to modify the access control list for this Storage volume. The SoftLayer_Network_Subnet_IpAddress objects which have been allowed access to this storage will be listed in the allowedIpAddresses property of this storage volume. +func (r Network_Storage_Backup_Evault) RemoveAccessFromIpAddress(ipAddressObjectTemplate *datatypes.Network_Subnet_IpAddress) (resp bool, err error) { + params := []interface{}{ + ipAddressObjectTemplate, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage_Backup_Evault", "removeAccessFromIpAddress", params, &r.Options, &resp) + return +} + +// no documentation yet +func (r Network_Storage_Backup_Evault) RemoveAccessFromIpAddressList(ipAddressObjectTemplates []datatypes.Network_Subnet_IpAddress) (resp bool, err error) { + params := []interface{}{ + ipAddressObjectTemplates, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage_Backup_Evault", "removeAccessFromIpAddressList", params, &r.Options, &resp) + return +} + +// no documentation yet +func (r Network_Storage_Backup_Evault) RemoveAccessFromSubnet(subnetObjectTemplate *datatypes.Network_Subnet) (resp bool, err error) { + params := []interface{}{ + subnetObjectTemplate, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage_Backup_Evault", "removeAccessFromSubnet", params, &r.Options, &resp) + return +} + +// no documentation yet +func (r Network_Storage_Backup_Evault) RemoveAccessFromSubnetList(subnetObjectTemplates []datatypes.Network_Subnet) (resp bool, err error) { + params := []interface{}{ + subnetObjectTemplates, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage_Backup_Evault", "removeAccessFromSubnetList", params, &r.Options, &resp) + return +} + +// This method is used to modify the access control list for this Storage volume. The SoftLayer_Virtual_Guest objects which have been allowed access to this storage will be listed in the allowedVirtualGuests property of this storage volume. +func (r Network_Storage_Backup_Evault) RemoveAccessFromVirtualGuest(virtualGuestObjectTemplate *datatypes.Virtual_Guest) (resp bool, err error) { + params := []interface{}{ + virtualGuestObjectTemplate, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage_Backup_Evault", "removeAccessFromVirtualGuest", params, &r.Options, &resp) + return +} + +// This method is used to modify the access control list for this Storage volume. The SoftLayer_Virtual_Guest objects which have been allowed access to this storage will be listed in the allowedVirtualGuests property of this storage volume. +func (r Network_Storage_Backup_Evault) RemoveAccessFromVirtualGuestList(virtualGuestObjectTemplates []datatypes.Virtual_Guest) (resp bool, err error) { + params := []interface{}{ + virtualGuestObjectTemplates, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage_Backup_Evault", "removeAccessFromVirtualGuestList", params, &r.Options, &resp) + return +} + +// This method is used to modify the access control list for this Storage volume's replica. The SoftLayer_Hardware objects which have been allowed access to this storage volume's replica will be listed in the allowedReplicationHardware property of this storage volume. +func (r Network_Storage_Backup_Evault) RemoveAccessToReplicantFromHardwareList(hardwareObjectTemplates []datatypes.Hardware) (resp bool, err error) { + params := []interface{}{ + hardwareObjectTemplates, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage_Backup_Evault", "removeAccessToReplicantFromHardwareList", params, &r.Options, &resp) + return +} + +// This method is used to modify the access control list for this Storage volume's replica. The SoftLayer_Network_Subnet_IpAddress objects which have been allowed access to this storage volume's replica will be listed in the allowedReplicationIpAddresses property of this storage volume. +func (r Network_Storage_Backup_Evault) RemoveAccessToReplicantFromIpAddressList(ipAddressObjectTemplates []datatypes.Network_Subnet_IpAddress) (resp bool, err error) { + params := []interface{}{ + ipAddressObjectTemplates, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage_Backup_Evault", "removeAccessToReplicantFromIpAddressList", params, &r.Options, &resp) + return +} + +// no documentation yet +func (r Network_Storage_Backup_Evault) RemoveAccessToReplicantFromSubnet(subnetObjectTemplate *datatypes.Network_Subnet) (resp bool, err error) { + params := []interface{}{ + subnetObjectTemplate, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage_Backup_Evault", "removeAccessToReplicantFromSubnet", params, &r.Options, &resp) + return +} + +// This method is used to modify the access control list for this Storage volume's replica. The SoftLayer_Network_Subnet objects which have been allowed access to this storage volume's replica will be listed in the allowedReplicationSubnets property of this storage volume. +func (r Network_Storage_Backup_Evault) RemoveAccessToReplicantFromSubnetList(subnetObjectTemplates []datatypes.Network_Subnet) (resp bool, err error) { + params := []interface{}{ + subnetObjectTemplates, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage_Backup_Evault", "removeAccessToReplicantFromSubnetList", params, &r.Options, &resp) + return +} + +// This method is used to modify the access control list for this Storage volume's replica. The SoftLayer_Virtual_Guest objects which have been allowed access to this storage volume's replica will be listed in the allowedReplicationVirtualGuests property of this storage volume. +func (r Network_Storage_Backup_Evault) RemoveAccessToReplicantFromVirtualGuestList(virtualGuestObjectTemplates []datatypes.Virtual_Guest) (resp bool, err error) { + params := []interface{}{ + virtualGuestObjectTemplates, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage_Backup_Evault", "removeAccessToReplicantFromVirtualGuestList", params, &r.Options, &resp) + return +} + +// This method will remove a credential from the current volume. The credential must have been created using the 'addNewCredential' method. +func (r Network_Storage_Backup_Evault) RemoveCredential(username *string) (resp bool, err error) { + params := []interface{}{ + username, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage_Backup_Evault", "removeCredential", params, &r.Options, &resp) + return +} + +// {{CloudLayerOnlyMethod}} Restore an individual file so that it may be used as it was before it was deleted. +// +// If a file is deleted from a Virtual Server Storage account, the file is placed into the account's recycle bin and not permanently deleted. Therefore, restoreFile can be used to place the file back into your Virtual Server account's root directory. +func (r Network_Storage_Backup_Evault) RestoreFile(fileId *string) (resp datatypes.Container_Utility_File_Entity, err error) { + params := []interface{}{ + fileId, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage_Backup_Evault", "restoreFile", params, &r.Options, &resp) + return +} + +// Restore the volume from a snapshot that was previously taken. +func (r Network_Storage_Backup_Evault) RestoreFromSnapshot(snapshotId *int) (resp bool, err error) { + params := []interface{}{ + snapshotId, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage_Backup_Evault", "restoreFromSnapshot", params, &r.Options, &resp) + return +} + +// The method will retrieve the password for the StorageLayer or Virtual Server Storage Account and email the password. The Storage Account passwords will be emailed to the master user. For Virtual Server Storage, the password will be sent to the email address used as the username. +func (r Network_Storage_Backup_Evault) SendPasswordReminderEmail(username *string) (resp bool, err error) { + params := []interface{}{ + username, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage_Backup_Evault", "sendPasswordReminderEmail", params, &r.Options, &resp) + return +} + +// Enable or disable the mounting of a Storage volume. When mounting is enabled the Storage volume will be mountable or available for use. +// +// For Virtual Server volumes, disabling mounting will deny access to the Virtual Server Account, remove published material and deny all file interaction including uploads and downloads. +// +// Enabling or disabling mounting for Storage volumes is not possible if mounting has been disabled by SoftLayer or a parent account. +func (r Network_Storage_Backup_Evault) SetMountable(mountable *bool) (resp bool, err error) { + params := []interface{}{ + mountable, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage_Backup_Evault", "setMountable", params, &r.Options, &resp) + return +} + +// no documentation yet +func (r Network_Storage_Backup_Evault) SetSnapshotAllocation(capacityGb *int) (err error) { + var resp datatypes.Void + params := []interface{}{ + capacityGb, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage_Backup_Evault", "setSnapshotAllocation", params, &r.Options, &resp) + return +} + +// Upgrade the Storage volume to one of the upgradable packages (for example from 10 Gigs of EVault storage to 100 Gigs of EVault storage). +func (r Network_Storage_Backup_Evault) UpgradeVolumeCapacity(itemId *int) (resp bool, err error) { + params := []interface{}{ + itemId, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage_Backup_Evault", "upgradeVolumeCapacity", params, &r.Options, &resp) + return +} + +// {{CloudLayerOnlyMethod}} Upload a file to a Storage account's root directory. Once uploaded, this method returns new file entity identifier for the upload file. +// +// The following properties are required in the ''file'' parameter. +// *'''name''': The name of the file you wish to upload +// *'''content''': The raw contents of the file you wish to upload. +// *'''contentType''': The MIME-type of content that you wish to upload. +func (r Network_Storage_Backup_Evault) UploadFile(file *datatypes.Container_Utility_File_Entity) (resp datatypes.Container_Utility_File_Entity, err error) { + params := []interface{}{ + file, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage_Backup_Evault", "uploadFile", params, &r.Options, &resp) + return +} + +// no documentation yet +type Network_Storage_Group struct { + Session *session.Session + Options sl.Options +} + +// GetNetworkStorageGroupService returns an instance of the Network_Storage_Group SoftLayer service +func GetNetworkStorageGroupService(sess *session.Session) Network_Storage_Group { + return Network_Storage_Group{Session: sess} +} + +func (r Network_Storage_Group) Id(id int) Network_Storage_Group { + r.Options.Id = &id + return r +} + +func (r Network_Storage_Group) Mask(mask string) Network_Storage_Group { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Network_Storage_Group) Filter(filter string) Network_Storage_Group { + r.Options.Filter = filter + return r +} + +func (r Network_Storage_Group) Limit(limit int) Network_Storage_Group { + r.Options.Limit = &limit + return r +} + +func (r Network_Storage_Group) Offset(offset int) Network_Storage_Group { + r.Options.Offset = &offset + return r +} + +// Use this method to attach a SoftLayer_Network_Storage_Allowed_Host object to this group. This will automatically enable access from this host to any SoftLayer_Network_Storage volumes currently attached to this group. +func (r Network_Storage_Group) AddAllowedHost(allowedHost *datatypes.Network_Storage_Allowed_Host) (resp bool, err error) { + params := []interface{}{ + allowedHost, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage_Group", "addAllowedHost", params, &r.Options, &resp) + return +} + +// Use this method to attach a SoftLayer_Network_Storage volume to this group. This will automatically enable access to this volume for any SoftLayer_Network_Storage_Allowed_Host objects currently attached to this group. +func (r Network_Storage_Group) AttachToVolume(volume *datatypes.Network_Storage) (resp bool, err error) { + params := []interface{}{ + volume, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage_Group", "attachToVolume", params, &r.Options, &resp) + return +} + +// no documentation yet +func (r Network_Storage_Group) CreateObject(templateObject *datatypes.Network_Storage_Group) (resp bool, err error) { + params := []interface{}{ + templateObject, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage_Group", "createObject", params, &r.Options, &resp) + return +} + +// no documentation yet +func (r Network_Storage_Group) DeleteObject() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Group", "deleteObject", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Network_Storage_Group) EditObject(templateObject *datatypes.Network_Storage_Group) (resp bool, err error) { + params := []interface{}{ + templateObject, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage_Group", "editObject", params, &r.Options, &resp) + return +} + +// Retrieve The SoftLayer_Account which owns this group. +func (r Network_Storage_Group) GetAccount() (resp datatypes.Account, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Group", "getAccount", nil, &r.Options, &resp) + return +} + +// Use this method to retrieve all network storage groups. +func (r Network_Storage_Group) GetAllObjects() (resp []datatypes.Network_Storage_Group, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Group", "getAllObjects", nil, &r.Options, &resp) + return +} + +// Retrieve The allowed hosts list for this group. +func (r Network_Storage_Group) GetAllowedHosts() (resp []datatypes.Network_Storage_Allowed_Host, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Group", "getAllowedHosts", nil, &r.Options, &resp) + return +} + +// Retrieve The network storage volumes this group is attached to. +func (r Network_Storage_Group) GetAttachedVolumes() (resp []datatypes.Network_Storage, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Group", "getAttachedVolumes", nil, &r.Options, &resp) + return +} + +// Retrieve The type which defines this group. +func (r Network_Storage_Group) GetGroupType() (resp datatypes.Network_Storage_Group_Type, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Group", "getGroupType", nil, &r.Options, &resp) + return +} + +// Use this method to retrieve network connection information for SoftLayer_Network_Storage_Allowed_Host objects within this group. +func (r Network_Storage_Group) GetNetworkConnectionDetails() (resp datatypes.Container_Network_Storage_NetworkConnectionInformation, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Group", "getNetworkConnectionDetails", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Network_Storage_Group) GetObject() (resp datatypes.Network_Storage_Group, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Group", "getObject", nil, &r.Options, &resp) + return +} + +// Retrieve The OS Type this group is configured for. +func (r Network_Storage_Group) GetOsType() (resp datatypes.Network_Storage_Iscsi_OS_Type, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Group", "getOsType", nil, &r.Options, &resp) + return +} + +// Retrieve The network resource this group is created on. +func (r Network_Storage_Group) GetServiceResource() (resp datatypes.Network_Service_Resource, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Group", "getServiceResource", nil, &r.Options, &resp) + return +} + +// Use this method to remove a SoftLayer_Network_Storage_Allowed_Host object from this group. This will automatically disable access from this host to any SoftLayer_Network_Storage volumes currently attached to this group. +func (r Network_Storage_Group) RemoveAllowedHost(allowedHost *datatypes.Network_Storage_Allowed_Host) (resp bool, err error) { + params := []interface{}{ + allowedHost, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage_Group", "removeAllowedHost", params, &r.Options, &resp) + return +} + +// Use this method to remove a SoftLayer_Network_Storage volume from this group. This will automatically disable access to this volume for any SoftLayer_Network_Storage_Allowed_Host objects currently attached to this group. +func (r Network_Storage_Group) RemoveFromVolume(volume *datatypes.Network_Storage) (resp bool, err error) { + params := []interface{}{ + volume, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage_Group", "removeFromVolume", params, &r.Options, &resp) + return +} + +// no documentation yet +type Network_Storage_Group_Iscsi struct { + Session *session.Session + Options sl.Options +} + +// GetNetworkStorageGroupIscsiService returns an instance of the Network_Storage_Group_Iscsi SoftLayer service +func GetNetworkStorageGroupIscsiService(sess *session.Session) Network_Storage_Group_Iscsi { + return Network_Storage_Group_Iscsi{Session: sess} +} + +func (r Network_Storage_Group_Iscsi) Id(id int) Network_Storage_Group_Iscsi { + r.Options.Id = &id + return r +} + +func (r Network_Storage_Group_Iscsi) Mask(mask string) Network_Storage_Group_Iscsi { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Network_Storage_Group_Iscsi) Filter(filter string) Network_Storage_Group_Iscsi { + r.Options.Filter = filter + return r +} + +func (r Network_Storage_Group_Iscsi) Limit(limit int) Network_Storage_Group_Iscsi { + r.Options.Limit = &limit + return r +} + +func (r Network_Storage_Group_Iscsi) Offset(offset int) Network_Storage_Group_Iscsi { + r.Options.Offset = &offset + return r +} + +// Use this method to attach a SoftLayer_Network_Storage_Allowed_Host object to this group. This will automatically enable access from this host to any SoftLayer_Network_Storage volumes currently attached to this group. +func (r Network_Storage_Group_Iscsi) AddAllowedHost(allowedHost *datatypes.Network_Storage_Allowed_Host) (resp bool, err error) { + params := []interface{}{ + allowedHost, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage_Group_Iscsi", "addAllowedHost", params, &r.Options, &resp) + return +} + +// Use this method to attach a SoftLayer_Network_Storage volume to this group. This will automatically enable access to this volume for any SoftLayer_Network_Storage_Allowed_Host objects currently attached to this group. +func (r Network_Storage_Group_Iscsi) AttachToVolume(volume *datatypes.Network_Storage) (resp bool, err error) { + params := []interface{}{ + volume, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage_Group_Iscsi", "attachToVolume", params, &r.Options, &resp) + return +} + +// no documentation yet +func (r Network_Storage_Group_Iscsi) CreateObject(templateObject *datatypes.Network_Storage_Group) (resp bool, err error) { + params := []interface{}{ + templateObject, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage_Group_Iscsi", "createObject", params, &r.Options, &resp) + return +} + +// no documentation yet +func (r Network_Storage_Group_Iscsi) DeleteObject() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Group_Iscsi", "deleteObject", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Network_Storage_Group_Iscsi) EditObject(templateObject *datatypes.Network_Storage_Group) (resp bool, err error) { + params := []interface{}{ + templateObject, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage_Group_Iscsi", "editObject", params, &r.Options, &resp) + return +} + +// Retrieve The SoftLayer_Account which owns this group. +func (r Network_Storage_Group_Iscsi) GetAccount() (resp datatypes.Account, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Group_Iscsi", "getAccount", nil, &r.Options, &resp) + return +} + +// Use this method to retrieve all network storage groups. +func (r Network_Storage_Group_Iscsi) GetAllObjects() (resp []datatypes.Network_Storage_Group, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Group_Iscsi", "getAllObjects", nil, &r.Options, &resp) + return +} + +// Retrieve The allowed hosts list for this group. +func (r Network_Storage_Group_Iscsi) GetAllowedHosts() (resp []datatypes.Network_Storage_Allowed_Host, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Group_Iscsi", "getAllowedHosts", nil, &r.Options, &resp) + return +} + +// Retrieve The network storage volumes this group is attached to. +func (r Network_Storage_Group_Iscsi) GetAttachedVolumes() (resp []datatypes.Network_Storage, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Group_Iscsi", "getAttachedVolumes", nil, &r.Options, &resp) + return +} + +// Retrieve The type which defines this group. +func (r Network_Storage_Group_Iscsi) GetGroupType() (resp datatypes.Network_Storage_Group_Type, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Group_Iscsi", "getGroupType", nil, &r.Options, &resp) + return +} + +// Use this method to retrieve network connection information for SoftLayer_Network_Storage_Allowed_Host objects within this group. +func (r Network_Storage_Group_Iscsi) GetNetworkConnectionDetails() (resp datatypes.Container_Network_Storage_NetworkConnectionInformation, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Group_Iscsi", "getNetworkConnectionDetails", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Network_Storage_Group_Iscsi) GetObject() (resp datatypes.Network_Storage_Group_Iscsi, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Group_Iscsi", "getObject", nil, &r.Options, &resp) + return +} + +// Retrieve The OS Type this group is configured for. +func (r Network_Storage_Group_Iscsi) GetOsType() (resp datatypes.Network_Storage_Iscsi_OS_Type, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Group_Iscsi", "getOsType", nil, &r.Options, &resp) + return +} + +// Retrieve The network resource this group is created on. +func (r Network_Storage_Group_Iscsi) GetServiceResource() (resp datatypes.Network_Service_Resource, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Group_Iscsi", "getServiceResource", nil, &r.Options, &resp) + return +} + +// Use this method to remove a SoftLayer_Network_Storage_Allowed_Host object from this group. This will automatically disable access from this host to any SoftLayer_Network_Storage volumes currently attached to this group. +func (r Network_Storage_Group_Iscsi) RemoveAllowedHost(allowedHost *datatypes.Network_Storage_Allowed_Host) (resp bool, err error) { + params := []interface{}{ + allowedHost, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage_Group_Iscsi", "removeAllowedHost", params, &r.Options, &resp) + return +} + +// Use this method to remove a SoftLayer_Network_Storage volume from this group. This will automatically disable access to this volume for any SoftLayer_Network_Storage_Allowed_Host objects currently attached to this group. +func (r Network_Storage_Group_Iscsi) RemoveFromVolume(volume *datatypes.Network_Storage) (resp bool, err error) { + params := []interface{}{ + volume, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage_Group_Iscsi", "removeFromVolume", params, &r.Options, &resp) + return +} + +// no documentation yet +type Network_Storage_Group_Nfs struct { + Session *session.Session + Options sl.Options +} + +// GetNetworkStorageGroupNfsService returns an instance of the Network_Storage_Group_Nfs SoftLayer service +func GetNetworkStorageGroupNfsService(sess *session.Session) Network_Storage_Group_Nfs { + return Network_Storage_Group_Nfs{Session: sess} +} + +func (r Network_Storage_Group_Nfs) Id(id int) Network_Storage_Group_Nfs { + r.Options.Id = &id + return r +} + +func (r Network_Storage_Group_Nfs) Mask(mask string) Network_Storage_Group_Nfs { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Network_Storage_Group_Nfs) Filter(filter string) Network_Storage_Group_Nfs { + r.Options.Filter = filter + return r +} + +func (r Network_Storage_Group_Nfs) Limit(limit int) Network_Storage_Group_Nfs { + r.Options.Limit = &limit + return r +} + +func (r Network_Storage_Group_Nfs) Offset(offset int) Network_Storage_Group_Nfs { + r.Options.Offset = &offset + return r +} + +// Use this method to attach a SoftLayer_Network_Storage_Allowed_Host object to this group. This will automatically enable access from this host to any SoftLayer_Network_Storage volumes currently attached to this group. +func (r Network_Storage_Group_Nfs) AddAllowedHost(allowedHost *datatypes.Network_Storage_Allowed_Host) (resp bool, err error) { + params := []interface{}{ + allowedHost, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage_Group_Nfs", "addAllowedHost", params, &r.Options, &resp) + return +} + +// Use this method to attach a SoftLayer_Network_Storage volume to this group. This will automatically enable access to this volume for any SoftLayer_Network_Storage_Allowed_Host objects currently attached to this group. +func (r Network_Storage_Group_Nfs) AttachToVolume(volume *datatypes.Network_Storage) (resp bool, err error) { + params := []interface{}{ + volume, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage_Group_Nfs", "attachToVolume", params, &r.Options, &resp) + return +} + +// no documentation yet +func (r Network_Storage_Group_Nfs) CreateObject(templateObject *datatypes.Network_Storage_Group) (resp bool, err error) { + params := []interface{}{ + templateObject, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage_Group_Nfs", "createObject", params, &r.Options, &resp) + return +} + +// no documentation yet +func (r Network_Storage_Group_Nfs) DeleteObject() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Group_Nfs", "deleteObject", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Network_Storage_Group_Nfs) EditObject(templateObject *datatypes.Network_Storage_Group) (resp bool, err error) { + params := []interface{}{ + templateObject, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage_Group_Nfs", "editObject", params, &r.Options, &resp) + return +} + +// Retrieve The SoftLayer_Account which owns this group. +func (r Network_Storage_Group_Nfs) GetAccount() (resp datatypes.Account, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Group_Nfs", "getAccount", nil, &r.Options, &resp) + return +} + +// Use this method to retrieve all network storage groups. +func (r Network_Storage_Group_Nfs) GetAllObjects() (resp []datatypes.Network_Storage_Group, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Group_Nfs", "getAllObjects", nil, &r.Options, &resp) + return +} + +// Retrieve The allowed hosts list for this group. +func (r Network_Storage_Group_Nfs) GetAllowedHosts() (resp []datatypes.Network_Storage_Allowed_Host, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Group_Nfs", "getAllowedHosts", nil, &r.Options, &resp) + return +} + +// Retrieve The network storage volumes this group is attached to. +func (r Network_Storage_Group_Nfs) GetAttachedVolumes() (resp []datatypes.Network_Storage, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Group_Nfs", "getAttachedVolumes", nil, &r.Options, &resp) + return +} + +// Retrieve The type which defines this group. +func (r Network_Storage_Group_Nfs) GetGroupType() (resp datatypes.Network_Storage_Group_Type, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Group_Nfs", "getGroupType", nil, &r.Options, &resp) + return +} + +// Use this method to retrieve network connection information for SoftLayer_Network_Storage_Allowed_Host objects within this group. +func (r Network_Storage_Group_Nfs) GetNetworkConnectionDetails() (resp datatypes.Container_Network_Storage_NetworkConnectionInformation, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Group_Nfs", "getNetworkConnectionDetails", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Network_Storage_Group_Nfs) GetObject() (resp datatypes.Network_Storage_Group_Nfs, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Group_Nfs", "getObject", nil, &r.Options, &resp) + return +} + +// Retrieve The OS Type this group is configured for. +func (r Network_Storage_Group_Nfs) GetOsType() (resp datatypes.Network_Storage_Iscsi_OS_Type, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Group_Nfs", "getOsType", nil, &r.Options, &resp) + return +} + +// Retrieve The network resource this group is created on. +func (r Network_Storage_Group_Nfs) GetServiceResource() (resp datatypes.Network_Service_Resource, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Group_Nfs", "getServiceResource", nil, &r.Options, &resp) + return +} + +// Use this method to remove a SoftLayer_Network_Storage_Allowed_Host object from this group. This will automatically disable access from this host to any SoftLayer_Network_Storage volumes currently attached to this group. +func (r Network_Storage_Group_Nfs) RemoveAllowedHost(allowedHost *datatypes.Network_Storage_Allowed_Host) (resp bool, err error) { + params := []interface{}{ + allowedHost, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage_Group_Nfs", "removeAllowedHost", params, &r.Options, &resp) + return +} + +// Use this method to remove a SoftLayer_Network_Storage volume from this group. This will automatically disable access to this volume for any SoftLayer_Network_Storage_Allowed_Host objects currently attached to this group. +func (r Network_Storage_Group_Nfs) RemoveFromVolume(volume *datatypes.Network_Storage) (resp bool, err error) { + params := []interface{}{ + volume, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage_Group_Nfs", "removeFromVolume", params, &r.Options, &resp) + return +} + +// no documentation yet +type Network_Storage_Group_Type struct { + Session *session.Session + Options sl.Options +} + +// GetNetworkStorageGroupTypeService returns an instance of the Network_Storage_Group_Type SoftLayer service +func GetNetworkStorageGroupTypeService(sess *session.Session) Network_Storage_Group_Type { + return Network_Storage_Group_Type{Session: sess} +} + +func (r Network_Storage_Group_Type) Id(id int) Network_Storage_Group_Type { + r.Options.Id = &id + return r +} + +func (r Network_Storage_Group_Type) Mask(mask string) Network_Storage_Group_Type { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Network_Storage_Group_Type) Filter(filter string) Network_Storage_Group_Type { + r.Options.Filter = filter + return r +} + +func (r Network_Storage_Group_Type) Limit(limit int) Network_Storage_Group_Type { + r.Options.Limit = &limit + return r +} + +func (r Network_Storage_Group_Type) Offset(offset int) Network_Storage_Group_Type { + r.Options.Offset = &offset + return r +} + +// Use this method to retrieve all storage group types available. +func (r Network_Storage_Group_Type) GetAllObjects() (resp []datatypes.Network_Storage_Group_Type, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Group_Type", "getAllObjects", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Network_Storage_Group_Type) GetObject() (resp datatypes.Network_Storage_Group_Type, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Group_Type", "getObject", nil, &r.Options, &resp) + return +} + +// no documentation yet +type Network_Storage_Hub_Cleversafe_Account struct { + Session *session.Session + Options sl.Options +} + +// GetNetworkStorageHubCleversafeAccountService returns an instance of the Network_Storage_Hub_Cleversafe_Account SoftLayer service +func GetNetworkStorageHubCleversafeAccountService(sess *session.Session) Network_Storage_Hub_Cleversafe_Account { + return Network_Storage_Hub_Cleversafe_Account{Session: sess} +} + +func (r Network_Storage_Hub_Cleversafe_Account) Id(id int) Network_Storage_Hub_Cleversafe_Account { + r.Options.Id = &id + return r +} + +func (r Network_Storage_Hub_Cleversafe_Account) Mask(mask string) Network_Storage_Hub_Cleversafe_Account { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Network_Storage_Hub_Cleversafe_Account) Filter(filter string) Network_Storage_Hub_Cleversafe_Account { + r.Options.Filter = filter + return r +} + +func (r Network_Storage_Hub_Cleversafe_Account) Limit(limit int) Network_Storage_Hub_Cleversafe_Account { + r.Options.Limit = &limit + return r +} + +func (r Network_Storage_Hub_Cleversafe_Account) Offset(offset int) Network_Storage_Hub_Cleversafe_Account { + r.Options.Offset = &offset + return r +} + +// Create credentials for an IBM Cloud Object Storage Account +func (r Network_Storage_Hub_Cleversafe_Account) CredentialCreate() (resp []datatypes.Network_Storage_Credential, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Hub_Cleversafe_Account", "credentialCreate", nil, &r.Options, &resp) + return +} + +// Delete a credential +func (r Network_Storage_Hub_Cleversafe_Account) CredentialDelete(credential *datatypes.Network_Storage_Credential) (resp bool, err error) { + params := []interface{}{ + credential, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage_Hub_Cleversafe_Account", "credentialDelete", params, &r.Options, &resp) + return +} + +// Retrieve SoftLayer account to which an IBM Cloud Object Storage account belongs to. +func (r Network_Storage_Hub_Cleversafe_Account) GetAccount() (resp datatypes.Account, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Hub_Cleversafe_Account", "getAccount", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Network_Storage_Hub_Cleversafe_Account) GetAllObjects() (resp []datatypes.Network_Storage_Hub_Cleversafe_Account, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Hub_Cleversafe_Account", "getAllObjects", nil, &r.Options, &resp) + return +} + +// Retrieve An associated parent billing item which is active. Includes billing items which are scheduled to be cancelled in the future. +func (r Network_Storage_Hub_Cleversafe_Account) GetBillingItem() (resp datatypes.Billing_Item, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Hub_Cleversafe_Account", "getBillingItem", nil, &r.Options, &resp) + return +} + +// Get buckets +func (r Network_Storage_Hub_Cleversafe_Account) GetBuckets() (resp []datatypes.Container_Network_Storage_Hub_ObjectStorage_Bucket, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Hub_Cleversafe_Account", "getBuckets", nil, &r.Options, &resp) + return +} + +// Retrieve An associated parent billing item which has been cancelled. +func (r Network_Storage_Hub_Cleversafe_Account) GetCancelledBillingItem() (resp datatypes.Billing_Item, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Hub_Cleversafe_Account", "getCancelledBillingItem", nil, &r.Options, &resp) + return +} + +// Returns the capacity usage for an IBM Cloud Object Storage account. +func (r Network_Storage_Hub_Cleversafe_Account) GetCapacityUsage() (resp int, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Hub_Cleversafe_Account", "getCapacityUsage", nil, &r.Options, &resp) + return +} + +// Returns a collection of valid storage policies to be used during bucket creation. +func (r Network_Storage_Hub_Cleversafe_Account) GetCloudObjectStoragePolicy() (resp []datatypes.Container_Network_Storage_Hub_ObjectStorage_Policy, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Hub_Cleversafe_Account", "getCloudObjectStoragePolicy", nil, &r.Options, &resp) + return +} + +// Returns credential limits for this IBM Cloud Object Storage account. +func (r Network_Storage_Hub_Cleversafe_Account) GetCredentialLimit() (resp int, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Hub_Cleversafe_Account", "getCredentialLimit", nil, &r.Options, &resp) + return +} + +// Retrieve Credentials used for generating an AWS signature. Max of 2. +func (r Network_Storage_Hub_Cleversafe_Account) GetCredentials() (resp []datatypes.Network_Storage_Credential, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Hub_Cleversafe_Account", "getCredentials", nil, &r.Options, &resp) + return +} + +// Returns a collection of endpoint URLs available to this IBM Cloud Object Storage account. +func (r Network_Storage_Hub_Cleversafe_Account) GetEndpoints() (resp []datatypes.Container_Network_Storage_Hub_ObjectStorage_Endpoint, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Hub_Cleversafe_Account", "getEndpoints", nil, &r.Options, &resp) + return +} + +// Retrieve Provides an interface to various metrics relating to the usage of an IBM Cloud Object Storage account. +func (r Network_Storage_Hub_Cleversafe_Account) GetMetricTrackingObject() (resp datatypes.Metric_Tracking_Object, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Hub_Cleversafe_Account", "getMetricTrackingObject", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Network_Storage_Hub_Cleversafe_Account) GetObject() (resp datatypes.Network_Storage_Hub_Cleversafe_Account, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Hub_Cleversafe_Account", "getObject", nil, &r.Options, &resp) + return +} + +// Retrieve Unique identifier for an IBM Cloud Object Storage account. +func (r Network_Storage_Hub_Cleversafe_Account) GetUuid() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Hub_Cleversafe_Account", "getUuid", nil, &r.Options, &resp) + return +} + +// no documentation yet +type Network_Storage_Hub_Swift_Share struct { + Session *session.Session + Options sl.Options +} + +// GetNetworkStorageHubSwiftShareService returns an instance of the Network_Storage_Hub_Swift_Share SoftLayer service +func GetNetworkStorageHubSwiftShareService(sess *session.Session) Network_Storage_Hub_Swift_Share { + return Network_Storage_Hub_Swift_Share{Session: sess} +} + +func (r Network_Storage_Hub_Swift_Share) Id(id int) Network_Storage_Hub_Swift_Share { + r.Options.Id = &id + return r +} + +func (r Network_Storage_Hub_Swift_Share) Mask(mask string) Network_Storage_Hub_Swift_Share { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Network_Storage_Hub_Swift_Share) Filter(filter string) Network_Storage_Hub_Swift_Share { + r.Options.Filter = filter + return r +} + +func (r Network_Storage_Hub_Swift_Share) Limit(limit int) Network_Storage_Hub_Swift_Share { + r.Options.Limit = &limit + return r +} + +func (r Network_Storage_Hub_Swift_Share) Offset(offset int) Network_Storage_Hub_Swift_Share { + r.Options.Offset = &offset + return r +} + +// This method returns a collection of container objects. +func (r Network_Storage_Hub_Swift_Share) GetContainerList() (resp []datatypes.Container_Network_Storage_Hub_ObjectStorage_Folder, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Hub_Swift_Share", "getContainerList", nil, &r.Options, &resp) + return +} + +// This method returns a file object given the file's full name. +func (r Network_Storage_Hub_Swift_Share) GetFile(fileName *string, container *string) (resp datatypes.Container_Network_Storage_Hub_ObjectStorage_File, err error) { + params := []interface{}{ + fileName, + container, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage_Hub_Swift_Share", "getFile", params, &r.Options, &resp) + return +} + +// This method returns a collection of the file objects within a container and the given path. +func (r Network_Storage_Hub_Swift_Share) GetFileList(container *string, path *string) (resp []datatypes.Container_Utility_File_Entity, err error) { + params := []interface{}{ + container, + path, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage_Hub_Swift_Share", "getFileList", params, &r.Options, &resp) + return +} + +// The iscsi data type provides access to additional information about an iscsi volume such as the snapshot capacity limit and replication partners. +type Network_Storage_Iscsi struct { + Session *session.Session + Options sl.Options +} + +// GetNetworkStorageIscsiService returns an instance of the Network_Storage_Iscsi SoftLayer service +func GetNetworkStorageIscsiService(sess *session.Session) Network_Storage_Iscsi { + return Network_Storage_Iscsi{Session: sess} +} + +func (r Network_Storage_Iscsi) Id(id int) Network_Storage_Iscsi { + r.Options.Id = &id + return r +} + +func (r Network_Storage_Iscsi) Mask(mask string) Network_Storage_Iscsi { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Network_Storage_Iscsi) Filter(filter string) Network_Storage_Iscsi { + r.Options.Filter = filter + return r +} + +func (r Network_Storage_Iscsi) Limit(limit int) Network_Storage_Iscsi { + r.Options.Limit = &limit + return r +} + +func (r Network_Storage_Iscsi) Offset(offset int) Network_Storage_Iscsi { + r.Options.Offset = &offset + return r +} + +// This method is used to modify the access control list for this Storage volume. The SoftLayer_Hardware objects which have been allowed access to this storage will be listed in the allowedHardware property of this storage volume. +func (r Network_Storage_Iscsi) AllowAccessFromHardware(hardwareObjectTemplate *datatypes.Hardware) (resp bool, err error) { + params := []interface{}{ + hardwareObjectTemplate, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage_Iscsi", "allowAccessFromHardware", params, &r.Options, &resp) + return +} + +// no documentation yet +func (r Network_Storage_Iscsi) AllowAccessFromHardwareList(hardwareObjectTemplates []datatypes.Hardware) (resp bool, err error) { + params := []interface{}{ + hardwareObjectTemplates, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage_Iscsi", "allowAccessFromHardwareList", params, &r.Options, &resp) + return +} + +// This method is used to modify the access control list for this Storage volume. The [[SoftLayer_Hardware|SoftLayer_Virtual_Guest|SoftLayer_Network_Subnet|SoftLayer_Network_Subnet_IpAddress]] objects which have been allowed access to this storage will be listed in the [[allowedHardware|allowedVirtualGuests|allowedSubnets|allowedIpAddresses]] property of this storage volume. +func (r Network_Storage_Iscsi) AllowAccessFromHost(typeClassName *string, hostId *int) (resp datatypes.Network_Storage_Allowed_Host, err error) { + params := []interface{}{ + typeClassName, + hostId, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage_Iscsi", "allowAccessFromHost", params, &r.Options, &resp) + return +} + +// This method is used to modify the access control list for this Storage volume. The [[SoftLayer_Hardware|SoftLayer_Virtual_Guest|SoftLayer_Network_Subnet|SoftLayer_Network_Subnet_IpAddress]] objects which have been allowed access to this storage volume will be listed in the [[allowedHardware|allowedVirtualGuests|allowedSubnets|allowedIpAddresses]] property of this storage volume. +func (r Network_Storage_Iscsi) AllowAccessFromHostList(hostObjectTemplates []datatypes.Container_Network_Storage_Host) (resp []datatypes.Network_Storage_Allowed_Host, err error) { + params := []interface{}{ + hostObjectTemplates, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage_Iscsi", "allowAccessFromHostList", params, &r.Options, &resp) + return +} + +// no documentation yet +func (r Network_Storage_Iscsi) AllowAccessFromIpAddress(ipAddressObjectTemplate *datatypes.Network_Subnet_IpAddress) (resp bool, err error) { + params := []interface{}{ + ipAddressObjectTemplate, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage_Iscsi", "allowAccessFromIpAddress", params, &r.Options, &resp) + return +} + +// no documentation yet +func (r Network_Storage_Iscsi) AllowAccessFromIpAddressList(ipAddressObjectTemplates []datatypes.Network_Subnet_IpAddress) (resp bool, err error) { + params := []interface{}{ + ipAddressObjectTemplates, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage_Iscsi", "allowAccessFromIpAddressList", params, &r.Options, &resp) + return +} + +// This method is used to modify the access control list for this Storage volume. The SoftLayer_Network_Subnet objects which have been allowed access to this storage will be listed in the allowedHardware property of this storage volume. +func (r Network_Storage_Iscsi) AllowAccessFromSubnet(subnetObjectTemplate *datatypes.Network_Subnet) (resp bool, err error) { + params := []interface{}{ + subnetObjectTemplate, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage_Iscsi", "allowAccessFromSubnet", params, &r.Options, &resp) + return +} + +// no documentation yet +func (r Network_Storage_Iscsi) AllowAccessFromSubnetList(subnetObjectTemplates []datatypes.Network_Subnet) (resp bool, err error) { + params := []interface{}{ + subnetObjectTemplates, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage_Iscsi", "allowAccessFromSubnetList", params, &r.Options, &resp) + return +} + +// This method is used to modify the access control list for this Storage volume. The SoftLayer_Virtual_Guest objects which have been allowed access to this storage will be listed in the allowedVirtualGuests property of this storage volume. +func (r Network_Storage_Iscsi) AllowAccessFromVirtualGuest(virtualGuestObjectTemplate *datatypes.Virtual_Guest) (resp bool, err error) { + params := []interface{}{ + virtualGuestObjectTemplate, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage_Iscsi", "allowAccessFromVirtualGuest", params, &r.Options, &resp) + return +} + +// This method is used to modify the access control list for this Storage volume. The SoftLayer_Virtual_Guest objects which have been allowed access to this storage will be listed in the allowedVirtualGuests property of this storage volume. +func (r Network_Storage_Iscsi) AllowAccessFromVirtualGuestList(virtualGuestObjectTemplates []datatypes.Virtual_Guest) (resp bool, err error) { + params := []interface{}{ + virtualGuestObjectTemplates, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage_Iscsi", "allowAccessFromVirtualGuestList", params, &r.Options, &resp) + return +} + +// This method is used to modify the access control list for this Storage replicant volume. The SoftLayer_Hardware objects which have been allowed access to this storage will be listed in the allowedHardware property of this storage replicant volume. +func (r Network_Storage_Iscsi) AllowAccessToReplicantFromHardware(hardwareObjectTemplate *datatypes.Hardware) (resp bool, err error) { + params := []interface{}{ + hardwareObjectTemplate, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage_Iscsi", "allowAccessToReplicantFromHardware", params, &r.Options, &resp) + return +} + +// This method is used to modify the access control list for this Storage replica volume. The SoftLayer_Hardware objects which have been allowed access to this storage will be listed in the allowedHardware property of this storage replica volume. +func (r Network_Storage_Iscsi) AllowAccessToReplicantFromHardwareList(hardwareObjectTemplates []datatypes.Hardware) (resp bool, err error) { + params := []interface{}{ + hardwareObjectTemplates, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage_Iscsi", "allowAccessToReplicantFromHardwareList", params, &r.Options, &resp) + return +} + +// no documentation yet +func (r Network_Storage_Iscsi) AllowAccessToReplicantFromIpAddress(ipAddressObjectTemplate *datatypes.Network_Subnet_IpAddress) (resp bool, err error) { + params := []interface{}{ + ipAddressObjectTemplate, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage_Iscsi", "allowAccessToReplicantFromIpAddress", params, &r.Options, &resp) + return +} + +// This method is used to modify the access control list for this Storage volume. The SoftLayer_Network_Subnet_IpAddress objects which have been allowed access to this storage will be listed in the allowedVirtualGuests property of this storage volume. +func (r Network_Storage_Iscsi) AllowAccessToReplicantFromIpAddressList(ipAddressObjectTemplates []datatypes.Network_Subnet_IpAddress) (resp bool, err error) { + params := []interface{}{ + ipAddressObjectTemplates, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage_Iscsi", "allowAccessToReplicantFromIpAddressList", params, &r.Options, &resp) + return +} + +// This method is used to modify the access control list for this Storage replicant volume. The SoftLayer_Network_Subnet objects which have been allowed access to this storage will be listed in the allowedHardware property of this storage replicant volume. +func (r Network_Storage_Iscsi) AllowAccessToReplicantFromSubnet(subnetObjectTemplate *datatypes.Network_Subnet) (resp bool, err error) { + params := []interface{}{ + subnetObjectTemplate, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage_Iscsi", "allowAccessToReplicantFromSubnet", params, &r.Options, &resp) + return +} + +// This method is used to modify the access control list for this Storage volume's replica. The SoftLayer_Network_Subnet objects which have been allowed access to this storage volume's replica will be listed in the allowedReplicationSubnets property of this storage volume. +func (r Network_Storage_Iscsi) AllowAccessToReplicantFromSubnetList(subnetObjectTemplates []datatypes.Network_Subnet) (resp bool, err error) { + params := []interface{}{ + subnetObjectTemplates, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage_Iscsi", "allowAccessToReplicantFromSubnetList", params, &r.Options, &resp) + return +} + +// This method is used to modify the access control list for this Storage replicant volume. The SoftLayer_Virtual_Guest objects which have been allowed access to this storage will be listed in the allowedVirtualGuests property of this storage replicant volume. +func (r Network_Storage_Iscsi) AllowAccessToReplicantFromVirtualGuest(virtualGuestObjectTemplate *datatypes.Virtual_Guest) (resp bool, err error) { + params := []interface{}{ + virtualGuestObjectTemplate, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage_Iscsi", "allowAccessToReplicantFromVirtualGuest", params, &r.Options, &resp) + return +} + +// This method is used to modify the access control list for this Storage volume. The SoftLayer_Virtual_Guest objects which have been allowed access to this storage will be listed in the allowedVirtualGuests property of this storage volume. +func (r Network_Storage_Iscsi) AllowAccessToReplicantFromVirtualGuestList(virtualGuestObjectTemplates []datatypes.Virtual_Guest) (resp bool, err error) { + params := []interface{}{ + virtualGuestObjectTemplates, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage_Iscsi", "allowAccessToReplicantFromVirtualGuestList", params, &r.Options, &resp) + return +} + +// This method will assign an existing credential to the current volume. The credential must have been created using the 'addNewCredential' method. The volume type must support an additional credential. +func (r Network_Storage_Iscsi) AssignCredential(username *string) (resp bool, err error) { + params := []interface{}{ + username, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage_Iscsi", "assignCredential", params, &r.Options, &resp) + return +} + +// This method will set up a new credential for the remote storage volume. The storage volume must support an additional credential. Once created, the credential will be automatically assigned to the current volume. If there are no volumes assigned to the credential it will be automatically deleted. +func (r Network_Storage_Iscsi) AssignNewCredential(typ *string) (resp datatypes.Network_Storage_Credential, err error) { + params := []interface{}{ + typ, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage_Iscsi", "assignNewCredential", params, &r.Options, &resp) + return +} + +// The method will change the password for the given Storage/Virtual Server Storage account. +func (r Network_Storage_Iscsi) ChangePassword(username *string, currentPassword *string, newPassword *string) (resp bool, err error) { + params := []interface{}{ + username, + currentPassword, + newPassword, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage_Iscsi", "changePassword", params, &r.Options, &resp) + return +} + +// {{CloudLayerOnlyMethod}} +// +// collectBandwidth() Retrieve the bandwidth usage for the current billing cycle. +func (r Network_Storage_Iscsi) CollectBandwidth(typ *string, startDate *datatypes.Time, endDate *datatypes.Time) (resp uint, err error) { + params := []interface{}{ + typ, + startDate, + endDate, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage_Iscsi", "collectBandwidth", params, &r.Options, &resp) + return +} + +// {{CloudLayerOnlyMethod}} +// +// collectBytesUsed() retrieves the number of bytes capacity currently in use on a Storage account. +func (r Network_Storage_Iscsi) CollectBytesUsed() (resp uint, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Iscsi", "collectBytesUsed", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Network_Storage_Iscsi) CreateFolder(folder *string) (resp bool, err error) { + params := []interface{}{ + folder, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage_Iscsi", "createFolder", params, &r.Options, &resp) + return +} + +// no documentation yet +func (r Network_Storage_Iscsi) CreateSnapshot(notes *string) (resp datatypes.Network_Storage, err error) { + params := []interface{}{ + notes, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage_Iscsi", "createSnapshot", params, &r.Options, &resp) + return +} + +// {{CloudLayerOnlyMethod}} Delete all files within a Storage account. Depending on the type of Storage account, Deleting either deletes files permanently or sends files to your account's recycle bin. +// +// Currently, Virtual Server storage is the only type of Storage account that sends files to a recycle bin when deleted. When called against a Virtual Server storage account , this method also determines if the files are in the account's recycle bin. If the files exist in the recycle bin, then they are permanently deleted. +// +// Please note, files can not be restored once they are permanently deleted. +func (r Network_Storage_Iscsi) DeleteAllFiles() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Iscsi", "deleteAllFiles", nil, &r.Options, &resp) + return +} + +// {{CloudLayerOnlyMethod}} Delete an individual file within a Storage account. Depending on the type of Storage account, Deleting a file either deletes the file permanently or sends the file to your account's recycle bin. +// +// Currently, Virtual Server storage is the only type of Storage account that sends files to a recycle bin when deleted. When called against a Virtual Server storage account , this method also determines if the file is in the account's recycle bin. If the file exist in the recycle bin, then it is permanently deleted. +// +// Please note, a file can not be restored once it is permanently deleted. +func (r Network_Storage_Iscsi) DeleteFile(fileId *string) (resp bool, err error) { + params := []interface{}{ + fileId, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage_Iscsi", "deleteFile", params, &r.Options, &resp) + return +} + +// {{CloudLayerOnlyMethod}} Delete multiple files within a Storage account. Depending on the type of Storage account, Deleting either deletes files permanently or sends files to your account's recycle bin. +// +// Currently, Virtual Server storage is the only type of Storage account that sends files to a recycle bin when deleted. When called against a Virtual Server storage account , this method also determines if the files are in the account's recycle bin. If the files exist in the recycle bin, then they are permanently deleted. +// +// Please note, files can not be restored once they are permanently deleted. +func (r Network_Storage_Iscsi) DeleteFiles(fileIds []string) (resp bool, err error) { + params := []interface{}{ + fileIds, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage_Iscsi", "deleteFiles", params, &r.Options, &resp) + return +} + +// no documentation yet +func (r Network_Storage_Iscsi) DeleteFolder(folder *string) (resp bool, err error) { + params := []interface{}{ + folder, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage_Iscsi", "deleteFolder", params, &r.Options, &resp) + return +} + +// Delete a network storage volume. '''This cannot be undone.''' At this time only network storage snapshots may be deleted with this method. +// +// ''deleteObject'' returns Boolean ''true'' on successful deletion or ''false'' if it was unable to remove a volume; +func (r Network_Storage_Iscsi) DeleteObject() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Iscsi", "deleteObject", nil, &r.Options, &resp) + return +} + +// This method is not valid for Legacy iSCSI Storage Volumes. +// +// Disable scheduled snapshots of this storage volume. Scheduling options include HOURLY, DAILY and WEEKLY schedules. +func (r Network_Storage_Iscsi) DisableSnapshots(scheduleType *string) (resp bool, err error) { + params := []interface{}{ + scheduleType, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage_Iscsi", "disableSnapshots", params, &r.Options, &resp) + return +} + +// {{CloudLayerOnlyMethod}} Download a file from a Storage account. This method returns a file's details including the file's raw content. +func (r Network_Storage_Iscsi) DownloadFile(fileId *string) (resp datatypes.Container_Utility_File_Entity, err error) { + params := []interface{}{ + fileId, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage_Iscsi", "downloadFile", params, &r.Options, &resp) + return +} + +// This method will change the password of a credential created using the 'addNewCredential' method. If the credential exists on multiple storage volumes it will change for those volumes as well. +func (r Network_Storage_Iscsi) EditCredential(username *string, newPassword *string) (resp bool, err error) { + params := []interface{}{ + username, + newPassword, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage_Iscsi", "editCredential", params, &r.Options, &resp) + return +} + +// The password and/or notes may be modified for the Storage service except evault passwords and notes. +func (r Network_Storage_Iscsi) EditObject(templateObject *datatypes.Network_Storage) (resp bool, err error) { + params := []interface{}{ + templateObject, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage_Iscsi", "editObject", params, &r.Options, &resp) + return +} + +// This method is not valid for Legacy iSCSI Storage Volumes. +// +// Enable scheduled snapshots of this storage volume. Scheduling options include HOURLY, DAILY and WEEKLY schedules. For HOURLY schedules, provide relevant data for $scheduleType, $retentionCount and $minute. For DAILY schedules, provide relevant data for $scheduleType, $retentionCount, $minute, and $hour. For WEEKLY schedules, provide relevant data for all parameters of this method. +func (r Network_Storage_Iscsi) EnableSnapshots(scheduleType *string, retentionCount *int, minute *int, hour *int, dayOfWeek *string) (resp bool, err error) { + params := []interface{}{ + scheduleType, + retentionCount, + minute, + hour, + dayOfWeek, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage_Iscsi", "enableSnapshots", params, &r.Options, &resp) + return +} + +// Failback from a volume replicant. In order to failback the volume must have already been failed over to a replicant. +func (r Network_Storage_Iscsi) FailbackFromReplicant() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Iscsi", "failbackFromReplicant", nil, &r.Options, &resp) + return +} + +// Failover to a volume replicant. During the time which the replicant is in use the local nas volume will not be available. +func (r Network_Storage_Iscsi) FailoverToReplicant(replicantId *int) (resp bool, err error) { + params := []interface{}{ + replicantId, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage_Iscsi", "failoverToReplicant", params, &r.Options, &resp) + return +} + +// Retrieve The account that a Storage services belongs to. +func (r Network_Storage_Iscsi) GetAccount() (resp datatypes.Account, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Iscsi", "getAccount", nil, &r.Options, &resp) + return +} + +// Retrieve Other usernames and passwords associated with a Storage volume. +func (r Network_Storage_Iscsi) GetAccountPassword() (resp datatypes.Account_Password, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Iscsi", "getAccountPassword", nil, &r.Options, &resp) + return +} + +// Retrieve The currently active transactions on a network storage volume. +func (r Network_Storage_Iscsi) GetActiveTransactions() (resp []datatypes.Provisioning_Version1_Transaction, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Iscsi", "getActiveTransactions", nil, &r.Options, &resp) + return +} + +// {{CloudLayerOnlyMethod}} Retrieve details such as id, name, size, create date for all files in a Storage account's root directory. This does not download file content. +func (r Network_Storage_Iscsi) GetAllFiles() (resp []datatypes.Container_Utility_File_Entity, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Iscsi", "getAllFiles", nil, &r.Options, &resp) + return +} + +// {{CloudLayerOnlyMethod}} Retrieve details such as id, name, size, create date for all files matching the filter's criteria in a Storage account's root directory. This does not download file content. +func (r Network_Storage_Iscsi) GetAllFilesByFilter(filter *datatypes.Container_Utility_File_Entity) (resp []datatypes.Container_Utility_File_Entity, err error) { + params := []interface{}{ + filter, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage_Iscsi", "getAllFilesByFilter", params, &r.Options, &resp) + return +} + +// This method retrieves a list of SoftLayer_Hardware that can be authorized to this SoftLayer_Network_Storage. +func (r Network_Storage_Iscsi) GetAllowableHardware(filterHostname *string) (resp []datatypes.Hardware, err error) { + params := []interface{}{ + filterHostname, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage_Iscsi", "getAllowableHardware", params, &r.Options, &resp) + return +} + +// This method retrieves a list of SoftLayer_Network_Subnet_IpAddress that can be authorized to this SoftLayer_Network_Storage. +func (r Network_Storage_Iscsi) GetAllowableIpAddresses(subnetId *int, filterIpAddress *string) (resp []datatypes.Network_Subnet_IpAddress, err error) { + params := []interface{}{ + subnetId, + filterIpAddress, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage_Iscsi", "getAllowableIpAddresses", params, &r.Options, &resp) + return +} + +// This method retrieves a list of SoftLayer_Network_Subnet that can be authorized to this SoftLayer_Network_Storage. +func (r Network_Storage_Iscsi) GetAllowableSubnets(filterNetworkIdentifier *string) (resp []datatypes.Network_Subnet, err error) { + params := []interface{}{ + filterNetworkIdentifier, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage_Iscsi", "getAllowableSubnets", params, &r.Options, &resp) + return +} + +// This method retrieves a list of SoftLayer_Virtual_Guest that can be authorized to this SoftLayer_Network_Storage. +func (r Network_Storage_Iscsi) GetAllowableVirtualGuests(filterHostname *string) (resp []datatypes.Virtual_Guest, err error) { + params := []interface{}{ + filterHostname, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage_Iscsi", "getAllowableVirtualGuests", params, &r.Options, &resp) + return +} + +// Retrieve The SoftLayer_Hardware objects which are allowed access to this storage volume. +func (r Network_Storage_Iscsi) GetAllowedHardware() (resp []datatypes.Hardware, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Iscsi", "getAllowedHardware", nil, &r.Options, &resp) + return +} + +// Retrieves the total number of allowed hosts limit per volume. +func (r Network_Storage_Iscsi) GetAllowedHostsLimit() (resp int, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Iscsi", "getAllowedHostsLimit", nil, &r.Options, &resp) + return +} + +// Retrieve The SoftLayer_Network_Subnet_IpAddress objects which are allowed access to this storage volume. +func (r Network_Storage_Iscsi) GetAllowedIpAddresses() (resp []datatypes.Network_Subnet_IpAddress, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Iscsi", "getAllowedIpAddresses", nil, &r.Options, &resp) + return +} + +// Retrieve The SoftLayer_Hardware objects which are allowed access to this storage volume's Replicant. +func (r Network_Storage_Iscsi) GetAllowedReplicationHardware() (resp []datatypes.Hardware, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Iscsi", "getAllowedReplicationHardware", nil, &r.Options, &resp) + return +} + +// Retrieve The SoftLayer_Network_Subnet_IpAddress objects which are allowed access to this storage volume's Replicant. +func (r Network_Storage_Iscsi) GetAllowedReplicationIpAddresses() (resp []datatypes.Network_Subnet_IpAddress, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Iscsi", "getAllowedReplicationIpAddresses", nil, &r.Options, &resp) + return +} + +// Retrieve The SoftLayer_Network_Subnet objects which are allowed access to this storage volume's Replicant. +func (r Network_Storage_Iscsi) GetAllowedReplicationSubnets() (resp []datatypes.Network_Subnet, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Iscsi", "getAllowedReplicationSubnets", nil, &r.Options, &resp) + return +} + +// Retrieve The SoftLayer_Hardware objects which are allowed access to this storage volume's Replicant. +func (r Network_Storage_Iscsi) GetAllowedReplicationVirtualGuests() (resp []datatypes.Virtual_Guest, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Iscsi", "getAllowedReplicationVirtualGuests", nil, &r.Options, &resp) + return +} + +// Retrieve The SoftLayer_Network_Subnet objects which are allowed access to this storage volume. +func (r Network_Storage_Iscsi) GetAllowedSubnets() (resp []datatypes.Network_Subnet, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Iscsi", "getAllowedSubnets", nil, &r.Options, &resp) + return +} + +// Retrieve The SoftLayer_Virtual_Guest objects which are allowed access to this storage volume. +func (r Network_Storage_Iscsi) GetAllowedVirtualGuests() (resp []datatypes.Virtual_Guest, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Iscsi", "getAllowedVirtualGuests", nil, &r.Options, &resp) + return +} + +// Retrieve The current billing item for a Storage volume. +func (r Network_Storage_Iscsi) GetBillingItem() (resp datatypes.Billing_Item, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Iscsi", "getBillingItem", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Network_Storage_Iscsi) GetBillingItemCategory() (resp datatypes.Product_Item_Category, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Iscsi", "getBillingItemCategory", nil, &r.Options, &resp) + return +} + +// Retrieve network storage accounts by username and storage account type. Use this method if you wish to retrieve a storage record by username rather than by id. The ''type'' parameter must correspond to one of the available ''nasType'' values in the SoftLayer_Network_Storage data type. +func (r Network_Storage_Iscsi) GetByUsername(username *string, typ *string) (resp []datatypes.Network_Storage, err error) { + params := []interface{}{ + username, + typ, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage_Iscsi", "getByUsername", params, &r.Options, &resp) + return +} + +// Retrieve The amount of space used by the volume, in bytes. +func (r Network_Storage_Iscsi) GetBytesUsed() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Iscsi", "getBytesUsed", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Network_Storage_Iscsi) GetCdnUrls() (resp []datatypes.Container_Network_Storage_Hub_ObjectStorage_ContentDeliveryUrl, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Iscsi", "getCdnUrls", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Network_Storage_Iscsi) GetClusterResource() (resp datatypes.Network_Service_Resource, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Iscsi", "getClusterResource", nil, &r.Options, &resp) + return +} + +// Retrieve The schedule id which was executed to create a snapshot. +func (r Network_Storage_Iscsi) GetCreationScheduleId() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Iscsi", "getCreationScheduleId", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Network_Storage_Iscsi) GetCredentials() (resp []datatypes.Network_Storage_Credential, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Iscsi", "getCredentials", nil, &r.Options, &resp) + return +} + +// Retrieve The Daily Schedule which is associated with this network storage volume. +func (r Network_Storage_Iscsi) GetDailySchedule() (resp datatypes.Network_Storage_Schedule, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Iscsi", "getDailySchedule", nil, &r.Options, &resp) + return +} + +// Retrieve The events which have taken place on a network storage volume. +func (r Network_Storage_Iscsi) GetEvents() (resp []datatypes.Network_Storage_Event, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Iscsi", "getEvents", nil, &r.Options, &resp) + return +} + +// +// +// +func (r Network_Storage_Iscsi) GetFileBlockEncryptedLocations() (resp []datatypes.Location, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Iscsi", "getFileBlockEncryptedLocations", nil, &r.Options, &resp) + return +} + +// {{CloudLayerOnlyMethod}} Retrieve details such as id, name, size, create date of a file within a Storage account. This does not download file content. +func (r Network_Storage_Iscsi) GetFileByIdentifier(identifier *string) (resp datatypes.Container_Utility_File_Entity, err error) { + params := []interface{}{ + identifier, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage_Iscsi", "getFileByIdentifier", params, &r.Options, &resp) + return +} + +// {{CloudLayerOnlyMethod}} Retrieve the file number of files in a Virtual Server Storage account's root directory. This does not include the files stored in the recycle bin. +func (r Network_Storage_Iscsi) GetFileCount() (resp int, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Iscsi", "getFileCount", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Network_Storage_Iscsi) GetFileList(folder *string, path *string) (resp []datatypes.Container_Utility_File_Entity, err error) { + params := []interface{}{ + folder, + path, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage_Iscsi", "getFileList", params, &r.Options, &resp) + return +} + +// Retrieve Retrieves the NFS Network Mount Address Name for a given File Storage Volume. +func (r Network_Storage_Iscsi) GetFileNetworkMountAddress() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Iscsi", "getFileNetworkMountAddress", nil, &r.Options, &resp) + return +} + +// {{CloudLayerOnlyMethod}} Retrieve the number of files pending deletion in a Storage account's recycle bin. Files in an account's recycle bin may either be restored to the account's root directory or permanently deleted. +func (r Network_Storage_Iscsi) GetFilePendingDeleteCount() (resp int, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Iscsi", "getFilePendingDeleteCount", nil, &r.Options, &resp) + return +} + +// {{CloudLayerOnlyMethod}} Retrieve a list of files that are pending deletion in a Storage account's recycle bin. Files in an account's recycle bin may either be restored to the account's root directory or permanently deleted. This method does not download file content. +func (r Network_Storage_Iscsi) GetFilesPendingDelete() (resp []datatypes.Container_Utility_File_Entity, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Iscsi", "getFilesPendingDelete", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Network_Storage_Iscsi) GetFolderList() (resp []datatypes.Container_Network_Storage_Hub_ObjectStorage_Folder, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Iscsi", "getFolderList", nil, &r.Options, &resp) + return +} + +// {{CloudLayerOnlyMethod}} +// +// getGraph() retrieves a Storage account's usage and returns a PNG graph image, title, and the minimum and maximum dates included in the graphed date range. Virtual Server storage accounts can also graph upload and download bandwidth usage. +func (r Network_Storage_Iscsi) GetGraph(startDate *datatypes.Time, endDate *datatypes.Time, typ *string) (resp datatypes.Container_Bandwidth_GraphOutputs, err error) { + params := []interface{}{ + startDate, + endDate, + typ, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage_Iscsi", "getGraph", params, &r.Options, &resp) + return +} + +// Retrieve When applicable, the hardware associated with a Storage service. +func (r Network_Storage_Iscsi) GetHardware() (resp datatypes.Hardware, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Iscsi", "getHardware", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Network_Storage_Iscsi) GetHasEncryptionAtRest() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Iscsi", "getHasEncryptionAtRest", nil, &r.Options, &resp) + return +} + +// Retrieve The Hourly Schedule which is associated with this network storage volume. +func (r Network_Storage_Iscsi) GetHourlySchedule() (resp datatypes.Network_Storage_Schedule, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Iscsi", "getHourlySchedule", nil, &r.Options, &resp) + return +} + +// Retrieve The maximum number of IOPs selected for this volume. +func (r Network_Storage_Iscsi) GetIops() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Iscsi", "getIops", nil, &r.Options, &resp) + return +} + +// Retrieve Determines whether a volume is ready to order snapshot space, or, if snapshot space is already available, to assign a snapshot schedule, or to take a manual snapshot. +func (r Network_Storage_Iscsi) GetIsReadyForSnapshot() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Iscsi", "getIsReadyForSnapshot", nil, &r.Options, &resp) + return +} + +// Retrieve Determines whether a volume is ready to have Hosts authorized to access it. This does not indicate whether another operation may be blocking, please refer to this volume's volumeStatus property for details. +func (r Network_Storage_Iscsi) GetIsReadyToMount() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Iscsi", "getIsReadyToMount", nil, &r.Options, &resp) + return +} + +// Retrieve Relationship between a container volume and iSCSI LUNs. +func (r Network_Storage_Iscsi) GetIscsiLuns() (resp []datatypes.Network_Storage, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Iscsi", "getIscsiLuns", nil, &r.Options, &resp) + return +} + +// Retrieve The ID of the LUN volume. +func (r Network_Storage_Iscsi) GetLunId() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Iscsi", "getLunId", nil, &r.Options, &resp) + return +} + +// Retrieve The manually-created snapshots associated with this SoftLayer_Network_Storage volume. Does not support pagination by result limit and offset. +func (r Network_Storage_Iscsi) GetManualSnapshots() (resp []datatypes.Network_Storage, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Iscsi", "getManualSnapshots", nil, &r.Options, &resp) + return +} + +// Retrieve A network storage volume's metric tracking object. This object records all periodic polled data available to this volume. +func (r Network_Storage_Iscsi) GetMetricTrackingObject() (resp datatypes.Metric_Tracking_Object, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Iscsi", "getMetricTrackingObject", nil, &r.Options, &resp) + return +} + +// Retrieve Whether or not a network storage volume may be mounted. +func (r Network_Storage_Iscsi) GetMountableFlag() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Iscsi", "getMountableFlag", nil, &r.Options, &resp) + return +} + +// Retrieve The current status of split or move operation as a part of volume duplication. +func (r Network_Storage_Iscsi) GetMoveAndSplitStatus() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Iscsi", "getMoveAndSplitStatus", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Network_Storage_Iscsi) GetNetworkConnectionDetails() (resp datatypes.Container_Network_Storage_NetworkConnectionInformation, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Iscsi", "getNetworkConnectionDetails", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Network_Storage_Iscsi) GetNetworkMountAddress() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Iscsi", "getNetworkMountAddress", nil, &r.Options, &resp) + return +} + +// Retrieve The subscribers that will be notified for usage amount warnings and overages. +func (r Network_Storage_Iscsi) GetNotificationSubscribers() (resp []datatypes.Notification_User_Subscriber, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Iscsi", "getNotificationSubscribers", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Network_Storage_Iscsi) GetObject() (resp datatypes.Network_Storage_Iscsi, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Iscsi", "getObject", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Network_Storage_Iscsi) GetObjectStorageConnectionInformation() (resp []datatypes.Container_Network_Service_Resource_ObjectStorage_ConnectionInformation, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Iscsi", "getObjectStorageConnectionInformation", nil, &r.Options, &resp) + return +} + +// Retrieve network storage accounts by SoftLayer_Network_Storage_Credential object. Use this method if you wish to retrieve a storage record by a credential rather than by id. +func (r Network_Storage_Iscsi) GetObjectsByCredential(credentialObject *datatypes.Network_Storage_Credential) (resp []datatypes.Network_Storage, err error) { + params := []interface{}{ + credentialObject, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage_Iscsi", "getObjectsByCredential", params, &r.Options, &resp) + return +} + +// Retrieve The name of the snapshot that this volume was duplicated from. +func (r Network_Storage_Iscsi) GetOriginalSnapshotName() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Iscsi", "getOriginalSnapshotName", nil, &r.Options, &resp) + return +} + +// Retrieve The name of the volume that this volume was duplicated from. +func (r Network_Storage_Iscsi) GetOriginalVolumeName() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Iscsi", "getOriginalVolumeName", nil, &r.Options, &resp) + return +} + +// Retrieve The size (in GB) of the volume that this volume was duplicated from, or in the case of iSCSI LUNs, the size of the base originally-provisioned LUN. +func (r Network_Storage_Iscsi) GetOriginalVolumeSize() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Iscsi", "getOriginalVolumeSize", nil, &r.Options, &resp) + return +} + +// Retrieve A volume's configured SoftLayer_Network_Storage_Iscsi_OS_Type. +func (r Network_Storage_Iscsi) GetOsType() (resp datatypes.Network_Storage_Iscsi_OS_Type, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Iscsi", "getOsType", nil, &r.Options, &resp) + return +} + +// Retrieve A volume's configured SoftLayer_Network_Storage_Iscsi_OS_Type ID. +func (r Network_Storage_Iscsi) GetOsTypeId() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Iscsi", "getOsTypeId", nil, &r.Options, &resp) + return +} + +// Retrieve The volumes or snapshots partnered with a network storage volume in a parental role. +func (r Network_Storage_Iscsi) GetParentPartnerships() (resp []datatypes.Network_Storage_Partnership, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Iscsi", "getParentPartnerships", nil, &r.Options, &resp) + return +} + +// Retrieve The parent volume of a volume in a complex storage relationship. +func (r Network_Storage_Iscsi) GetParentVolume() (resp datatypes.Network_Storage, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Iscsi", "getParentVolume", nil, &r.Options, &resp) + return +} + +// Retrieve The volumes or snapshots partnered with a network storage volume. +func (r Network_Storage_Iscsi) GetPartnerships() (resp []datatypes.Network_Storage_Partnership, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Iscsi", "getPartnerships", nil, &r.Options, &resp) + return +} + +// Retrieve All permissions group(s) this volume is in. +func (r Network_Storage_Iscsi) GetPermissionsGroups() (resp []datatypes.Network_Storage_Group, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Iscsi", "getPermissionsGroups", nil, &r.Options, &resp) + return +} + +// Retrieve The properties used to provide additional details about a network storage volume. +func (r Network_Storage_Iscsi) GetProperties() (resp []datatypes.Network_Storage_Property, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Iscsi", "getProperties", nil, &r.Options, &resp) + return +} + +// Retrieve The number of IOPs provisioned for this volume. +func (r Network_Storage_Iscsi) GetProvisionedIops() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Iscsi", "getProvisionedIops", nil, &r.Options, &resp) + return +} + +// {{CloudLayerOnlyMethod}} Retrieve the details of a file that is pending deletion in a Storage account's a recycle bin. +func (r Network_Storage_Iscsi) GetRecycleBinFileByIdentifier(fileId *string) (resp datatypes.Container_Utility_File_Entity, err error) { + params := []interface{}{ + fileId, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage_Iscsi", "getRecycleBinFileByIdentifier", params, &r.Options, &resp) + return +} + +// Retrieves the remaining number of allowed hosts per volume. +func (r Network_Storage_Iscsi) GetRemainingAllowedHosts() (resp int, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Iscsi", "getRemainingAllowedHosts", nil, &r.Options, &resp) + return +} + +// Retrieve The iSCSI LUN volumes being replicated by this network storage volume. +func (r Network_Storage_Iscsi) GetReplicatingLuns() (resp []datatypes.Network_Storage, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Iscsi", "getReplicatingLuns", nil, &r.Options, &resp) + return +} + +// Retrieve The network storage volume being replicated by a volume. +func (r Network_Storage_Iscsi) GetReplicatingVolume() (resp datatypes.Network_Storage, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Iscsi", "getReplicatingVolume", nil, &r.Options, &resp) + return +} + +// Retrieve The volume replication events. +func (r Network_Storage_Iscsi) GetReplicationEvents() (resp []datatypes.Network_Storage_Event, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Iscsi", "getReplicationEvents", nil, &r.Options, &resp) + return +} + +// Retrieve The network storage volumes configured to be replicants of a volume. +func (r Network_Storage_Iscsi) GetReplicationPartners() (resp []datatypes.Network_Storage, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Iscsi", "getReplicationPartners", nil, &r.Options, &resp) + return +} + +// Retrieve The Replication Schedule associated with a network storage volume. +func (r Network_Storage_Iscsi) GetReplicationSchedule() (resp datatypes.Network_Storage_Schedule, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Iscsi", "getReplicationSchedule", nil, &r.Options, &resp) + return +} + +// Retrieve The current replication status of a network storage volume. Indicates Failover or Failback status. +func (r Network_Storage_Iscsi) GetReplicationStatus() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Iscsi", "getReplicationStatus", nil, &r.Options, &resp) + return +} + +// Retrieve The schedules which are associated with a network storage volume. +func (r Network_Storage_Iscsi) GetSchedules() (resp []datatypes.Network_Storage_Schedule, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Iscsi", "getSchedules", nil, &r.Options, &resp) + return +} + +// Retrieve The network resource a Storage service is connected to. +func (r Network_Storage_Iscsi) GetServiceResource() (resp datatypes.Network_Service_Resource, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Iscsi", "getServiceResource", nil, &r.Options, &resp) + return +} + +// Retrieve The IP address of a Storage resource. +func (r Network_Storage_Iscsi) GetServiceResourceBackendIpAddress() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Iscsi", "getServiceResourceBackendIpAddress", nil, &r.Options, &resp) + return +} + +// Retrieve The name of a Storage's network resource. +func (r Network_Storage_Iscsi) GetServiceResourceName() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Iscsi", "getServiceResourceName", nil, &r.Options, &resp) + return +} + +// Retrieve A volume's configured snapshot space size. +func (r Network_Storage_Iscsi) GetSnapshotCapacityGb() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Iscsi", "getSnapshotCapacityGb", nil, &r.Options, &resp) + return +} + +// Retrieve The creation timestamp of the snapshot on the storage platform. +func (r Network_Storage_Iscsi) GetSnapshotCreationTimestamp() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Iscsi", "getSnapshotCreationTimestamp", nil, &r.Options, &resp) + return +} + +// Retrieve The percentage of used snapshot space after which to delete automated snapshots. +func (r Network_Storage_Iscsi) GetSnapshotDeletionThresholdPercentage() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Iscsi", "getSnapshotDeletionThresholdPercentage", nil, &r.Options, &resp) + return +} + +// Retrieve The snapshot size in bytes. +func (r Network_Storage_Iscsi) GetSnapshotSizeBytes() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Iscsi", "getSnapshotSizeBytes", nil, &r.Options, &resp) + return +} + +// Retrieve A volume's available snapshot reservation space. +func (r Network_Storage_Iscsi) GetSnapshotSpaceAvailable() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Iscsi", "getSnapshotSpaceAvailable", nil, &r.Options, &resp) + return +} + +// Retrieve The snapshots associated with this SoftLayer_Network_Storage volume. +func (r Network_Storage_Iscsi) GetSnapshots() (resp []datatypes.Network_Storage, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Iscsi", "getSnapshots", nil, &r.Options, &resp) + return +} + +// Retrieves a list of snapshots for this SoftLayer_Network_Storage volume. This method works with the result limits and offset to support pagination. +func (r Network_Storage_Iscsi) GetSnapshotsForVolume() (resp []datatypes.Network_Storage, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Iscsi", "getSnapshotsForVolume", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Network_Storage_Iscsi) GetStaasVersion() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Iscsi", "getStaasVersion", nil, &r.Options, &resp) + return +} + +// Retrieve The network storage groups this volume is attached to. +func (r Network_Storage_Iscsi) GetStorageGroups() (resp []datatypes.Network_Storage_Group, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Iscsi", "getStorageGroups", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Network_Storage_Iscsi) GetStorageGroupsNetworkConnectionDetails() (resp []datatypes.Container_Network_Storage_NetworkConnectionInformation, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Iscsi", "getStorageGroupsNetworkConnectionDetails", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Network_Storage_Iscsi) GetStorageTierLevel() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Iscsi", "getStorageTierLevel", nil, &r.Options, &resp) + return +} + +// Retrieve A description of the Storage object. +func (r Network_Storage_Iscsi) GetStorageType() (resp datatypes.Network_Storage_Type, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Iscsi", "getStorageType", nil, &r.Options, &resp) + return +} + +// Retrieve The amount of space used by the volume. +func (r Network_Storage_Iscsi) GetTotalBytesUsed() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Iscsi", "getTotalBytesUsed", nil, &r.Options, &resp) + return +} + +// Retrieve The total snapshot retention count of all schedules on this network storage volume. +func (r Network_Storage_Iscsi) GetTotalScheduleSnapshotRetentionCount() (resp uint, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Iscsi", "getTotalScheduleSnapshotRetentionCount", nil, &r.Options, &resp) + return +} + +// Retrieve The usage notification for SL Storage services. +func (r Network_Storage_Iscsi) GetUsageNotification() (resp datatypes.Notification, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Iscsi", "getUsageNotification", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Network_Storage_Iscsi) GetValidReplicationTargetDatacenterLocations() (resp []datatypes.Location, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Iscsi", "getValidReplicationTargetDatacenterLocations", nil, &r.Options, &resp) + return +} + +// Retrieve The type of network storage service. +func (r Network_Storage_Iscsi) GetVendorName() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Iscsi", "getVendorName", nil, &r.Options, &resp) + return +} + +// Retrieve When applicable, the virtual guest associated with a Storage service. +func (r Network_Storage_Iscsi) GetVirtualGuest() (resp datatypes.Virtual_Guest, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Iscsi", "getVirtualGuest", nil, &r.Options, &resp) + return +} + +// This method returns the parameters for cloning a volume +func (r Network_Storage_Iscsi) GetVolumeDuplicateParameters() (resp datatypes.Container_Network_Storage_VolumeDuplicateParameters, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Iscsi", "getVolumeDuplicateParameters", nil, &r.Options, &resp) + return +} + +// Retrieve The username and password history for a Storage service. +func (r Network_Storage_Iscsi) GetVolumeHistory() (resp []datatypes.Network_Storage_History, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Iscsi", "getVolumeHistory", nil, &r.Options, &resp) + return +} + +// Retrieve The current status of a network storage volume. +func (r Network_Storage_Iscsi) GetVolumeStatus() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Iscsi", "getVolumeStatus", nil, &r.Options, &resp) + return +} + +// Retrieve The account username and password for the EVault webCC interface. +func (r Network_Storage_Iscsi) GetWebccAccount() (resp datatypes.Account_Password, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Iscsi", "getWebccAccount", nil, &r.Options, &resp) + return +} + +// Retrieve The Weekly Schedule which is associated with this network storage volume. +func (r Network_Storage_Iscsi) GetWeeklySchedule() (resp datatypes.Network_Storage_Schedule, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Iscsi", "getWeeklySchedule", nil, &r.Options, &resp) + return +} + +// Immediate Failover to a volume replicant. During the time which the replicant is in use the local nas volume will not be available. +func (r Network_Storage_Iscsi) ImmediateFailoverToReplicant(replicantId *int) (resp bool, err error) { + params := []interface{}{ + replicantId, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage_Iscsi", "immediateFailoverToReplicant", params, &r.Options, &resp) + return +} + +// no documentation yet +func (r Network_Storage_Iscsi) IsBlockingOperationInProgress(exemptStatusKeyNames []string) (resp bool, err error) { + params := []interface{}{ + exemptStatusKeyNames, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage_Iscsi", "isBlockingOperationInProgress", params, &r.Options, &resp) + return +} + +// This method returns a boolean indicating whether the clone volume is ready for snapshot. +func (r Network_Storage_Iscsi) IsDuplicateReadyForSnapshot() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Iscsi", "isDuplicateReadyForSnapshot", nil, &r.Options, &resp) + return +} + +// This method returns a boolean indicating whether the clone volume is ready to mount. +func (r Network_Storage_Iscsi) IsDuplicateReadyToMount() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Iscsi", "isDuplicateReadyToMount", nil, &r.Options, &resp) + return +} + +// This method is used to modify the access control list for this Storage volume. The SoftLayer_Hardware objects which have been allowed access to this storage will be listed in the allowedHardware property of this storage volume. +func (r Network_Storage_Iscsi) RemoveAccessFromHardware(hardwareObjectTemplate *datatypes.Hardware) (resp bool, err error) { + params := []interface{}{ + hardwareObjectTemplate, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage_Iscsi", "removeAccessFromHardware", params, &r.Options, &resp) + return +} + +// This method is used to modify the access control list for this Storage volume. The SoftLayer_Hardware objects which have been allowed access to this storage will be listed in the allowedHardware property of this storage volume. +func (r Network_Storage_Iscsi) RemoveAccessFromHardwareList(hardwareObjectTemplates []datatypes.Hardware) (resp bool, err error) { + params := []interface{}{ + hardwareObjectTemplates, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage_Iscsi", "removeAccessFromHardwareList", params, &r.Options, &resp) + return +} + +// This method is used to modify the access control list for this Storage volume. The [[SoftLayer_Hardware|SoftLayer_Virtual_Guest|SoftLayer_Network_Subnet|SoftLayer_Network_Subnet_IpAddress]] objects which have been allowed access to this storage will be listed in the [[allowedHardware|allowedVirtualGuests|allowedSubnets|allowedIpAddresses]] property of this storage volume. +func (r Network_Storage_Iscsi) RemoveAccessFromHost(typeClassName *string, hostId *int) (resp datatypes.Network_Storage_Allowed_Host, err error) { + params := []interface{}{ + typeClassName, + hostId, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage_Iscsi", "removeAccessFromHost", params, &r.Options, &resp) + return +} + +// This method is used to modify the access control list for this Storage volume. The [[SoftLayer_Hardware|SoftLayer_Virtual_Guest|SoftLayer_Network_Subnet|SoftLayer_Network_Subnet_IpAddress]] objects which have been allowed access to this storage will be listed in the [[allowedHardware|allowedVirtualGuests|allowedSubnets|allowedIpAddresses]] property of this storage volume. +func (r Network_Storage_Iscsi) RemoveAccessFromHostList(hostObjectTemplates []datatypes.Container_Network_Storage_Host) (resp []datatypes.Network_Storage_Allowed_Host, err error) { + params := []interface{}{ + hostObjectTemplates, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage_Iscsi", "removeAccessFromHostList", params, &r.Options, &resp) + return +} + +// no documentation yet +func (r Network_Storage_Iscsi) RemoveAccessFromIpAddress(ipAddressObjectTemplate *datatypes.Network_Subnet_IpAddress) (resp bool, err error) { + params := []interface{}{ + ipAddressObjectTemplate, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage_Iscsi", "removeAccessFromIpAddress", params, &r.Options, &resp) + return +} + +// no documentation yet +func (r Network_Storage_Iscsi) RemoveAccessFromIpAddressList(ipAddressObjectTemplates []datatypes.Network_Subnet_IpAddress) (resp bool, err error) { + params := []interface{}{ + ipAddressObjectTemplates, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage_Iscsi", "removeAccessFromIpAddressList", params, &r.Options, &resp) + return +} + +// no documentation yet +func (r Network_Storage_Iscsi) RemoveAccessFromSubnet(subnetObjectTemplate *datatypes.Network_Subnet) (resp bool, err error) { + params := []interface{}{ + subnetObjectTemplate, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage_Iscsi", "removeAccessFromSubnet", params, &r.Options, &resp) + return +} + +// no documentation yet +func (r Network_Storage_Iscsi) RemoveAccessFromSubnetList(subnetObjectTemplates []datatypes.Network_Subnet) (resp bool, err error) { + params := []interface{}{ + subnetObjectTemplates, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage_Iscsi", "removeAccessFromSubnetList", params, &r.Options, &resp) + return +} + +// This method is used to modify the access control list for this Storage volume. The SoftLayer_Virtual_Guest objects which have been allowed access to this storage will be listed in the allowedVirtualGuests property of this storage volume. +func (r Network_Storage_Iscsi) RemoveAccessFromVirtualGuest(virtualGuestObjectTemplate *datatypes.Virtual_Guest) (resp bool, err error) { + params := []interface{}{ + virtualGuestObjectTemplate, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage_Iscsi", "removeAccessFromVirtualGuest", params, &r.Options, &resp) + return +} + +// This method is used to modify the access control list for this Storage volume. The SoftLayer_Virtual_Guest objects which have been allowed access to this storage will be listed in the allowedVirtualGuests property of this storage volume. +func (r Network_Storage_Iscsi) RemoveAccessFromVirtualGuestList(virtualGuestObjectTemplates []datatypes.Virtual_Guest) (resp bool, err error) { + params := []interface{}{ + virtualGuestObjectTemplates, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage_Iscsi", "removeAccessFromVirtualGuestList", params, &r.Options, &resp) + return +} + +// This method is used to modify the access control list for this Storage replica volume. The SoftLayer_Hardware objects which have been allowed access to this storage will be listed in the allowedHardware property of this storage replica volume. +func (r Network_Storage_Iscsi) RemoveAccessToReplicantFromHardwareList(hardwareObjectTemplates []datatypes.Hardware) (resp bool, err error) { + params := []interface{}{ + hardwareObjectTemplates, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage_Iscsi", "removeAccessToReplicantFromHardwareList", params, &r.Options, &resp) + return +} + +// This method is used to modify the access control list for this Storage replica volume. The SoftLayer_Network_Subnet_IpAddress objects which have been allowed access to this storage will be listed in the allowedIpAddresses property of this storage replica volume. +func (r Network_Storage_Iscsi) RemoveAccessToReplicantFromIpAddressList(ipAddressObjectTemplates []datatypes.Network_Subnet_IpAddress) (resp bool, err error) { + params := []interface{}{ + ipAddressObjectTemplates, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage_Iscsi", "removeAccessToReplicantFromIpAddressList", params, &r.Options, &resp) + return +} + +// no documentation yet +func (r Network_Storage_Iscsi) RemoveAccessToReplicantFromSubnet(subnetObjectTemplate *datatypes.Network_Subnet) (resp bool, err error) { + params := []interface{}{ + subnetObjectTemplate, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage_Iscsi", "removeAccessToReplicantFromSubnet", params, &r.Options, &resp) + return +} + +// This method is used to modify the access control list for this Storage volume's replica. The SoftLayer_Network_Subnet objects which have been allowed access to this storage volume's replica will be listed in the allowedReplicationSubnets property of this storage volume. +func (r Network_Storage_Iscsi) RemoveAccessToReplicantFromSubnetList(subnetObjectTemplates []datatypes.Network_Subnet) (resp bool, err error) { + params := []interface{}{ + subnetObjectTemplates, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage_Iscsi", "removeAccessToReplicantFromSubnetList", params, &r.Options, &resp) + return +} + +// This method is used to modify the access control list for this Storage replica volume. The SoftLayer_Virtual_Guest objects which have been allowed access to this storage will be listed in the allowedVirtualGuests property of this storage replica volume. +func (r Network_Storage_Iscsi) RemoveAccessToReplicantFromVirtualGuestList(virtualGuestObjectTemplates []datatypes.Virtual_Guest) (resp bool, err error) { + params := []interface{}{ + virtualGuestObjectTemplates, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage_Iscsi", "removeAccessToReplicantFromVirtualGuestList", params, &r.Options, &resp) + return +} + +// This method will remove a credential from the current volume. The credential must have been created using the 'addNewCredential' method. +func (r Network_Storage_Iscsi) RemoveCredential(username *string) (resp bool, err error) { + params := []interface{}{ + username, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage_Iscsi", "removeCredential", params, &r.Options, &resp) + return +} + +// {{CloudLayerOnlyMethod}} Restore an individual file so that it may be used as it was before it was deleted. +// +// If a file is deleted from a Virtual Server Storage account, the file is placed into the account's recycle bin and not permanently deleted. Therefore, restoreFile can be used to place the file back into your Virtual Server account's root directory. +func (r Network_Storage_Iscsi) RestoreFile(fileId *string) (resp datatypes.Container_Utility_File_Entity, err error) { + params := []interface{}{ + fileId, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage_Iscsi", "restoreFile", params, &r.Options, &resp) + return +} + +// Restore the volume from a snapshot that was previously taken. +func (r Network_Storage_Iscsi) RestoreFromSnapshot(snapshotId *int) (resp bool, err error) { + params := []interface{}{ + snapshotId, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage_Iscsi", "restoreFromSnapshot", params, &r.Options, &resp) + return +} + +// The method will retrieve the password for the StorageLayer or Virtual Server Storage Account and email the password. The Storage Account passwords will be emailed to the master user. For Virtual Server Storage, the password will be sent to the email address used as the username. +func (r Network_Storage_Iscsi) SendPasswordReminderEmail(username *string) (resp bool, err error) { + params := []interface{}{ + username, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage_Iscsi", "sendPasswordReminderEmail", params, &r.Options, &resp) + return +} + +// Enable or disable the mounting of a Storage volume. When mounting is enabled the Storage volume will be mountable or available for use. +// +// For Virtual Server volumes, disabling mounting will deny access to the Virtual Server Account, remove published material and deny all file interaction including uploads and downloads. +// +// Enabling or disabling mounting for Storage volumes is not possible if mounting has been disabled by SoftLayer or a parent account. +func (r Network_Storage_Iscsi) SetMountable(mountable *bool) (resp bool, err error) { + params := []interface{}{ + mountable, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage_Iscsi", "setMountable", params, &r.Options, &resp) + return +} + +// no documentation yet +func (r Network_Storage_Iscsi) SetSnapshotAllocation(capacityGb *int) (err error) { + var resp datatypes.Void + params := []interface{}{ + capacityGb, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage_Iscsi", "setSnapshotAllocation", params, &r.Options, &resp) + return +} + +// Upgrade the Storage volume to one of the upgradable packages (for example from 10 Gigs of EVault storage to 100 Gigs of EVault storage). +func (r Network_Storage_Iscsi) UpgradeVolumeCapacity(itemId *int) (resp bool, err error) { + params := []interface{}{ + itemId, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage_Iscsi", "upgradeVolumeCapacity", params, &r.Options, &resp) + return +} + +// {{CloudLayerOnlyMethod}} Upload a file to a Storage account's root directory. Once uploaded, this method returns new file entity identifier for the upload file. +// +// The following properties are required in the ''file'' parameter. +// *'''name''': The name of the file you wish to upload +// *'''content''': The raw contents of the file you wish to upload. +// *'''contentType''': The MIME-type of content that you wish to upload. +func (r Network_Storage_Iscsi) UploadFile(file *datatypes.Container_Utility_File_Entity) (resp datatypes.Container_Utility_File_Entity, err error) { + params := []interface{}{ + file, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage_Iscsi", "uploadFile", params, &r.Options, &resp) + return +} + +// no documentation yet +type Network_Storage_Iscsi_OS_Type struct { + Session *session.Session + Options sl.Options +} + +// GetNetworkStorageIscsiOSTypeService returns an instance of the Network_Storage_Iscsi_OS_Type SoftLayer service +func GetNetworkStorageIscsiOSTypeService(sess *session.Session) Network_Storage_Iscsi_OS_Type { + return Network_Storage_Iscsi_OS_Type{Session: sess} +} + +func (r Network_Storage_Iscsi_OS_Type) Id(id int) Network_Storage_Iscsi_OS_Type { + r.Options.Id = &id + return r +} + +func (r Network_Storage_Iscsi_OS_Type) Mask(mask string) Network_Storage_Iscsi_OS_Type { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Network_Storage_Iscsi_OS_Type) Filter(filter string) Network_Storage_Iscsi_OS_Type { + r.Options.Filter = filter + return r +} + +func (r Network_Storage_Iscsi_OS_Type) Limit(limit int) Network_Storage_Iscsi_OS_Type { + r.Options.Limit = &limit + return r +} + +func (r Network_Storage_Iscsi_OS_Type) Offset(offset int) Network_Storage_Iscsi_OS_Type { + r.Options.Offset = &offset + return r +} + +// Use this method to retrieve all iSCSI OS Types. +func (r Network_Storage_Iscsi_OS_Type) GetAllObjects() (resp []datatypes.Network_Storage_Iscsi_OS_Type, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Iscsi_OS_Type", "getAllObjects", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Network_Storage_Iscsi_OS_Type) GetObject() (resp datatypes.Network_Storage_Iscsi_OS_Type, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Iscsi_OS_Type", "getObject", nil, &r.Options, &resp) + return +} + +// Schedules can be created for select Storage services, such as iscsi. These schedules are used to perform various tasks such as scheduling snapshots or synchronizing replicants. +type Network_Storage_Schedule struct { + Session *session.Session + Options sl.Options +} + +// GetNetworkStorageScheduleService returns an instance of the Network_Storage_Schedule SoftLayer service +func GetNetworkStorageScheduleService(sess *session.Session) Network_Storage_Schedule { + return Network_Storage_Schedule{Session: sess} +} + +func (r Network_Storage_Schedule) Id(id int) Network_Storage_Schedule { + r.Options.Id = &id + return r +} + +func (r Network_Storage_Schedule) Mask(mask string) Network_Storage_Schedule { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Network_Storage_Schedule) Filter(filter string) Network_Storage_Schedule { + r.Options.Filter = filter + return r +} + +func (r Network_Storage_Schedule) Limit(limit int) Network_Storage_Schedule { + r.Options.Limit = &limit + return r +} + +func (r Network_Storage_Schedule) Offset(offset int) Network_Storage_Schedule { + r.Options.Offset = &offset + return r +} + +// Create a nas volume schedule +func (r Network_Storage_Schedule) CreateObject(templateObject *datatypes.Network_Storage_Schedule) (resp datatypes.Network_Storage_Schedule, err error) { + params := []interface{}{ + templateObject, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage_Schedule", "createObject", params, &r.Options, &resp) + return +} + +// Delete a network storage schedule. '''This cannot be undone.''' ''deleteObject'' returns Boolean ''true'' on successful deletion or ''false'' if it was unable to remove a schedule; +func (r Network_Storage_Schedule) DeleteObject() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Schedule", "deleteObject", nil, &r.Options, &resp) + return +} + +// Edit a nas volume schedule +func (r Network_Storage_Schedule) EditObject(templateObject *datatypes.Network_Storage_Schedule) (resp bool, err error) { + params := []interface{}{ + templateObject, + } + err = r.Session.DoRequest("SoftLayer_Network_Storage_Schedule", "editObject", params, &r.Options, &resp) + return +} + +// Retrieve The day of the month parameter of this schedule. +func (r Network_Storage_Schedule) GetDayOfMonth() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Schedule", "getDayOfMonth", nil, &r.Options, &resp) + return +} + +// Retrieve The day of the week parameter of this schedule. +func (r Network_Storage_Schedule) GetDayOfWeek() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Schedule", "getDayOfWeek", nil, &r.Options, &resp) + return +} + +// Retrieve Events which have been created as the result of a schedule execution. +func (r Network_Storage_Schedule) GetEvents() (resp []datatypes.Network_Storage_Event, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Schedule", "getEvents", nil, &r.Options, &resp) + return +} + +// Retrieve The hour parameter of this schedule. +func (r Network_Storage_Schedule) GetHour() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Schedule", "getHour", nil, &r.Options, &resp) + return +} + +// Retrieve The minute parameter of this schedule. +func (r Network_Storage_Schedule) GetMinute() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Schedule", "getMinute", nil, &r.Options, &resp) + return +} + +// Retrieve The month of the year parameter of this schedule. +func (r Network_Storage_Schedule) GetMonthOfYear() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Schedule", "getMonthOfYear", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Network_Storage_Schedule) GetObject() (resp datatypes.Network_Storage_Schedule, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Schedule", "getObject", nil, &r.Options, &resp) + return +} + +// Retrieve The associated partnership for a schedule. +func (r Network_Storage_Schedule) GetPartnership() (resp datatypes.Network_Storage_Partnership, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Schedule", "getPartnership", nil, &r.Options, &resp) + return +} + +// Retrieve Properties used for configuration of a schedule. +func (r Network_Storage_Schedule) GetProperties() (resp []datatypes.Network_Storage_Schedule_Property, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Schedule", "getProperties", nil, &r.Options, &resp) + return +} + +// Retrieve Replica snapshots which have been created as the result of this schedule's execution. +func (r Network_Storage_Schedule) GetReplicaSnapshots() (resp []datatypes.Network_Storage, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Schedule", "getReplicaSnapshots", nil, &r.Options, &resp) + return +} + +// Retrieve The number of snapshots this schedule is configured to retain. +func (r Network_Storage_Schedule) GetRetentionCount() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Schedule", "getRetentionCount", nil, &r.Options, &resp) + return +} + +// Retrieve Snapshots which have been created as the result of this schedule's execution. +func (r Network_Storage_Schedule) GetSnapshots() (resp []datatypes.Network_Storage, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Schedule", "getSnapshots", nil, &r.Options, &resp) + return +} + +// Retrieve The type provides a standardized definition for a schedule. +func (r Network_Storage_Schedule) GetType() (resp datatypes.Network_Storage_Schedule_Type, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Schedule", "getType", nil, &r.Options, &resp) + return +} + +// Retrieve The associated volume for a schedule. +func (r Network_Storage_Schedule) GetVolume() (resp datatypes.Network_Storage, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Schedule", "getVolume", nil, &r.Options, &resp) + return +} + +// A schedule property type is used to allow for a standardized method of defining network storage schedules. +type Network_Storage_Schedule_Property_Type struct { + Session *session.Session + Options sl.Options +} + +// GetNetworkStorageSchedulePropertyTypeService returns an instance of the Network_Storage_Schedule_Property_Type SoftLayer service +func GetNetworkStorageSchedulePropertyTypeService(sess *session.Session) Network_Storage_Schedule_Property_Type { + return Network_Storage_Schedule_Property_Type{Session: sess} +} + +func (r Network_Storage_Schedule_Property_Type) Id(id int) Network_Storage_Schedule_Property_Type { + r.Options.Id = &id + return r +} + +func (r Network_Storage_Schedule_Property_Type) Mask(mask string) Network_Storage_Schedule_Property_Type { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Network_Storage_Schedule_Property_Type) Filter(filter string) Network_Storage_Schedule_Property_Type { + r.Options.Filter = filter + return r +} + +func (r Network_Storage_Schedule_Property_Type) Limit(limit int) Network_Storage_Schedule_Property_Type { + r.Options.Limit = &limit + return r +} + +func (r Network_Storage_Schedule_Property_Type) Offset(offset int) Network_Storage_Schedule_Property_Type { + r.Options.Offset = &offset + return r +} + +// Use this method to retrieve all network storage schedule property types. +func (r Network_Storage_Schedule_Property_Type) GetAllObjects() (resp []datatypes.Network_Storage_Schedule_Property_Type, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Schedule_Property_Type", "getAllObjects", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Network_Storage_Schedule_Property_Type) GetObject() (resp datatypes.Network_Storage_Schedule_Property_Type, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Storage_Schedule_Property_Type", "getObject", nil, &r.Options, &resp) + return +} + +// The SoftLayer_Network_Subnet data type contains general information relating to a single SoftLayer subnet. Personal information in this type such as names, addresses, and phone numbers are assigned to the account only and not to users belonging to the account. +type Network_Subnet struct { + Session *session.Session + Options sl.Options +} + +// GetNetworkSubnetService returns an instance of the Network_Subnet SoftLayer service +func GetNetworkSubnetService(sess *session.Session) Network_Subnet { + return Network_Subnet{Session: sess} +} + +func (r Network_Subnet) Id(id int) Network_Subnet { + r.Options.Id = &id + return r +} + +func (r Network_Subnet) Mask(mask string) Network_Subnet { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Network_Subnet) Filter(filter string) Network_Subnet { + r.Options.Filter = filter + return r +} + +func (r Network_Subnet) Limit(limit int) Network_Subnet { + r.Options.Limit = &limit + return r +} + +func (r Network_Subnet) Offset(offset int) Network_Subnet { + r.Options.Offset = &offset + return r +} + +// This method is used to allow access to a SoftLayer_Network_Storage volume that supports host- or network-level access control. +func (r Network_Subnet) AllowAccessToNetworkStorage(networkStorageTemplateObject *datatypes.Network_Storage) (resp bool, err error) { + params := []interface{}{ + networkStorageTemplateObject, + } + err = r.Session.DoRequest("SoftLayer_Network_Subnet", "allowAccessToNetworkStorage", params, &r.Options, &resp) + return +} + +// This method is used to allow access to multiple SoftLayer_Network_Storage volumes that support host- or network-level access control. +func (r Network_Subnet) AllowAccessToNetworkStorageList(networkStorageTemplateObjects []datatypes.Network_Storage) (resp bool, err error) { + params := []interface{}{ + networkStorageTemplateObjects, + } + err = r.Session.DoRequest("SoftLayer_Network_Subnet", "allowAccessToNetworkStorageList", params, &r.Options, &resp) + return +} + +// Create the default PTR records for this subnet +func (r Network_Subnet) CreateReverseDomainRecords() (resp datatypes.Dns_Domain_Reverse, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Subnet", "createReverseDomainRecords", nil, &r.Options, &resp) + return +} + +// This function is used to create a new transaction to modify a subnet route. Routes are updated in one to two minutes depending on the number of transactions that are pending for a router. +// +// Usage of this function is restricted and may only be called from authorized accounts. It is not available for general API users without justification and consent from a SoftLayer representative. +func (r Network_Subnet) CreateSubnetRouteUpdateTransaction(newEndPointIpAddress *string) (resp bool, err error) { + params := []interface{}{ + newEndPointIpAddress, + } + err = r.Session.DoRequest("SoftLayer_Network_Subnet", "createSubnetRouteUpdateTransaction", params, &r.Options, &resp) + return +} + +// This function is used to create a new SoftLayer SWIP transaction to register your RWHOIS data with ARIN. SWIP transactions can only be initiated on subnets that contain more than 8 IP addresses. +func (r Network_Subnet) CreateSwipTransaction() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Subnet", "createSwipTransaction", nil, &r.Options, &resp) + return +} + +// Edit the note for this subnet. +func (r Network_Subnet) EditNote(note *string) (resp bool, err error) { + params := []interface{}{ + note, + } + err = r.Session.DoRequest("SoftLayer_Network_Subnet", "editNote", params, &r.Options, &resp) + return +} + +// Retrieve a list of a SoftLayer customer's subnets along with their SWIP transaction statuses. This is a shortcut method that combines the SoftLayer_Network_Subnet retrieval methods along with [[object masks]] to retrieve their subnets' associated SWIP transactions as well. +// +// This is a special function built for SoftLayer's use on the SWIP section of the customer portal, but may also be useful for API users looking for the same data. +func (r Network_Subnet) FindAllSubnetsAndActiveSwipTransactionStatus() (resp []datatypes.Network_Subnet, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Subnet", "findAllSubnetsAndActiveSwipTransactionStatus", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Network_Subnet) GetAccount() (resp datatypes.Account, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Subnet", "getAccount", nil, &r.Options, &resp) + return +} + +// Retrieve If present, the active registration for this subnet. +func (r Network_Subnet) GetActiveRegistration() (resp datatypes.Network_Subnet_Registration, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Subnet", "getActiveRegistration", nil, &r.Options, &resp) + return +} + +// Retrieve All the swip transactions associated with a subnet that are still active. +func (r Network_Subnet) GetActiveSwipTransaction() (resp datatypes.Network_Subnet_Swip_Transaction, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Subnet", "getActiveSwipTransaction", nil, &r.Options, &resp) + return +} + +// Retrieve The billing item for a subnet. +func (r Network_Subnet) GetActiveTransaction() (resp datatypes.Provisioning_Version1_Transaction, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Subnet", "getActiveTransaction", nil, &r.Options, &resp) + return +} + +// Retrieve Identifier which distinguishes whether the subnet is public or private address space. +func (r Network_Subnet) GetAddressSpace() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Subnet", "getAddressSpace", nil, &r.Options, &resp) + return +} + +// Retrieve The SoftLayer_Network_Storage_Allowed_Host information to connect this Subnet to Network Storage supporting access control lists. +func (r Network_Subnet) GetAllowedHost() (resp datatypes.Network_Storage_Allowed_Host, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Subnet", "getAllowedHost", nil, &r.Options, &resp) + return +} + +// Retrieve The SoftLayer_Network_Storage objects that this SoftLayer_Hardware has access to. +func (r Network_Subnet) GetAllowedNetworkStorage() (resp []datatypes.Network_Storage, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Subnet", "getAllowedNetworkStorage", nil, &r.Options, &resp) + return +} + +// Retrieve The SoftLayer_Network_Storage objects whose Replica that this SoftLayer_Hardware has access to. +func (r Network_Subnet) GetAllowedNetworkStorageReplicas() (resp []datatypes.Network_Storage, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Subnet", "getAllowedNetworkStorageReplicas", nil, &r.Options, &resp) + return +} + +// This method is retrieve a list of SoftLayer_Network_Storage volumes that are authorized access to this SoftLayer_Network_Subnet. +func (r Network_Subnet) GetAttachedNetworkStorages(nasType *string) (resp []datatypes.Network_Storage, err error) { + params := []interface{}{ + nasType, + } + err = r.Session.DoRequest("SoftLayer_Network_Subnet", "getAttachedNetworkStorages", params, &r.Options, &resp) + return +} + +// This method retrieves a list of SoftLayer_Network_Storage volumes that can be authorized to this SoftLayer_Network_Subnet. +func (r Network_Subnet) GetAvailableNetworkStorages(nasType *string) (resp []datatypes.Network_Storage, err error) { + params := []interface{}{ + nasType, + } + err = r.Session.DoRequest("SoftLayer_Network_Subnet", "getAvailableNetworkStorages", params, &r.Options, &resp) + return +} + +// Retrieve The billing item for a subnet. +func (r Network_Subnet) GetBillingItem() (resp datatypes.Billing_Item, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Subnet", "getBillingItem", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Network_Subnet) GetBoundDescendants() (resp []datatypes.Network_Subnet, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Subnet", "getBoundDescendants", nil, &r.Options, &resp) + return +} + +// Retrieve Whether or not this subnet is associated with a router. Subnets that are not associated with a router cannot be routed. +func (r Network_Subnet) GetBoundRouterFlag() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Subnet", "getBoundRouterFlag", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Network_Subnet) GetBoundRouters() (resp []datatypes.Hardware, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Subnet", "getBoundRouters", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Network_Subnet) GetChildren() (resp []datatypes.Network_Subnet, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Subnet", "getChildren", nil, &r.Options, &resp) + return +} + +// Retrieve The data center this subnet may be routed within. +func (r Network_Subnet) GetDatacenter() (resp datatypes.Location_Datacenter, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Subnet", "getDatacenter", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Network_Subnet) GetDescendants() (resp []datatypes.Network_Subnet, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Subnet", "getDescendants", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Network_Subnet) GetDisplayLabel() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Subnet", "getDisplayLabel", nil, &r.Options, &resp) + return +} + +// Retrieve A static routed ip address +func (r Network_Subnet) GetEndPointIpAddress() (resp datatypes.Network_Subnet_IpAddress, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Subnet", "getEndPointIpAddress", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Network_Subnet) GetGlobalIpRecord() (resp datatypes.Network_Subnet_IpAddress_Global, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Subnet", "getGlobalIpRecord", nil, &r.Options, &resp) + return +} + +// Retrieve The hardware using IP addresses on this subnet. +func (r Network_Subnet) GetHardware() (resp []datatypes.Hardware, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Subnet", "getHardware", nil, &r.Options, &resp) + return +} + +// Retrieve All the ip addresses associated with a subnet. +func (r Network_Subnet) GetIpAddresses() (resp []datatypes.Network_Subnet_IpAddress, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Subnet", "getIpAddresses", nil, &r.Options, &resp) + return +} + +// Retrieve A subnet's associated network component. +func (r Network_Subnet) GetNetworkComponent() (resp datatypes.Network_Component, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Subnet", "getNetworkComponent", nil, &r.Options, &resp) + return +} + +// Retrieve The upstream network component firewall. +func (r Network_Subnet) GetNetworkComponentFirewall() (resp datatypes.Network_Component_Firewall, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Subnet", "getNetworkComponentFirewall", nil, &r.Options, &resp) + return +} + +// Retrieve The Private Network identifier this subnet is within, if applicable. +func (r Network_Subnet) GetNetworkId() (resp int, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Subnet", "getNetworkId", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Network_Subnet) GetNetworkProtectionAddresses() (resp []datatypes.Network_Protection_Address, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Subnet", "getNetworkProtectionAddresses", nil, &r.Options, &resp) + return +} + +// Retrieve IPSec network tunnels that have access to a private subnet. +func (r Network_Subnet) GetNetworkTunnelContexts() (resp []datatypes.Network_Tunnel_Module_Context, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Subnet", "getNetworkTunnelContexts", nil, &r.Options, &resp) + return +} + +// Retrieve The VLAN object that a subnet is associated with. +func (r Network_Subnet) GetNetworkVlan() (resp datatypes.Network_Vlan, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Subnet", "getNetworkVlan", nil, &r.Options, &resp) + return +} + +// getObject retrieves the SoftLayer_Network_Subnet object whose ID number corresponds to the ID number of the init parameter passed to the SoftLayer_Network_Subnet service. You can only retrieve the subnet whose vlan is associated with the account that you portal user is assigned to. +func (r Network_Subnet) GetObject() (resp datatypes.Network_Subnet, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Subnet", "getObject", nil, &r.Options, &resp) + return +} + +// Retrieve The pod in which this subnet resides. +func (r Network_Subnet) GetPodName() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Subnet", "getPodName", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Network_Subnet) GetProtectedIpAddresses() (resp []datatypes.Network_Subnet_IpAddress, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Subnet", "getProtectedIpAddresses", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Network_Subnet) GetRegionalInternetRegistry() (resp datatypes.Network_Regional_Internet_Registry, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Subnet", "getRegionalInternetRegistry", nil, &r.Options, &resp) + return +} + +// Retrieve All registrations that have been created for this subnet. +func (r Network_Subnet) GetRegistrations() (resp []datatypes.Network_Subnet_Registration, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Subnet", "getRegistrations", nil, &r.Options, &resp) + return +} + +// Retrieve The resource groups in which this subnet is a member. +func (r Network_Subnet) GetResourceGroups() (resp []datatypes.Resource_Group, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Subnet", "getResourceGroups", nil, &r.Options, &resp) + return +} + +// Retrieve The reverse DNS domain associated with this subnet. +func (r Network_Subnet) GetReverseDomain() (resp datatypes.Dns_Domain, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Subnet", "getReverseDomain", nil, &r.Options, &resp) + return +} + +// Retrieve all reverse DNS records associated with a subnet. +func (r Network_Subnet) GetReverseDomainRecords() (resp []datatypes.Dns_Domain, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Subnet", "getReverseDomainRecords", nil, &r.Options, &resp) + return +} + +// Retrieve An identifier of the role the subnet is within. Roles dictate how a subnet may be used. +func (r Network_Subnet) GetRoleKeyName() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Subnet", "getRoleKeyName", nil, &r.Options, &resp) + return +} + +// Retrieve The name of the role the subnet is within. Roles dictate how a subnet may be used. +func (r Network_Subnet) GetRoleName() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Subnet", "getRoleName", nil, &r.Options, &resp) + return +} + +// getRoutableEndpointAddresses retrieves valid routable endpoint addresses for a subnet. You may use any IP address in a portable subnet, but may not use the network identifier, gateway, or broadcast address for primary and secondary on VLAN subnets. +func (r Network_Subnet) GetRoutableEndpointIpAddresses() (resp []datatypes.Network_Subnet_IpAddress, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Subnet", "getRoutableEndpointIpAddresses", nil, &r.Options, &resp) + return +} + +// Retrieve The identifier for the type of route then subnet is currently configured for. +func (r Network_Subnet) GetRoutingTypeKeyName() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Subnet", "getRoutingTypeKeyName", nil, &r.Options, &resp) + return +} + +// Retrieve The name for the type of route then subnet is currently configured for. +func (r Network_Subnet) GetRoutingTypeName() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Subnet", "getRoutingTypeName", nil, &r.Options, &resp) + return +} + +// Retrieve the subnet associated with an IP address. You may only retrieve subnets assigned to your SoftLayer customer account. +func (r Network_Subnet) GetSubnetForIpAddress(ipAddress *string) (resp datatypes.Network_Subnet, err error) { + params := []interface{}{ + ipAddress, + } + err = r.Session.DoRequest("SoftLayer_Network_Subnet", "getSubnetForIpAddress", params, &r.Options, &resp) + return +} + +// Retrieve All the swip transactions associated with a subnet. +func (r Network_Subnet) GetSwipTransaction() (resp []datatypes.Network_Subnet_Swip_Transaction, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Subnet", "getSwipTransaction", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Network_Subnet) GetUnboundDescendants() (resp []datatypes.Network_Subnet, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Subnet", "getUnboundDescendants", nil, &r.Options, &resp) + return +} + +// Retrieve Provides the total number of utilized IP addresses on this subnet. The primary consumer of IP addresses are compute resources, which can consume more than one address. This value is only supported for primary subnet types. +func (r Network_Subnet) GetUtilizedIpAddressCount() (resp uint, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Subnet", "getUtilizedIpAddressCount", nil, &r.Options, &resp) + return +} + +// Retrieve The Virtual Servers using IP addresses on this subnet. +func (r Network_Subnet) GetVirtualGuests() (resp []datatypes.Virtual_Guest, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Subnet", "getVirtualGuests", nil, &r.Options, &resp) + return +} + +// This method is used to remove access to multiple SoftLayer_Network_Storage volumes +func (r Network_Subnet) RemoveAccessToNetworkStorageList(networkStorageTemplateObjects []datatypes.Network_Storage) (resp bool, err error) { + params := []interface{}{ + networkStorageTemplateObjects, + } + err = r.Session.DoRequest("SoftLayer_Network_Subnet", "removeAccessToNetworkStorageList", params, &r.Options, &resp) + return +} + +// The SoftLayer_Network_Subnet_IpAddress data type contains general information relating to a single SoftLayer IPv4 address. +type Network_Subnet_IpAddress struct { + Session *session.Session + Options sl.Options +} + +// GetNetworkSubnetIpAddressService returns an instance of the Network_Subnet_IpAddress SoftLayer service +func GetNetworkSubnetIpAddressService(sess *session.Session) Network_Subnet_IpAddress { + return Network_Subnet_IpAddress{Session: sess} +} + +func (r Network_Subnet_IpAddress) Id(id int) Network_Subnet_IpAddress { + r.Options.Id = &id + return r +} + +func (r Network_Subnet_IpAddress) Mask(mask string) Network_Subnet_IpAddress { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Network_Subnet_IpAddress) Filter(filter string) Network_Subnet_IpAddress { + r.Options.Filter = filter + return r +} + +func (r Network_Subnet_IpAddress) Limit(limit int) Network_Subnet_IpAddress { + r.Options.Limit = &limit + return r +} + +func (r Network_Subnet_IpAddress) Offset(offset int) Network_Subnet_IpAddress { + r.Options.Offset = &offset + return r +} + +// This method is used to allow access to a SoftLayer_Network_Storage volume that supports host- or network-level access control. +func (r Network_Subnet_IpAddress) AllowAccessToNetworkStorage(networkStorageTemplateObject *datatypes.Network_Storage) (resp bool, err error) { + params := []interface{}{ + networkStorageTemplateObject, + } + err = r.Session.DoRequest("SoftLayer_Network_Subnet_IpAddress", "allowAccessToNetworkStorage", params, &r.Options, &resp) + return +} + +// This method is used to allow access to multiple SoftLayer_Network_Storage volumes that support host- or network-level access control. +func (r Network_Subnet_IpAddress) AllowAccessToNetworkStorageList(networkStorageTemplateObjects []datatypes.Network_Storage) (resp bool, err error) { + params := []interface{}{ + networkStorageTemplateObjects, + } + err = r.Session.DoRequest("SoftLayer_Network_Subnet_IpAddress", "allowAccessToNetworkStorageList", params, &r.Options, &resp) + return +} + +// Edit a subnet IP address. +func (r Network_Subnet_IpAddress) EditObject(templateObject *datatypes.Network_Subnet_IpAddress) (resp bool, err error) { + params := []interface{}{ + templateObject, + } + err = r.Session.DoRequest("SoftLayer_Network_Subnet_IpAddress", "editObject", params, &r.Options, &resp) + return +} + +// This function is used to edit multiple objects at the same time. +func (r Network_Subnet_IpAddress) EditObjects(templateObjects []datatypes.Network_Subnet_IpAddress) (resp bool, err error) { + params := []interface{}{ + templateObjects, + } + err = r.Session.DoRequest("SoftLayer_Network_Subnet_IpAddress", "editObjects", params, &r.Options, &resp) + return +} + +// Search for an IP address record by IPv4 address. +func (r Network_Subnet_IpAddress) FindByIpv4Address(ipAddress *string) (resp datatypes.Network_Subnet_IpAddress, err error) { + params := []interface{}{ + ipAddress, + } + err = r.Session.DoRequest("SoftLayer_Network_Subnet_IpAddress", "findByIpv4Address", params, &r.Options, &resp) + return +} + +// Retrieve The SoftLayer_Network_Storage_Allowed_Host information to connect this IP Address to Network Storage supporting access control lists. +func (r Network_Subnet_IpAddress) GetAllowedHost() (resp datatypes.Network_Storage_Allowed_Host, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Subnet_IpAddress", "getAllowedHost", nil, &r.Options, &resp) + return +} + +// Retrieve The SoftLayer_Network_Storage objects that this SoftLayer_Hardware has access to. +func (r Network_Subnet_IpAddress) GetAllowedNetworkStorage() (resp []datatypes.Network_Storage, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Subnet_IpAddress", "getAllowedNetworkStorage", nil, &r.Options, &resp) + return +} + +// Retrieve The SoftLayer_Network_Storage objects whose Replica that this SoftLayer_Hardware has access to. +func (r Network_Subnet_IpAddress) GetAllowedNetworkStorageReplicas() (resp []datatypes.Network_Storage, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Subnet_IpAddress", "getAllowedNetworkStorageReplicas", nil, &r.Options, &resp) + return +} + +// Retrieve The application delivery controller using this address. +func (r Network_Subnet_IpAddress) GetApplicationDeliveryController() (resp datatypes.Network_Application_Delivery_Controller, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Subnet_IpAddress", "getApplicationDeliveryController", nil, &r.Options, &resp) + return +} + +// This method is retrieve a list of SoftLayer_Network_Storage volumes that are authorized access to this SoftLayer_Network_Subnet_IpAddress. +func (r Network_Subnet_IpAddress) GetAttachedNetworkStorages(nasType *string) (resp []datatypes.Network_Storage, err error) { + params := []interface{}{ + nasType, + } + err = r.Session.DoRequest("SoftLayer_Network_Subnet_IpAddress", "getAttachedNetworkStorages", params, &r.Options, &resp) + return +} + +// This method retrieves a list of SoftLayer_Network_Storage volumes that can be authorized to this SoftLayer_Network_Subnet_IpAddress. +func (r Network_Subnet_IpAddress) GetAvailableNetworkStorages(nasType *string) (resp []datatypes.Network_Storage, err error) { + params := []interface{}{ + nasType, + } + err = r.Session.DoRequest("SoftLayer_Network_Subnet_IpAddress", "getAvailableNetworkStorages", params, &r.Options, &resp) + return +} + +// Search for an IP address record by IP address. +func (r Network_Subnet_IpAddress) GetByIpAddress(ipAddress *string) (resp datatypes.Network_Subnet_IpAddress, err error) { + params := []interface{}{ + ipAddress, + } + err = r.Session.DoRequest("SoftLayer_Network_Subnet_IpAddress", "getByIpAddress", params, &r.Options, &resp) + return +} + +// Retrieve An IPSec network tunnel's address translations. These translations use a SoftLayer ip address from an assigned static NAT subnet to deliver the packets to the remote (customer) destination. +func (r Network_Subnet_IpAddress) GetContextTunnelTranslations() (resp []datatypes.Network_Tunnel_Module_Context_Address_Translation, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Subnet_IpAddress", "getContextTunnelTranslations", nil, &r.Options, &resp) + return +} + +// Retrieve All the subnets routed to an IP address. +func (r Network_Subnet_IpAddress) GetEndpointSubnets() (resp []datatypes.Network_Subnet, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Subnet_IpAddress", "getEndpointSubnets", nil, &r.Options, &resp) + return +} + +// Retrieve A network component that is statically routed to an IP address. +func (r Network_Subnet_IpAddress) GetGuestNetworkComponent() (resp datatypes.Virtual_Guest_Network_Component, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Subnet_IpAddress", "getGuestNetworkComponent", nil, &r.Options, &resp) + return +} + +// Retrieve A network component that is statically routed to an IP address. +func (r Network_Subnet_IpAddress) GetGuestNetworkComponentBinding() (resp datatypes.Virtual_Guest_Network_Component_IpAddress, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Subnet_IpAddress", "getGuestNetworkComponentBinding", nil, &r.Options, &resp) + return +} + +// Retrieve A server that this IP address is routed to. +func (r Network_Subnet_IpAddress) GetHardware() (resp datatypes.Hardware, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Subnet_IpAddress", "getHardware", nil, &r.Options, &resp) + return +} + +// Retrieve A network component that is statically routed to an IP address. +func (r Network_Subnet_IpAddress) GetNetworkComponent() (resp datatypes.Network_Component, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Subnet_IpAddress", "getNetworkComponent", nil, &r.Options, &resp) + return +} + +// getObject retrieves the SoftLayer_Network_Subnet_IpAddress object whose ID number corresponds to the ID number of the init parameter passed to the SoftLayer_Network_Subnet_IpAddress service. You can only retrieve the IP address whose subnet is associated with a VLAN that is associated with the account that your portal user is assigned to. +func (r Network_Subnet_IpAddress) GetObject() (resp datatypes.Network_Subnet_IpAddress, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Subnet_IpAddress", "getObject", nil, &r.Options, &resp) + return +} + +// Retrieve The network gateway appliance using this address as the private IP address. +func (r Network_Subnet_IpAddress) GetPrivateNetworkGateway() (resp datatypes.Network_Gateway, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Subnet_IpAddress", "getPrivateNetworkGateway", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Network_Subnet_IpAddress) GetProtectionAddress() (resp []datatypes.Network_Protection_Address, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Subnet_IpAddress", "getProtectionAddress", nil, &r.Options, &resp) + return +} + +// Retrieve The network gateway appliance using this address as the public IP address. +func (r Network_Subnet_IpAddress) GetPublicNetworkGateway() (resp datatypes.Network_Gateway, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Subnet_IpAddress", "getPublicNetworkGateway", nil, &r.Options, &resp) + return +} + +// Retrieve An IPMI-based management network component of the IP address. +func (r Network_Subnet_IpAddress) GetRemoteManagementNetworkComponent() (resp datatypes.Network_Component, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Subnet_IpAddress", "getRemoteManagementNetworkComponent", nil, &r.Options, &resp) + return +} + +// Retrieve An IP address' associated subnet. +func (r Network_Subnet_IpAddress) GetSubnet() (resp datatypes.Network_Subnet, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Subnet_IpAddress", "getSubnet", nil, &r.Options, &resp) + return +} + +// Retrieve All events for this IP address stored in the datacenter syslogs from the last 24 hours +func (r Network_Subnet_IpAddress) GetSyslogEventsOneDay() (resp []datatypes.Network_Logging_Syslog, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Subnet_IpAddress", "getSyslogEventsOneDay", nil, &r.Options, &resp) + return +} + +// Retrieve All events for this IP address stored in the datacenter syslogs from the last 7 days +func (r Network_Subnet_IpAddress) GetSyslogEventsSevenDays() (resp []datatypes.Network_Logging_Syslog, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Subnet_IpAddress", "getSyslogEventsSevenDays", nil, &r.Options, &resp) + return +} + +// Retrieve Top Ten network datacenter syslog events, grouped by destination port, for the last 24 hours +func (r Network_Subnet_IpAddress) GetTopTenSyslogEventsByDestinationPortOneDay() (resp []datatypes.Network_Logging_Syslog, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Subnet_IpAddress", "getTopTenSyslogEventsByDestinationPortOneDay", nil, &r.Options, &resp) + return +} + +// Retrieve Top Ten network datacenter syslog events, grouped by destination port, for the last 7 days +func (r Network_Subnet_IpAddress) GetTopTenSyslogEventsByDestinationPortSevenDays() (resp []datatypes.Network_Logging_Syslog, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Subnet_IpAddress", "getTopTenSyslogEventsByDestinationPortSevenDays", nil, &r.Options, &resp) + return +} + +// Retrieve Top Ten network datacenter syslog events, grouped by source port, for the last 24 hours +func (r Network_Subnet_IpAddress) GetTopTenSyslogEventsByProtocolsOneDay() (resp []datatypes.Network_Logging_Syslog, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Subnet_IpAddress", "getTopTenSyslogEventsByProtocolsOneDay", nil, &r.Options, &resp) + return +} + +// Retrieve Top Ten network datacenter syslog events, grouped by source port, for the last 7 days +func (r Network_Subnet_IpAddress) GetTopTenSyslogEventsByProtocolsSevenDays() (resp []datatypes.Network_Logging_Syslog, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Subnet_IpAddress", "getTopTenSyslogEventsByProtocolsSevenDays", nil, &r.Options, &resp) + return +} + +// Retrieve Top Ten network datacenter syslog events, grouped by source ip address, for the last 24 hours +func (r Network_Subnet_IpAddress) GetTopTenSyslogEventsBySourceIpOneDay() (resp []datatypes.Network_Logging_Syslog, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Subnet_IpAddress", "getTopTenSyslogEventsBySourceIpOneDay", nil, &r.Options, &resp) + return +} + +// Retrieve Top Ten network datacenter syslog events, grouped by source ip address, for the last 7 days +func (r Network_Subnet_IpAddress) GetTopTenSyslogEventsBySourceIpSevenDays() (resp []datatypes.Network_Logging_Syslog, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Subnet_IpAddress", "getTopTenSyslogEventsBySourceIpSevenDays", nil, &r.Options, &resp) + return +} + +// Retrieve Top Ten network datacenter syslog events, grouped by source port, for the last 24 hours +func (r Network_Subnet_IpAddress) GetTopTenSyslogEventsBySourcePortOneDay() (resp []datatypes.Network_Logging_Syslog, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Subnet_IpAddress", "getTopTenSyslogEventsBySourcePortOneDay", nil, &r.Options, &resp) + return +} + +// Retrieve Top Ten network datacenter syslog events, grouped by source port, for the last 7 days +func (r Network_Subnet_IpAddress) GetTopTenSyslogEventsBySourcePortSevenDays() (resp []datatypes.Network_Logging_Syslog, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Subnet_IpAddress", "getTopTenSyslogEventsBySourcePortSevenDays", nil, &r.Options, &resp) + return +} + +// Retrieve A virtual guest that this IP address is routed to. +func (r Network_Subnet_IpAddress) GetVirtualGuest() (resp datatypes.Virtual_Guest, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Subnet_IpAddress", "getVirtualGuest", nil, &r.Options, &resp) + return +} + +// Retrieve Virtual licenses allocated for an IP Address. +func (r Network_Subnet_IpAddress) GetVirtualLicenses() (resp []datatypes.Software_VirtualLicense, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Subnet_IpAddress", "getVirtualLicenses", nil, &r.Options, &resp) + return +} + +// This method is used to remove access to multiple SoftLayer_Network_Storage volumes +func (r Network_Subnet_IpAddress) RemoveAccessToNetworkStorageList(networkStorageTemplateObjects []datatypes.Network_Storage) (resp bool, err error) { + params := []interface{}{ + networkStorageTemplateObjects, + } + err = r.Session.DoRequest("SoftLayer_Network_Subnet_IpAddress", "removeAccessToNetworkStorageList", params, &r.Options, &resp) + return +} + +// no documentation yet +type Network_Subnet_IpAddress_Global struct { + Session *session.Session + Options sl.Options +} + +// GetNetworkSubnetIpAddressGlobalService returns an instance of the Network_Subnet_IpAddress_Global SoftLayer service +func GetNetworkSubnetIpAddressGlobalService(sess *session.Session) Network_Subnet_IpAddress_Global { + return Network_Subnet_IpAddress_Global{Session: sess} +} + +func (r Network_Subnet_IpAddress_Global) Id(id int) Network_Subnet_IpAddress_Global { + r.Options.Id = &id + return r +} + +func (r Network_Subnet_IpAddress_Global) Mask(mask string) Network_Subnet_IpAddress_Global { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Network_Subnet_IpAddress_Global) Filter(filter string) Network_Subnet_IpAddress_Global { + r.Options.Filter = filter + return r +} + +func (r Network_Subnet_IpAddress_Global) Limit(limit int) Network_Subnet_IpAddress_Global { + r.Options.Limit = &limit + return r +} + +func (r Network_Subnet_IpAddress_Global) Offset(offset int) Network_Subnet_IpAddress_Global { + r.Options.Offset = &offset + return r +} + +// Retrieve +func (r Network_Subnet_IpAddress_Global) GetAccount() (resp datatypes.Account, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Subnet_IpAddress_Global", "getAccount", nil, &r.Options, &resp) + return +} + +// Retrieve The active transaction associated with this Global IP. +func (r Network_Subnet_IpAddress_Global) GetActiveTransaction() (resp datatypes.Provisioning_Version1_Transaction, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Subnet_IpAddress_Global", "getActiveTransaction", nil, &r.Options, &resp) + return +} + +// Retrieve The billing item for this Global IP. +func (r Network_Subnet_IpAddress_Global) GetBillingItem() (resp datatypes.Billing_Item_Network_Subnet_IpAddress_Global, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Subnet_IpAddress_Global", "getBillingItem", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Network_Subnet_IpAddress_Global) GetDestinationIpAddress() (resp datatypes.Network_Subnet_IpAddress, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Subnet_IpAddress_Global", "getDestinationIpAddress", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Network_Subnet_IpAddress_Global) GetIpAddress() (resp datatypes.Network_Subnet_IpAddress, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Subnet_IpAddress_Global", "getIpAddress", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Network_Subnet_IpAddress_Global) GetObject() (resp datatypes.Network_Subnet_IpAddress_Global, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Subnet_IpAddress_Global", "getObject", nil, &r.Options, &resp) + return +} + +// This function is used to create a new transaction to modify a global IP route. Routes are updated in one to two minutes depending on the number of transactions that are pending for a router. +func (r Network_Subnet_IpAddress_Global) Route(newEndPointIpAddress *string) (resp datatypes.Provisioning_Version1_Transaction, err error) { + params := []interface{}{ + newEndPointIpAddress, + } + err = r.Session.DoRequest("SoftLayer_Network_Subnet_IpAddress_Global", "route", params, &r.Options, &resp) + return +} + +// This function is used to create a new transaction to unroute a global IP address. Routes are updated in one to two minutes depending on the number of transactions that are pending for a router. +func (r Network_Subnet_IpAddress_Global) Unroute() (resp datatypes.Provisioning_Version1_Transaction, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Subnet_IpAddress_Global", "unroute", nil, &r.Options, &resp) + return +} + +// The subnet registration data type contains general information relating to a single subnet registration instance. These registration instances can be updated to reflect changes, and will record the changes in the [[SoftLayer_Network_Subnet_Registration_Event|events]]. +type Network_Subnet_Registration struct { + Session *session.Session + Options sl.Options +} + +// GetNetworkSubnetRegistrationService returns an instance of the Network_Subnet_Registration SoftLayer service +func GetNetworkSubnetRegistrationService(sess *session.Session) Network_Subnet_Registration { + return Network_Subnet_Registration{Session: sess} +} + +func (r Network_Subnet_Registration) Id(id int) Network_Subnet_Registration { + r.Options.Id = &id + return r +} + +func (r Network_Subnet_Registration) Mask(mask string) Network_Subnet_Registration { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Network_Subnet_Registration) Filter(filter string) Network_Subnet_Registration { + r.Options.Filter = filter + return r +} + +func (r Network_Subnet_Registration) Limit(limit int) Network_Subnet_Registration { + r.Options.Limit = &limit + return r +} + +func (r Network_Subnet_Registration) Offset(offset int) Network_Subnet_Registration { + r.Options.Offset = &offset + return r +} + +// This method will initiate the removal of a subnet registration. +func (r Network_Subnet_Registration) ClearRegistration() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Subnet_Registration", "clearRegistration", nil, &r.Options, &resp) + return +} + +// This method will create a new SoftLayer_Network_Subnet_Registration object. +// +// Input - [[SoftLayer_Network_Subnet_Registration (type)|SoftLayer_Network_Subnet_Registration]]
    • networkIdentifier
      The base address of the [[SoftLayer_Network_Subnet|subnet]] being registered. This can be derived directly from the SoftLayer_Network_Subnet object's networkIdentifier property.
      • Required
      • Type - string
    • cidr
      The CIDR prefix of the [[SoftLayer_Network_Subnet|subnet]] being registered. This can be derived directly from the SoftLayer_Network_Subnet object's cidr property.
      • Required
      • Type - integer
    +func (r Network_Subnet_Registration) CreateObject(templateObject *datatypes.Network_Subnet_Registration) (resp datatypes.Network_Subnet_Registration, err error) { + params := []interface{}{ + templateObject, + } + err = r.Session.DoRequest("SoftLayer_Network_Subnet_Registration", "createObject", params, &r.Options, &resp) + return +} + +// This method will edit an existing SoftLayer_Network_Subnet_Registration object. For more detail, see [[SoftLayer_Network_Subnet_Registration::createObject|createObject]]. +func (r Network_Subnet_Registration) EditObject(templateObject *datatypes.Network_Subnet_Registration) (resp bool, err error) { + params := []interface{}{ + templateObject, + } + err = r.Session.DoRequest("SoftLayer_Network_Subnet_Registration", "editObject", params, &r.Options, &resp) + return +} + +// This method modifies a single registration by modifying the current [[SoftLayer_Network_Subnet_Registration_Details]] objects that are linked to that registration. +func (r Network_Subnet_Registration) EditRegistrationAttachedDetails(personObjectSkeleton *datatypes.Network_Subnet_Registration_Details, networkObjectSkeleton *datatypes.Network_Subnet_Registration_Details) (resp bool, err error) { + params := []interface{}{ + personObjectSkeleton, + networkObjectSkeleton, + } + err = r.Session.DoRequest("SoftLayer_Network_Subnet_Registration", "editRegistrationAttachedDetails", params, &r.Options, &resp) + return +} + +// Retrieve The account that this registration belongs to. +func (r Network_Subnet_Registration) GetAccount() (resp datatypes.Account, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Subnet_Registration", "getAccount", nil, &r.Options, &resp) + return +} + +// Retrieve The cross-reference records that tie the [[SoftLayer_Account_Regional_Registry_Detail]] objects to the registration object. +func (r Network_Subnet_Registration) GetDetailReferences() (resp []datatypes.Network_Subnet_Registration_Details, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Subnet_Registration", "getDetailReferences", nil, &r.Options, &resp) + return +} + +// Retrieve The related registration events. +func (r Network_Subnet_Registration) GetEvents() (resp []datatypes.Network_Subnet_Registration_Event, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Subnet_Registration", "getEvents", nil, &r.Options, &resp) + return +} + +// Retrieve The "network" detail object. +func (r Network_Subnet_Registration) GetNetworkDetail() (resp datatypes.Account_Regional_Registry_Detail, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Subnet_Registration", "getNetworkDetail", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Network_Subnet_Registration) GetObject() (resp datatypes.Network_Subnet_Registration, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Subnet_Registration", "getObject", nil, &r.Options, &resp) + return +} + +// Retrieve The "person" detail object. +func (r Network_Subnet_Registration) GetPersonDetail() (resp datatypes.Account_Regional_Registry_Detail, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Subnet_Registration", "getPersonDetail", nil, &r.Options, &resp) + return +} + +// Retrieve The related Regional Internet Registry. +func (r Network_Subnet_Registration) GetRegionalInternetRegistry() (resp datatypes.Network_Regional_Internet_Registry, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Subnet_Registration", "getRegionalInternetRegistry", nil, &r.Options, &resp) + return +} + +// Retrieve The RIR handle that this registration object belongs to. This field may not be populated until the registration is complete. +func (r Network_Subnet_Registration) GetRegionalInternetRegistryHandle() (resp datatypes.Account_Rwhois_Handle, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Subnet_Registration", "getRegionalInternetRegistryHandle", nil, &r.Options, &resp) + return +} + +// Retrieve The status of this registration. +func (r Network_Subnet_Registration) GetStatus() (resp datatypes.Network_Subnet_Registration_Status, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Subnet_Registration", "getStatus", nil, &r.Options, &resp) + return +} + +// Retrieve The subnet that this registration pertains to. +func (r Network_Subnet_Registration) GetSubnet() (resp datatypes.Network_Subnet, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Subnet_Registration", "getSubnet", nil, &r.Options, &resp) + return +} + +// The SoftLayer_Network_Subnet_Registration_Details objects are used to relate [[SoftLayer_Account_Regional_Registry_Detail]] objects to a [[SoftLayer_Network_Subnet_Registration]] object. This allows for easy reuse of registration details. It is important to note that only one detail object per type may be associated to a registration object. +type Network_Subnet_Registration_Details struct { + Session *session.Session + Options sl.Options +} + +// GetNetworkSubnetRegistrationDetailsService returns an instance of the Network_Subnet_Registration_Details SoftLayer service +func GetNetworkSubnetRegistrationDetailsService(sess *session.Session) Network_Subnet_Registration_Details { + return Network_Subnet_Registration_Details{Session: sess} +} + +func (r Network_Subnet_Registration_Details) Id(id int) Network_Subnet_Registration_Details { + r.Options.Id = &id + return r +} + +func (r Network_Subnet_Registration_Details) Mask(mask string) Network_Subnet_Registration_Details { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Network_Subnet_Registration_Details) Filter(filter string) Network_Subnet_Registration_Details { + r.Options.Filter = filter + return r +} + +func (r Network_Subnet_Registration_Details) Limit(limit int) Network_Subnet_Registration_Details { + r.Options.Limit = &limit + return r +} + +func (r Network_Subnet_Registration_Details) Offset(offset int) Network_Subnet_Registration_Details { + r.Options.Offset = &offset + return r +} + +// This method will create a new SoftLayer_Network_Subnet_Registration_Details object. +// +// Input - [[SoftLayer_Network_Subnet_Registration_Details (type)|SoftLayer_Network_Subnet_Registration_Details]]
    • detailId
      The numeric ID of the [[SoftLayer_Account_Regional_Registry_Detail|detail]] object to relate.
      • Required
      • Type - integer
    • registrationId
      The numeric ID of the [[SoftLayer_Network_Subnet_Registration|registration]] object to relate.
      • Required
      • Type - integer
    +func (r Network_Subnet_Registration_Details) CreateObject(templateObject *datatypes.Network_Subnet_Registration_Details) (resp datatypes.Network_Subnet_Registration_Details, err error) { + params := []interface{}{ + templateObject, + } + err = r.Session.DoRequest("SoftLayer_Network_Subnet_Registration_Details", "createObject", params, &r.Options, &resp) + return +} + +// This method will delete an existing SoftLayer_Account_Regional_Registry_Detail object. +func (r Network_Subnet_Registration_Details) DeleteObject() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Subnet_Registration_Details", "deleteObject", nil, &r.Options, &resp) + return +} + +// Retrieve The related [[SoftLayer_Account_Regional_Registry_Detail|detail object]]. +func (r Network_Subnet_Registration_Details) GetDetail() (resp datatypes.Account_Regional_Registry_Detail, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Subnet_Registration_Details", "getDetail", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Network_Subnet_Registration_Details) GetObject() (resp datatypes.Network_Subnet_Registration_Details, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Subnet_Registration_Details", "getObject", nil, &r.Options, &resp) + return +} + +// Retrieve The related [[SoftLayer_Network_Subnet_Registration|registration object]]. +func (r Network_Subnet_Registration_Details) GetRegistration() (resp datatypes.Network_Subnet_Registration, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Subnet_Registration_Details", "getRegistration", nil, &r.Options, &resp) + return +} + +// Subnet Registration Status objects describe the current status of a subnet registration. +// +// The standard values for these objects are as follows:
    • OPEN - Indicates that the registration object is new and has yet to be submitted to the RIR
    • PENDING - Indicates that the registration object has been submitted to the RIR and is awaiting response
    • COMPLETE - Indicates that the RIR action has completed
    • DELETED - Indicates that the registration object has been gracefully removed is no longer valid
    • CANCELLED - Indicates that the registration object has been abruptly removed is no longer valid
    +type Network_Subnet_Registration_Status struct { + Session *session.Session + Options sl.Options +} + +// GetNetworkSubnetRegistrationStatusService returns an instance of the Network_Subnet_Registration_Status SoftLayer service +func GetNetworkSubnetRegistrationStatusService(sess *session.Session) Network_Subnet_Registration_Status { + return Network_Subnet_Registration_Status{Session: sess} +} + +func (r Network_Subnet_Registration_Status) Id(id int) Network_Subnet_Registration_Status { + r.Options.Id = &id + return r +} + +func (r Network_Subnet_Registration_Status) Mask(mask string) Network_Subnet_Registration_Status { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Network_Subnet_Registration_Status) Filter(filter string) Network_Subnet_Registration_Status { + r.Options.Filter = filter + return r +} + +func (r Network_Subnet_Registration_Status) Limit(limit int) Network_Subnet_Registration_Status { + r.Options.Limit = &limit + return r +} + +func (r Network_Subnet_Registration_Status) Offset(offset int) Network_Subnet_Registration_Status { + r.Options.Offset = &offset + return r +} + +// no documentation yet +func (r Network_Subnet_Registration_Status) GetAllObjects() (resp []datatypes.Network_Subnet_Registration_Status, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Subnet_Registration_Status", "getAllObjects", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Network_Subnet_Registration_Status) GetObject() (resp datatypes.Network_Subnet_Registration_Status, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Subnet_Registration_Status", "getObject", nil, &r.Options, &resp) + return +} + +// Every SoftLayer customer account has contact information associated with it for reverse WHOIS purposes. An account's RWHOIS data, modeled by the SoftLayer_Network_Subnet_Rwhois_Data data type, is used by SoftLayer's reverse WHOIS server as well as for SWIP transactions. SoftLayer's reverse WHOIS servers respond to WHOIS queries for IP addresses belonging to a customer's servers, returning this RWHOIS data. +// +// A SoftLayer customer's RWHOIS data may not necessarily match their account or portal users' contact information. +type Network_Subnet_Rwhois_Data struct { + Session *session.Session + Options sl.Options +} + +// GetNetworkSubnetRwhoisDataService returns an instance of the Network_Subnet_Rwhois_Data SoftLayer service +func GetNetworkSubnetRwhoisDataService(sess *session.Session) Network_Subnet_Rwhois_Data { + return Network_Subnet_Rwhois_Data{Session: sess} +} + +func (r Network_Subnet_Rwhois_Data) Id(id int) Network_Subnet_Rwhois_Data { + r.Options.Id = &id + return r +} + +func (r Network_Subnet_Rwhois_Data) Mask(mask string) Network_Subnet_Rwhois_Data { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Network_Subnet_Rwhois_Data) Filter(filter string) Network_Subnet_Rwhois_Data { + r.Options.Filter = filter + return r +} + +func (r Network_Subnet_Rwhois_Data) Limit(limit int) Network_Subnet_Rwhois_Data { + r.Options.Limit = &limit + return r +} + +func (r Network_Subnet_Rwhois_Data) Offset(offset int) Network_Subnet_Rwhois_Data { + r.Options.Offset = &offset + return r +} + +// Edit the RWHOIS record by passing in a modified version of the record object. All fields are editable. +func (r Network_Subnet_Rwhois_Data) EditObject(templateObject *datatypes.Network_Subnet_Rwhois_Data) (resp bool, err error) { + params := []interface{}{ + templateObject, + } + err = r.Session.DoRequest("SoftLayer_Network_Subnet_Rwhois_Data", "editObject", params, &r.Options, &resp) + return +} + +// Retrieve The SoftLayer customer account associated with this reverse WHOIS data. +func (r Network_Subnet_Rwhois_Data) GetAccount() (resp datatypes.Account, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Subnet_Rwhois_Data", "getAccount", nil, &r.Options, &resp) + return +} + +// getObject retrieves the SoftLayer_Network_Subnet_Rwhois_Data object whose ID corresponds to the ID number of the init parameter passed to the SoftLayer_Network_Subnet_Rwhois_Data service. +// +// The best way to get Rwhois Data for an account is through getRhwoisData on the Account service. +func (r Network_Subnet_Rwhois_Data) GetObject() (resp datatypes.Network_Subnet_Rwhois_Data, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Subnet_Rwhois_Data", "getObject", nil, &r.Options, &resp) + return +} + +// The SoftLayer_Network_Subnet_Swip_Transaction data type contains basic information tracked at SoftLayer to allow automation of Swip creation, update, and removal requests. A specific transaction is attached to an accountId and a subnetId. This also contains a "Status Name" which tells the customer what the transaction is doing: +// +// +// * REQUEST QUEUED: Request is queued up to be sent to ARIN +// * REQUEST SENT: The email request has been sent to ARIN +// * REQUEST CONFIRMED: ARIN has confirmed that the request is good, and should be available in 24 hours +// * OK: The subnet has been checked with WHOIS and it the SWIP transaction has completed correctly +// * REMOVE QUEUED: A subnet is queued to be removed from ARIN's systems +// * REMOVE SENT: The removal email request has been sent to ARIN +// * REMOVE CONFIRMED: ARIN has confirmed that the removal request is good, and the subnet should be clear in WHOIS in 24 hours +// * DELETED: This specific SWIP Transaction has been removed from ARIN and is no longer in effect +// * SOFTLAYER MANUALLY PROCESSING: Sometimes a request doesn't go through correctly and has to be manually processed by SoftLayer. This may take some time. +type Network_Subnet_Swip_Transaction struct { + Session *session.Session + Options sl.Options +} + +// GetNetworkSubnetSwipTransactionService returns an instance of the Network_Subnet_Swip_Transaction SoftLayer service +func GetNetworkSubnetSwipTransactionService(sess *session.Session) Network_Subnet_Swip_Transaction { + return Network_Subnet_Swip_Transaction{Session: sess} +} + +func (r Network_Subnet_Swip_Transaction) Id(id int) Network_Subnet_Swip_Transaction { + r.Options.Id = &id + return r +} + +func (r Network_Subnet_Swip_Transaction) Mask(mask string) Network_Subnet_Swip_Transaction { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Network_Subnet_Swip_Transaction) Filter(filter string) Network_Subnet_Swip_Transaction { + r.Options.Filter = filter + return r +} + +func (r Network_Subnet_Swip_Transaction) Limit(limit int) Network_Subnet_Swip_Transaction { + r.Options.Limit = &limit + return r +} + +func (r Network_Subnet_Swip_Transaction) Offset(offset int) Network_Subnet_Swip_Transaction { + r.Options.Offset = &offset + return r +} + +// This function will return an array of SoftLayer_Network_Subnet_Swip_Transaction objects, one for each SWIP that is currently in transaction with ARIN. This includes all swip registrations, swip removal requests, and SWIP objects that are currently OK. +func (r Network_Subnet_Swip_Transaction) FindMyTransactions() (resp []datatypes.Network_Subnet_Swip_Transaction, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Subnet_Swip_Transaction", "findMyTransactions", nil, &r.Options, &resp) + return +} + +// Retrieve The Account whose RWHOIS data was used to SWIP this subnet +func (r Network_Subnet_Swip_Transaction) GetAccount() (resp datatypes.Account, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Subnet_Swip_Transaction", "getAccount", nil, &r.Options, &resp) + return +} + +// getObject retrieves the SoftLayer_Network_Subnet_Swip_Transaction object whose ID number corresponds to the ID number of the init parameter passed to the SoftLayer_Network_Subnet_Swip_transaction service. You can only retrieve Swip transactions tied to the account. +func (r Network_Subnet_Swip_Transaction) GetObject() (resp datatypes.Network_Subnet_Swip_Transaction, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Subnet_Swip_Transaction", "getObject", nil, &r.Options, &resp) + return +} + +// Retrieve The subnet that this SWIP transaction was created for. +func (r Network_Subnet_Swip_Transaction) GetSubnet() (resp datatypes.Network_Subnet, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Subnet_Swip_Transaction", "getSubnet", nil, &r.Options, &resp) + return +} + +// This method finds all subnets attached to your account that are in OK status and starts "DELETE" transactions with ARIN, allowing you to remove your SWIP registration information. +func (r Network_Subnet_Swip_Transaction) RemoveAllSubnetSwips() (resp int, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Subnet_Swip_Transaction", "removeAllSubnetSwips", nil, &r.Options, &resp) + return +} + +// This function, when called on an instantiated SWIP transaction, will allow you to start a "DELETE" transaction with ARIN, allowing you to remove your SWIP registration information. +func (r Network_Subnet_Swip_Transaction) RemoveSwipData() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Subnet_Swip_Transaction", "removeSwipData", nil, &r.Options, &resp) + return +} + +// This function will allow you to update ARIN's registration data for a subnet to your current RWHOIS data. +func (r Network_Subnet_Swip_Transaction) ResendSwipData() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Subnet_Swip_Transaction", "resendSwipData", nil, &r.Options, &resp) + return +} + +// swipAllSubnets finds all subnets attached to your account and attempts to create a SWIP transaction for all subnets that do not already have a SWIP transaction in progress. +func (r Network_Subnet_Swip_Transaction) SwipAllSubnets() (resp int, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Subnet_Swip_Transaction", "swipAllSubnets", nil, &r.Options, &resp) + return +} + +// This method finds all subnets attached to your account that are in "OK" status and updates their data with ARIN. Use this function after you have updated your RWHOIS data if you want to keep SWIP up to date. +func (r Network_Subnet_Swip_Transaction) UpdateAllSubnetSwips() (resp int, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Subnet_Swip_Transaction", "updateAllSubnetSwips", nil, &r.Options, &resp) + return +} + +// no documentation yet +type Network_TippingPointReporting struct { + Session *session.Session + Options sl.Options +} + +// GetNetworkTippingPointReportingService returns an instance of the Network_TippingPointReporting SoftLayer service +func GetNetworkTippingPointReportingService(sess *session.Session) Network_TippingPointReporting { + return Network_TippingPointReporting{Session: sess} +} + +func (r Network_TippingPointReporting) Id(id int) Network_TippingPointReporting { + r.Options.Id = &id + return r +} + +func (r Network_TippingPointReporting) Mask(mask string) Network_TippingPointReporting { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Network_TippingPointReporting) Filter(filter string) Network_TippingPointReporting { + r.Options.Filter = filter + return r +} + +func (r Network_TippingPointReporting) Limit(limit int) Network_TippingPointReporting { + r.Options.Limit = &limit + return r +} + +func (r Network_TippingPointReporting) Offset(offset int) Network_TippingPointReporting { + r.Options.Offset = &offset + return r +} + +// This method, when given an attack signature ID (available in the return values of getReportForIpAddressOrSubnet and getSubnetReportForEntireAccount) and an IP Address and subnet mask, returns all attacks for that subnet in the specified time frame and direction. Once the results have been filtered, additional data is available, including starting and ending times for the attack, originating IP address and port, and destination IP address and port. +// +// CVE and Bugtraq information is not available at this level. +func (r Network_TippingPointReporting) DrillDownAttack(signatureId *string, IpAddress *string, subnetMask *int, timeFrame *int, direction *string) (resp datatypes.Container_Network_IntrusionProtection_SubnetReport, err error) { + params := []interface{}{ + signatureId, + IpAddress, + subnetMask, + timeFrame, + direction, + } + err = r.Session.DoRequest("SoftLayer_Network_TippingPointReporting", "drillDownAttack", params, &r.Options, &resp) + return +} + +// This method returns the attack statistics for the current user's account and for the entire SoftLayer network. These attacks are recorded and monitored at the entry point to the network, and represent attacks in both directions. +// +// The data returned is: +// * Top attacks (by attack name) on datacenter Dal01 in the last hour (and last 24 hours) +// * Top attacks (by attack name) on IPs you own in the last hour (and last 24 hours) +// * Top IPs attacking IPs you own in the last hour (and last 24 hours) +// Each one of these lists can contain any number of items, the default is 5. The usable limit is less than 10, but setting the limit to an abnormally high value will effectively return all records. +// +// The data is returned as a collection of SoftLayer_Container_Network_IntrusionProtection_Statistics objects. +func (r Network_TippingPointReporting) GetMainStatistics(numberOfAttacks *int) (resp []datatypes.Container_Network_IntrusionProtection_Statistics, err error) { + params := []interface{}{ + numberOfAttacks, + } + err = r.Session.DoRequest("SoftLayer_Network_TippingPointReporting", "getMainStatistics", params, &r.Options, &resp) + return +} + +// This method expands on the getSubnetReportForEntireAccount method by offering the ability to filter by subnet or IP address. This method is identical to getSubnetReportForEntireAccount, but allows filtering by subnet. Like in the getSubnetReportForEntireAccount method, CVE and BugTraq IDs are provided, if available. +// +// This method should be called once an attack has been identified using getSubnetReportForEntireAccount (in which case "All Subnets" is the subnet) or getReportForIpAddressOrSubnet. +func (r Network_TippingPointReporting) GetReportForIpAddressOrSubnet(IpAddress *string, subnetMask *int, timeFrame *int, orderBy *string, orderDirection *string) (resp []datatypes.Container_Network_IntrusionProtection_SubnetReport, err error) { + params := []interface{}{ + IpAddress, + subnetMask, + timeFrame, + orderBy, + orderDirection, + } + err = r.Session.DoRequest("SoftLayer_Network_TippingPointReporting", "getReportForIpAddressOrSubnet", params, &r.Options, &resp) + return +} + +// This method returns specific attacks by name for all subnets on the current user's account. +// +// The data returned is stored in SoftLayer_Container_Network_IntrusionProtection_SubnetReport objects, with the "subnet" value set to "All Subnets" +// +// The data is separated into "Inbound" and "Outbound" traffic. A significant amount of outbound attack traffic could indicate that your servers have been compromised. +// +// The data returned includes Attack Count, attack name, extended attack description, and IDs that correspond with the BugTraq or CVE databases. BugTraq can be accessed at [http://www.securityfocus.com/vulnerabilities] The CVE database is located at [http://cve.mitre.org/find/index.html] +// +// For more detailed information, use the getReportForIpAddressOrSubnet method +func (r Network_TippingPointReporting) GetSubnetReportForEntireAccount(timeFrame *int, orderBy *string, orderDirection *string, returnSubnetGroups *bool) (resp []datatypes.Container_Network_IntrusionProtection_SubnetReport, err error) { + params := []interface{}{ + timeFrame, + orderBy, + orderDirection, + returnSubnetGroups, + } + err = r.Session.DoRequest("SoftLayer_Network_TippingPointReporting", "getSubnetReportForEntireAccount", params, &r.Options, &resp) + return +} + +// The SoftLayer_Network_Tunnel_Module_Context data type contains general information relating to a single SoftLayer network tunnel. The SoftLayer_Network_Tunnel_Module_Context is useful to gather information such as related customer subnets (remote) and internal subnets (local) associated with the network tunnel as well as other information needed to manage the network tunnel. Account and billing information related to the network tunnel can also be retrieved. +type Network_Tunnel_Module_Context struct { + Session *session.Session + Options sl.Options +} + +// GetNetworkTunnelModuleContextService returns an instance of the Network_Tunnel_Module_Context SoftLayer service +func GetNetworkTunnelModuleContextService(sess *session.Session) Network_Tunnel_Module_Context { + return Network_Tunnel_Module_Context{Session: sess} +} + +func (r Network_Tunnel_Module_Context) Id(id int) Network_Tunnel_Module_Context { + r.Options.Id = &id + return r +} + +func (r Network_Tunnel_Module_Context) Mask(mask string) Network_Tunnel_Module_Context { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Network_Tunnel_Module_Context) Filter(filter string) Network_Tunnel_Module_Context { + r.Options.Filter = filter + return r +} + +func (r Network_Tunnel_Module_Context) Limit(limit int) Network_Tunnel_Module_Context { + r.Options.Limit = &limit + return r +} + +func (r Network_Tunnel_Module_Context) Offset(offset int) Network_Tunnel_Module_Context { + r.Options.Offset = &offset + return r +} + +// Associates a remote subnet to the network tunnel. When a remote subnet is associated, a network tunnel will allow the customer (remote) network to communicate with the private and service subnets on the SoftLayer network which are on the other end of this network tunnel. +// +// NOTE: A network tunnel's configurations must be applied to the network device in order for the association described above to take effect. +func (r Network_Tunnel_Module_Context) AddCustomerSubnetToNetworkTunnel(subnetId *int) (resp bool, err error) { + params := []interface{}{ + subnetId, + } + err = r.Session.DoRequest("SoftLayer_Network_Tunnel_Module_Context", "addCustomerSubnetToNetworkTunnel", params, &r.Options, &resp) + return +} + +// Associates a private subnet to the network tunnel. When a private subnet is associated, the network tunnel will allow the customer (remote) network to access the private subnet. +// +// NOTE: A network tunnel's configurations must be applied to the network device in order for the association described above to take effect. +func (r Network_Tunnel_Module_Context) AddPrivateSubnetToNetworkTunnel(subnetId *int) (resp bool, err error) { + params := []interface{}{ + subnetId, + } + err = r.Session.DoRequest("SoftLayer_Network_Tunnel_Module_Context", "addPrivateSubnetToNetworkTunnel", params, &r.Options, &resp) + return +} + +// Associates a service subnet to the network tunnel. When a service subnet is associated, a network tunnel will allow the customer (remote) network to communicate with the private and service subnets on the SoftLayer network which are on the other end of this network tunnel. Service subnets provide access to SoftLayer services such as the customer management portal and the SoftLayer API. +// +// NOTE: A network tunnel's configurations must be applied to the network device in order for the association described above to take effect. +func (r Network_Tunnel_Module_Context) AddServiceSubnetToNetworkTunnel(subnetId *int) (resp bool, err error) { + params := []interface{}{ + subnetId, + } + err = r.Session.DoRequest("SoftLayer_Network_Tunnel_Module_Context", "addServiceSubnetToNetworkTunnel", params, &r.Options, &resp) + return +} + +// A transaction will be created to apply the IPSec network tunnel's configuration to SoftLayer network devices. During this time, an IPSec network tunnel cannot be modified in anyway. Only one network tunnel configuration transaction can be created. If a transaction has been created or is running, a new transaction cannot be created until the previous transaction completes. +func (r Network_Tunnel_Module_Context) ApplyConfigurationsToDevice() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Tunnel_Module_Context", "applyConfigurationsToDevice", nil, &r.Options, &resp) + return +} + +// Create an address translation for a network tunnel. +// +// To create an address translation, ip addresses from an assigned /30 static route subnet are used. Address translations deliver packets to a destination ip address that is on a customer (remote) subnet. +// +// NOTE: A network tunnel's configurations must be applied to the network device in order for an address translation to be created. +func (r Network_Tunnel_Module_Context) CreateAddressTranslation(translation *datatypes.Network_Tunnel_Module_Context_Address_Translation) (resp datatypes.Network_Tunnel_Module_Context_Address_Translation, err error) { + params := []interface{}{ + translation, + } + err = r.Session.DoRequest("SoftLayer_Network_Tunnel_Module_Context", "createAddressTranslation", params, &r.Options, &resp) + return +} + +// This has the same functionality as the SoftLayer_Network_Tunnel_Module_Context::createAddressTranslation. However, it allows multiple translations to be passed in for creation. +// +// NOTE: A network tunnel's configurations must be applied to the network device in order for the address translations to be created. +func (r Network_Tunnel_Module_Context) CreateAddressTranslations(translations []datatypes.Network_Tunnel_Module_Context_Address_Translation) (resp []datatypes.Network_Tunnel_Module_Context_Address_Translation, err error) { + params := []interface{}{ + translations, + } + err = r.Session.DoRequest("SoftLayer_Network_Tunnel_Module_Context", "createAddressTranslations", params, &r.Options, &resp) + return +} + +// Remove an existing address translation from a network tunnel. +// +// Address translations deliver packets to a destination ip address that is on a customer subnet (remote). +// +// NOTE: A network tunnel's configurations must be applied to the network device in order for an address translation to be deleted. +func (r Network_Tunnel_Module_Context) DeleteAddressTranslation(translationId *int) (resp bool, err error) { + params := []interface{}{ + translationId, + } + err = r.Session.DoRequest("SoftLayer_Network_Tunnel_Module_Context", "deleteAddressTranslation", params, &r.Options, &resp) + return +} + +// Provides all of the address translation configurations for an IPSec VPN tunnel in a text file +func (r Network_Tunnel_Module_Context) DownloadAddressTranslationConfigurations() (resp datatypes.Container_Utility_File_Entity, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Tunnel_Module_Context", "downloadAddressTranslationConfigurations", nil, &r.Options, &resp) + return +} + +// Provides all of the configurations for an IPSec VPN network tunnel in a text file +func (r Network_Tunnel_Module_Context) DownloadParameterConfigurations() (resp datatypes.Container_Utility_File_Entity, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Tunnel_Module_Context", "downloadParameterConfigurations", nil, &r.Options, &resp) + return +} + +// Edit name, source (SoftLayer IP) ip address and/or destination (Customer IP) ip address for an existing address translation for a network tunnel. +// +// Address translations deliver packets to a destination ip address that is on a customer (remote) subnet. +// +// NOTE: A network tunnel's configurations must be applied to the network device in order for an address translation to be created. +func (r Network_Tunnel_Module_Context) EditAddressTranslation(translation *datatypes.Network_Tunnel_Module_Context_Address_Translation) (resp datatypes.Network_Tunnel_Module_Context_Address_Translation, err error) { + params := []interface{}{ + translation, + } + err = r.Session.DoRequest("SoftLayer_Network_Tunnel_Module_Context", "editAddressTranslation", params, &r.Options, &resp) + return +} + +// Edit name, source (SoftLayer IP) ip address and/or destination (Customer IP) ip address for existing address translations for a network tunnel. +// +// Address translations deliver packets to a destination ip address that is on a customer (remote) subnet. +// +// NOTE: A network tunnel's configurations must be applied to the network device in order for an address translation to be modified. +func (r Network_Tunnel_Module_Context) EditAddressTranslations(translations []datatypes.Network_Tunnel_Module_Context_Address_Translation) (resp []datatypes.Network_Tunnel_Module_Context_Address_Translation, err error) { + params := []interface{}{ + translations, + } + err = r.Session.DoRequest("SoftLayer_Network_Tunnel_Module_Context", "editAddressTranslations", params, &r.Options, &resp) + return +} + +// Negotiation parameters for both phases one and two are editable. Here are the phase one and two parameters that can modified: +// +// +// *Phase One +// **Authentication +// ***Default value is set to MD5. +// ***Valid Options are: MD5, SHA1, SHA256. +// **Encryption +// ***Default value is set to 3DES. +// ***Valid Options are: DES, 3DES, AES128, AES192, AES256. +// **Diffie-Hellman Group +// ***Default value is set to 2. +// ***Valid Options are: 0 (None), 1, 2, 5. +// **Keylife +// ***Default value is set to 3600. +// ***Limits are: MIN = 120, MAX = 172800 +// **Preshared Key +// *Phase Two +// **Authentication +// ***Default value is set to MD5. +// ***Valid Options are: MD5, SHA1, SHA256. +// **Encryption +// ***Default value is set to 3DES. +// ***Valid Options are: DES, 3DES, AES128, AES192, AES256. +// **Diffie-Hellman Group +// ***Default value is set to 2. +// ***Valid Options are: 0 (None), 1, 2, 5. +// **Keylife +// ***Default value is set to 28800. +// ***Limits are: MIN = 120, MAX = 172800 +// **Perfect Forward Secrecy +// ***Valid Options are: Off = 0, On = 1. +// ***NOTE: If perfect forward secrecy is turned On (set to 1), then a phase 2 diffie-hellman group is required. +// +// +// The remote peer address for the network tunnel may also be modified if needed. Invalid options will not be accepted and will cause an exception to be thrown. There are properties that provide valid options and limits for each negotiation parameter. Those properties are as follows: +// * encryptionDefault +// * encryptionOptions +// * authenticationDefault +// * authenticationOptions +// * diffieHellmanGroupDefault +// * diffieHellmanGroupOptions +// * phaseOneKeylifeDefault +// * phaseTwoKeylifeDefault +// * keylifeLimits +// +// +// Configurations cannot be modified if a network tunnel's requires complex manual setups/configuration modifications by the SoftLayer Network department. If the former is required, the configurations for the network tunnel will be locked until the manual configurations are complete. A network tunnel's configurations are applied via a transaction. If a network tunnel configuration change transaction is currently running, the network tunnel's setting cannot be modified until the running transaction completes. +// +// NOTE: A network tunnel's configurations must be applied to the network device in order for the modifications made to take effect. +func (r Network_Tunnel_Module_Context) EditObject(templateObject *datatypes.Network_Tunnel_Module_Context) (resp bool, err error) { + params := []interface{}{ + templateObject, + } + err = r.Session.DoRequest("SoftLayer_Network_Tunnel_Module_Context", "editObject", params, &r.Options, &resp) + return +} + +// Retrieve The account that a network tunnel belongs to. +func (r Network_Tunnel_Module_Context) GetAccount() (resp datatypes.Account, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Tunnel_Module_Context", "getAccount", nil, &r.Options, &resp) + return +} + +// Retrieve The transaction that is currently applying configurations for the network tunnel. +func (r Network_Tunnel_Module_Context) GetActiveTransaction() (resp datatypes.Provisioning_Version1_Transaction, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Tunnel_Module_Context", "getActiveTransaction", nil, &r.Options, &resp) + return +} + +// The address translations will be returned. All the translations will be formatted so that the configurations can be copied into a host file. +// +// Format: +// +// {address translation SoftLayer IP Address} {address translation name} +func (r Network_Tunnel_Module_Context) GetAddressTranslationConfigurations() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Tunnel_Module_Context", "getAddressTranslationConfigurations", nil, &r.Options, &resp) + return +} + +// Retrieve A network tunnel's address translations. +func (r Network_Tunnel_Module_Context) GetAddressTranslations() (resp []datatypes.Network_Tunnel_Module_Context_Address_Translation, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Tunnel_Module_Context", "getAddressTranslations", nil, &r.Options, &resp) + return +} + +// Retrieve Subnets that provide access to SoftLayer services such as the management portal and the SoftLayer API. +func (r Network_Tunnel_Module_Context) GetAllAvailableServiceSubnets() (resp []datatypes.Network_Subnet, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Tunnel_Module_Context", "getAllAvailableServiceSubnets", nil, &r.Options, &resp) + return +} + +// The default authentication type used for both phases of the negotiation process. The default value is set to MD5. +func (r Network_Tunnel_Module_Context) GetAuthenticationDefault() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Tunnel_Module_Context", "getAuthenticationDefault", nil, &r.Options, &resp) + return +} + +// Authentication options available for both phases of the negotiation process. +// +// The authentication options are as follows: +// * MD5 +// * SHA1 +// * SHA256 +func (r Network_Tunnel_Module_Context) GetAuthenticationOptions() (resp []string, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Tunnel_Module_Context", "getAuthenticationOptions", nil, &r.Options, &resp) + return +} + +// Retrieve The current billing item for network tunnel. +func (r Network_Tunnel_Module_Context) GetBillingItem() (resp datatypes.Billing_Item, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Tunnel_Module_Context", "getBillingItem", nil, &r.Options, &resp) + return +} + +// Retrieve Remote subnets that are allowed access through a network tunnel. +func (r Network_Tunnel_Module_Context) GetCustomerSubnets() (resp []datatypes.Network_Customer_Subnet, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Tunnel_Module_Context", "getCustomerSubnets", nil, &r.Options, &resp) + return +} + +// Retrieve The datacenter location for one end of the network tunnel that allows access to account's private subnets. +func (r Network_Tunnel_Module_Context) GetDatacenter() (resp datatypes.Location, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Tunnel_Module_Context", "getDatacenter", nil, &r.Options, &resp) + return +} + +// The default Diffie-Hellman group used for both phases of the negotiation process. The default value is set to 2. +func (r Network_Tunnel_Module_Context) GetDiffieHellmanGroupDefault() (resp int, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Tunnel_Module_Context", "getDiffieHellmanGroupDefault", nil, &r.Options, &resp) + return +} + +// The Diffie-Hellman group options used for both phases of the negotiation process. +// +// The diffie-hellman group options are as follows: +// * 0 (None) +// * 1 +// * 2 +// * 5 +func (r Network_Tunnel_Module_Context) GetDiffieHellmanGroupOptions() (resp []int, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Tunnel_Module_Context", "getDiffieHellmanGroupOptions", nil, &r.Options, &resp) + return +} + +// The default encryption type used for both phases of the negotiation process. The default value is set to 3DES. +func (r Network_Tunnel_Module_Context) GetEncryptionDefault() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Tunnel_Module_Context", "getEncryptionDefault", nil, &r.Options, &resp) + return +} + +// Encryption options available for both phases of the negotiation process. +// +// The valid encryption options are as follows: +// * DES +// * 3DES +// * AES128 +// * AES192 +// * AES256 +func (r Network_Tunnel_Module_Context) GetEncryptionOptions() (resp []string, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Tunnel_Module_Context", "getEncryptionOptions", nil, &r.Options, &resp) + return +} + +// Retrieve Private subnets that can be accessed through the network tunnel. +func (r Network_Tunnel_Module_Context) GetInternalSubnets() (resp []datatypes.Network_Subnet, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Tunnel_Module_Context", "getInternalSubnets", nil, &r.Options, &resp) + return +} + +// The keylife limits. Keylife max limit is set to 120. Keylife min limit is set to 172800. +func (r Network_Tunnel_Module_Context) GetKeylifeLimits() (resp []int, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Tunnel_Module_Context", "getKeylifeLimits", nil, &r.Options, &resp) + return +} + +// getObject retrieves the SoftLayer_Network_Tunnel_Module_Context object whose ID number corresponds to the ID number of the init parameter passed to the SoftLayer_Network_Tunnel_Module_Context service. The IPSec network tunnel will be returned if it is associated with the account and the user has proper permission to manage network tunnels. +func (r Network_Tunnel_Module_Context) GetObject() (resp datatypes.Network_Tunnel_Module_Context, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Tunnel_Module_Context", "getObject", nil, &r.Options, &resp) + return +} + +// All of the IPSec VPN tunnel's configurations will be returned. It will list all of phase one and two negotiation parameters. Both remote and local subnets will be provided as well. This is useful when the configurations need to be passed on to another team and/or company for internal network configuration. +func (r Network_Tunnel_Module_Context) GetParameterConfigurationsForCustomerView() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Tunnel_Module_Context", "getParameterConfigurationsForCustomerView", nil, &r.Options, &resp) + return +} + +// The default phase 1 keylife used if a value is not provided. The default value is set to 3600. +func (r Network_Tunnel_Module_Context) GetPhaseOneKeylifeDefault() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Tunnel_Module_Context", "getPhaseOneKeylifeDefault", nil, &r.Options, &resp) + return +} + +// The default phase 2 keylife used if a value is not provided. The default value is set to 28800. +func (r Network_Tunnel_Module_Context) GetPhaseTwoKeylifeDefault() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Tunnel_Module_Context", "getPhaseTwoKeylifeDefault", nil, &r.Options, &resp) + return +} + +// Retrieve Service subnets that can be access through the network tunnel. +func (r Network_Tunnel_Module_Context) GetServiceSubnets() (resp []datatypes.Network_Subnet, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Tunnel_Module_Context", "getServiceSubnets", nil, &r.Options, &resp) + return +} + +// Retrieve Subnets used for a network tunnel's address translations. +func (r Network_Tunnel_Module_Context) GetStaticRouteSubnets() (resp []datatypes.Network_Subnet, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Tunnel_Module_Context", "getStaticRouteSubnets", nil, &r.Options, &resp) + return +} + +// Retrieve The transaction history for this network tunnel. +func (r Network_Tunnel_Module_Context) GetTransactionHistory() (resp []datatypes.Provisioning_Version1_Transaction, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Tunnel_Module_Context", "getTransactionHistory", nil, &r.Options, &resp) + return +} + +// Disassociate a customer subnet (remote) from a network tunnel. When a remote subnet is disassociated, that subnet will not able to communicate with private and service subnets on the SoftLayer network. +// +// NOTE: A network tunnel's configurations must be applied to the network device in order for the disassociation described above to take effect. +func (r Network_Tunnel_Module_Context) RemoveCustomerSubnetFromNetworkTunnel(subnetId *int) (resp bool, err error) { + params := []interface{}{ + subnetId, + } + err = r.Session.DoRequest("SoftLayer_Network_Tunnel_Module_Context", "removeCustomerSubnetFromNetworkTunnel", params, &r.Options, &resp) + return +} + +// Disassociate a private subnet from a network tunnel. When a private subnet is disassociated, the customer (remote) subnet on the other end of the tunnel will not able to communicate with the private subnet that was just disassociated. +// +// NOTE: A network tunnel's configurations must be applied to the network device in order for the disassociation described above to take effect. +func (r Network_Tunnel_Module_Context) RemovePrivateSubnetFromNetworkTunnel(subnetId *int) (resp bool, err error) { + params := []interface{}{ + subnetId, + } + err = r.Session.DoRequest("SoftLayer_Network_Tunnel_Module_Context", "removePrivateSubnetFromNetworkTunnel", params, &r.Options, &resp) + return +} + +// Disassociate a service subnet from a network tunnel. When a service subnet is disassociated, that customer (remote) subnet on the other end of the network tunnel will not able to communicate with that service subnet on the SoftLayer network. +// +// NOTE: A network tunnel's configurations must be applied to the network device in order for the disassociation described above to take effect. +func (r Network_Tunnel_Module_Context) RemoveServiceSubnetFromNetworkTunnel(subnetId *int) (resp bool, err error) { + params := []interface{}{ + subnetId, + } + err = r.Session.DoRequest("SoftLayer_Network_Tunnel_Module_Context", "removeServiceSubnetFromNetworkTunnel", params, &r.Options, &resp) + return +} + +// The SoftLayer_Network_Vlan data type models a single VLAN within SoftLayer's public and private networks. a Virtual LAN is a structure that associates network interfaces on routers, switches, and servers in different locations to act as if they were on the same local network broadcast domain. VLANs are a central part of the SoftLayer network. They can determine how new IP subnets are routed and how individual servers communicate to each other. +type Network_Vlan struct { + Session *session.Session + Options sl.Options +} + +// GetNetworkVlanService returns an instance of the Network_Vlan SoftLayer service +func GetNetworkVlanService(sess *session.Session) Network_Vlan { + return Network_Vlan{Session: sess} +} + +func (r Network_Vlan) Id(id int) Network_Vlan { + r.Options.Id = &id + return r +} + +func (r Network_Vlan) Mask(mask string) Network_Vlan { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Network_Vlan) Filter(filter string) Network_Vlan { + r.Options.Filter = filter + return r +} + +func (r Network_Vlan) Limit(limit int) Network_Vlan { + r.Options.Limit = &limit + return r +} + +func (r Network_Vlan) Offset(offset int) Network_Vlan { + r.Options.Offset = &offset + return r +} + +// Edit a VLAN's properties +func (r Network_Vlan) EditObject(templateObject *datatypes.Network_Vlan) (resp bool, err error) { + params := []interface{}{ + templateObject, + } + err = r.Session.DoRequest("SoftLayer_Network_Vlan", "editObject", params, &r.Options, &resp) + return +} + +// Retrieve The SoftLayer customer account associated with a VLAN. +func (r Network_Vlan) GetAccount() (resp datatypes.Account, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Vlan", "getAccount", nil, &r.Options, &resp) + return +} + +// Retrieve A VLAN's additional primary subnets. These are used to extend the number of servers attached to the VLAN by adding more ip addresses to the primary IP address pool. +func (r Network_Vlan) GetAdditionalPrimarySubnets() (resp []datatypes.Network_Subnet, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Vlan", "getAdditionalPrimarySubnets", nil, &r.Options, &resp) + return +} + +// Retrieve The gateway this VLAN is inside of. +func (r Network_Vlan) GetAttachedNetworkGateway() (resp datatypes.Network_Gateway, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Vlan", "getAttachedNetworkGateway", nil, &r.Options, &resp) + return +} + +// Retrieve Whether or not this VLAN is inside a gateway. +func (r Network_Vlan) GetAttachedNetworkGatewayFlag() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Vlan", "getAttachedNetworkGatewayFlag", nil, &r.Options, &resp) + return +} + +// Retrieve The inside VLAN record if this VLAN is inside a network gateway. +func (r Network_Vlan) GetAttachedNetworkGatewayVlan() (resp datatypes.Network_Gateway_Vlan, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Vlan", "getAttachedNetworkGatewayVlan", nil, &r.Options, &resp) + return +} + +// Retrieve The billing item for a network vlan. +func (r Network_Vlan) GetBillingItem() (resp datatypes.Billing_Item, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Vlan", "getBillingItem", nil, &r.Options, &resp) + return +} + +// Get a set of reasons why this VLAN may not be cancelled. If the result is empty, this VLAN may be cancelled. +func (r Network_Vlan) GetCancelFailureReasons() (resp []string, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Vlan", "getCancelFailureReasons", nil, &r.Options, &resp) + return +} + +// Retrieve A flag indicating that a network vlan is on a Hardware Firewall (Dedicated). +func (r Network_Vlan) GetDedicatedFirewallFlag() (resp int, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Vlan", "getDedicatedFirewallFlag", nil, &r.Options, &resp) + return +} + +// Retrieve The extension router that a VLAN is associated with. +func (r Network_Vlan) GetExtensionRouter() (resp datatypes.Hardware_Router, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Vlan", "getExtensionRouter", nil, &r.Options, &resp) + return +} + +// Retrieve A firewalled Vlan's network components. +func (r Network_Vlan) GetFirewallGuestNetworkComponents() (resp []datatypes.Network_Component_Firewall, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Vlan", "getFirewallGuestNetworkComponents", nil, &r.Options, &resp) + return +} + +// Retrieve A firewalled vlan's inbound/outbound interfaces. +func (r Network_Vlan) GetFirewallInterfaces() (resp []datatypes.Network_Firewall_Module_Context_Interface, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Vlan", "getFirewallInterfaces", nil, &r.Options, &resp) + return +} + +// Retrieve A firewalled Vlan's network components. +func (r Network_Vlan) GetFirewallNetworkComponents() (resp []datatypes.Network_Component_Firewall, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Vlan", "getFirewallNetworkComponents", nil, &r.Options, &resp) + return +} + +// Get the IP addresses associated with this server that are protectable by a network component firewall. Note, this may not return all values for IPv6 subnets for this VLAN. Please use getFirewallProtectableSubnets to get all protectable subnets. +func (r Network_Vlan) GetFirewallProtectableIpAddresses() (resp []datatypes.Network_Subnet_IpAddress, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Vlan", "getFirewallProtectableIpAddresses", nil, &r.Options, &resp) + return +} + +// Get the subnets associated with this server that are protectable by a network component firewall. +func (r Network_Vlan) GetFirewallProtectableSubnets() (resp []datatypes.Network_Subnet, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Vlan", "getFirewallProtectableSubnets", nil, &r.Options, &resp) + return +} + +// Retrieve The currently running rule set of a firewalled VLAN. +func (r Network_Vlan) GetFirewallRules() (resp []datatypes.Network_Vlan_Firewall_Rule, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Vlan", "getFirewallRules", nil, &r.Options, &resp) + return +} + +// Retrieve The networking components that are connected to a VLAN. +func (r Network_Vlan) GetGuestNetworkComponents() (resp []datatypes.Virtual_Guest_Network_Component, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Vlan", "getGuestNetworkComponents", nil, &r.Options, &resp) + return +} + +// Retrieve All of the hardware that exists on a VLAN. Hardware is associated with a VLAN by its networking components. +func (r Network_Vlan) GetHardware() (resp []datatypes.Hardware, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Vlan", "getHardware", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Network_Vlan) GetHighAvailabilityFirewallFlag() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Vlan", "getHighAvailabilityFirewallFlag", nil, &r.Options, &resp) + return +} + +// Retrieve A flag indicating that a vlan can be assigned to a host that has local disk functionality. +func (r Network_Vlan) GetLocalDiskStorageCapabilityFlag() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Vlan", "getLocalDiskStorageCapabilityFlag", nil, &r.Options, &resp) + return +} + +// Retrieve The network in which this VLAN resides. +func (r Network_Vlan) GetNetwork() (resp datatypes.Network, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Vlan", "getNetwork", nil, &r.Options, &resp) + return +} + +// Retrieve The network components that are connected to this VLAN through a trunk. +func (r Network_Vlan) GetNetworkComponentTrunks() (resp []datatypes.Network_Component_Network_Vlan_Trunk, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Vlan", "getNetworkComponentTrunks", nil, &r.Options, &resp) + return +} + +// Retrieve The networking components that are connected to a VLAN. +func (r Network_Vlan) GetNetworkComponents() (resp []datatypes.Network_Component, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Vlan", "getNetworkComponents", nil, &r.Options, &resp) + return +} + +// Retrieve Identifier to denote whether a VLAN is used for public or private connectivity. +func (r Network_Vlan) GetNetworkSpace() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Vlan", "getNetworkSpace", nil, &r.Options, &resp) + return +} + +// Retrieve The Hardware Firewall (Dedicated) for a network vlan. +func (r Network_Vlan) GetNetworkVlanFirewall() (resp datatypes.Network_Vlan_Firewall, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Vlan", "getNetworkVlanFirewall", nil, &r.Options, &resp) + return +} + +// getObject retrieves the SoftLayer_Network_Vlan object whose ID number corresponds to the ID number of the init parameter passed to the SoftLayer_Network_Vlan service. You can only retrieve VLANs that are associated with your SoftLayer customer account. +func (r Network_Vlan) GetObject() (resp datatypes.Network_Vlan, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Vlan", "getObject", nil, &r.Options, &resp) + return +} + +// Retrieve The primary router that a VLAN is associated with. Every SoftLayer VLAN is connected to more than one router for greater network redundancy. +func (r Network_Vlan) GetPrimaryRouter() (resp datatypes.Hardware_Router, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Vlan", "getPrimaryRouter", nil, &r.Options, &resp) + return +} + +// Retrieve A VLAN's primary subnet. Each VLAN has at least one subnet, usually the subnet that is assigned to a server or new IP address block when it's purchased. +func (r Network_Vlan) GetPrimarySubnet() (resp datatypes.Network_Subnet, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Vlan", "getPrimarySubnet", nil, &r.Options, &resp) + return +} + +// Retrieve A VLAN's primary IPv6 subnet. Some VLAN's may not have a primary IPv6 subnet. +func (r Network_Vlan) GetPrimarySubnetVersion6() (resp datatypes.Network_Subnet, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Vlan", "getPrimarySubnetVersion6", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Network_Vlan) GetPrimarySubnets() (resp []datatypes.Network_Subnet, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Vlan", "getPrimarySubnets", nil, &r.Options, &resp) + return +} + +// Retrieve The gateways this VLAN is the private VLAN of. +func (r Network_Vlan) GetPrivateNetworkGateways() (resp []datatypes.Network_Gateway, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Vlan", "getPrivateNetworkGateways", nil, &r.Options, &resp) + return +} + +// Retrieve a VLAN's associated private network VLAN. getPrivateVlan gathers it's information by retrieving the private VLAN of a VLAN's primary hardware object. +func (r Network_Vlan) GetPrivateVlan() (resp datatypes.Network_Vlan, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Vlan", "getPrivateVlan", nil, &r.Options, &resp) + return +} + +// Retrieve the private network VLAN associated with an IP address. +func (r Network_Vlan) GetPrivateVlanByIpAddress(ipAddress *string) (resp datatypes.Network_Vlan, err error) { + params := []interface{}{ + ipAddress, + } + err = r.Session.DoRequest("SoftLayer_Network_Vlan", "getPrivateVlanByIpAddress", params, &r.Options, &resp) + return +} + +// Retrieve +func (r Network_Vlan) GetProtectedIpAddresses() (resp []datatypes.Network_Subnet_IpAddress, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Vlan", "getProtectedIpAddresses", nil, &r.Options, &resp) + return +} + +// Retrieve The gateways this VLAN is the public VLAN of. +func (r Network_Vlan) GetPublicNetworkGateways() (resp []datatypes.Network_Gateway, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Vlan", "getPublicNetworkGateways", nil, &r.Options, &resp) + return +} + +// Retrieve the VLAN that belongs to a server's public network interface, as described by a server's fully-qualified domain name. A server's ''FQDN'' is it's hostname, followed by a period then it's domain name. +func (r Network_Vlan) GetPublicVlanByFqdn(fqdn *string) (resp datatypes.Network_Vlan, err error) { + params := []interface{}{ + fqdn, + } + err = r.Session.DoRequest("SoftLayer_Network_Vlan", "getPublicVlanByFqdn", params, &r.Options, &resp) + return +} + +// Retrieve The resource group member for a network vlan. +func (r Network_Vlan) GetResourceGroupMember() (resp []datatypes.Resource_Group_Member, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Vlan", "getResourceGroupMember", nil, &r.Options, &resp) + return +} + +// Retrieve The resource groups in which this VLAN is a member. +func (r Network_Vlan) GetResourceGroups() (resp []datatypes.Resource_Group, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Vlan", "getResourceGroups", nil, &r.Options, &resp) + return +} + +// Retrieve all reverse DNS records associated with the subnets assigned to a VLAN. +func (r Network_Vlan) GetReverseDomainRecords() (resp []datatypes.Dns_Domain, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Vlan", "getReverseDomainRecords", nil, &r.Options, &resp) + return +} + +// Retrieve A flag indicating that a vlan can be assigned to a host that has SAN disk functionality. +func (r Network_Vlan) GetSanStorageCapabilityFlag() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Vlan", "getSanStorageCapabilityFlag", nil, &r.Options, &resp) + return +} + +// Retrieve Collection of scale VLANs this VLAN applies to. +func (r Network_Vlan) GetScaleVlans() (resp []datatypes.Scale_Network_Vlan, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Vlan", "getScaleVlans", nil, &r.Options, &resp) + return +} + +// Retrieve The secondary router that a VLAN is associated with. Every SoftLayer VLAN is connected to more than one router for greater network redundancy. +func (r Network_Vlan) GetSecondaryRouter() (resp datatypes.Hardware, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Vlan", "getSecondaryRouter", nil, &r.Options, &resp) + return +} + +// Retrieve The subnets that exist as secondary interfaces on a VLAN +func (r Network_Vlan) GetSecondarySubnets() (resp []datatypes.Network_Subnet, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Vlan", "getSecondarySubnets", nil, &r.Options, &resp) + return +} + +// Retrieve All of the subnets that exist as VLAN interfaces. +func (r Network_Vlan) GetSubnets() (resp []datatypes.Network_Subnet, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Vlan", "getSubnets", nil, &r.Options, &resp) + return +} + +// Retrieve References to all tags for this VLAN. +func (r Network_Vlan) GetTagReferences() (resp []datatypes.Tag_Reference, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Vlan", "getTagReferences", nil, &r.Options, &resp) + return +} + +// Retrieve The number of primary IP addresses in a VLAN. +func (r Network_Vlan) GetTotalPrimaryIpAddressCount() (resp uint, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Vlan", "getTotalPrimaryIpAddressCount", nil, &r.Options, &resp) + return +} + +// Retrieve The type of this VLAN. +func (r Network_Vlan) GetType() (resp datatypes.Network_Vlan_Type, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Vlan", "getType", nil, &r.Options, &resp) + return +} + +// Retrieve All of the Virtual Servers that are connected to a VLAN. +func (r Network_Vlan) GetVirtualGuests() (resp []datatypes.Virtual_Guest, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Vlan", "getVirtualGuests", nil, &r.Options, &resp) + return +} + +// Retrieve the VLAN associated with an IP address via the IP's associated subnet. +func (r Network_Vlan) GetVlanForIpAddress(ipAddress *string) (resp datatypes.Network_Vlan, err error) { + params := []interface{}{ + ipAddress, + } + err = r.Session.DoRequest("SoftLayer_Network_Vlan", "getVlanForIpAddress", params, &r.Options, &resp) + return +} + +// Tag a VLAN by passing in one or more tags separated by a comma. Tag references are cleared out every time this method is called. If your VLAN is already tagged you will need to pass the current tags along with any new ones. To remove all tag references pass an empty string. To remove one or more tags omit them from the tag list. +func (r Network_Vlan) SetTags(tags *string) (resp bool, err error) { + params := []interface{}{ + tags, + } + err = r.Session.DoRequest("SoftLayer_Network_Vlan", "setTags", params, &r.Options, &resp) + return +} + +// The '''getSensorData''' method updates a VLAN's firewall to allow or disallow intra-VLAN communication. +func (r Network_Vlan) UpdateFirewallIntraVlanCommunication(enabled *bool) (err error) { + var resp datatypes.Void + params := []interface{}{ + enabled, + } + err = r.Session.DoRequest("SoftLayer_Network_Vlan", "updateFirewallIntraVlanCommunication", params, &r.Options, &resp) + return +} + +// The SoftLayer_Network_Vlan_Firewall data type contains general information relating to a single SoftLayer VLAN firewall. This is the object which ties the running rules to a specific downstream server. Use the [[SoftLayer Network Firewall Template]] service to pull SoftLayer recommended rule set templates. Use the [[SoftLayer Network Firewall Update Request]] service to submit a firewall update request. +type Network_Vlan_Firewall struct { + Session *session.Session + Options sl.Options +} + +// GetNetworkVlanFirewallService returns an instance of the Network_Vlan_Firewall SoftLayer service +func GetNetworkVlanFirewallService(sess *session.Session) Network_Vlan_Firewall { + return Network_Vlan_Firewall{Session: sess} +} + +func (r Network_Vlan_Firewall) Id(id int) Network_Vlan_Firewall { + r.Options.Id = &id + return r +} + +func (r Network_Vlan_Firewall) Mask(mask string) Network_Vlan_Firewall { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Network_Vlan_Firewall) Filter(filter string) Network_Vlan_Firewall { + r.Options.Filter = filter + return r +} + +func (r Network_Vlan_Firewall) Limit(limit int) Network_Vlan_Firewall { + r.Options.Limit = &limit + return r +} + +func (r Network_Vlan_Firewall) Offset(offset int) Network_Vlan_Firewall { + r.Options.Offset = &offset + return r +} + +// Retrieve The billing item for a Hardware Firewall (Dedicated). +func (r Network_Vlan_Firewall) GetBillingItem() (resp datatypes.Billing_Item, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Vlan_Firewall", "getBillingItem", nil, &r.Options, &resp) + return +} + +// Retrieve The datacenter that the firewall resides in. +func (r Network_Vlan_Firewall) GetDatacenter() (resp datatypes.Location, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Vlan_Firewall", "getDatacenter", nil, &r.Options, &resp) + return +} + +// Retrieve The firewall device type. +func (r Network_Vlan_Firewall) GetFirewallType() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Vlan_Firewall", "getFirewallType", nil, &r.Options, &resp) + return +} + +// Retrieve A name reflecting the hostname and domain of the firewall. This is created from the combined values of the firewall's logical name and vlan number automatically, and thus can not be edited directly. +func (r Network_Vlan_Firewall) GetFullyQualifiedDomainName() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Vlan_Firewall", "getFullyQualifiedDomainName", nil, &r.Options, &resp) + return +} + +// Retrieve The credentials to log in to a firewall device. This is only present for dedicated appliances. +func (r Network_Vlan_Firewall) GetManagementCredentials() (resp datatypes.Software_Component_Password, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Vlan_Firewall", "getManagementCredentials", nil, &r.Options, &resp) + return +} + +// Retrieve The update requests made for this firewall. +func (r Network_Vlan_Firewall) GetNetworkFirewallUpdateRequests() (resp []datatypes.Network_Firewall_Update_Request, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Vlan_Firewall", "getNetworkFirewallUpdateRequests", nil, &r.Options, &resp) + return +} + +// Retrieve The VLAN object that a firewall is associated with and protecting. +func (r Network_Vlan_Firewall) GetNetworkVlan() (resp datatypes.Network_Vlan, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Vlan_Firewall", "getNetworkVlan", nil, &r.Options, &resp) + return +} + +// Retrieve The VLAN objects that a firewall is associated with and protecting. +func (r Network_Vlan_Firewall) GetNetworkVlans() (resp []datatypes.Network_Vlan, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Vlan_Firewall", "getNetworkVlans", nil, &r.Options, &resp) + return +} + +// getObject returns a SoftLayer_Network_Vlan_Firewall object. You can only get objects for vlans attached to your account that have a network firewall enabled. +func (r Network_Vlan_Firewall) GetObject() (resp datatypes.Network_Vlan_Firewall, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Vlan_Firewall", "getObject", nil, &r.Options, &resp) + return +} + +// Retrieve The currently running rule set of this network component firewall. +func (r Network_Vlan_Firewall) GetRules() (resp []datatypes.Network_Vlan_Firewall_Rule, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Vlan_Firewall", "getRules", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Network_Vlan_Firewall) GetTagReferences() (resp []datatypes.Tag_Reference, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Vlan_Firewall", "getTagReferences", nil, &r.Options, &resp) + return +} + +// This will completely reset the firewall to factory settings. If the firewall is not a dedicated appliance an error will occur. Note, this process is performed asynchronously. During the process all traffic will not be routed through the firewall. +func (r Network_Vlan_Firewall) RestoreDefaults() (resp datatypes.Provisioning_Version1_Transaction, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Vlan_Firewall", "restoreDefaults", nil, &r.Options, &resp) + return +} + +// This method will associate a comma separated list of tags with this object. +func (r Network_Vlan_Firewall) SetTags(tags *string) (resp bool, err error) { + params := []interface{}{ + tags, + } + err = r.Session.DoRequest("SoftLayer_Network_Vlan_Firewall", "setTags", params, &r.Options, &resp) + return +} + +// Enable or disable route bypass for this context. If enabled, this will bypass the firewall entirely and all traffic will be routed directly to the host(s) behind it. If disabled, traffic will flow through the firewall normally. This feature is only available for Hardware Firewall (Dedicated) and dedicated appliances. +func (r Network_Vlan_Firewall) UpdateRouteBypass(bypass *bool) (resp datatypes.Provisioning_Version1_Transaction, err error) { + params := []interface{}{ + bypass, + } + err = r.Session.DoRequest("SoftLayer_Network_Vlan_Firewall", "updateRouteBypass", params, &r.Options, &resp) + return +} + +// no documentation yet +type Network_Vlan_Type struct { + Session *session.Session + Options sl.Options +} + +// GetNetworkVlanTypeService returns an instance of the Network_Vlan_Type SoftLayer service +func GetNetworkVlanTypeService(sess *session.Session) Network_Vlan_Type { + return Network_Vlan_Type{Session: sess} +} + +func (r Network_Vlan_Type) Id(id int) Network_Vlan_Type { + r.Options.Id = &id + return r +} + +func (r Network_Vlan_Type) Mask(mask string) Network_Vlan_Type { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Network_Vlan_Type) Filter(filter string) Network_Vlan_Type { + r.Options.Filter = filter + return r +} + +func (r Network_Vlan_Type) Limit(limit int) Network_Vlan_Type { + r.Options.Limit = &limit + return r +} + +func (r Network_Vlan_Type) Offset(offset int) Network_Vlan_Type { + r.Options.Offset = &offset + return r +} + +// no documentation yet +func (r Network_Vlan_Type) GetObject() (resp datatypes.Network_Vlan_Type, err error) { + err = r.Session.DoRequest("SoftLayer_Network_Vlan_Type", "getObject", nil, &r.Options, &resp) + return +} diff --git a/vendor/github.com/softlayer/softlayer-go/services/notification.go b/vendor/github.com/softlayer/softlayer-go/services/notification.go new file mode 100644 index 000000000..628ad256d --- /dev/null +++ b/vendor/github.com/softlayer/softlayer-go/services/notification.go @@ -0,0 +1,892 @@ +/** + * Copyright 2016 IBM Corp. + * + * 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. + */ + +/** + * AUTOMATICALLY GENERATED CODE - DO NOT MODIFY + */ + +package services + +import ( + "fmt" + "strings" + + "github.com/softlayer/softlayer-go/datatypes" + "github.com/softlayer/softlayer-go/session" + "github.com/softlayer/softlayer-go/sl" +) + +// Details provided for the notification are basic. Details such as the related preferences, name and keyname for the notification can be retrieved. The keyname property for the notification can be used to refer to a notification when integrating into the SoftLayer Notification system. The name property can used more for display purposes. +type Notification struct { + Session *session.Session + Options sl.Options +} + +// GetNotificationService returns an instance of the Notification SoftLayer service +func GetNotificationService(sess *session.Session) Notification { + return Notification{Session: sess} +} + +func (r Notification) Id(id int) Notification { + r.Options.Id = &id + return r +} + +func (r Notification) Mask(mask string) Notification { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Notification) Filter(filter string) Notification { + r.Options.Filter = filter + return r +} + +func (r Notification) Limit(limit int) Notification { + r.Options.Limit = &limit + return r +} + +func (r Notification) Offset(offset int) Notification { + r.Options.Offset = &offset + return r +} + +// Use this method to retrieve all active notifications that can be subscribed to. +func (r Notification) GetAllObjects() (resp []datatypes.Notification, err error) { + err = r.Session.DoRequest("SoftLayer_Notification", "getAllObjects", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Notification) GetObject() (resp datatypes.Notification, err error) { + err = r.Session.DoRequest("SoftLayer_Notification", "getObject", nil, &r.Options, &resp) + return +} + +// Retrieve The preferences related to the notification. These are preferences are configurable and optional for subscribers to use. +func (r Notification) GetPreferences() (resp []datatypes.Notification_Preference, err error) { + err = r.Session.DoRequest("SoftLayer_Notification", "getPreferences", nil, &r.Options, &resp) + return +} + +// Retrieve The required preferences related to the notification. While configurable, the subscriber does not have the option whether to use the preference. +func (r Notification) GetRequiredPreferences() (resp []datatypes.Notification_Preference, err error) { + err = r.Session.DoRequest("SoftLayer_Notification", "getRequiredPreferences", nil, &r.Options, &resp) + return +} + +// This is an extension of the SoftLayer_Notification class. These are implementation details specific to those notifications which can be subscribed to and received on a mobile device. +type Notification_Mobile struct { + Session *session.Session + Options sl.Options +} + +// GetNotificationMobileService returns an instance of the Notification_Mobile SoftLayer service +func GetNotificationMobileService(sess *session.Session) Notification_Mobile { + return Notification_Mobile{Session: sess} +} + +func (r Notification_Mobile) Id(id int) Notification_Mobile { + r.Options.Id = &id + return r +} + +func (r Notification_Mobile) Mask(mask string) Notification_Mobile { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Notification_Mobile) Filter(filter string) Notification_Mobile { + r.Options.Filter = filter + return r +} + +func (r Notification_Mobile) Limit(limit int) Notification_Mobile { + r.Options.Limit = &limit + return r +} + +func (r Notification_Mobile) Offset(offset int) Notification_Mobile { + r.Options.Offset = &offset + return r +} + +// Create a new subscriber for a given resource. +func (r Notification_Mobile) CreateSubscriberForMobileDevice(keyName *string, resourceTableId *int, userRecordId *int) (resp bool, err error) { + params := []interface{}{ + keyName, + resourceTableId, + userRecordId, + } + err = r.Session.DoRequest("SoftLayer_Notification_Mobile", "createSubscriberForMobileDevice", params, &r.Options, &resp) + return +} + +// Use this method to retrieve all active notifications that can be subscribed to. +func (r Notification_Mobile) GetAllObjects() (resp []datatypes.Notification, err error) { + err = r.Session.DoRequest("SoftLayer_Notification_Mobile", "getAllObjects", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Notification_Mobile) GetObject() (resp datatypes.Notification_Mobile, err error) { + err = r.Session.DoRequest("SoftLayer_Notification_Mobile", "getObject", nil, &r.Options, &resp) + return +} + +// Retrieve The preferences related to the notification. These are preferences are configurable and optional for subscribers to use. +func (r Notification_Mobile) GetPreferences() (resp []datatypes.Notification_Preference, err error) { + err = r.Session.DoRequest("SoftLayer_Notification_Mobile", "getPreferences", nil, &r.Options, &resp) + return +} + +// Retrieve The required preferences related to the notification. While configurable, the subscriber does not have the option whether to use the preference. +func (r Notification_Mobile) GetRequiredPreferences() (resp []datatypes.Notification_Preference, err error) { + err = r.Session.DoRequest("SoftLayer_Notification_Mobile", "getRequiredPreferences", nil, &r.Options, &resp) + return +} + +// no documentation yet +type Notification_Occurrence_Event struct { + Session *session.Session + Options sl.Options +} + +// GetNotificationOccurrenceEventService returns an instance of the Notification_Occurrence_Event SoftLayer service +func GetNotificationOccurrenceEventService(sess *session.Session) Notification_Occurrence_Event { + return Notification_Occurrence_Event{Session: sess} +} + +func (r Notification_Occurrence_Event) Id(id int) Notification_Occurrence_Event { + r.Options.Id = &id + return r +} + +func (r Notification_Occurrence_Event) Mask(mask string) Notification_Occurrence_Event { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Notification_Occurrence_Event) Filter(filter string) Notification_Occurrence_Event { + r.Options.Filter = filter + return r +} + +func (r Notification_Occurrence_Event) Limit(limit int) Notification_Occurrence_Event { + r.Options.Limit = &limit + return r +} + +func (r Notification_Occurrence_Event) Offset(offset int) Notification_Occurrence_Event { + r.Options.Offset = &offset + return r +} + +// <<<< EOT +func (r Notification_Occurrence_Event) AcknowledgeNotification() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Notification_Occurrence_Event", "acknowledgeNotification", nil, &r.Options, &resp) + return +} + +// Retrieve Indicates whether or not this event has been acknowledged by the user. +func (r Notification_Occurrence_Event) GetAcknowledgedFlag() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Notification_Occurrence_Event", "getAcknowledgedFlag", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Notification_Occurrence_Event) GetAllObjects() (resp []datatypes.Notification_Occurrence_Event, err error) { + err = r.Session.DoRequest("SoftLayer_Notification_Occurrence_Event", "getAllObjects", nil, &r.Options, &resp) + return +} + +// Retrieve the contents of the file attached to a SoftLayer event by it's given identifier. +func (r Notification_Occurrence_Event) GetAttachedFile(attachmentId *int) (resp []byte, err error) { + params := []interface{}{ + attachmentId, + } + err = r.Session.DoRequest("SoftLayer_Notification_Occurrence_Event", "getAttachedFile", params, &r.Options, &resp) + return +} + +// Retrieve A collection of attachments for this event which provide supplementary information to impacted users some examples are RFO (Reason For Outage) and root cause analysis documents. +func (r Notification_Occurrence_Event) GetAttachments() (resp []datatypes.Notification_Occurrence_Event_Attachment, err error) { + err = r.Session.DoRequest("SoftLayer_Notification_Occurrence_Event", "getAttachments", nil, &r.Options, &resp) + return +} + +// Retrieve The first update for this event. +func (r Notification_Occurrence_Event) GetFirstUpdate() (resp datatypes.Notification_Occurrence_Update, err error) { + err = r.Session.DoRequest("SoftLayer_Notification_Occurrence_Event", "getFirstUpdate", nil, &r.Options, &resp) + return +} + +// This method will return the number of impacted owned accounts associated with this event for the current user. +func (r Notification_Occurrence_Event) GetImpactedAccountCount() (resp int, err error) { + err = r.Session.DoRequest("SoftLayer_Notification_Occurrence_Event", "getImpactedAccountCount", nil, &r.Options, &resp) + return +} + +// Retrieve A collection of accounts impacted by this event. Each impacted account record relates directly to a [[SoftLayer_Account]]. +func (r Notification_Occurrence_Event) GetImpactedAccounts() (resp []datatypes.Notification_Occurrence_Account, err error) { + err = r.Session.DoRequest("SoftLayer_Notification_Occurrence_Event", "getImpactedAccounts", nil, &r.Options, &resp) + return +} + +// This method will return the number of impacted devices associated with this event for the current user. +func (r Notification_Occurrence_Event) GetImpactedDeviceCount() (resp int, err error) { + err = r.Session.DoRequest("SoftLayer_Notification_Occurrence_Event", "getImpactedDeviceCount", nil, &r.Options, &resp) + return +} + +// This method will return a collection of SoftLayer_Notification_Occurrence_Resource objects which is a listing of the current users' impacted devices that are associated with this event. +func (r Notification_Occurrence_Event) GetImpactedDevices() (resp []datatypes.Notification_Occurrence_Resource, err error) { + err = r.Session.DoRequest("SoftLayer_Notification_Occurrence_Event", "getImpactedDevices", nil, &r.Options, &resp) + return +} + +// Retrieve A collection of resources impacted by this event. Each record will relate to some physical resource that the user has access to such as [[SoftLayer_Hardware]] or [[SoftLayer_Virtual_Guest]]. +func (r Notification_Occurrence_Event) GetImpactedResources() (resp []datatypes.Notification_Occurrence_Resource, err error) { + err = r.Session.DoRequest("SoftLayer_Notification_Occurrence_Event", "getImpactedResources", nil, &r.Options, &resp) + return +} + +// Retrieve A collection of users impacted by this event. Each impacted user record relates directly to a [[SoftLayer_User_Customer]]. +func (r Notification_Occurrence_Event) GetImpactedUsers() (resp []datatypes.Notification_Occurrence_User, err error) { + err = r.Session.DoRequest("SoftLayer_Notification_Occurrence_Event", "getImpactedUsers", nil, &r.Options, &resp) + return +} + +// Retrieve The last update for this event. +func (r Notification_Occurrence_Event) GetLastUpdate() (resp datatypes.Notification_Occurrence_Update, err error) { + err = r.Session.DoRequest("SoftLayer_Notification_Occurrence_Event", "getLastUpdate", nil, &r.Options, &resp) + return +} + +// Retrieve The type of event such as planned or unplanned maintenance. +func (r Notification_Occurrence_Event) GetNotificationOccurrenceEventType() (resp datatypes.Notification_Occurrence_Event_Type, err error) { + err = r.Session.DoRequest("SoftLayer_Notification_Occurrence_Event", "getNotificationOccurrenceEventType", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Notification_Occurrence_Event) GetObject() (resp datatypes.Notification_Occurrence_Event, err error) { + err = r.Session.DoRequest("SoftLayer_Notification_Occurrence_Event", "getObject", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Notification_Occurrence_Event) GetStatusCode() (resp datatypes.Notification_Occurrence_Status_Code, err error) { + err = r.Session.DoRequest("SoftLayer_Notification_Occurrence_Event", "getStatusCode", nil, &r.Options, &resp) + return +} + +// Retrieve All updates for this event. +func (r Notification_Occurrence_Event) GetUpdates() (resp []datatypes.Notification_Occurrence_Update, err error) { + err = r.Session.DoRequest("SoftLayer_Notification_Occurrence_Event", "getUpdates", nil, &r.Options, &resp) + return +} + +// This type contains general information relating to a user that may be impacted by a [[SoftLayer_Notification_Occurrence_Event]]. +type Notification_Occurrence_User struct { + Session *session.Session + Options sl.Options +} + +// GetNotificationOccurrenceUserService returns an instance of the Notification_Occurrence_User SoftLayer service +func GetNotificationOccurrenceUserService(sess *session.Session) Notification_Occurrence_User { + return Notification_Occurrence_User{Session: sess} +} + +func (r Notification_Occurrence_User) Id(id int) Notification_Occurrence_User { + r.Options.Id = &id + return r +} + +func (r Notification_Occurrence_User) Mask(mask string) Notification_Occurrence_User { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Notification_Occurrence_User) Filter(filter string) Notification_Occurrence_User { + r.Options.Filter = filter + return r +} + +func (r Notification_Occurrence_User) Limit(limit int) Notification_Occurrence_User { + r.Options.Limit = &limit + return r +} + +func (r Notification_Occurrence_User) Offset(offset int) Notification_Occurrence_User { + r.Options.Offset = &offset + return r +} + +// no documentation yet +func (r Notification_Occurrence_User) Acknowledge() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Notification_Occurrence_User", "acknowledge", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Notification_Occurrence_User) GetAllObjects() (resp []datatypes.Notification_Occurrence_User, err error) { + err = r.Session.DoRequest("SoftLayer_Notification_Occurrence_User", "getAllObjects", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Notification_Occurrence_User) GetImpactedDeviceCount() (resp int, err error) { + err = r.Session.DoRequest("SoftLayer_Notification_Occurrence_User", "getImpactedDeviceCount", nil, &r.Options, &resp) + return +} + +// Retrieve A collection of resources impacted by the associated event. +func (r Notification_Occurrence_User) GetImpactedResources() (resp []datatypes.Notification_Occurrence_Resource, err error) { + err = r.Session.DoRequest("SoftLayer_Notification_Occurrence_User", "getImpactedResources", nil, &r.Options, &resp) + return +} + +// Retrieve The associated event. +func (r Notification_Occurrence_User) GetNotificationOccurrenceEvent() (resp datatypes.Notification_Occurrence_Event, err error) { + err = r.Session.DoRequest("SoftLayer_Notification_Occurrence_User", "getNotificationOccurrenceEvent", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Notification_Occurrence_User) GetObject() (resp datatypes.Notification_Occurrence_User, err error) { + err = r.Session.DoRequest("SoftLayer_Notification_Occurrence_User", "getObject", nil, &r.Options, &resp) + return +} + +// Retrieve The impacted user. +func (r Notification_Occurrence_User) GetUser() (resp datatypes.User_Customer, err error) { + err = r.Session.DoRequest("SoftLayer_Notification_Occurrence_User", "getUser", nil, &r.Options, &resp) + return +} + +// A notification subscriber will have details pertaining to the subscriber's notification subscription. You can receive details such as preferences, details of the preferences, delivery methods and the delivery methods for the subscriber. +// +// NOTE: There are preferences and delivery methods that cannot be modified. Also, there are some subscriptions that are required. +type Notification_User_Subscriber struct { + Session *session.Session + Options sl.Options +} + +// GetNotificationUserSubscriberService returns an instance of the Notification_User_Subscriber SoftLayer service +func GetNotificationUserSubscriberService(sess *session.Session) Notification_User_Subscriber { + return Notification_User_Subscriber{Session: sess} +} + +func (r Notification_User_Subscriber) Id(id int) Notification_User_Subscriber { + r.Options.Id = &id + return r +} + +func (r Notification_User_Subscriber) Mask(mask string) Notification_User_Subscriber { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Notification_User_Subscriber) Filter(filter string) Notification_User_Subscriber { + r.Options.Filter = filter + return r +} + +func (r Notification_User_Subscriber) Limit(limit int) Notification_User_Subscriber { + r.Options.Limit = &limit + return r +} + +func (r Notification_User_Subscriber) Offset(offset int) Notification_User_Subscriber { + r.Options.Offset = &offset + return r +} + +// Use the method to create a new subscription for a notification. This method is the entry method to the notification system. Certain properties are required to create a subscription while others are optional. +// +// The required property is the resourceRecord property which is type SoftLayer_Notification_User_Subscriber_Resource. For the resourceRecord property, the only property that needs to be populated is the resourceTableId. The resourceTableId is the unique identifier of a SoftLayer service to create the subscription for. For example, the unique identifier of the Storage Evault service to create the subscription on. +// +// Optional properties that can be set is the preferences property. The preference property is an array SoftLayer_Notification_User_Subscriber_Preference. By default, the system will populate the preferences with the default values if no preferences are passed in. The preferences passed in must be the preferences related to the notification subscribing to. The notification preferences and preference details (such as minimum and maximum values) can be retrieved using the SoftLayer_Notification service. The properties that need to be populated for preferences are the notificationPreferenceId and value. +// +// For example to create a subscriber for a Storage EVault service to be notified 15 times during a billing cycle and to be notified when the vault usage reaches 85% of its allowed capacity use the following structure: +// +// +// *userRecordId = 1111 +// *notificationId = 3 +// *resourceRecord +// **resourceTableId = 1234 +// *preferences[1] +// **notificationPreferenceId = 2 +// **value = 85 +// *preference[2] +// **notificationPreferenceId = 3 +// **value = 15 +// +// +func (r Notification_User_Subscriber) CreateObject(templateObject *datatypes.Notification_User_Subscriber) (resp bool, err error) { + params := []interface{}{ + templateObject, + } + err = r.Session.DoRequest("SoftLayer_Notification_User_Subscriber", "createObject", params, &r.Options, &resp) + return +} + +// The subscriber's subscription status can be "turned off" or "turned on" if the subscription is not required. +// +// Subscriber preferences may also be edited. To edit the preferences, you must pass in the id off the preferences to edit. Here is an example of structure to pass in. In this example, the structure will set the subscriber status to active and the threshold preference to 90 and the limit preference to 20 +// +// +// *id = 1111 +// *active = 1 +// *preferences[1] +// **id = 11 +// **value = 90 +// *preference[2] +// **id = 12 +// **value = 20 +func (r Notification_User_Subscriber) EditObject(templateObject *datatypes.Notification_User_Subscriber) (resp bool, err error) { + params := []interface{}{ + templateObject, + } + err = r.Session.DoRequest("SoftLayer_Notification_User_Subscriber", "editObject", params, &r.Options, &resp) + return +} + +// Retrieve The delivery methods used to send the subscribed notification. +func (r Notification_User_Subscriber) GetDeliveryMethods() (resp []datatypes.Notification_Delivery_Method, err error) { + err = r.Session.DoRequest("SoftLayer_Notification_User_Subscriber", "getDeliveryMethods", nil, &r.Options, &resp) + return +} + +// Retrieve Notification subscribed to. +func (r Notification_User_Subscriber) GetNotification() (resp datatypes.Notification, err error) { + err = r.Session.DoRequest("SoftLayer_Notification_User_Subscriber", "getNotification", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Notification_User_Subscriber) GetObject() (resp datatypes.Notification_User_Subscriber, err error) { + err = r.Session.DoRequest("SoftLayer_Notification_User_Subscriber", "getObject", nil, &r.Options, &resp) + return +} + +// Retrieve Associated subscriber preferences used for the notification subscription. For example, preferences include number of deliveries (limit) and threshold. +func (r Notification_User_Subscriber) GetPreferences() (resp []datatypes.Notification_User_Subscriber_Preference, err error) { + err = r.Session.DoRequest("SoftLayer_Notification_User_Subscriber", "getPreferences", nil, &r.Options, &resp) + return +} + +// Retrieve Preference details such as description, minimum and maximum limits, default value and unit of measure. +func (r Notification_User_Subscriber) GetPreferencesDetails() (resp []datatypes.Notification_Preference, err error) { + err = r.Session.DoRequest("SoftLayer_Notification_User_Subscriber", "getPreferencesDetails", nil, &r.Options, &resp) + return +} + +// Retrieve The subscriber id to resource id mapping. +func (r Notification_User_Subscriber) GetResourceRecord() (resp datatypes.Notification_User_Subscriber_Resource, err error) { + err = r.Session.DoRequest("SoftLayer_Notification_User_Subscriber", "getResourceRecord", nil, &r.Options, &resp) + return +} + +// Retrieve User record for the subscription. +func (r Notification_User_Subscriber) GetUserRecord() (resp datatypes.User_Customer, err error) { + err = r.Session.DoRequest("SoftLayer_Notification_User_Subscriber", "getUserRecord", nil, &r.Options, &resp) + return +} + +// A notification subscriber will have details pertaining to the subscriber's notification subscription. You can receive details such as preferences, details of the preferences, delivery methods and the delivery methods for the subscriber. +// +// NOTE: There are preferences and delivery methods that cannot be modified. Also, there are some subscriptions that are required. +type Notification_User_Subscriber_Billing struct { + Session *session.Session + Options sl.Options +} + +// GetNotificationUserSubscriberBillingService returns an instance of the Notification_User_Subscriber_Billing SoftLayer service +func GetNotificationUserSubscriberBillingService(sess *session.Session) Notification_User_Subscriber_Billing { + return Notification_User_Subscriber_Billing{Session: sess} +} + +func (r Notification_User_Subscriber_Billing) Id(id int) Notification_User_Subscriber_Billing { + r.Options.Id = &id + return r +} + +func (r Notification_User_Subscriber_Billing) Mask(mask string) Notification_User_Subscriber_Billing { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Notification_User_Subscriber_Billing) Filter(filter string) Notification_User_Subscriber_Billing { + r.Options.Filter = filter + return r +} + +func (r Notification_User_Subscriber_Billing) Limit(limit int) Notification_User_Subscriber_Billing { + r.Options.Limit = &limit + return r +} + +func (r Notification_User_Subscriber_Billing) Offset(offset int) Notification_User_Subscriber_Billing { + r.Options.Offset = &offset + return r +} + +// Use the method to create a new subscription for a notification. This method is the entry method to the notification system. Certain properties are required to create a subscription while others are optional. +// +// The required property is the resourceRecord property which is type SoftLayer_Notification_User_Subscriber_Resource. For the resourceRecord property, the only property that needs to be populated is the resourceTableId. The resourceTableId is the unique identifier of a SoftLayer service to create the subscription for. For example, the unique identifier of the Storage Evault service to create the subscription on. +// +// Optional properties that can be set is the preferences property. The preference property is an array SoftLayer_Notification_User_Subscriber_Preference. By default, the system will populate the preferences with the default values if no preferences are passed in. The preferences passed in must be the preferences related to the notification subscribing to. The notification preferences and preference details (such as minimum and maximum values) can be retrieved using the SoftLayer_Notification service. The properties that need to be populated for preferences are the notificationPreferenceId and value. +// +// For example to create a subscriber for a Storage EVault service to be notified 15 times during a billing cycle and to be notified when the vault usage reaches 85% of its allowed capacity use the following structure: +// +// +// *userRecordId = 1111 +// *notificationId = 3 +// *resourceRecord +// **resourceTableId = 1234 +// *preferences[1] +// **notificationPreferenceId = 2 +// **value = 85 +// *preference[2] +// **notificationPreferenceId = 3 +// **value = 15 +// +// +func (r Notification_User_Subscriber_Billing) CreateObject(templateObject *datatypes.Notification_User_Subscriber) (resp bool, err error) { + params := []interface{}{ + templateObject, + } + err = r.Session.DoRequest("SoftLayer_Notification_User_Subscriber_Billing", "createObject", params, &r.Options, &resp) + return +} + +// The subscriber's subscription status can be "turned off" or "turned on" if the subscription is not required. +// +// Subscriber preferences may also be edited. To edit the preferences, you must pass in the id off the preferences to edit. Here is an example of structure to pass in. In this example, the structure will set the subscriber status to active and the threshold preference to 90 and the limit preference to 20 +// +// +// *id = 1111 +// *active = 1 +// *preferences[1] +// **id = 11 +// **value = 90 +// *preference[2] +// **id = 12 +// **value = 20 +func (r Notification_User_Subscriber_Billing) EditObject(templateObject *datatypes.Notification_User_Subscriber) (resp bool, err error) { + params := []interface{}{ + templateObject, + } + err = r.Session.DoRequest("SoftLayer_Notification_User_Subscriber_Billing", "editObject", params, &r.Options, &resp) + return +} + +// Retrieve The delivery methods used to send the subscribed notification. +func (r Notification_User_Subscriber_Billing) GetDeliveryMethods() (resp []datatypes.Notification_Delivery_Method, err error) { + err = r.Session.DoRequest("SoftLayer_Notification_User_Subscriber_Billing", "getDeliveryMethods", nil, &r.Options, &resp) + return +} + +// Retrieve Notification subscribed to. +func (r Notification_User_Subscriber_Billing) GetNotification() (resp datatypes.Notification, err error) { + err = r.Session.DoRequest("SoftLayer_Notification_User_Subscriber_Billing", "getNotification", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Notification_User_Subscriber_Billing) GetObject() (resp datatypes.Notification_User_Subscriber_Billing, err error) { + err = r.Session.DoRequest("SoftLayer_Notification_User_Subscriber_Billing", "getObject", nil, &r.Options, &resp) + return +} + +// Retrieve Associated subscriber preferences used for the notification subscription. For example, preferences include number of deliveries (limit) and threshold. +func (r Notification_User_Subscriber_Billing) GetPreferences() (resp []datatypes.Notification_User_Subscriber_Preference, err error) { + err = r.Session.DoRequest("SoftLayer_Notification_User_Subscriber_Billing", "getPreferences", nil, &r.Options, &resp) + return +} + +// Retrieve Preference details such as description, minimum and maximum limits, default value and unit of measure. +func (r Notification_User_Subscriber_Billing) GetPreferencesDetails() (resp []datatypes.Notification_Preference, err error) { + err = r.Session.DoRequest("SoftLayer_Notification_User_Subscriber_Billing", "getPreferencesDetails", nil, &r.Options, &resp) + return +} + +// Retrieve The subscriber id to resource id mapping. +func (r Notification_User_Subscriber_Billing) GetResourceRecord() (resp datatypes.Notification_User_Subscriber_Resource, err error) { + err = r.Session.DoRequest("SoftLayer_Notification_User_Subscriber_Billing", "getResourceRecord", nil, &r.Options, &resp) + return +} + +// Retrieve User record for the subscription. +func (r Notification_User_Subscriber_Billing) GetUserRecord() (resp datatypes.User_Customer, err error) { + err = r.Session.DoRequest("SoftLayer_Notification_User_Subscriber_Billing", "getUserRecord", nil, &r.Options, &resp) + return +} + +// A notification subscriber will have details pertaining to the subscriber's notification subscription. You can receive details such as preferences, details of the preferences, delivery methods and the delivery methods for the subscriber. +// +// NOTE: There are preferences and delivery methods that cannot be modified. Also, there are some subscriptions that are required. +type Notification_User_Subscriber_Mobile struct { + Session *session.Session + Options sl.Options +} + +// GetNotificationUserSubscriberMobileService returns an instance of the Notification_User_Subscriber_Mobile SoftLayer service +func GetNotificationUserSubscriberMobileService(sess *session.Session) Notification_User_Subscriber_Mobile { + return Notification_User_Subscriber_Mobile{Session: sess} +} + +func (r Notification_User_Subscriber_Mobile) Id(id int) Notification_User_Subscriber_Mobile { + r.Options.Id = &id + return r +} + +func (r Notification_User_Subscriber_Mobile) Mask(mask string) Notification_User_Subscriber_Mobile { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Notification_User_Subscriber_Mobile) Filter(filter string) Notification_User_Subscriber_Mobile { + r.Options.Filter = filter + return r +} + +func (r Notification_User_Subscriber_Mobile) Limit(limit int) Notification_User_Subscriber_Mobile { + r.Options.Limit = &limit + return r +} + +func (r Notification_User_Subscriber_Mobile) Offset(offset int) Notification_User_Subscriber_Mobile { + r.Options.Offset = &offset + return r +} + +// no documentation yet +func (r Notification_User_Subscriber_Mobile) ClearSnoozeTimer() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Notification_User_Subscriber_Mobile", "clearSnoozeTimer", nil, &r.Options, &resp) + return +} + +// Use the method to create a new subscription for a notification. This method is the entry method to the notification system. Certain properties are required to create a subscription while others are optional. +// +// The required property is the resourceRecord property which is type SoftLayer_Notification_User_Subscriber_Resource. For the resourceRecord property, the only property that needs to be populated is the resourceTableId. The resourceTableId is the unique identifier of a SoftLayer service to create the subscription for. For example, the unique identifier of the Storage Evault service to create the subscription on. +// +// Optional properties that can be set is the preferences property. The preference property is an array SoftLayer_Notification_User_Subscriber_Preference. By default, the system will populate the preferences with the default values if no preferences are passed in. The preferences passed in must be the preferences related to the notification subscribing to. The notification preferences and preference details (such as minimum and maximum values) can be retrieved using the SoftLayer_Notification service. The properties that need to be populated for preferences are the notificationPreferenceId and value. +// +// For example to create a subscriber for a Storage EVault service to be notified 15 times during a billing cycle and to be notified when the vault usage reaches 85% of its allowed capacity use the following structure: +// +// +// *userRecordId = 1111 +// *notificationId = 3 +// *resourceRecord +// **resourceTableId = 1234 +// *preferences[1] +// **notificationPreferenceId = 2 +// **value = 85 +// *preference[2] +// **notificationPreferenceId = 3 +// **value = 15 +// +// +func (r Notification_User_Subscriber_Mobile) CreateObject(templateObject *datatypes.Notification_User_Subscriber) (resp bool, err error) { + params := []interface{}{ + templateObject, + } + err = r.Session.DoRequest("SoftLayer_Notification_User_Subscriber_Mobile", "createObject", params, &r.Options, &resp) + return +} + +// The subscriber's subscription status can be "turned off" or "turned on" if the subscription is not required. +// +// Subscriber preferences may also be edited. To edit the preferences, you must pass in the id off the preferences to edit. Here is an example of structure to pass in. In this example, the structure will set the subscriber status to active and the threshold preference to 90 and the limit preference to 20 +// +// +// *id = 1111 +// *active = 1 +// *preferences[1] +// **id = 11 +// **value = 90 +// *preference[2] +// **id = 12 +// **value = 20 +func (r Notification_User_Subscriber_Mobile) EditObject(templateObject *datatypes.Notification_User_Subscriber) (resp bool, err error) { + params := []interface{}{ + templateObject, + } + err = r.Session.DoRequest("SoftLayer_Notification_User_Subscriber_Mobile", "editObject", params, &r.Options, &resp) + return +} + +// Retrieve The delivery methods used to send the subscribed notification. +func (r Notification_User_Subscriber_Mobile) GetDeliveryMethods() (resp []datatypes.Notification_Delivery_Method, err error) { + err = r.Session.DoRequest("SoftLayer_Notification_User_Subscriber_Mobile", "getDeliveryMethods", nil, &r.Options, &resp) + return +} + +// Retrieve Notification subscribed to. +func (r Notification_User_Subscriber_Mobile) GetNotification() (resp datatypes.Notification, err error) { + err = r.Session.DoRequest("SoftLayer_Notification_User_Subscriber_Mobile", "getNotification", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Notification_User_Subscriber_Mobile) GetObject() (resp datatypes.Notification_User_Subscriber_Mobile, err error) { + err = r.Session.DoRequest("SoftLayer_Notification_User_Subscriber_Mobile", "getObject", nil, &r.Options, &resp) + return +} + +// Retrieve Associated subscriber preferences used for the notification subscription. For example, preferences include number of deliveries (limit) and threshold. +func (r Notification_User_Subscriber_Mobile) GetPreferences() (resp []datatypes.Notification_User_Subscriber_Preference, err error) { + err = r.Session.DoRequest("SoftLayer_Notification_User_Subscriber_Mobile", "getPreferences", nil, &r.Options, &resp) + return +} + +// Retrieve Preference details such as description, minimum and maximum limits, default value and unit of measure. +func (r Notification_User_Subscriber_Mobile) GetPreferencesDetails() (resp []datatypes.Notification_Preference, err error) { + err = r.Session.DoRequest("SoftLayer_Notification_User_Subscriber_Mobile", "getPreferencesDetails", nil, &r.Options, &resp) + return +} + +// Retrieve The subscriber id to resource id mapping. +func (r Notification_User_Subscriber_Mobile) GetResourceRecord() (resp datatypes.Notification_User_Subscriber_Resource, err error) { + err = r.Session.DoRequest("SoftLayer_Notification_User_Subscriber_Mobile", "getResourceRecord", nil, &r.Options, &resp) + return +} + +// Retrieve User record for the subscription. +func (r Notification_User_Subscriber_Mobile) GetUserRecord() (resp datatypes.User_Customer, err error) { + err = r.Session.DoRequest("SoftLayer_Notification_User_Subscriber_Mobile", "getUserRecord", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Notification_User_Subscriber_Mobile) SetSnoozeTimer(start *int, end *int) (resp bool, err error) { + params := []interface{}{ + start, + end, + } + err = r.Session.DoRequest("SoftLayer_Notification_User_Subscriber_Mobile", "setSnoozeTimer", params, &r.Options, &resp) + return +} + +// Preferences are settings that can be modified to change the behavior of the subscription. For example, modify the limit preference to only receive notifications 10 times instead of 1 during a billing cycle. +// +// NOTE: Some preferences have certain restrictions on values that can be set. +type Notification_User_Subscriber_Preference struct { + Session *session.Session + Options sl.Options +} + +// GetNotificationUserSubscriberPreferenceService returns an instance of the Notification_User_Subscriber_Preference SoftLayer service +func GetNotificationUserSubscriberPreferenceService(sess *session.Session) Notification_User_Subscriber_Preference { + return Notification_User_Subscriber_Preference{Session: sess} +} + +func (r Notification_User_Subscriber_Preference) Id(id int) Notification_User_Subscriber_Preference { + r.Options.Id = &id + return r +} + +func (r Notification_User_Subscriber_Preference) Mask(mask string) Notification_User_Subscriber_Preference { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Notification_User_Subscriber_Preference) Filter(filter string) Notification_User_Subscriber_Preference { + r.Options.Filter = filter + return r +} + +func (r Notification_User_Subscriber_Preference) Limit(limit int) Notification_User_Subscriber_Preference { + r.Options.Limit = &limit + return r +} + +func (r Notification_User_Subscriber_Preference) Offset(offset int) Notification_User_Subscriber_Preference { + r.Options.Offset = &offset + return r +} + +// Use the method to create a new notification preference for a subscriber +func (r Notification_User_Subscriber_Preference) CreateObject(templateObject *datatypes.Notification_User_Subscriber_Preference) (resp bool, err error) { + params := []interface{}{ + templateObject, + } + err = r.Session.DoRequest("SoftLayer_Notification_User_Subscriber_Preference", "createObject", params, &r.Options, &resp) + return +} + +// no documentation yet +func (r Notification_User_Subscriber_Preference) EditObjects(templateObjects []datatypes.Notification_User_Subscriber_Preference) (resp bool, err error) { + params := []interface{}{ + templateObjects, + } + err = r.Session.DoRequest("SoftLayer_Notification_User_Subscriber_Preference", "editObjects", params, &r.Options, &resp) + return +} + +// Retrieve Details such name, keyname, minimum and maximum values for the preference. +func (r Notification_User_Subscriber_Preference) GetDefaultPreference() (resp datatypes.Notification_Preference, err error) { + err = r.Session.DoRequest("SoftLayer_Notification_User_Subscriber_Preference", "getDefaultPreference", nil, &r.Options, &resp) + return +} + +// Retrieve Details of the subscriber tied to the preference. +func (r Notification_User_Subscriber_Preference) GetNotificationUserSubscriber() (resp datatypes.Notification_User_Subscriber, err error) { + err = r.Session.DoRequest("SoftLayer_Notification_User_Subscriber_Preference", "getNotificationUserSubscriber", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Notification_User_Subscriber_Preference) GetObject() (resp datatypes.Notification_User_Subscriber_Preference, err error) { + err = r.Session.DoRequest("SoftLayer_Notification_User_Subscriber_Preference", "getObject", nil, &r.Options, &resp) + return +} diff --git a/vendor/github.com/softlayer/softlayer-go/services/product.go b/vendor/github.com/softlayer/softlayer-go/services/product.go new file mode 100644 index 000000000..021926658 --- /dev/null +++ b/vendor/github.com/softlayer/softlayer-go/services/product.go @@ -0,0 +1,2028 @@ +/** + * Copyright 2016 IBM Corp. + * + * 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. + */ + +/** + * AUTOMATICALLY GENERATED CODE - DO NOT MODIFY + */ + +package services + +import ( + "fmt" + "strings" + + "github.com/softlayer/softlayer-go/datatypes" + "github.com/softlayer/softlayer-go/session" + "github.com/softlayer/softlayer-go/sl" +) + +// The SoftLayer_Product_Item_Category data type contains general category information for prices. +type Product_Item_Category struct { + Session *session.Session + Options sl.Options +} + +// GetProductItemCategoryService returns an instance of the Product_Item_Category SoftLayer service +func GetProductItemCategoryService(sess *session.Session) Product_Item_Category { + return Product_Item_Category{Session: sess} +} + +func (r Product_Item_Category) Id(id int) Product_Item_Category { + r.Options.Id = &id + return r +} + +func (r Product_Item_Category) Mask(mask string) Product_Item_Category { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Product_Item_Category) Filter(filter string) Product_Item_Category { + r.Options.Filter = filter + return r +} + +func (r Product_Item_Category) Limit(limit int) Product_Item_Category { + r.Options.Limit = &limit + return r +} + +func (r Product_Item_Category) Offset(offset int) Product_Item_Category { + r.Options.Offset = &offset + return r +} + +// Returns a list of of active Items in the "Additional Services" package with their active prices for a given product item category and sorts them by price. +func (r Product_Item_Category) GetAdditionalProductsForCategory() (resp []datatypes.Product_Item, err error) { + err = r.Session.DoRequest("SoftLayer_Product_Item_Category", "getAdditionalProductsForCategory", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Product_Item_Category) GetBandwidthCategories() (resp []datatypes.Product_Item_Category, err error) { + err = r.Session.DoRequest("SoftLayer_Product_Item_Category", "getBandwidthCategories", nil, &r.Options, &resp) + return +} + +// Retrieve The billing items associated with an account that share a category code with an item category's category code. +func (r Product_Item_Category) GetBillingItems() (resp []datatypes.Billing_Item, err error) { + err = r.Session.DoRequest("SoftLayer_Product_Item_Category", "getBillingItems", nil, &r.Options, &resp) + return +} + +// This method returns a collection of computing categories. These categories are also top level items in a service offering. +func (r Product_Item_Category) GetComputingCategories(resetCache *bool) (resp []datatypes.Product_Item_Category, err error) { + params := []interface{}{ + resetCache, + } + err = r.Session.DoRequest("SoftLayer_Product_Item_Category", "getComputingCategories", params, &r.Options, &resp) + return +} + +// no documentation yet +func (r Product_Item_Category) GetCustomUsageRatesCategories(resetCache *bool) (resp []datatypes.Product_Item_Category, err error) { + params := []interface{}{ + resetCache, + } + err = r.Session.DoRequest("SoftLayer_Product_Item_Category", "getCustomUsageRatesCategories", params, &r.Options, &resp) + return +} + +// Retrieve This invoice item's "item category group". +func (r Product_Item_Category) GetGroup() (resp datatypes.Product_Item_Category_Group, err error) { + err = r.Session.DoRequest("SoftLayer_Product_Item_Category", "getGroup", nil, &r.Options, &resp) + return +} + +// Retrieve A collection of service offering category groups. Each group contains a collection of items associated with this category. +func (r Product_Item_Category) GetGroups() (resp []datatypes.Product_Package_Item_Category_Group, err error) { + err = r.Session.DoRequest("SoftLayer_Product_Item_Category", "getGroups", nil, &r.Options, &resp) + return +} + +// Each product item price must be tied to a category for it to be sold. These categories describe how a particular product item is sold. For example, the 250GB hard drive can be sold as disk0, disk1, ... disk11. There are different prices for this product item depending on which category it is. This keeps down the number of products in total. +func (r Product_Item_Category) GetObject() (resp datatypes.Product_Item_Category, err error) { + err = r.Session.DoRequest("SoftLayer_Product_Item_Category", "getObject", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Product_Item_Category) GetObjectStorageCategories(resetCache *bool) (resp []datatypes.Product_Item_Category, err error) { + params := []interface{}{ + resetCache, + } + err = r.Session.DoRequest("SoftLayer_Product_Item_Category", "getObjectStorageCategories", params, &r.Options, &resp) + return +} + +// Retrieve Any unique options associated with an item category. +func (r Product_Item_Category) GetOrderOptions() (resp []datatypes.Product_Item_Category_Order_Option_Type, err error) { + err = r.Session.DoRequest("SoftLayer_Product_Item_Category", "getOrderOptions", nil, &r.Options, &resp) + return +} + +// Retrieve A list of configuration available in this category.' +func (r Product_Item_Category) GetPackageConfigurations() (resp []datatypes.Product_Package_Order_Configuration, err error) { + err = r.Session.DoRequest("SoftLayer_Product_Item_Category", "getPackageConfigurations", nil, &r.Options, &resp) + return +} + +// Retrieve A list of preset configurations this category is used in.' +func (r Product_Item_Category) GetPresetConfigurations() (resp []datatypes.Product_Package_Preset_Configuration, err error) { + err = r.Session.DoRequest("SoftLayer_Product_Item_Category", "getPresetConfigurations", nil, &r.Options, &resp) + return +} + +// Retrieve The question references that are associated with an item category. +func (r Product_Item_Category) GetQuestionReferences() (resp []datatypes.Product_Item_Category_Question_Xref, err error) { + err = r.Session.DoRequest("SoftLayer_Product_Item_Category", "getQuestionReferences", nil, &r.Options, &resp) + return +} + +// Retrieve The questions that are associated with an item category. +func (r Product_Item_Category) GetQuestions() (resp []datatypes.Product_Item_Category_Question, err error) { + err = r.Session.DoRequest("SoftLayer_Product_Item_Category", "getQuestions", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Product_Item_Category) GetSoftwareCategories() (resp []datatypes.Product_Item_Category, err error) { + err = r.Session.DoRequest("SoftLayer_Product_Item_Category", "getSoftwareCategories", nil, &r.Options, &resp) + return +} + +// This method returns a list of subnet categories. +func (r Product_Item_Category) GetSubnetCategories() (resp []datatypes.Product_Item_Category, err error) { + err = r.Session.DoRequest("SoftLayer_Product_Item_Category", "getSubnetCategories", nil, &r.Options, &resp) + return +} + +// This method returns a collection of computing categories. These categories are also top level items in a service offering. +func (r Product_Item_Category) GetTopLevelCategories(resetCache *bool) (resp []datatypes.Product_Item_Category, err error) { + params := []interface{}{ + resetCache, + } + err = r.Session.DoRequest("SoftLayer_Product_Item_Category", "getTopLevelCategories", params, &r.Options, &resp) + return +} + +// This method returns service product categories that can be canceled via API. You can use these categories to find the billing items you wish to cancel. +func (r Product_Item_Category) GetValidCancelableServiceItemCategories() (resp []datatypes.Product_Item_Category, err error) { + err = r.Session.DoRequest("SoftLayer_Product_Item_Category", "getValidCancelableServiceItemCategories", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Product_Item_Category) GetVlanCategories() (resp []datatypes.Product_Item_Category, err error) { + err = r.Session.DoRequest("SoftLayer_Product_Item_Category", "getVlanCategories", nil, &r.Options, &resp) + return +} + +// The SoftLayer_Product_Item_Category_Group data type contains general category group information. +type Product_Item_Category_Group struct { + Session *session.Session + Options sl.Options +} + +// GetProductItemCategoryGroupService returns an instance of the Product_Item_Category_Group SoftLayer service +func GetProductItemCategoryGroupService(sess *session.Session) Product_Item_Category_Group { + return Product_Item_Category_Group{Session: sess} +} + +func (r Product_Item_Category_Group) Id(id int) Product_Item_Category_Group { + r.Options.Id = &id + return r +} + +func (r Product_Item_Category_Group) Mask(mask string) Product_Item_Category_Group { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Product_Item_Category_Group) Filter(filter string) Product_Item_Category_Group { + r.Options.Filter = filter + return r +} + +func (r Product_Item_Category_Group) Limit(limit int) Product_Item_Category_Group { + r.Options.Limit = &limit + return r +} + +func (r Product_Item_Category_Group) Offset(offset int) Product_Item_Category_Group { + r.Options.Offset = &offset + return r +} + +// Each product item category must be tied to a category group. These category groups describe how a particular product item category is categorized. For example, the disk0, disk1, ... disk11 can be categorized as Server and Attached Services. There are different groups for each of this product item category depending on the function of the item product in the subject category. +func (r Product_Item_Category_Group) GetObject() (resp datatypes.Product_Item_Category_Group, err error) { + err = r.Session.DoRequest("SoftLayer_Product_Item_Category_Group", "getObject", nil, &r.Options, &resp) + return +} + +// Represents the assignment of a policy to a product. The existence of a record means that the associated product is subject to the terms defined in the document content of the policy. +type Product_Item_Policy_Assignment struct { + Session *session.Session + Options sl.Options +} + +// GetProductItemPolicyAssignmentService returns an instance of the Product_Item_Policy_Assignment SoftLayer service +func GetProductItemPolicyAssignmentService(sess *session.Session) Product_Item_Policy_Assignment { + return Product_Item_Policy_Assignment{Session: sess} +} + +func (r Product_Item_Policy_Assignment) Id(id int) Product_Item_Policy_Assignment { + r.Options.Id = &id + return r +} + +func (r Product_Item_Policy_Assignment) Mask(mask string) Product_Item_Policy_Assignment { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Product_Item_Policy_Assignment) Filter(filter string) Product_Item_Policy_Assignment { + r.Options.Filter = filter + return r +} + +func (r Product_Item_Policy_Assignment) Limit(limit int) Product_Item_Policy_Assignment { + r.Options.Limit = &limit + return r +} + +func (r Product_Item_Policy_Assignment) Offset(offset int) Product_Item_Policy_Assignment { + r.Options.Offset = &offset + return r +} + +// Register the acceptance of the associated policy to product assignment, and link the created record to a Ticket. +func (r Product_Item_Policy_Assignment) AcceptFromTicket(ticketId *int) (resp bool, err error) { + params := []interface{}{ + ticketId, + } + err = r.Session.DoRequest("SoftLayer_Product_Item_Policy_Assignment", "acceptFromTicket", params, &r.Options, &resp) + return +} + +// no documentation yet +func (r Product_Item_Policy_Assignment) GetObject() (resp datatypes.Product_Item_Policy_Assignment, err error) { + err = r.Session.DoRequest("SoftLayer_Product_Item_Policy_Assignment", "getObject", nil, &r.Options, &resp) + return +} + +// Retrieve the binary contents of the associated PDF policy document. +func (r Product_Item_Policy_Assignment) GetPolicyDocumentContents() (resp []byte, err error) { + err = r.Session.DoRequest("SoftLayer_Product_Item_Policy_Assignment", "getPolicyDocumentContents", nil, &r.Options, &resp) + return +} + +// Retrieve The name of the assigned policy. +func (r Product_Item_Policy_Assignment) GetPolicyName() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_Product_Item_Policy_Assignment", "getPolicyName", nil, &r.Options, &resp) + return +} + +// Retrieve The [[SoftLayer_Product_Item]] for this policy assignment. +func (r Product_Item_Policy_Assignment) GetProduct() (resp datatypes.Product_Item, err error) { + err = r.Session.DoRequest("SoftLayer_Product_Item_Policy_Assignment", "getProduct", nil, &r.Options, &resp) + return +} + +// The SoftLayer_Product_Item_Price data type contains general information relating to a single SoftLayer product item price. You can find out what packages each price is in as well as which category under which this price is sold. All prices are returned in floating point values measured in US Dollars ($USD). +type Product_Item_Price struct { + Session *session.Session + Options sl.Options +} + +// GetProductItemPriceService returns an instance of the Product_Item_Price SoftLayer service +func GetProductItemPriceService(sess *session.Session) Product_Item_Price { + return Product_Item_Price{Session: sess} +} + +func (r Product_Item_Price) Id(id int) Product_Item_Price { + r.Options.Id = &id + return r +} + +func (r Product_Item_Price) Mask(mask string) Product_Item_Price { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Product_Item_Price) Filter(filter string) Product_Item_Price { + r.Options.Filter = filter + return r +} + +func (r Product_Item_Price) Limit(limit int) Product_Item_Price { + r.Options.Limit = &limit + return r +} + +func (r Product_Item_Price) Offset(offset int) Product_Item_Price { + r.Options.Offset = &offset + return r +} + +// Retrieve The account that the item price is restricted to. +func (r Product_Item_Price) GetAccountRestrictions() (resp []datatypes.Product_Item_Price_Account_Restriction, err error) { + err = r.Session.DoRequest("SoftLayer_Product_Item_Price", "getAccountRestrictions", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Product_Item_Price) GetAttributes() (resp []datatypes.Product_Item_Price_Attribute, err error) { + err = r.Session.DoRequest("SoftLayer_Product_Item_Price", "getAttributes", nil, &r.Options, &resp) + return +} + +// Retrieve Whether the price is for Big Data OS/Journal disks only. (Deprecated) +func (r Product_Item_Price) GetBigDataOsJournalDiskFlag() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Product_Item_Price", "getBigDataOsJournalDiskFlag", nil, &r.Options, &resp) + return +} + +// Retrieve cross reference for bundles +func (r Product_Item_Price) GetBundleReferences() (resp []datatypes.Product_Item_Bundles, err error) { + err = r.Session.DoRequest("SoftLayer_Product_Item_Price", "getBundleReferences", nil, &r.Options, &resp) + return +} + +// Retrieve The maximum capacity value for which this price is suitable. +func (r Product_Item_Price) GetCapacityRestrictionMaximum() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_Product_Item_Price", "getCapacityRestrictionMaximum", nil, &r.Options, &resp) + return +} + +// Retrieve The minimum capacity value for which this price is suitable. +func (r Product_Item_Price) GetCapacityRestrictionMinimum() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_Product_Item_Price", "getCapacityRestrictionMinimum", nil, &r.Options, &resp) + return +} + +// Retrieve The type of capacity restriction by which this price must abide. +func (r Product_Item_Price) GetCapacityRestrictionType() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_Product_Item_Price", "getCapacityRestrictionType", nil, &r.Options, &resp) + return +} + +// Retrieve All categories which this item is a member. +func (r Product_Item_Price) GetCategories() (resp []datatypes.Product_Item_Category, err error) { + err = r.Session.DoRequest("SoftLayer_Product_Item_Price", "getCategories", nil, &r.Options, &resp) + return +} + +// Retrieve Whether this price defines a software license for its product item. +func (r Product_Item_Price) GetDefinedSoftwareLicenseFlag() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Product_Item_Price", "getDefinedSoftwareLicenseFlag", nil, &r.Options, &resp) + return +} + +// Retrieve An item price's inventory status per datacenter. +func (r Product_Item_Price) GetInventory() (resp []datatypes.Product_Package_Inventory, err error) { + err = r.Session.DoRequest("SoftLayer_Product_Item_Price", "getInventory", nil, &r.Options, &resp) + return +} + +// Retrieve The product item a price is tied to. +func (r Product_Item_Price) GetItem() (resp datatypes.Product_Item, err error) { + err = r.Session.DoRequest("SoftLayer_Product_Item_Price", "getItem", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Product_Item_Price) GetObject() (resp datatypes.Product_Item_Price, err error) { + err = r.Session.DoRequest("SoftLayer_Product_Item_Price", "getObject", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Product_Item_Price) GetOrderPremiums() (resp []datatypes.Product_Item_Price_Premium, err error) { + err = r.Session.DoRequest("SoftLayer_Product_Item_Price", "getOrderPremiums", nil, &r.Options, &resp) + return +} + +// Retrieve cross reference for packages +func (r Product_Item_Price) GetPackageReferences() (resp []datatypes.Product_Package_Item_Prices, err error) { + err = r.Session.DoRequest("SoftLayer_Product_Item_Price", "getPackageReferences", nil, &r.Options, &resp) + return +} + +// Retrieve A price's packages under which this item is sold. +func (r Product_Item_Price) GetPackages() (resp []datatypes.Product_Package, err error) { + err = r.Session.DoRequest("SoftLayer_Product_Item_Price", "getPackages", nil, &r.Options, &resp) + return +} + +// Retrieve A list of preset configurations this price is used in.' +func (r Product_Item_Price) GetPresetConfigurations() (resp []datatypes.Product_Package_Preset_Configuration, err error) { + err = r.Session.DoRequest("SoftLayer_Product_Item_Price", "getPresetConfigurations", nil, &r.Options, &resp) + return +} + +// Retrieve The pricing location group that this price is applicable for. Prices that have a pricing location group will only be available for ordering with the locations specified on the location group. +func (r Product_Item_Price) GetPricingLocationGroup() (resp datatypes.Location_Group_Pricing, err error) { + err = r.Session.DoRequest("SoftLayer_Product_Item_Price", "getPricingLocationGroup", nil, &r.Options, &resp) + return +} + +// Retrieve The number of server cores required to order this item. This is deprecated. Use [[SoftLayer_Product_Item_Price/getCapacityRestrictionMinimum|getCapacityRestrictionMinimum]] and [[SoftLayer_Product_Item_Price/getCapacityRestrictionMaximum|getCapacityRestrictionMaximum]] +func (r Product_Item_Price) GetRequiredCoreCount() (resp int, err error) { + err = r.Session.DoRequest("SoftLayer_Product_Item_Price", "getRequiredCoreCount", nil, &r.Options, &resp) + return +} + +// Returns a collection of rate-based [[SoftLayer_Product_Item_Price]] objects associated with the [[SoftLayer_Product_Item]] objects and the [[SoftLayer_Location]] specified. The location is required to get the appropriate rate-based prices because the usage rates may vary from datacenter to datacenter. +func (r Product_Item_Price) GetUsageRatePrices(location *datatypes.Location, items []datatypes.Product_Item) (resp []datatypes.Product_Item_Price, err error) { + params := []interface{}{ + location, + items, + } + err = r.Session.DoRequest("SoftLayer_Product_Item_Price", "getUsageRatePrices", params, &r.Options, &resp) + return +} + +// no documentation yet +type Product_Item_Price_Premium struct { + Session *session.Session + Options sl.Options +} + +// GetProductItemPricePremiumService returns an instance of the Product_Item_Price_Premium SoftLayer service +func GetProductItemPricePremiumService(sess *session.Session) Product_Item_Price_Premium { + return Product_Item_Price_Premium{Session: sess} +} + +func (r Product_Item_Price_Premium) Id(id int) Product_Item_Price_Premium { + r.Options.Id = &id + return r +} + +func (r Product_Item_Price_Premium) Mask(mask string) Product_Item_Price_Premium { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Product_Item_Price_Premium) Filter(filter string) Product_Item_Price_Premium { + r.Options.Filter = filter + return r +} + +func (r Product_Item_Price_Premium) Limit(limit int) Product_Item_Price_Premium { + r.Options.Limit = &limit + return r +} + +func (r Product_Item_Price_Premium) Offset(offset int) Product_Item_Price_Premium { + r.Options.Offset = &offset + return r +} + +// Retrieve +func (r Product_Item_Price_Premium) GetItemPrice() (resp datatypes.Product_Item_Price, err error) { + err = r.Session.DoRequest("SoftLayer_Product_Item_Price_Premium", "getItemPrice", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Product_Item_Price_Premium) GetLocation() (resp datatypes.Location, err error) { + err = r.Session.DoRequest("SoftLayer_Product_Item_Price_Premium", "getLocation", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Product_Item_Price_Premium) GetObject() (resp datatypes.Product_Item_Price_Premium, err error) { + err = r.Session.DoRequest("SoftLayer_Product_Item_Price_Premium", "getObject", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Product_Item_Price_Premium) GetPackage() (resp datatypes.Product_Package, err error) { + err = r.Session.DoRequest("SoftLayer_Product_Item_Price_Premium", "getPackage", nil, &r.Options, &resp) + return +} + +// no documentation yet +type Product_Order struct { + Session *session.Session + Options sl.Options +} + +// GetProductOrderService returns an instance of the Product_Order SoftLayer service +func GetProductOrderService(sess *session.Session) Product_Order { + return Product_Order{Session: sess} +} + +func (r Product_Order) Id(id int) Product_Order { + r.Options.Id = &id + return r +} + +func (r Product_Order) Mask(mask string) Product_Order { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Product_Order) Filter(filter string) Product_Order { + r.Options.Filter = filter + return r +} + +func (r Product_Order) Limit(limit int) Product_Order { + r.Options.Limit = &limit + return r +} + +func (r Product_Order) Offset(offset int) Product_Order { + r.Options.Offset = &offset + return r +} + +// no documentation yet +func (r Product_Order) CheckItemAvailability(itemPrices []datatypes.Product_Item_Price, accountId *int, availabilityTypeKeyNames []string) (resp bool, err error) { + params := []interface{}{ + itemPrices, + accountId, + availabilityTypeKeyNames, + } + err = r.Session.DoRequest("SoftLayer_Product_Order", "checkItemAvailability", params, &r.Options, &resp) + return +} + +// no documentation yet +func (r Product_Order) CheckItemAvailabilityForImageTemplate(imageTemplateId *int, accountId *int, packageId *int, availabilityTypeKeyNames []string) (resp bool, err error) { + params := []interface{}{ + imageTemplateId, + accountId, + packageId, + availabilityTypeKeyNames, + } + err = r.Session.DoRequest("SoftLayer_Product_Order", "checkItemAvailabilityForImageTemplate", params, &r.Options, &resp) + return +} + +// Check order items for conflicts +func (r Product_Order) CheckItemConflicts(itemPrices []datatypes.Product_Item_Price) (resp bool, err error) { + params := []interface{}{ + itemPrices, + } + err = r.Session.DoRequest("SoftLayer_Product_Order", "checkItemConflicts", params, &r.Options, &resp) + return +} + +// This method simply returns a receipt for a previously finalized payment authorization from PayPal. The response matches the response returned from placeOrder when the order was originally placed with PayPal as the payment type. +func (r Product_Order) GetExternalPaymentAuthorizationReceipt(token *string, payerId *string) (resp datatypes.Container_Product_Order_Receipt, err error) { + params := []interface{}{ + token, + payerId, + } + err = r.Session.DoRequest("SoftLayer_Product_Order", "getExternalPaymentAuthorizationReceipt", params, &r.Options, &resp) + return +} + +// This method returns a collection of [[SoftLayer_Container_Product_Order_Network]] objects. This will contain the available networks that can be used when ordering services. +// +// If a location id is supplied, the list of networks will be trimmed down to only those that are available at that particular datacenter. +// +// If a package id is supplied, the list of public VLANs and subnets will be trimmed down to those that are available for that particular package. +// +// The account id is for internal use only and will be ignored when supplied by customers. +func (r Product_Order) GetNetworks(locationId *int, packageId *int, accountId *int) (resp []datatypes.Container_Product_Order_Network, err error) { + params := []interface{}{ + locationId, + packageId, + accountId, + } + err = r.Session.DoRequest("SoftLayer_Product_Order", "getNetworks", params, &r.Options, &resp) + return +} + +// When the account is on an external reseller brand, this service will provide a SoftLayer_Product_Order with the the pricing adjusted by the external reseller. +func (r Product_Order) GetResellerOrder(orderContainer *datatypes.Container_Product_Order) (resp datatypes.Container_Product_Order, err error) { + params := []interface{}{ + orderContainer, + } + err = r.Session.DoRequest("SoftLayer_Product_Order", "getResellerOrder", params, &r.Options, &resp) + return +} + +// Sometimes taxes cannot be calculated immediately, so we start the calculations and let them run in the background. This method will return the current progress and information related to a specific tax calculation, which allows real-time progress updates on tax calculations. +func (r Product_Order) GetTaxCalculationResult(orderHash *string) (resp datatypes.Container_Tax_Cache, err error) { + params := []interface{}{ + orderHash, + } + err = r.Session.DoRequest("SoftLayer_Product_Order", "getTaxCalculationResult", params, &r.Options, &resp) + return +} + +// Return collections of public and private VLANs that are available during ordering. If a location ID is provided, the resulting VLANs will be limited to that location. If the Virtual Server package id (46) is provided, the VLANs will be narrowed down to those locations that contain routers with the VIRTUAL_IMAGE_STORE data attribute. +// +// For the selectedItems parameter, this is a comma-separated string of category codes and item values. For example: +// +//
    • port_speed=10,guest_disk0=LOCAL_DISK
    • port_speed=100,disk0=SAN_DISK
    • port_speed=100,private_network_only=1,guest_disk0=LOCAL_DISK
    +// +// This parameter is used to narrow the available results down even further. It's not necessary when selecting a VLAN, but it will help avoid errors when attempting to place an order. The only acceptable category codes are: +// +//
    • port_speed
    • A disk category, such as guest_disk0 or disk0, with values of either LOCAL_DISK or SAN_DISK
    • private_network_only
    • dual_path_network
    +// +// For most customers, it's sufficient to only provide the first 2 parameters. +func (r Product_Order) GetVlans(locationId *int, packageId *int, selectedItems *string, vlanIds []int, subnetIds []int, accountId *int, orderContainer *datatypes.Container_Product_Order, hardwareFirewallOrderedFlag *bool) (resp datatypes.Container_Product_Order_Network_Vlans, err error) { + params := []interface{}{ + locationId, + packageId, + selectedItems, + vlanIds, + subnetIds, + accountId, + orderContainer, + hardwareFirewallOrderedFlag, + } + err = r.Session.DoRequest("SoftLayer_Product_Order", "getVlans", params, &r.Options, &resp) + return +} + +// +// Use this method to place bare metal server, virtual server and additional service orders with SoftLayer. Upon success, your credit card or PayPal account will incur charges for the monthly order total (or prorated value if ordered mid billing cycle). If all products on the order are only billed hourly, you will be charged on your billing anniversary date, which occurs monthly on the day you ordered your first service with SoftLayer. For new customers, you are required to provide billing information when you place an order. For existing customers, the credit card on file will be charged. If you're a PayPal customer, a URL will be returned from the call to [[SoftLayer_Product_Order/placeOrder|placeOrder]] which is to be used to finish the authorization process. This authorization tells PayPal that you indeed want to place an order with SoftLayer. From PayPal's web site, you will be redirected back to SoftLayer for your order receipt.

    +// +// +// When an order is placed, your order will be in a "pending approval" state. When all internal checks pass, your order will be automatically approved. For orders that may need extra attention, a Sales representative will review the order and contact you if necessary. Once the order is approved, your server or service will be provisioned and available to you shortly thereafter. Depending on the type of server or service ordered, provisioning times will vary.

    +// +// +//

    Order Containers

    +// +// +// When placing API orders, it's important to order your server and services on the appropriate [[SoftLayer_Container_Product_Order (type)|order container]]. Failing to provide the correct container may delay your server or service from being provisioned in a timely manner. Some common order containers are included below.

    +// +// +// Note: SoftLayer_Container_Product_Order_ has been removed from the containers in the table below for readability.

    +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +//
    ProductOrder containerPackage type
    Bare metal server by CPU[[SoftLayer_Container_Product_Order_Hardware_Server (type)|Hardware_Server]]BARE_METAL_CPU
    Bare metal server by core[[SoftLayer_Container_Product_Order_Hardware_Server (type)|Hardware_Server]]BARE_METAL_CORE
    Virtual server[[SoftLayer_Container_Product_Order_Virtual_Guest (type)|Virtual_Guest]]VIRTUAL_SERVER_INSTANCE
    DNS domain registration[[SoftLayer_Container_Product_Order_Dns_Domain_Registration (type)|Dns_Domain_Registration]]ADDITIONAL_SERVICES
    Local & dedicated load balancers[[SoftLayer_Container_Product_Order_Network_LoadBalancer (type)|Network_LoadBalancer]]ADDITIONAL_SERVICES_LOAD_BALANCER
    Content delivery network[[SoftLayer_Container_Product_Order_Network_ContentDelivery_Account (type)|Network_ContentDelivery_Account]]ADDITIONAL_SERVICES_CDN
    Content delivery network Addon[[SoftLayer_Container_Product_Order_Network_ContentDelivery_Account_Addon (type)|Network_ContentDelivery_Account_Addon]]ADDITIONAL_SERVICES_CDN_ADDON
    Message queue[[SoftLayer_Container_Product_Order_Network_Message_Queue (type)|Network_Message_Queue]]ADDITIONAL_SERVICES_MESSAGE_QUEUE
    Hardware & software firewalls[[SoftLayer_Container_Product_Order_Network_Protection_Firewall (type)|Network_Protection_Firewall]]ADDITIONAL_SERVICES_FIREWALL
    Dedicated firewall[[SoftLayer_Container_Product_Order_Network_Protection_Firewall_Dedicated (type)|Network_Protection_Firewall_Dedicated]]ADDITIONAL_SERVICES_FIREWALL
    Object storage[[SoftLayer_Container_Product_Order_Network_Storage_Object (type)|Network_Storage_Object]]ADDITIONAL_SERVICES_OBJECT_STORAGE
    Object storage (hub)[[SoftLayer_Container_Product_Order_Network_Storage_Hub (type)|Network_Storage_Hub]]ADDITIONAL_SERVICES_OBJECT_STORAGE
    Network attached storage[[SoftLayer_Container_Product_Order_Network_Storage_Nas (type)|Network_Storage_Nas]]ADDITIONAL_SERVICES_NETWORK_ATTACHED_STORAGE
    Iscsi storage[[SoftLayer_Container_Product_Order_Network_Storage_Iscsi (type)|Network_Storage_Iscsi]]ADDITIONAL_SERVICES_ISCSI_STORAGE
    Evault[[SoftLayer_Container_Product_Order_Network_Storage_Backup_Evault_Vault (type)|Network_Storage_Backup_Evault_Vault]]ADDITIONAL_SERVICES
    Evault Plugin[[SoftLayer_Container_Product_Order_Network_Storage_Backup_Evault_Plugin (type)|Network_Storage_Backup_Evault_Plugin]]ADDITIONAL_SERVICES
    Application delivery appliance[[SoftLayer_Container_Product_Order_Network_Application_Delivery_Controller (type)|Network_Application_Delivery_Controller]]ADDITIONAL_SERVICES_APPLICATION_DELIVERY_APPLIANCE
    Network subnet[[SoftLayer_Container_Product_Order_Network_Subnet (type)|Network_Subnet]]ADDITIONAL_SERVICES
    Global IPv4[[SoftLayer_Container_Product_Order_Network_Subnet (type)|Network_Subnet]]ADDITIONAL_SERVICES_GLOBAL_IP_ADDRESSES
    Global IPv6[[SoftLayer_Container_Product_Order_Network_Subnet (type)|Network_Subnet]]ADDITIONAL_SERVICES_GLOBAL_IP_ADDRESSES
    Network VLAN[[SoftLayer_Container_Product_Order_Network_Vlan (type)|Network_Vlan]]ADDITIONAL_SERVICES_NETWORK_VLAN
    Portable storage[[SoftLayer_Container_Product_Order_Virtual_Disk_Image (type)|Virtual_Disk_Image]]ADDITIONAL_SERVICES_PORTABLE_STORAGE
    SSL certificate[[SoftLayer_Container_Product_Order_Security_Certificate (type)|Security_Certificate]]ADDITIONAL_SERVICES_SSL_CERTIFICATE
    External authentication[[SoftLayer_Container_Product_Order_User_Customer_External_Binding (type)|User_Customer_External_Binding]]ADDITIONAL_SERVICES
    Dedicated Host[[SoftLayer_Container_Product_Order_Virtual_DedicatedHost (type)|Virtual_DedicatedHosts]]DEDICATED_HOST
    +// +// +//

    Server example

    +// +// +// This example includes a single bare metal server being ordered with monthly billing.

    +// +// +// Warning: the price ids provided below may be outdated or unavailable, so you will need to determine the available prices from the bare metal server [[SoftLayer_Product_Package/getAllObjects|packages]], which have a [[SoftLayer_Product_Package_Type (type)|package type]] of '''BARE_METAL_CPU''' or '''BARE_METAL_CORE'''. You can get a full list of [[SoftLayer_Product_Package_Type/getAllObjects|package types]] to see other potentially available server packages.

    +// +// +// +// +// +// +// your username +// your api key +// +// +// +// +// +// +// +// example.com +// server1 +// +// +// 138124 +// 142 +// +// +// 58 +// +// +// 22337 +// +// +// 21189 +// +// +// 876 +// +// +// 57 +// +// +// 55 +// +// +// 21190 +// +// +// 36381 +// +// +// 21 +// +// +// 22013 +// +// +// 906 +// +// +// 420 +// +// +// 418 +// +// +// 342 +// +// +// false +// +// +// +// +// +//

    +// +// +//

    Virtual server example

    +// +// +// This example includes 2 identical virtual servers (except for hostname) being ordered for hourly billing. It includes an optional image template id and VLAN data specified on the virtualGuest objects - primaryBackendNetworkComponent and primaryNetworkComponent.

    +// +// +// Warning: the price ids provided below may be outdated or unavailable, so you will need to determine the available prices from the virtual server [[SoftLayer_Product_Package/getAllObjects|package]], which has a [[SoftLayer_Product_Package_Type (type)|package type]] of '''VIRTUAL_SERVER_INSTANCE'''.

    +// +// +// +// +// +// +// your username +// your api key +// +// +// +// +// +// 13251 +// 37473 +// 46 +// +// +// 2159 +// +// +// 55 +// +// +// 13754 +// +// +// 1641 +// +// +// 905 +// +// +// 1800 +// +// +// 58 +// +// +// 21 +// +// +// 1645 +// +// +// 272 +// +// +// 57 +// +// +// 418 +// +// +// 420 +// +// +// 2 +// true +// +// +// example.com +// server1 +// +// +// 12345 +// +// +// +// +// 67890 +// +// +// +// +// example.com +// server2 +// +// +// 12345 +// +// +// +// +// 67890 +// +// +// +// +// +// +// +// +// +//

    +// +// +//

    VLAN example

    +// +// +// Warning: the price ids provided below may be outdated or unavailable, so you will need to determine the available prices from the additional services [[SoftLayer_Product_Package/getAllObjects|package]], which has a [[SoftLayer_Product_Package_Type (type)|package type]] of '''ADDITIONAL_SERVICES'''. You can get a full list of [[SoftLayer_Product_Package_Type/getAllObjects|package types]] to find other available additional service packages.

    +// +// +// +// +// +// +// your username +// your api key +// +// +// +// +// +// 154820 +// 0 +// +// +// 2021 +// +// +// 2018 +// +// +// true +// +// +// +// +// +//

    +// +// +//

    Multiple products example

    +// +// +// This example includes a combination of the above examples in a single order. Note that all the configuration options for each individual order container are the same as above, except now we encapsulate each one within the orderContainers property on the base [[SoftLayer_Container_Product_Order (type)|order container]].

    +// +// +// Warning: not all products are available to be ordered with other products. For example, since SSL certificates require validation from a 3rd party, the approval process may take days or even weeks, and this would not be acceptable when you need your hourly virtual server right now. To better accommodate customers, we restrict several products to be ordered individually.

    +// +// +// +// +// +// +// your username +// your api key +// +// +// +// +// +// +// +// ... +// +// +// ... +// +// +// ... +// +// +// +// +// +// +// +// +// +// +func (r Product_Order) PlaceOrder(orderData interface{}, saveAsQuote *bool) (resp datatypes.Container_Product_Order_Receipt, err error) { + err = datatypes.SetComplexType(orderData) + if err != nil { + return + } + params := []interface{}{ + orderData, + saveAsQuote, + } + err = r.Session.DoRequest("SoftLayer_Product_Order", "placeOrder", params, &r.Options, &resp) + return +} + +// Use this method for placing server quotes and additional services quotes. The same applies for this as with verifyOrder. Send in the SoftLayer_Container_Product_Order_Hardware_Server for server quotes. After placing the quote, you must go to this URL to finish the order process. After going to this URL, it will direct you back to a SoftLayer webpage that tells us you have finished the process. After this, it will go to sales for final approval. +func (r Product_Order) PlaceQuote(orderData *datatypes.Container_Product_Order) (resp datatypes.Container_Product_Order_Receipt, err error) { + params := []interface{}{ + orderData, + } + err = r.Session.DoRequest("SoftLayer_Product_Order", "placeQuote", params, &r.Options, &resp) + return +} + +// This method simply finalizes an authorization from PayPal. It tells SoftLayer that the customer has completed the PayPal process. This is ONLY needed if you, the customer, have your own API into PayPal and wish to automate authorizations from PayPal and our system. For most, this method will not be needed. Once an order is placed using placeOrder() for PayPal customers, a URL is given back to the customer. In it is the token and PayerID. If you want to systematically pay with PayPal, do so then call this method with the token and PayerID. +func (r Product_Order) ProcessExternalPaymentAuthorization(token *string, payerId *string) (resp datatypes.Container_Product_Order, err error) { + params := []interface{}{ + token, + payerId, + } + err = r.Session.DoRequest("SoftLayer_Product_Order", "processExternalPaymentAuthorization", params, &r.Options, &resp) + return +} + +// Get list of items that are required with the item prices provided +func (r Product_Order) RequiredItems(itemPrices []datatypes.Product_Item_Price) (resp []datatypes.Product_Item, err error) { + params := []interface{}{ + itemPrices, + } + err = r.Session.DoRequest("SoftLayer_Product_Order", "requiredItems", params, &r.Options, &resp) + return +} + +// This service is used to verify that an order meets all the necessary requirements to purchase a server, virtual server or service from SoftLayer. It will verify that the products requested do not conflict. For example, you cannot order a Windows firewall with a Linux operating system. It will also check to make sure you have provided all the products that are required for the [[SoftLayer_Product_Package_Order_Configuration (type)|package configuration]] associated with the [[SoftLayer_Product_Package|package id]] on each of the [[SoftLayer_Container_Product_Order (type)|order containers]] specified.

    +// +// This service returns the same container that was provided, but with additional information that can be used for debugging or validation. It will also contain pricing information (prorated if applicable) for each of the products on the order. If an exception occurs during verification, a container with the SoftLayer_Exception_Order exception type will be specified in the result.

    +// +// verifyOrder accepts the same [[SoftLayer_Container_Product_Order (type)|container types]] as placeOrder, so see [[SoftLayer_Product_Order/placeOrder|placeOrder]] for more details. +// +// +func (r Product_Order) VerifyOrder(orderData interface{}) (resp datatypes.Container_Product_Order, err error) { + err = datatypes.SetComplexType(orderData) + if err != nil { + return + } + params := []interface{}{ + orderData, + } + err = r.Session.DoRequest("SoftLayer_Product_Order", "verifyOrder", params, &r.Options, &resp) + return +} + +// The SoftLayer_Product_Package data type contains information about packages from which orders can be generated. Packages contain general information regarding what is in them, where they are currently sold, availability, and pricing. +type Product_Package struct { + Session *session.Session + Options sl.Options +} + +// GetProductPackageService returns an instance of the Product_Package SoftLayer service +func GetProductPackageService(sess *session.Session) Product_Package { + return Product_Package{Session: sess} +} + +func (r Product_Package) Id(id int) Product_Package { + r.Options.Id = &id + return r +} + +func (r Product_Package) Mask(mask string) Product_Package { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Product_Package) Filter(filter string) Product_Package { + r.Options.Filter = filter + return r +} + +func (r Product_Package) Limit(limit int) Product_Package { + r.Options.Limit = &limit + return r +} + +func (r Product_Package) Offset(offset int) Product_Package { + r.Options.Offset = &offset + return r +} + +// Retrieve The results from this call are similar to [[SoftLayer_Product_Package/getCategories|getCategories]], but these ONLY include account-restricted prices. Not all accounts have restricted pricing. +func (r Product_Package) GetAccountRestrictedCategories() (resp []datatypes.Product_Item_Category, err error) { + err = r.Session.DoRequest("SoftLayer_Product_Package", "getAccountRestrictedCategories", nil, &r.Options, &resp) + return +} + +// Retrieve The flag to indicate if there are any restricted prices in a package for the currently-active account. +func (r Product_Package) GetAccountRestrictedPricesFlag() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Product_Package", "getAccountRestrictedPricesFlag", nil, &r.Options, &resp) + return +} + +// Return a list of Items in the package with their active prices. +func (r Product_Package) GetActiveItems() (resp []datatypes.Product_Item, err error) { + err = r.Session.DoRequest("SoftLayer_Product_Package", "getActiveItems", nil, &r.Options, &resp) + return +} + +// This method is deprecated and should not be used in production code. +// +// This method will return the [[SoftLayer_Product_Package]] objects from which you can order a bare metal server, virtual server, service (such as CDN or Object Storage) or other software filtered by an attribute type associated with the package. Once you have the package you want to order from, you may query one of various endpoints from that package to get specific information about its products and pricing. See [[SoftLayer_Product_Package/getCategories|getCategories]] or [[SoftLayer_Product_Package/getItems|getItems]] for more information. +func (r Product_Package) GetActivePackagesByAttribute(attributeKeyName *string) (resp []datatypes.Product_Package, err error) { + params := []interface{}{ + attributeKeyName, + } + err = r.Session.DoRequest("SoftLayer_Product_Package", "getActivePackagesByAttribute", params, &r.Options, &resp) + return +} + +// Retrieve The available preset configurations for this package. +func (r Product_Package) GetActivePresets() (resp []datatypes.Product_Package_Preset, err error) { + err = r.Session.DoRequest("SoftLayer_Product_Package", "getActivePresets", nil, &r.Options, &resp) + return +} + +// This method pulls all the active private hosted cloud packages. This will give you a basic description of the packages that are currently active and from which you can order private hosted cloud configurations. +func (r Product_Package) GetActivePrivateHostedCloudPackages() (resp []datatypes.Product_Package, err error) { + err = r.Session.DoRequest("SoftLayer_Product_Package", "getActivePrivateHostedCloudPackages", nil, &r.Options, &resp) + return +} + +// Retrieve A collection of valid RAM items available for purchase in this package. +func (r Product_Package) GetActiveRamItems() (resp []datatypes.Product_Item, err error) { + err = r.Session.DoRequest("SoftLayer_Product_Package", "getActiveRamItems", nil, &r.Options, &resp) + return +} + +// Retrieve A collection of valid server items available for purchase in this package. +func (r Product_Package) GetActiveServerItems() (resp []datatypes.Product_Item, err error) { + err = r.Session.DoRequest("SoftLayer_Product_Package", "getActiveServerItems", nil, &r.Options, &resp) + return +} + +// Retrieve A collection of valid software items available for purchase in this package. +func (r Product_Package) GetActiveSoftwareItems() (resp []datatypes.Product_Item, err error) { + err = r.Session.DoRequest("SoftLayer_Product_Package", "getActiveSoftwareItems", nil, &r.Options, &resp) + return +} + +// Retrieve A collection of [[SoftLayer_Product_Item_Price]] objects for pay-as-you-go usage. +func (r Product_Package) GetActiveUsagePrices() (resp []datatypes.Product_Item_Price, err error) { + err = r.Session.DoRequest("SoftLayer_Product_Package", "getActiveUsagePrices", nil, &r.Options, &resp) + return +} + +// This method returns a collection of active usage rate [[SoftLayer_Product_Item_Price]] objects for the current package and specified datacenter. Optionally you can retrieve the active usage rate prices for a particular [[SoftLayer_Product_Item_Category]] by specifying a category code as the first parameter. This information is useful so that you can see "pay as you go" rates (if any) for the current package, location and optionally category. +func (r Product_Package) GetActiveUsageRatePrices(locationId *int, categoryCode *string) (resp []datatypes.Product_Item_Price, err error) { + params := []interface{}{ + locationId, + categoryCode, + } + err = r.Session.DoRequest("SoftLayer_Product_Package", "getActiveUsageRatePrices", params, &r.Options, &resp) + return +} + +// Retrieve This flag indicates that the package is an additional service. +func (r Product_Package) GetAdditionalServiceFlag() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Product_Package", "getAdditionalServiceFlag", nil, &r.Options, &resp) + return +} + +// This method pulls all the active packages. This will give you a basic description of the packages that are currently active +func (r Product_Package) GetAllObjects() (resp []datatypes.Product_Package, err error) { + err = r.Session.DoRequest("SoftLayer_Product_Package", "getAllObjects", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Product_Package) GetAttributes() (resp []datatypes.Product_Package_Attribute, err error) { + err = r.Session.DoRequest("SoftLayer_Product_Package", "getAttributes", nil, &r.Options, &resp) + return +} + +// Retrieve A collection of valid locations for this package. (Deprecated - Use [[SoftLayer_Product_Package/getRegions|getRegions]]) +func (r Product_Package) GetAvailableLocations() (resp []datatypes.Product_Package_Locations, err error) { + err = r.Session.DoRequest("SoftLayer_Product_Package", "getAvailableLocations", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Product_Package) GetAvailablePackagesForImageTemplate(imageTemplate *datatypes.Virtual_Guest_Block_Device_Template_Group) (resp []datatypes.Product_Package, err error) { + params := []interface{}{ + imageTemplate, + } + err = r.Session.DoRequest("SoftLayer_Product_Package", "getAvailablePackagesForImageTemplate", params, &r.Options, &resp) + return +} + +// Retrieve The maximum number of available disk storage units associated with the servers in a package. +func (r Product_Package) GetAvailableStorageUnits() (resp uint, err error) { + err = r.Session.DoRequest("SoftLayer_Product_Package", "getAvailableStorageUnits", nil, &r.Options, &resp) + return +} + +// Retrieve This is a collection of categories ([[SoftLayer_Product_Item_Category]]) associated with a package which can be used for ordering. These categories have several objects prepopulated which are useful when determining the available products for purchase. The categories contain groups ([[SoftLayer_Product_Package_Item_Category_Group]]) that organize the products and prices by similar features. For example, operating systems will be grouped by their manufacturer and virtual server disks will be grouped by their disk type (SAN vs. local). Each group will contain prices ([[SoftLayer_Product_Item_Price]]) which you can use determine the cost of each product. Each price has a product ([[SoftLayer_Product_Item]]) which provides the name and other useful information about the server, service or software you may purchase. +func (r Product_Package) GetCategories() (resp []datatypes.Product_Item_Category, err error) { + err = r.Session.DoRequest("SoftLayer_Product_Package", "getCategories", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Product_Package) GetCdnItems() (resp []datatypes.Product_Item, err error) { + err = r.Session.DoRequest("SoftLayer_Product_Package", "getCdnItems", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Product_Package) GetCloudStorageItems(provider *int) (resp []datatypes.Product_Item, err error) { + params := []interface{}{ + provider, + } + err = r.Session.DoRequest("SoftLayer_Product_Package", "getCloudStorageItems", params, &r.Options, &resp) + return +} + +// Retrieve The item categories associated with a package, including information detailing which item categories are required as part of a SoftLayer product order. +func (r Product_Package) GetConfiguration() (resp []datatypes.Product_Package_Order_Configuration, err error) { + err = r.Session.DoRequest("SoftLayer_Product_Package", "getConfiguration", nil, &r.Options, &resp) + return +} + +// Retrieve A collection of valid RAM items available for purchase in this package. +func (r Product_Package) GetDefaultRamItems() (resp []datatypes.Product_Item, err error) { + err = r.Session.DoRequest("SoftLayer_Product_Package", "getDefaultRamItems", nil, &r.Options, &resp) + return +} + +// Retrieve The node type for a package in a solution deployment. +func (r Product_Package) GetDeploymentNodeType() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_Product_Package", "getDeploymentNodeType", nil, &r.Options, &resp) + return +} + +// Retrieve The packages that are allowed in a multi-server solution. (Deprecated) +func (r Product_Package) GetDeploymentPackages() (resp []datatypes.Product_Package, err error) { + err = r.Session.DoRequest("SoftLayer_Product_Package", "getDeploymentPackages", nil, &r.Options, &resp) + return +} + +// Retrieve The solution deployment type. +func (r Product_Package) GetDeploymentType() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_Product_Package", "getDeploymentType", nil, &r.Options, &resp) + return +} + +// Retrieve The package that represents a multi-server solution. (Deprecated) +func (r Product_Package) GetDeployments() (resp []datatypes.Product_Package, err error) { + err = r.Session.DoRequest("SoftLayer_Product_Package", "getDeployments", nil, &r.Options, &resp) + return +} + +// Retrieve This flag indicates the package does not allow custom disk partitions. +func (r Product_Package) GetDisallowCustomDiskPartitions() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Product_Package", "getDisallowCustomDiskPartitions", nil, &r.Options, &resp) + return +} + +// Retrieve The Softlayer order step is optionally step-based. This returns the first SoftLayer_Product_Package_Order_Step in the step-based order process. +func (r Product_Package) GetFirstOrderStep() (resp datatypes.Product_Package_Order_Step, err error) { + err = r.Session.DoRequest("SoftLayer_Product_Package", "getFirstOrderStep", nil, &r.Options, &resp) + return +} + +// Retrieve Whether the package is a specialized network gateway appliance package. +func (r Product_Package) GetGatewayApplianceFlag() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Product_Package", "getGatewayApplianceFlag", nil, &r.Options, &resp) + return +} + +// Retrieve This flag indicates that the package supports GPUs. +func (r Product_Package) GetGpuFlag() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Product_Package", "getGpuFlag", nil, &r.Options, &resp) + return +} + +// Retrieve Determines whether the package contains prices that can be ordered hourly. +func (r Product_Package) GetHourlyBillingAvailableFlag() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Product_Package", "getHourlyBillingAvailableFlag", nil, &r.Options, &resp) + return +} + +// Returns a collection of SoftLayer_Product_Item_Attribute_Type objects. These item attribute types specifically deal with when an item, SoftLayer_Product_Item, from the product catalog may no longer be available. The keynames for these attribute types start with 'UNAVAILABLE_AFTER_DATE_*', where the '*' may represent any string. For example, 'UNAVAILABLE_AFTER_DATE_NEW_ORDERS', signifies that the item is not available for new orders. There is a catch all attribute type, 'UNAVAILABLE_AFTER_DATE_ALL'. If an item has one of these availability attributes set, the value should be a valid date in MM/DD/YYYY, indicating the date after which the item will no longer be available. +func (r Product_Package) GetItemAvailabilityTypes() (resp []datatypes.Product_Item_Attribute_Type, err error) { + err = r.Session.DoRequest("SoftLayer_Product_Package", "getItemAvailabilityTypes", nil, &r.Options, &resp) + return +} + +// Retrieve The item-item conflicts associated with a package. +func (r Product_Package) GetItemConflicts() (resp []datatypes.Product_Item_Resource_Conflict, err error) { + err = r.Session.DoRequest("SoftLayer_Product_Package", "getItemConflicts", nil, &r.Options, &resp) + return +} + +// Retrieve The item-location conflicts associated with a package. +func (r Product_Package) GetItemLocationConflicts() (resp []datatypes.Product_Item_Resource_Conflict, err error) { + err = r.Session.DoRequest("SoftLayer_Product_Package", "getItemLocationConflicts", nil, &r.Options, &resp) + return +} + +// Retrieve cross reference for item prices +func (r Product_Package) GetItemPriceReferences() (resp []datatypes.Product_Package_Item_Prices, err error) { + err = r.Session.DoRequest("SoftLayer_Product_Package", "getItemPriceReferences", nil, &r.Options, &resp) + return +} + +// Retrieve A collection of SoftLayer_Product_Item_Prices that are valid for this package. +func (r Product_Package) GetItemPrices() (resp []datatypes.Product_Item_Price, err error) { + err = r.Session.DoRequest("SoftLayer_Product_Package", "getItemPrices", nil, &r.Options, &resp) + return +} + +// Return a collection of SoftLayer_Item_Price objects from a collection of SoftLayer_Software_Description +func (r Product_Package) GetItemPricesFromSoftwareDescriptions(softwareDescriptions []datatypes.Software_Description, includeTranslationsFlag *bool, returnAllPricesFlag *bool) (resp []datatypes.Product_Item_Price, err error) { + params := []interface{}{ + softwareDescriptions, + includeTranslationsFlag, + returnAllPricesFlag, + } + err = r.Session.DoRequest("SoftLayer_Product_Package", "getItemPricesFromSoftwareDescriptions", params, &r.Options, &resp) + return +} + +// Retrieve A collection of valid items available for purchase in this package. +func (r Product_Package) GetItems() (resp []datatypes.Product_Item, err error) { + err = r.Session.DoRequest("SoftLayer_Product_Package", "getItems", nil, &r.Options, &resp) + return +} + +// Return a collection of [[SoftLayer_Product_Item]] objects from a [[SoftLayer_Virtual_Guest_Block_Device_Template_Group]] object +func (r Product_Package) GetItemsFromImageTemplate(imageTemplate *datatypes.Virtual_Guest_Block_Device_Template_Group) (resp []datatypes.Product_Item, err error) { + params := []interface{}{ + imageTemplate, + } + err = r.Session.DoRequest("SoftLayer_Product_Package", "getItemsFromImageTemplate", params, &r.Options, &resp) + return +} + +// Retrieve A collection of valid locations for this package. (Deprecated - Use [[SoftLayer_Product_Package/getRegions|getRegions]]) +func (r Product_Package) GetLocations() (resp []datatypes.Location, err error) { + err = r.Session.DoRequest("SoftLayer_Product_Package", "getLocations", nil, &r.Options, &resp) + return +} + +// Retrieve The lowest server [[SoftLayer_Product_Item_Price]] related to this package. +func (r Product_Package) GetLowestServerPrice() (resp datatypes.Product_Item_Price, err error) { + err = r.Session.DoRequest("SoftLayer_Product_Package", "getLowestServerPrice", nil, &r.Options, &resp) + return +} + +// Retrieve The maximum available network speed associated with the package. +func (r Product_Package) GetMaximumPortSpeed() (resp uint, err error) { + err = r.Session.DoRequest("SoftLayer_Product_Package", "getMaximumPortSpeed", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Product_Package) GetMessageQueueItems() (resp []datatypes.Product_Item, err error) { + err = r.Session.DoRequest("SoftLayer_Product_Package", "getMessageQueueItems", nil, &r.Options, &resp) + return +} + +// Retrieve The minimum available network speed associated with the package. +func (r Product_Package) GetMinimumPortSpeed() (resp uint, err error) { + err = r.Session.DoRequest("SoftLayer_Product_Package", "getMinimumPortSpeed", nil, &r.Options, &resp) + return +} + +// Retrieve This flag indicates that this is a MongoDB engineered package. (Deprecated) +func (r Product_Package) GetMongoDbEngineeredFlag() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Product_Package", "getMongoDbEngineeredFlag", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Product_Package) GetObject() (resp datatypes.Product_Package, err error) { + err = r.Session.DoRequest("SoftLayer_Product_Package", "getObject", nil, &r.Options, &resp) + return +} + +// This method will return a collection of [[SoftLayer_Container_Product_Order_Network_Storage_Hub_Datacenter]] objects which contain a datacenter location and all the associated active usage rate prices where object storage is available. This method is really only applicable to the object storage additional service package which has a [[SoftLayer_Product_Package_Type]] of '''ADDITIONAL_SERVICES_OBJECT_STORAGE'''. This information is useful so that you can see the "pay as you go" rates per datacenter. +func (r Product_Package) GetObjectStorageDatacenters() (resp []datatypes.Container_Product_Order_Network_Storage_Hub_Datacenter, err error) { + err = r.Session.DoRequest("SoftLayer_Product_Package", "getObjectStorageDatacenters", nil, &r.Options, &resp) + return +} + +// This method will return a collection of [[SoftLayer_Container_Product_Order_Network_Storage_ObjectStorage_LocationGroup]] objects which contain a location group and all the associated active usage rate prices where object storage is available. This method is really only applicable to the object storage additional service package which has a [[SoftLayer_Product_Package_Type]] of '''ADDITIONAL_SERVICES_OBJECT_STORAGE'''. This information is useful so that you can see the "pay as you go" rates per location group. +func (r Product_Package) GetObjectStorageLocationGroups() (resp []datatypes.Container_Product_Order_Network_Storage_ObjectStorage_LocationGroup, err error) { + err = r.Session.DoRequest("SoftLayer_Product_Package", "getObjectStorageLocationGroups", nil, &r.Options, &resp) + return +} + +// Retrieve The premium price modifiers associated with the [[SoftLayer_Product_Item_Price]] and [[SoftLayer_Location]] objects in a package. +func (r Product_Package) GetOrderPremiums() (resp []datatypes.Product_Item_Price_Premium, err error) { + err = r.Session.DoRequest("SoftLayer_Product_Package", "getOrderPremiums", nil, &r.Options, &resp) + return +} + +// Retrieve This flag indicates the package is pre-configured. (Deprecated) +func (r Product_Package) GetPreconfiguredFlag() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Product_Package", "getPreconfiguredFlag", nil, &r.Options, &resp) + return +} + +// Retrieve Whether the package requires the user to define a preset configuration. +func (r Product_Package) GetPresetConfigurationRequiredFlag() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Product_Package", "getPresetConfigurationRequiredFlag", nil, &r.Options, &resp) + return +} + +// Retrieve Whether the package prevents the user from specifying a Vlan. +func (r Product_Package) GetPreventVlanSelectionFlag() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Product_Package", "getPreventVlanSelectionFlag", nil, &r.Options, &resp) + return +} + +// Retrieve This flag indicates the package is for a private hosted cloud deployment. (Deprecated) +func (r Product_Package) GetPrivateHostedCloudPackageFlag() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Product_Package", "getPrivateHostedCloudPackageFlag", nil, &r.Options, &resp) + return +} + +// Retrieve The server role of the private hosted cloud deployment. (Deprecated) +func (r Product_Package) GetPrivateHostedCloudPackageType() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_Product_Package", "getPrivateHostedCloudPackageType", nil, &r.Options, &resp) + return +} + +// Retrieve Whether the package only has access to the private network. +func (r Product_Package) GetPrivateNetworkOnlyFlag() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Product_Package", "getPrivateNetworkOnlyFlag", nil, &r.Options, &resp) + return +} + +// Retrieve Whether the package is a specialized mass storage QuantaStor package. +func (r Product_Package) GetQuantaStorPackageFlag() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Product_Package", "getQuantaStorPackageFlag", nil, &r.Options, &resp) + return +} + +// Retrieve This flag indicates the package does not allow different disks with RAID. +func (r Product_Package) GetRaidDiskRestrictionFlag() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Product_Package", "getRaidDiskRestrictionFlag", nil, &r.Options, &resp) + return +} + +// Retrieve This flag determines if the package contains a redundant power supply product. +func (r Product_Package) GetRedundantPowerFlag() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Product_Package", "getRedundantPowerFlag", nil, &r.Options, &resp) + return +} + +// Retrieve The regional locations that a package is available in. +func (r Product_Package) GetRegions() (resp []datatypes.Location_Region, err error) { + err = r.Session.DoRequest("SoftLayer_Product_Package", "getRegions", nil, &r.Options, &resp) + return +} + +// Retrieve The resource group template that describes a multi-server solution. (Deprecated) +func (r Product_Package) GetResourceGroupTemplate() (resp datatypes.Resource_Group_Template, err error) { + err = r.Session.DoRequest("SoftLayer_Product_Package", "getResourceGroupTemplate", nil, &r.Options, &resp) + return +} + +// This call is similar to [[SoftLayer_Product_Package/getCategories|getCategories]], except that it does not include account-restricted pricing. Not all accounts have restricted pricing. +func (r Product_Package) GetStandardCategories() (resp []datatypes.Product_Item_Category, err error) { + err = r.Session.DoRequest("SoftLayer_Product_Package", "getStandardCategories", nil, &r.Options, &resp) + return +} + +// Retrieve The top level category code for this service offering. +func (r Product_Package) GetTopLevelItemCategoryCode() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_Product_Package", "getTopLevelItemCategoryCode", nil, &r.Options, &resp) + return +} + +// Retrieve The type of service offering. This property can be used to help filter packages. +func (r Product_Package) GetType() (resp datatypes.Product_Package_Type, err error) { + err = r.Session.DoRequest("SoftLayer_Product_Package", "getType", nil, &r.Options, &resp) + return +} + +// Package presets are used to simplify ordering by eliminating the need for price ids when submitting orders. +// +// Orders submitted with a preset id defined will use the prices included in the package preset. Prices submitted on an order with a preset id will replace the prices included in the package preset for that prices category. If the package preset has a fixed configuration flag (fixedConfigurationFlag) set then the prices included in the preset configuration cannot be replaced by prices submitted on the order. The only exception to the fixed configuration flag would be if a price submitted on the order is an account-restricted price for the same product item. +type Product_Package_Preset struct { + Session *session.Session + Options sl.Options +} + +// GetProductPackagePresetService returns an instance of the Product_Package_Preset SoftLayer service +func GetProductPackagePresetService(sess *session.Session) Product_Package_Preset { + return Product_Package_Preset{Session: sess} +} + +func (r Product_Package_Preset) Id(id int) Product_Package_Preset { + r.Options.Id = &id + return r +} + +func (r Product_Package_Preset) Mask(mask string) Product_Package_Preset { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Product_Package_Preset) Filter(filter string) Product_Package_Preset { + r.Options.Filter = filter + return r +} + +func (r Product_Package_Preset) Limit(limit int) Product_Package_Preset { + r.Options.Limit = &limit + return r +} + +func (r Product_Package_Preset) Offset(offset int) Product_Package_Preset { + r.Options.Offset = &offset + return r +} + +// This method returns all the active package presets. +func (r Product_Package_Preset) GetAllObjects() (resp []datatypes.Product_Package_Preset, err error) { + err = r.Session.DoRequest("SoftLayer_Product_Package_Preset", "getAllObjects", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Product_Package_Preset) GetAvailableStorageUnits() (resp uint, err error) { + err = r.Session.DoRequest("SoftLayer_Product_Package_Preset", "getAvailableStorageUnits", nil, &r.Options, &resp) + return +} + +// Retrieve The item categories that are included in this package preset configuration. +func (r Product_Package_Preset) GetCategories() (resp []datatypes.Product_Item_Category, err error) { + err = r.Session.DoRequest("SoftLayer_Product_Package_Preset", "getCategories", nil, &r.Options, &resp) + return +} + +// Retrieve The preset configuration (category and price). +func (r Product_Package_Preset) GetConfiguration() (resp []datatypes.Product_Package_Preset_Configuration, err error) { + err = r.Session.DoRequest("SoftLayer_Product_Package_Preset", "getConfiguration", nil, &r.Options, &resp) + return +} + +// Retrieve A package preset with this flag set will not allow the price's defined in the preset configuration to be overriden during order placement. +func (r Product_Package_Preset) GetFixedConfigurationFlag() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Product_Package_Preset", "getFixedConfigurationFlag", nil, &r.Options, &resp) + return +} + +// Retrieve The lowest server prices related to this package preset. +func (r Product_Package_Preset) GetLowestPresetServerPrice() (resp datatypes.Product_Item_Price, err error) { + err = r.Session.DoRequest("SoftLayer_Product_Package_Preset", "getLowestPresetServerPrice", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Product_Package_Preset) GetObject() (resp datatypes.Product_Package_Preset, err error) { + err = r.Session.DoRequest("SoftLayer_Product_Package_Preset", "getObject", nil, &r.Options, &resp) + return +} + +// Retrieve The package this preset belongs to. +func (r Product_Package_Preset) GetPackage() (resp datatypes.Product_Package, err error) { + err = r.Session.DoRequest("SoftLayer_Product_Package_Preset", "getPackage", nil, &r.Options, &resp) + return +} + +// Retrieve The item categories associated with a package preset, including information detailing which item categories are required as part of a SoftLayer product order. +func (r Product_Package_Preset) GetPackageConfiguration() (resp []datatypes.Product_Package_Order_Configuration, err error) { + err = r.Session.DoRequest("SoftLayer_Product_Package_Preset", "getPackageConfiguration", nil, &r.Options, &resp) + return +} + +// Retrieve The item prices that are included in this package preset configuration. +func (r Product_Package_Preset) GetPrices() (resp []datatypes.Product_Item_Price, err error) { + err = r.Session.DoRequest("SoftLayer_Product_Package_Preset", "getPrices", nil, &r.Options, &resp) + return +} + +// Retrieve Describes how all disks in this preset will be configured. +func (r Product_Package_Preset) GetStorageGroupTemplateArrays() (resp []datatypes.Configuration_Storage_Group_Template_Group, err error) { + err = r.Session.DoRequest("SoftLayer_Product_Package_Preset", "getStorageGroupTemplateArrays", nil, &r.Options, &resp) + return +} + +// Retrieve The starting hourly price for this configuration. Additional options not defined in the preset may increase the cost. +func (r Product_Package_Preset) GetTotalMinimumHourlyFee() (resp datatypes.Float64, err error) { + err = r.Session.DoRequest("SoftLayer_Product_Package_Preset", "getTotalMinimumHourlyFee", nil, &r.Options, &resp) + return +} + +// Retrieve The starting monthly price for this configuration. Additional options not defined in the preset may increase the cost. +func (r Product_Package_Preset) GetTotalMinimumRecurringFee() (resp datatypes.Float64, err error) { + err = r.Session.DoRequest("SoftLayer_Product_Package_Preset", "getTotalMinimumRecurringFee", nil, &r.Options, &resp) + return +} + +// The SoftLayer_Product_Package_Server data type contains summarized information for bare metal servers regarding pricing, processor stats, and feature sets. +type Product_Package_Server struct { + Session *session.Session + Options sl.Options +} + +// GetProductPackageServerService returns an instance of the Product_Package_Server SoftLayer service +func GetProductPackageServerService(sess *session.Session) Product_Package_Server { + return Product_Package_Server{Session: sess} +} + +func (r Product_Package_Server) Id(id int) Product_Package_Server { + r.Options.Id = &id + return r +} + +func (r Product_Package_Server) Mask(mask string) Product_Package_Server { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Product_Package_Server) Filter(filter string) Product_Package_Server { + r.Options.Filter = filter + return r +} + +func (r Product_Package_Server) Limit(limit int) Product_Package_Server { + r.Options.Limit = &limit + return r +} + +func (r Product_Package_Server) Offset(offset int) Product_Package_Server { + r.Options.Offset = &offset + return r +} + +// This method will grab all the package servers. +func (r Product_Package_Server) GetAllObjects() (resp []datatypes.Product_Package_Server, err error) { + err = r.Session.DoRequest("SoftLayer_Product_Package_Server", "getAllObjects", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Product_Package_Server) GetCatalog() (resp datatypes.Product_Catalog, err error) { + err = r.Session.DoRequest("SoftLayer_Product_Package_Server", "getCatalog", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Product_Package_Server) GetItem() (resp datatypes.Product_Item, err error) { + err = r.Session.DoRequest("SoftLayer_Product_Package_Server", "getItem", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Product_Package_Server) GetItemPrice() (resp datatypes.Product_Item_Price, err error) { + err = r.Session.DoRequest("SoftLayer_Product_Package_Server", "getItemPrice", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Product_Package_Server) GetObject() (resp datatypes.Product_Package_Server, err error) { + err = r.Session.DoRequest("SoftLayer_Product_Package_Server", "getObject", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Product_Package_Server) GetPackage() (resp datatypes.Product_Package, err error) { + err = r.Session.DoRequest("SoftLayer_Product_Package_Server", "getPackage", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Product_Package_Server) GetPreset() (resp datatypes.Product_Package_Preset, err error) { + err = r.Session.DoRequest("SoftLayer_Product_Package_Server", "getPreset", nil, &r.Options, &resp) + return +} + +// The [[SoftLayer_Product_Package_Server_Option]] data type contains various data points associated with package servers that can be used in selection criteria. +type Product_Package_Server_Option struct { + Session *session.Session + Options sl.Options +} + +// GetProductPackageServerOptionService returns an instance of the Product_Package_Server_Option SoftLayer service +func GetProductPackageServerOptionService(sess *session.Session) Product_Package_Server_Option { + return Product_Package_Server_Option{Session: sess} +} + +func (r Product_Package_Server_Option) Id(id int) Product_Package_Server_Option { + r.Options.Id = &id + return r +} + +func (r Product_Package_Server_Option) Mask(mask string) Product_Package_Server_Option { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Product_Package_Server_Option) Filter(filter string) Product_Package_Server_Option { + r.Options.Filter = filter + return r +} + +func (r Product_Package_Server_Option) Limit(limit int) Product_Package_Server_Option { + r.Options.Limit = &limit + return r +} + +func (r Product_Package_Server_Option) Offset(offset int) Product_Package_Server_Option { + r.Options.Offset = &offset + return r +} + +// This method will grab all the package server options. +func (r Product_Package_Server_Option) GetAllOptions() (resp []datatypes.Product_Package_Server_Option, err error) { + err = r.Session.DoRequest("SoftLayer_Product_Package_Server_Option", "getAllOptions", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Product_Package_Server_Option) GetObject() (resp datatypes.Product_Package_Server_Option, err error) { + err = r.Session.DoRequest("SoftLayer_Product_Package_Server_Option", "getObject", nil, &r.Options, &resp) + return +} + +// This method will grab all the package server options for the specified type. +func (r Product_Package_Server_Option) GetOptions(typ *string) (resp []datatypes.Product_Package_Server_Option, err error) { + params := []interface{}{ + typ, + } + err = r.Session.DoRequest("SoftLayer_Product_Package_Server_Option", "getOptions", params, &r.Options, &resp) + return +} + +// The [[SoftLayer_Product_Package_Type]] object indicates the type for a service offering (package). The type can be used to filter packages. For example, if you are looking for the package representing virtual servers, you can filter on the type's key name of '''VIRTUAL_SERVER_INSTANCE'''. For bare metal servers by core or CPU, filter on '''BARE_METAL_CORE''' or '''BARE_METAL_CPU''', respectively. +type Product_Package_Type struct { + Session *session.Session + Options sl.Options +} + +// GetProductPackageTypeService returns an instance of the Product_Package_Type SoftLayer service +func GetProductPackageTypeService(sess *session.Session) Product_Package_Type { + return Product_Package_Type{Session: sess} +} + +func (r Product_Package_Type) Id(id int) Product_Package_Type { + r.Options.Id = &id + return r +} + +func (r Product_Package_Type) Mask(mask string) Product_Package_Type { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Product_Package_Type) Filter(filter string) Product_Package_Type { + r.Options.Filter = filter + return r +} + +func (r Product_Package_Type) Limit(limit int) Product_Package_Type { + r.Options.Limit = &limit + return r +} + +func (r Product_Package_Type) Offset(offset int) Product_Package_Type { + r.Options.Offset = &offset + return r +} + +// This method will return all of the available package types. +func (r Product_Package_Type) GetAllObjects() (resp []datatypes.Product_Package_Type, err error) { + err = r.Session.DoRequest("SoftLayer_Product_Package_Type", "getAllObjects", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Product_Package_Type) GetObject() (resp datatypes.Product_Package_Type, err error) { + err = r.Session.DoRequest("SoftLayer_Product_Package_Type", "getObject", nil, &r.Options, &resp) + return +} + +// Retrieve All the packages associated with the given package type. +func (r Product_Package_Type) GetPackages() (resp []datatypes.Product_Package, err error) { + err = r.Session.DoRequest("SoftLayer_Product_Package_Type", "getPackages", nil, &r.Options, &resp) + return +} + +// The SoftLayer_Product_Upgrade_Request data type contains general information relating to a hardware, virtual server, or service upgrade. It also relates a [[SoftLayer_Billing_Order]] to a [[SoftLayer_Ticket]]. +type Product_Upgrade_Request struct { + Session *session.Session + Options sl.Options +} + +// GetProductUpgradeRequestService returns an instance of the Product_Upgrade_Request SoftLayer service +func GetProductUpgradeRequestService(sess *session.Session) Product_Upgrade_Request { + return Product_Upgrade_Request{Session: sess} +} + +func (r Product_Upgrade_Request) Id(id int) Product_Upgrade_Request { + r.Options.Id = &id + return r +} + +func (r Product_Upgrade_Request) Mask(mask string) Product_Upgrade_Request { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Product_Upgrade_Request) Filter(filter string) Product_Upgrade_Request { + r.Options.Filter = filter + return r +} + +func (r Product_Upgrade_Request) Limit(limit int) Product_Upgrade_Request { + r.Options.Limit = &limit + return r +} + +func (r Product_Upgrade_Request) Offset(offset int) Product_Upgrade_Request { + r.Options.Offset = &offset + return r +} + +// When a change is made to an upgrade by Sales, this method will approve the changes that were made. A customer must acknowledge the change and approve it so that the upgrade request can proceed. +func (r Product_Upgrade_Request) ApproveChanges() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Product_Upgrade_Request", "approveChanges", nil, &r.Options, &resp) + return +} + +// Retrieve The account that an order belongs to +func (r Product_Upgrade_Request) GetAccount() (resp datatypes.Account, err error) { + err = r.Session.DoRequest("SoftLayer_Product_Upgrade_Request", "getAccount", nil, &r.Options, &resp) + return +} + +// Retrieve Indicates that the upgrade request has completed or has been cancelled. +func (r Product_Upgrade_Request) GetCompletedFlag() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Product_Upgrade_Request", "getCompletedFlag", nil, &r.Options, &resp) + return +} + +// Retrieve This is the invoice associated with the upgrade request. For hourly servers or services, an invoice will not be available. +func (r Product_Upgrade_Request) GetInvoice() (resp datatypes.Billing_Invoice, err error) { + err = r.Session.DoRequest("SoftLayer_Product_Upgrade_Request", "getInvoice", nil, &r.Options, &resp) + return +} + +// getObject retrieves a SoftLayer_Product_Upgrade_Request object on your account whose ID corresponds to the ID of the init parameter passed to the SoftLayer_Product_Upgrade_Request service. +func (r Product_Upgrade_Request) GetObject() (resp datatypes.Product_Upgrade_Request, err error) { + err = r.Session.DoRequest("SoftLayer_Product_Upgrade_Request", "getObject", nil, &r.Options, &resp) + return +} + +// Retrieve An order record associated to the upgrade request +func (r Product_Upgrade_Request) GetOrder() (resp datatypes.Billing_Order, err error) { + err = r.Session.DoRequest("SoftLayer_Product_Upgrade_Request", "getOrder", nil, &r.Options, &resp) + return +} + +// Retrieve A server object associated with the upgrade request if any. +func (r Product_Upgrade_Request) GetServer() (resp datatypes.Hardware, err error) { + err = r.Session.DoRequest("SoftLayer_Product_Upgrade_Request", "getServer", nil, &r.Options, &resp) + return +} + +// Retrieve The current status of the upgrade request. +func (r Product_Upgrade_Request) GetStatus() (resp datatypes.Product_Upgrade_Request_Status, err error) { + err = r.Session.DoRequest("SoftLayer_Product_Upgrade_Request", "getStatus", nil, &r.Options, &resp) + return +} + +// Retrieve The ticket that is used to coordinate the upgrade process. +func (r Product_Upgrade_Request) GetTicket() (resp datatypes.Ticket, err error) { + err = r.Session.DoRequest("SoftLayer_Product_Upgrade_Request", "getTicket", nil, &r.Options, &resp) + return +} + +// Retrieve The user that placed the order. +func (r Product_Upgrade_Request) GetUser() (resp datatypes.User_Customer, err error) { + err = r.Session.DoRequest("SoftLayer_Product_Upgrade_Request", "getUser", nil, &r.Options, &resp) + return +} + +// Retrieve A virtual server object associated with the upgrade request if any. +func (r Product_Upgrade_Request) GetVirtualGuest() (resp datatypes.Virtual_Guest, err error) { + err = r.Session.DoRequest("SoftLayer_Product_Upgrade_Request", "getVirtualGuest", nil, &r.Options, &resp) + return +} + +// In case an upgrade cannot be performed, the maintenance window needs to be updated to a future date. +func (r Product_Upgrade_Request) UpdateMaintenanceWindow(maintenanceStartTime *datatypes.Time, maintenanceWindowId *int) (resp bool, err error) { + params := []interface{}{ + maintenanceStartTime, + maintenanceWindowId, + } + err = r.Session.DoRequest("SoftLayer_Product_Upgrade_Request", "updateMaintenanceWindow", params, &r.Options, &resp) + return +} diff --git a/vendor/github.com/softlayer/softlayer-go/services/provisioning.go b/vendor/github.com/softlayer/softlayer-go/services/provisioning.go new file mode 100644 index 000000000..dc426bbb2 --- /dev/null +++ b/vendor/github.com/softlayer/softlayer-go/services/provisioning.go @@ -0,0 +1,564 @@ +/** + * Copyright 2016 IBM Corp. + * + * 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. + */ + +/** + * AUTOMATICALLY GENERATED CODE - DO NOT MODIFY + */ + +package services + +import ( + "fmt" + "strings" + + "github.com/softlayer/softlayer-go/datatypes" + "github.com/softlayer/softlayer-go/session" + "github.com/softlayer/softlayer-go/sl" +) + +// The SoftLayer_Provisioning_Hook contains all the information needed to add a hook into a server/Virtual provision and os reload. +type Provisioning_Hook struct { + Session *session.Session + Options sl.Options +} + +// GetProvisioningHookService returns an instance of the Provisioning_Hook SoftLayer service +func GetProvisioningHookService(sess *session.Session) Provisioning_Hook { + return Provisioning_Hook{Session: sess} +} + +func (r Provisioning_Hook) Id(id int) Provisioning_Hook { + r.Options.Id = &id + return r +} + +func (r Provisioning_Hook) Mask(mask string) Provisioning_Hook { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Provisioning_Hook) Filter(filter string) Provisioning_Hook { + r.Options.Filter = filter + return r +} + +func (r Provisioning_Hook) Limit(limit int) Provisioning_Hook { + r.Options.Limit = &limit + return r +} + +func (r Provisioning_Hook) Offset(offset int) Provisioning_Hook { + r.Options.Offset = &offset + return r +} + +// no documentation yet +func (r Provisioning_Hook) CreateObject(templateObject *datatypes.Provisioning_Hook) (resp datatypes.Provisioning_Hook, err error) { + params := []interface{}{ + templateObject, + } + err = r.Session.DoRequest("SoftLayer_Provisioning_Hook", "createObject", params, &r.Options, &resp) + return +} + +// no documentation yet +func (r Provisioning_Hook) DeleteObject() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Provisioning_Hook", "deleteObject", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Provisioning_Hook) EditObject(templateObject *datatypes.Provisioning_Hook) (resp bool, err error) { + params := []interface{}{ + templateObject, + } + err = r.Session.DoRequest("SoftLayer_Provisioning_Hook", "editObject", params, &r.Options, &resp) + return +} + +// Retrieve +func (r Provisioning_Hook) GetAccount() (resp datatypes.Account, err error) { + err = r.Session.DoRequest("SoftLayer_Provisioning_Hook", "getAccount", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Provisioning_Hook) GetHookType() (resp datatypes.Provisioning_Hook_Type, err error) { + err = r.Session.DoRequest("SoftLayer_Provisioning_Hook", "getHookType", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Provisioning_Hook) GetObject() (resp datatypes.Provisioning_Hook, err error) { + err = r.Session.DoRequest("SoftLayer_Provisioning_Hook", "getObject", nil, &r.Options, &resp) + return +} + +// no documentation yet +type Provisioning_Hook_Type struct { + Session *session.Session + Options sl.Options +} + +// GetProvisioningHookTypeService returns an instance of the Provisioning_Hook_Type SoftLayer service +func GetProvisioningHookTypeService(sess *session.Session) Provisioning_Hook_Type { + return Provisioning_Hook_Type{Session: sess} +} + +func (r Provisioning_Hook_Type) Id(id int) Provisioning_Hook_Type { + r.Options.Id = &id + return r +} + +func (r Provisioning_Hook_Type) Mask(mask string) Provisioning_Hook_Type { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Provisioning_Hook_Type) Filter(filter string) Provisioning_Hook_Type { + r.Options.Filter = filter + return r +} + +func (r Provisioning_Hook_Type) Limit(limit int) Provisioning_Hook_Type { + r.Options.Limit = &limit + return r +} + +func (r Provisioning_Hook_Type) Offset(offset int) Provisioning_Hook_Type { + r.Options.Offset = &offset + return r +} + +// no documentation yet +func (r Provisioning_Hook_Type) GetAllHookTypes() (resp []datatypes.Provisioning_Hook_Type, err error) { + err = r.Session.DoRequest("SoftLayer_Provisioning_Hook_Type", "getAllHookTypes", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Provisioning_Hook_Type) GetObject() (resp datatypes.Provisioning_Hook_Type, err error) { + err = r.Session.DoRequest("SoftLayer_Provisioning_Hook_Type", "getObject", nil, &r.Options, &resp) + return +} + +// The SoftLayer_Provisioning_Maintenance_Classification represent a maintenance type for the specific hardware maintenance desired. +type Provisioning_Maintenance_Classification struct { + Session *session.Session + Options sl.Options +} + +// GetProvisioningMaintenanceClassificationService returns an instance of the Provisioning_Maintenance_Classification SoftLayer service +func GetProvisioningMaintenanceClassificationService(sess *session.Session) Provisioning_Maintenance_Classification { + return Provisioning_Maintenance_Classification{Session: sess} +} + +func (r Provisioning_Maintenance_Classification) Id(id int) Provisioning_Maintenance_Classification { + r.Options.Id = &id + return r +} + +func (r Provisioning_Maintenance_Classification) Mask(mask string) Provisioning_Maintenance_Classification { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Provisioning_Maintenance_Classification) Filter(filter string) Provisioning_Maintenance_Classification { + r.Options.Filter = filter + return r +} + +func (r Provisioning_Maintenance_Classification) Limit(limit int) Provisioning_Maintenance_Classification { + r.Options.Limit = &limit + return r +} + +func (r Provisioning_Maintenance_Classification) Offset(offset int) Provisioning_Maintenance_Classification { + r.Options.Offset = &offset + return r +} + +// Retrieve +func (r Provisioning_Maintenance_Classification) GetItemCategories() (resp []datatypes.Provisioning_Maintenance_Classification_Item_Category, err error) { + err = r.Session.DoRequest("SoftLayer_Provisioning_Maintenance_Classification", "getItemCategories", nil, &r.Options, &resp) + return +} + +// Retrieve an array of SoftLayer_Provisioning_Maintenance_Classification data types, which contain all maintenance classifications. +func (r Provisioning_Maintenance_Classification) GetMaintenanceClassification(maintenanceClassificationId *int) (resp []datatypes.Provisioning_Maintenance_Classification, err error) { + params := []interface{}{ + maintenanceClassificationId, + } + err = r.Session.DoRequest("SoftLayer_Provisioning_Maintenance_Classification", "getMaintenanceClassification", params, &r.Options, &resp) + return +} + +// Retrieve an array of SoftLayer_Provisioning_Maintenance_Classification data types, which contain all maintenance classifications. +func (r Provisioning_Maintenance_Classification) GetMaintenanceClassificationsByItemCategory() (resp []datatypes.Provisioning_Maintenance_Classification_Item_Category, err error) { + err = r.Session.DoRequest("SoftLayer_Provisioning_Maintenance_Classification", "getMaintenanceClassificationsByItemCategory", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Provisioning_Maintenance_Classification) GetObject() (resp datatypes.Provisioning_Maintenance_Classification, err error) { + err = r.Session.DoRequest("SoftLayer_Provisioning_Maintenance_Classification", "getObject", nil, &r.Options, &resp) + return +} + +// no documentation yet +type Provisioning_Maintenance_Classification_Item_Category struct { + Session *session.Session + Options sl.Options +} + +// GetProvisioningMaintenanceClassificationItemCategoryService returns an instance of the Provisioning_Maintenance_Classification_Item_Category SoftLayer service +func GetProvisioningMaintenanceClassificationItemCategoryService(sess *session.Session) Provisioning_Maintenance_Classification_Item_Category { + return Provisioning_Maintenance_Classification_Item_Category{Session: sess} +} + +func (r Provisioning_Maintenance_Classification_Item_Category) Id(id int) Provisioning_Maintenance_Classification_Item_Category { + r.Options.Id = &id + return r +} + +func (r Provisioning_Maintenance_Classification_Item_Category) Mask(mask string) Provisioning_Maintenance_Classification_Item_Category { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Provisioning_Maintenance_Classification_Item_Category) Filter(filter string) Provisioning_Maintenance_Classification_Item_Category { + r.Options.Filter = filter + return r +} + +func (r Provisioning_Maintenance_Classification_Item_Category) Limit(limit int) Provisioning_Maintenance_Classification_Item_Category { + r.Options.Limit = &limit + return r +} + +func (r Provisioning_Maintenance_Classification_Item_Category) Offset(offset int) Provisioning_Maintenance_Classification_Item_Category { + r.Options.Offset = &offset + return r +} + +// Retrieve +func (r Provisioning_Maintenance_Classification_Item_Category) GetMaintenanceClassification() (resp datatypes.Provisioning_Maintenance_Classification, err error) { + err = r.Session.DoRequest("SoftLayer_Provisioning_Maintenance_Classification_Item_Category", "getMaintenanceClassification", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Provisioning_Maintenance_Classification_Item_Category) GetObject() (resp datatypes.Provisioning_Maintenance_Classification_Item_Category, err error) { + err = r.Session.DoRequest("SoftLayer_Provisioning_Maintenance_Classification_Item_Category", "getObject", nil, &r.Options, &resp) + return +} + +// The SoftLayer_Provisioning_Maintenance_Slots represent the available slots for a given maintenance window at a SoftLayer data center. +type Provisioning_Maintenance_Slots struct { + Session *session.Session + Options sl.Options +} + +// GetProvisioningMaintenanceSlotsService returns an instance of the Provisioning_Maintenance_Slots SoftLayer service +func GetProvisioningMaintenanceSlotsService(sess *session.Session) Provisioning_Maintenance_Slots { + return Provisioning_Maintenance_Slots{Session: sess} +} + +func (r Provisioning_Maintenance_Slots) Id(id int) Provisioning_Maintenance_Slots { + r.Options.Id = &id + return r +} + +func (r Provisioning_Maintenance_Slots) Mask(mask string) Provisioning_Maintenance_Slots { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Provisioning_Maintenance_Slots) Filter(filter string) Provisioning_Maintenance_Slots { + r.Options.Filter = filter + return r +} + +func (r Provisioning_Maintenance_Slots) Limit(limit int) Provisioning_Maintenance_Slots { + r.Options.Limit = &limit + return r +} + +func (r Provisioning_Maintenance_Slots) Offset(offset int) Provisioning_Maintenance_Slots { + r.Options.Offset = &offset + return r +} + +// no documentation yet +func (r Provisioning_Maintenance_Slots) GetObject() (resp datatypes.Provisioning_Maintenance_Slots, err error) { + err = r.Session.DoRequest("SoftLayer_Provisioning_Maintenance_Slots", "getObject", nil, &r.Options, &resp) + return +} + +// no documentation yet +type Provisioning_Maintenance_Ticket struct { + Session *session.Session + Options sl.Options +} + +// GetProvisioningMaintenanceTicketService returns an instance of the Provisioning_Maintenance_Ticket SoftLayer service +func GetProvisioningMaintenanceTicketService(sess *session.Session) Provisioning_Maintenance_Ticket { + return Provisioning_Maintenance_Ticket{Session: sess} +} + +func (r Provisioning_Maintenance_Ticket) Id(id int) Provisioning_Maintenance_Ticket { + r.Options.Id = &id + return r +} + +func (r Provisioning_Maintenance_Ticket) Mask(mask string) Provisioning_Maintenance_Ticket { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Provisioning_Maintenance_Ticket) Filter(filter string) Provisioning_Maintenance_Ticket { + r.Options.Filter = filter + return r +} + +func (r Provisioning_Maintenance_Ticket) Limit(limit int) Provisioning_Maintenance_Ticket { + r.Options.Limit = &limit + return r +} + +func (r Provisioning_Maintenance_Ticket) Offset(offset int) Provisioning_Maintenance_Ticket { + r.Options.Offset = &offset + return r +} + +// Retrieve +func (r Provisioning_Maintenance_Ticket) GetAvailableSlots() (resp datatypes.Provisioning_Maintenance_Slots, err error) { + err = r.Session.DoRequest("SoftLayer_Provisioning_Maintenance_Ticket", "getAvailableSlots", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Provisioning_Maintenance_Ticket) GetMaintenanceClass() (resp datatypes.Provisioning_Maintenance_Classification, err error) { + err = r.Session.DoRequest("SoftLayer_Provisioning_Maintenance_Ticket", "getMaintenanceClass", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Provisioning_Maintenance_Ticket) GetObject() (resp datatypes.Provisioning_Maintenance_Ticket, err error) { + err = r.Session.DoRequest("SoftLayer_Provisioning_Maintenance_Ticket", "getObject", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Provisioning_Maintenance_Ticket) GetTicket() (resp datatypes.Ticket, err error) { + err = r.Session.DoRequest("SoftLayer_Provisioning_Maintenance_Ticket", "getTicket", nil, &r.Options, &resp) + return +} + +// The SoftLayer_Provisioning_Maintenance_Window represent a time window that SoftLayer performs a hardware or software maintenance and upgrades. +type Provisioning_Maintenance_Window struct { + Session *session.Session + Options sl.Options +} + +// GetProvisioningMaintenanceWindowService returns an instance of the Provisioning_Maintenance_Window SoftLayer service +func GetProvisioningMaintenanceWindowService(sess *session.Session) Provisioning_Maintenance_Window { + return Provisioning_Maintenance_Window{Session: sess} +} + +func (r Provisioning_Maintenance_Window) Id(id int) Provisioning_Maintenance_Window { + r.Options.Id = &id + return r +} + +func (r Provisioning_Maintenance_Window) Mask(mask string) Provisioning_Maintenance_Window { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Provisioning_Maintenance_Window) Filter(filter string) Provisioning_Maintenance_Window { + r.Options.Filter = filter + return r +} + +func (r Provisioning_Maintenance_Window) Limit(limit int) Provisioning_Maintenance_Window { + r.Options.Limit = &limit + return r +} + +func (r Provisioning_Maintenance_Window) Offset(offset int) Provisioning_Maintenance_Window { + r.Options.Offset = &offset + return r +} + +// getMaintenceWindowForTicket() returns a boolean +func (r Provisioning_Maintenance_Window) AddCustomerUpgradeWindow(customerUpgradeWindow *datatypes.Container_Provisioning_Maintenance_Window) (resp bool, err error) { + params := []interface{}{ + customerUpgradeWindow, + } + err = r.Session.DoRequest("SoftLayer_Provisioning_Maintenance_Window", "addCustomerUpgradeWindow", params, &r.Options, &resp) + return +} + +// getMaintenanceClassifications() returns an object of maintenance classifications +func (r Provisioning_Maintenance_Window) GetMaintenanceClassifications() (resp []datatypes.Provisioning_Maintenance_Classification, err error) { + err = r.Session.DoRequest("SoftLayer_Provisioning_Maintenance_Window", "getMaintenanceClassifications", nil, &r.Options, &resp) + return +} + +// getMaintenanceStartEndTime() returns a specific maintenance window +func (r Provisioning_Maintenance_Window) GetMaintenanceStartEndTime(ticketId *int) (resp datatypes.Provisioning_Maintenance_Window, err error) { + params := []interface{}{ + ticketId, + } + err = r.Session.DoRequest("SoftLayer_Provisioning_Maintenance_Window", "getMaintenanceStartEndTime", params, &r.Options, &resp) + return +} + +// getMaintenceWindowForTicket() returns a specific maintenance window +func (r Provisioning_Maintenance_Window) GetMaintenanceWindowForTicket(maintenanceWindowId *int) (resp []datatypes.Provisioning_Maintenance_Window, err error) { + params := []interface{}{ + maintenanceWindowId, + } + err = r.Session.DoRequest("SoftLayer_Provisioning_Maintenance_Window", "getMaintenanceWindowForTicket", params, &r.Options, &resp) + return +} + +// getMaintenanceWindowTicketsByTicketId() returns a list maintenance window ticket records by ticket id +func (r Provisioning_Maintenance_Window) GetMaintenanceWindowTicketsByTicketId(ticketId *int) (resp []datatypes.Provisioning_Maintenance_Ticket, err error) { + params := []interface{}{ + ticketId, + } + err = r.Session.DoRequest("SoftLayer_Provisioning_Maintenance_Window", "getMaintenanceWindowTicketsByTicketId", params, &r.Options, &resp) + return +} + +// This method returns a list of available maintenance windows +func (r Provisioning_Maintenance_Window) GetMaintenanceWindows(beginDate *datatypes.Time, endDate *datatypes.Time, locationId *int, slotsNeeded *int) (resp []datatypes.Provisioning_Maintenance_Window, err error) { + params := []interface{}{ + beginDate, + endDate, + locationId, + slotsNeeded, + } + err = r.Session.DoRequest("SoftLayer_Provisioning_Maintenance_Window", "getMaintenanceWindows", params, &r.Options, &resp) + return +} + +// (DEPRECATED) Use [[SoftLayer_Provisioning_Maintenance_Window::getMaintenanceWindows|getMaintenanceWindows]] method. +func (r Provisioning_Maintenance_Window) GetMaintenceWindows(beginDate *datatypes.Time, endDate *datatypes.Time, locationId *int, slotsNeeded *int) (resp []datatypes.Provisioning_Maintenance_Window, err error) { + params := []interface{}{ + beginDate, + endDate, + locationId, + slotsNeeded, + } + err = r.Session.DoRequest("SoftLayer_Provisioning_Maintenance_Window", "getMaintenceWindows", params, &r.Options, &resp) + return +} + +// getMaintenceWindowForTicket() returns a boolean +func (r Provisioning_Maintenance_Window) UpdateCustomerUpgradeWindow(maintenanceStartTime *datatypes.Time, newMaintenanceWindowId *int, ticketId *int) (resp bool, err error) { + params := []interface{}{ + maintenanceStartTime, + newMaintenanceWindowId, + ticketId, + } + err = r.Session.DoRequest("SoftLayer_Provisioning_Maintenance_Window", "updateCustomerUpgradeWindow", params, &r.Options, &resp) + return +} + +// The SoftLayer_Provisioning_Version1_Transaction_Group data type contains general information relating to a single SoftLayer hardware transaction group. +// +// SoftLayer customers are unable to change their hardware transactions or the hardware transaction group. +type Provisioning_Version1_Transaction_Group struct { + Session *session.Session + Options sl.Options +} + +// GetProvisioningVersion1TransactionGroupService returns an instance of the Provisioning_Version1_Transaction_Group SoftLayer service +func GetProvisioningVersion1TransactionGroupService(sess *session.Session) Provisioning_Version1_Transaction_Group { + return Provisioning_Version1_Transaction_Group{Session: sess} +} + +func (r Provisioning_Version1_Transaction_Group) Id(id int) Provisioning_Version1_Transaction_Group { + r.Options.Id = &id + return r +} + +func (r Provisioning_Version1_Transaction_Group) Mask(mask string) Provisioning_Version1_Transaction_Group { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Provisioning_Version1_Transaction_Group) Filter(filter string) Provisioning_Version1_Transaction_Group { + r.Options.Filter = filter + return r +} + +func (r Provisioning_Version1_Transaction_Group) Limit(limit int) Provisioning_Version1_Transaction_Group { + r.Options.Limit = &limit + return r +} + +func (r Provisioning_Version1_Transaction_Group) Offset(offset int) Provisioning_Version1_Transaction_Group { + r.Options.Offset = &offset + return r +} + +// no documentation yet +func (r Provisioning_Version1_Transaction_Group) GetAllObjects() (resp []datatypes.Provisioning_Version1_Transaction_Group, err error) { + err = r.Session.DoRequest("SoftLayer_Provisioning_Version1_Transaction_Group", "getAllObjects", nil, &r.Options, &resp) + return +} + +// getObject retrieves the SoftLayer_Provisioning_Version1_Transaction_Group object whose ID number corresponds to the ID number of the init parameter passed to the SoftLayer_Provisioning_Version1_Transaction_Group service. +func (r Provisioning_Version1_Transaction_Group) GetObject() (resp datatypes.Provisioning_Version1_Transaction_Group, err error) { + err = r.Session.DoRequest("SoftLayer_Provisioning_Version1_Transaction_Group", "getObject", nil, &r.Options, &resp) + return +} diff --git a/vendor/github.com/softlayer/softlayer-go/services/resource.go b/vendor/github.com/softlayer/softlayer-go/services/resource.go new file mode 100644 index 000000000..47a77317c --- /dev/null +++ b/vendor/github.com/softlayer/softlayer-go/services/resource.go @@ -0,0 +1,419 @@ +/** + * Copyright 2016 IBM Corp. + * + * 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. + */ + +/** + * AUTOMATICALLY GENERATED CODE - DO NOT MODIFY + */ + +package services + +import ( + "fmt" + "strings" + + "github.com/softlayer/softlayer-go/datatypes" + "github.com/softlayer/softlayer-go/session" + "github.com/softlayer/softlayer-go/sl" +) + +// no documentation yet +type Resource_Configuration struct { + Session *session.Session + Options sl.Options +} + +// GetResourceConfigurationService returns an instance of the Resource_Configuration SoftLayer service +func GetResourceConfigurationService(sess *session.Session) Resource_Configuration { + return Resource_Configuration{Session: sess} +} + +func (r Resource_Configuration) Id(id int) Resource_Configuration { + r.Options.Id = &id + return r +} + +func (r Resource_Configuration) Mask(mask string) Resource_Configuration { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Resource_Configuration) Filter(filter string) Resource_Configuration { + r.Options.Filter = filter + return r +} + +func (r Resource_Configuration) Limit(limit int) Resource_Configuration { + r.Options.Limit = &limit + return r +} + +func (r Resource_Configuration) Offset(offset int) Resource_Configuration { + r.Options.Offset = &offset + return r +} + +// The setOsPasswordFromEncrypted method is used to set the operating system password from a key/pair encrypted password signed by SoftLayer. +func (r Resource_Configuration) SetOsPasswordFromEncrypted(encryptedPassword *string) (resp bool, err error) { + params := []interface{}{ + encryptedPassword, + } + err = r.Session.DoRequest("SoftLayer_Resource_Configuration", "setOsPasswordFromEncrypted", params, &r.Options, &resp) + return +} + +// no documentation yet +type Resource_Group struct { + Session *session.Session + Options sl.Options +} + +// GetResourceGroupService returns an instance of the Resource_Group SoftLayer service +func GetResourceGroupService(sess *session.Session) Resource_Group { + return Resource_Group{Session: sess} +} + +func (r Resource_Group) Id(id int) Resource_Group { + r.Options.Id = &id + return r +} + +func (r Resource_Group) Mask(mask string) Resource_Group { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Resource_Group) Filter(filter string) Resource_Group { + r.Options.Filter = filter + return r +} + +func (r Resource_Group) Limit(limit int) Resource_Group { + r.Options.Limit = &limit + return r +} + +func (r Resource_Group) Offset(offset int) Resource_Group { + r.Options.Offset = &offset + return r +} + +// no documentation yet +func (r Resource_Group) EditObject(templateObject *datatypes.Resource_Group) (resp bool, err error) { + params := []interface{}{ + templateObject, + } + err = r.Session.DoRequest("SoftLayer_Resource_Group", "editObject", params, &r.Options, &resp) + return +} + +// Retrieve A resource group's associated group ancestors. +func (r Resource_Group) GetAncestorGroups() (resp []datatypes.Resource_Group, err error) { + err = r.Session.DoRequest("SoftLayer_Resource_Group", "getAncestorGroups", nil, &r.Options, &resp) + return +} + +// Retrieve A resource group's associated attributes. +func (r Resource_Group) GetAttributes() (resp []datatypes.Resource_Group_Attribute, err error) { + err = r.Session.DoRequest("SoftLayer_Resource_Group", "getAttributes", nil, &r.Options, &resp) + return +} + +// Retrieve A resource group's associated hardware members. +func (r Resource_Group) GetHardwareMembers() (resp []datatypes.Resource_Group_Member, err error) { + err = r.Session.DoRequest("SoftLayer_Resource_Group", "getHardwareMembers", nil, &r.Options, &resp) + return +} + +// Retrieve A resource group's associated members. +func (r Resource_Group) GetMembers() (resp []datatypes.Resource_Group_Member, err error) { + err = r.Session.DoRequest("SoftLayer_Resource_Group", "getMembers", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Resource_Group) GetObject() (resp datatypes.Resource_Group, err error) { + err = r.Session.DoRequest("SoftLayer_Resource_Group", "getObject", nil, &r.Options, &resp) + return +} + +// Retrieve A resource group's associated root resource group. +func (r Resource_Group) GetRootResourceGroup() (resp datatypes.Resource_Group, err error) { + err = r.Session.DoRequest("SoftLayer_Resource_Group", "getRootResourceGroup", nil, &r.Options, &resp) + return +} + +// Retrieve A resource group's associated subnet members. +func (r Resource_Group) GetSubnetMembers() (resp []datatypes.Resource_Group_Member, err error) { + err = r.Session.DoRequest("SoftLayer_Resource_Group", "getSubnetMembers", nil, &r.Options, &resp) + return +} + +// Retrieve A resource group's associated template. +func (r Resource_Group) GetTemplate() (resp datatypes.Resource_Group_Template, err error) { + err = r.Session.DoRequest("SoftLayer_Resource_Group", "getTemplate", nil, &r.Options, &resp) + return +} + +// Retrieve A resource group's associated VLAN members. +func (r Resource_Group) GetVlanMembers() (resp []datatypes.Resource_Group_Member, err error) { + err = r.Session.DoRequest("SoftLayer_Resource_Group", "getVlanMembers", nil, &r.Options, &resp) + return +} + +// no documentation yet +type Resource_Group_Template struct { + Session *session.Session + Options sl.Options +} + +// GetResourceGroupTemplateService returns an instance of the Resource_Group_Template SoftLayer service +func GetResourceGroupTemplateService(sess *session.Session) Resource_Group_Template { + return Resource_Group_Template{Session: sess} +} + +func (r Resource_Group_Template) Id(id int) Resource_Group_Template { + r.Options.Id = &id + return r +} + +func (r Resource_Group_Template) Mask(mask string) Resource_Group_Template { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Resource_Group_Template) Filter(filter string) Resource_Group_Template { + r.Options.Filter = filter + return r +} + +func (r Resource_Group_Template) Limit(limit int) Resource_Group_Template { + r.Options.Limit = &limit + return r +} + +func (r Resource_Group_Template) Offset(offset int) Resource_Group_Template { + r.Options.Offset = &offset + return r +} + +// no documentation yet +func (r Resource_Group_Template) GetAllObjects() (resp []datatypes.Resource_Group_Template, err error) { + err = r.Session.DoRequest("SoftLayer_Resource_Group_Template", "getAllObjects", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Resource_Group_Template) GetChildren() (resp []datatypes.Resource_Group_Template, err error) { + err = r.Session.DoRequest("SoftLayer_Resource_Group_Template", "getChildren", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Resource_Group_Template) GetMembers() (resp []datatypes.Resource_Group_Template_Member, err error) { + err = r.Session.DoRequest("SoftLayer_Resource_Group_Template", "getMembers", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Resource_Group_Template) GetObject() (resp datatypes.Resource_Group_Template, err error) { + err = r.Session.DoRequest("SoftLayer_Resource_Group_Template", "getObject", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Resource_Group_Template) GetPackage() (resp datatypes.Product_Package, err error) { + err = r.Session.DoRequest("SoftLayer_Resource_Group_Template", "getPackage", nil, &r.Options, &resp) + return +} + +// no documentation yet +type Resource_Metadata struct { + Session *session.Session + Options sl.Options +} + +// GetResourceMetadataService returns an instance of the Resource_Metadata SoftLayer service +func GetResourceMetadataService(sess *session.Session) Resource_Metadata { + return Resource_Metadata{Session: sess} +} + +func (r Resource_Metadata) Id(id int) Resource_Metadata { + r.Options.Id = &id + return r +} + +func (r Resource_Metadata) Mask(mask string) Resource_Metadata { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Resource_Metadata) Filter(filter string) Resource_Metadata { + r.Options.Filter = filter + return r +} + +func (r Resource_Metadata) Limit(limit int) Resource_Metadata { + r.Options.Limit = &limit + return r +} + +func (r Resource_Metadata) Offset(offset int) Resource_Metadata { + r.Options.Offset = &offset + return r +} + +// The getBackendMacAddresses method retrieves a list of backend MAC addresses for the resource +func (r Resource_Metadata) GetBackendMacAddresses() (resp []string, err error) { + err = r.Session.DoRequest("SoftLayer_Resource_Metadata", "getBackendMacAddresses", nil, &r.Options, &resp) + return +} + +// The getDatacenter method retrieves the name of the datacenter in which the resource is located. +func (r Resource_Metadata) GetDatacenter() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_Resource_Metadata", "getDatacenter", nil, &r.Options, &resp) + return +} + +// The getDatacenterId retrieves the ID for the datacenter in which the resource is located. +func (r Resource_Metadata) GetDatacenterId() (resp int, err error) { + err = r.Session.DoRequest("SoftLayer_Resource_Metadata", "getDatacenterId", nil, &r.Options, &resp) + return +} + +// The getDomain method retrieves the hostname for the resource. +func (r Resource_Metadata) GetDomain() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_Resource_Metadata", "getDomain", nil, &r.Options, &resp) + return +} + +// The getFrontendMacAddresses method retrieves a list of frontend MAC addresses for the resource +func (r Resource_Metadata) GetFrontendMacAddresses() (resp []string, err error) { + err = r.Session.DoRequest("SoftLayer_Resource_Metadata", "getFrontendMacAddresses", nil, &r.Options, &resp) + return +} + +// The getFullyQualifiedDomainName method provides the user with a combined return which includes the hostname and domain for the resource. Because this method returns multiple pieces of information, it avoids the need to use multiple methods to return the desired information. +func (r Resource_Metadata) GetFullyQualifiedDomainName() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_Resource_Metadata", "getFullyQualifiedDomainName", nil, &r.Options, &resp) + return +} + +// The getId getGlobalIdentifier retrieves the globalIdentifier for the resource +func (r Resource_Metadata) GetGlobalIdentifier() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_Resource_Metadata", "getGlobalIdentifier", nil, &r.Options, &resp) + return +} + +// The getHostname method retrieves the hostname for the resource. +func (r Resource_Metadata) GetHostname() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_Resource_Metadata", "getHostname", nil, &r.Options, &resp) + return +} + +// The getId method retrieves the ID for the resource +func (r Resource_Metadata) GetId() (resp int, err error) { + err = r.Session.DoRequest("SoftLayer_Resource_Metadata", "getId", nil, &r.Options, &resp) + return +} + +// The getPrimaryBackendIpAddress method retrieves the primary backend IP address for the resource +func (r Resource_Metadata) GetPrimaryBackendIpAddress() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_Resource_Metadata", "getPrimaryBackendIpAddress", nil, &r.Options, &resp) + return +} + +// The getPrimaryIpAddress method retrieves the primary IP address for the resource. For resources with a frontend network, the frontend IP address will be returned. For resources that have been provisioned with only a backend network, the backend IP address will be returned, as a frontend address will not exist. +func (r Resource_Metadata) GetPrimaryIpAddress() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_Resource_Metadata", "getPrimaryIpAddress", nil, &r.Options, &resp) + return +} + +// The getProvisionState method retrieves the provision state of the resource. The provision state may be used to determine when it is considered safe to perform additional setup operations. The method returns 'PROCESSING' to indicate the provision is in progress and 'COMPLETE' when the provision is complete. +func (r Resource_Metadata) GetProvisionState() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_Resource_Metadata", "getProvisionState", nil, &r.Options, &resp) + return +} + +// The getRouter method will return the router associated with a network component. When the router is redundant, the hostname of the redundant group will be returned, rather than the router hostname. +func (r Resource_Metadata) GetRouter(macAddress *string) (resp string, err error) { + params := []interface{}{ + macAddress, + } + err = r.Session.DoRequest("SoftLayer_Resource_Metadata", "getRouter", params, &r.Options, &resp) + return +} + +// The getServiceResource method retrieves a specific service resource associated with the resource. Service resources are additional resources that may be used by this resource. +func (r Resource_Metadata) GetServiceResource(serviceName *string, index *int) (resp string, err error) { + params := []interface{}{ + serviceName, + index, + } + err = r.Session.DoRequest("SoftLayer_Resource_Metadata", "getServiceResource", params, &r.Options, &resp) + return +} + +// The getServiceResources method retrieves all service resources associated with the resource. Service resources are additional resources that may be used by this resource. The output format is =
    for each service resource. +func (r Resource_Metadata) GetServiceResources() (resp []datatypes.Container_Resource_Metadata_ServiceResource, err error) { + err = r.Session.DoRequest("SoftLayer_Resource_Metadata", "getServiceResources", nil, &r.Options, &resp) + return +} + +// The getTags method retrieves all tags associated with the resource. Tags are single keywords assigned to a resource that assist the user in identifying the resource and its roles when performing a simple search. Tags are assigned by any user with access to the resource. +func (r Resource_Metadata) GetTags() (resp []string, err error) { + err = r.Session.DoRequest("SoftLayer_Resource_Metadata", "getTags", nil, &r.Options, &resp) + return +} + +// The getUserMetadata method retrieves metadata completed by users who interact with the resource. Metadata gathered using this method is unique to parameters set using the '''setUserMetadata''' method, which must be executed prior to completing this method. User metadata may also be provided while placing an order for a resource. +func (r Resource_Metadata) GetUserMetadata() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_Resource_Metadata", "getUserMetadata", nil, &r.Options, &resp) + return +} + +// The getVlanIds method returns a list of VLAN IDs for the network component matching the provided MAC address associated with the resource. For each return, the native VLAN will appear first, followed by any trunked VLANs associated with the network component. +func (r Resource_Metadata) GetVlanIds(macAddress *string) (resp []int, err error) { + params := []interface{}{ + macAddress, + } + err = r.Session.DoRequest("SoftLayer_Resource_Metadata", "getVlanIds", params, &r.Options, &resp) + return +} + +// The getVlans method returns a list of VLAN numbers for the network component matching the provided MAC address associated with the resource. For each return, the native VLAN will appear first, followed by any trunked VLANs associated with the network component. +func (r Resource_Metadata) GetVlans(macAddress *string) (resp []int, err error) { + params := []interface{}{ + macAddress, + } + err = r.Session.DoRequest("SoftLayer_Resource_Metadata", "getVlans", params, &r.Options, &resp) + return +} diff --git a/vendor/github.com/softlayer/softlayer-go/services/sales.go b/vendor/github.com/softlayer/softlayer-go/services/sales.go new file mode 100644 index 000000000..4a0e777ba --- /dev/null +++ b/vendor/github.com/softlayer/softlayer-go/services/sales.go @@ -0,0 +1,112 @@ +/** + * Copyright 2016 IBM Corp. + * + * 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. + */ + +/** + * AUTOMATICALLY GENERATED CODE - DO NOT MODIFY + */ + +package services + +import ( + "fmt" + "strings" + + "github.com/softlayer/softlayer-go/datatypes" + "github.com/softlayer/softlayer-go/session" + "github.com/softlayer/softlayer-go/sl" +) + +// The presale event data types indicate the information regarding an individual presale event. The '''locationId''' will indicate the datacenter associated with the presale event. The '''itemId''' will indicate the product item associated with a particular presale event - however these are more rare. The '''startDate''' and '''endDate''' will provide information regarding when the presale event is available for use. At the end of the presale event, the server or services purchased will be available once approved and provisioned. +type Sales_Presale_Event struct { + Session *session.Session + Options sl.Options +} + +// GetSalesPresaleEventService returns an instance of the Sales_Presale_Event SoftLayer service +func GetSalesPresaleEventService(sess *session.Session) Sales_Presale_Event { + return Sales_Presale_Event{Session: sess} +} + +func (r Sales_Presale_Event) Id(id int) Sales_Presale_Event { + r.Options.Id = &id + return r +} + +func (r Sales_Presale_Event) Mask(mask string) Sales_Presale_Event { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Sales_Presale_Event) Filter(filter string) Sales_Presale_Event { + r.Options.Filter = filter + return r +} + +func (r Sales_Presale_Event) Limit(limit int) Sales_Presale_Event { + r.Options.Limit = &limit + return r +} + +func (r Sales_Presale_Event) Offset(offset int) Sales_Presale_Event { + r.Options.Offset = &offset + return r +} + +// Retrieve A flag to indicate that the presale event is currently active. A presale event is active if the current time is between the start and end dates. +func (r Sales_Presale_Event) GetActiveFlag() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Sales_Presale_Event", "getActiveFlag", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Sales_Presale_Event) GetAllObjects() (resp []datatypes.Sales_Presale_Event, err error) { + err = r.Session.DoRequest("SoftLayer_Sales_Presale_Event", "getAllObjects", nil, &r.Options, &resp) + return +} + +// Retrieve A flag to indicate that the presale event is expired. A presale event is expired if the current time is after the end date. +func (r Sales_Presale_Event) GetExpiredFlag() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Sales_Presale_Event", "getExpiredFlag", nil, &r.Options, &resp) + return +} + +// Retrieve The [[SoftLayer_Product_Item]] associated with the presale event. +func (r Sales_Presale_Event) GetItem() (resp datatypes.Product_Item, err error) { + err = r.Session.DoRequest("SoftLayer_Sales_Presale_Event", "getItem", nil, &r.Options, &resp) + return +} + +// Retrieve The [[SoftLayer_Location]] associated with the presale event. +func (r Sales_Presale_Event) GetLocation() (resp datatypes.Location, err error) { + err = r.Session.DoRequest("SoftLayer_Sales_Presale_Event", "getLocation", nil, &r.Options, &resp) + return +} + +// '''getObject''' retrieves the [[SoftLayer_Sales_Presale_Event]] object whose id number corresponds to the id number of the init parameter passed to the SoftLayer_Sales_Presale_Event service. Customers may only retrieve presale events that are currently active. +func (r Sales_Presale_Event) GetObject() (resp datatypes.Sales_Presale_Event, err error) { + err = r.Session.DoRequest("SoftLayer_Sales_Presale_Event", "getObject", nil, &r.Options, &resp) + return +} + +// Retrieve The orders ([[SoftLayer_Billing_Order]]) associated with this presale event that were created for the customer's account. +func (r Sales_Presale_Event) GetOrders() (resp []datatypes.Billing_Order, err error) { + err = r.Session.DoRequest("SoftLayer_Sales_Presale_Event", "getOrders", nil, &r.Options, &resp) + return +} diff --git a/vendor/github.com/softlayer/softlayer-go/services/scale.go b/vendor/github.com/softlayer/softlayer-go/services/scale.go new file mode 100644 index 000000000..3c2b60461 --- /dev/null +++ b/vendor/github.com/softlayer/softlayer-go/services/scale.go @@ -0,0 +1,1664 @@ +/** + * Copyright 2016 IBM Corp. + * + * 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. + */ + +/** + * AUTOMATICALLY GENERATED CODE - DO NOT MODIFY + */ + +package services + +import ( + "fmt" + "strings" + + "github.com/softlayer/softlayer-go/datatypes" + "github.com/softlayer/softlayer-go/session" + "github.com/softlayer/softlayer-go/sl" +) + +// no documentation yet +type Scale_Asset struct { + Session *session.Session + Options sl.Options +} + +// GetScaleAssetService returns an instance of the Scale_Asset SoftLayer service +func GetScaleAssetService(sess *session.Session) Scale_Asset { + return Scale_Asset{Session: sess} +} + +func (r Scale_Asset) Id(id int) Scale_Asset { + r.Options.Id = &id + return r +} + +func (r Scale_Asset) Mask(mask string) Scale_Asset { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Scale_Asset) Filter(filter string) Scale_Asset { + r.Options.Filter = filter + return r +} + +func (r Scale_Asset) Limit(limit int) Scale_Asset { + r.Options.Limit = &limit + return r +} + +func (r Scale_Asset) Offset(offset int) Scale_Asset { + r.Options.Offset = &offset + return r +} + +// no documentation yet +func (r Scale_Asset) DeleteObject() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Scale_Asset", "deleteObject", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Scale_Asset) GetObject() (resp datatypes.Scale_Asset, err error) { + err = r.Session.DoRequest("SoftLayer_Scale_Asset", "getObject", nil, &r.Options, &resp) + return +} + +// Retrieve The group this asset belongs to. +func (r Scale_Asset) GetScaleGroup() (resp datatypes.Scale_Group, err error) { + err = r.Session.DoRequest("SoftLayer_Scale_Asset", "getScaleGroup", nil, &r.Options, &resp) + return +} + +// no documentation yet +type Scale_Asset_Hardware struct { + Session *session.Session + Options sl.Options +} + +// GetScaleAssetHardwareService returns an instance of the Scale_Asset_Hardware SoftLayer service +func GetScaleAssetHardwareService(sess *session.Session) Scale_Asset_Hardware { + return Scale_Asset_Hardware{Session: sess} +} + +func (r Scale_Asset_Hardware) Id(id int) Scale_Asset_Hardware { + r.Options.Id = &id + return r +} + +func (r Scale_Asset_Hardware) Mask(mask string) Scale_Asset_Hardware { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Scale_Asset_Hardware) Filter(filter string) Scale_Asset_Hardware { + r.Options.Filter = filter + return r +} + +func (r Scale_Asset_Hardware) Limit(limit int) Scale_Asset_Hardware { + r.Options.Limit = &limit + return r +} + +func (r Scale_Asset_Hardware) Offset(offset int) Scale_Asset_Hardware { + r.Options.Offset = &offset + return r +} + +// no documentation yet +func (r Scale_Asset_Hardware) CreateObject(templateObject *datatypes.Scale_Asset_Hardware) (resp datatypes.Scale_Asset_Hardware, err error) { + params := []interface{}{ + templateObject, + } + err = r.Session.DoRequest("SoftLayer_Scale_Asset_Hardware", "createObject", params, &r.Options, &resp) + return +} + +// no documentation yet +func (r Scale_Asset_Hardware) DeleteObject() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Scale_Asset_Hardware", "deleteObject", nil, &r.Options, &resp) + return +} + +// Retrieve The hardware for this asset. +func (r Scale_Asset_Hardware) GetHardware() (resp datatypes.Hardware, err error) { + err = r.Session.DoRequest("SoftLayer_Scale_Asset_Hardware", "getHardware", nil, &r.Options, &resp) + return +} + +// Retrieve The identifier of the hardware for this asset. +func (r Scale_Asset_Hardware) GetHardwareId() (resp int, err error) { + err = r.Session.DoRequest("SoftLayer_Scale_Asset_Hardware", "getHardwareId", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Scale_Asset_Hardware) GetObject() (resp datatypes.Scale_Asset_Hardware, err error) { + err = r.Session.DoRequest("SoftLayer_Scale_Asset_Hardware", "getObject", nil, &r.Options, &resp) + return +} + +// Retrieve The group this asset belongs to. +func (r Scale_Asset_Hardware) GetScaleGroup() (resp datatypes.Scale_Group, err error) { + err = r.Session.DoRequest("SoftLayer_Scale_Asset_Hardware", "getScaleGroup", nil, &r.Options, &resp) + return +} + +// no documentation yet +type Scale_Asset_Virtual_Guest struct { + Session *session.Session + Options sl.Options +} + +// GetScaleAssetVirtualGuestService returns an instance of the Scale_Asset_Virtual_Guest SoftLayer service +func GetScaleAssetVirtualGuestService(sess *session.Session) Scale_Asset_Virtual_Guest { + return Scale_Asset_Virtual_Guest{Session: sess} +} + +func (r Scale_Asset_Virtual_Guest) Id(id int) Scale_Asset_Virtual_Guest { + r.Options.Id = &id + return r +} + +func (r Scale_Asset_Virtual_Guest) Mask(mask string) Scale_Asset_Virtual_Guest { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Scale_Asset_Virtual_Guest) Filter(filter string) Scale_Asset_Virtual_Guest { + r.Options.Filter = filter + return r +} + +func (r Scale_Asset_Virtual_Guest) Limit(limit int) Scale_Asset_Virtual_Guest { + r.Options.Limit = &limit + return r +} + +func (r Scale_Asset_Virtual_Guest) Offset(offset int) Scale_Asset_Virtual_Guest { + r.Options.Offset = &offset + return r +} + +// no documentation yet +func (r Scale_Asset_Virtual_Guest) CreateObject(templateObject *datatypes.Scale_Asset_Virtual_Guest) (resp datatypes.Scale_Asset_Virtual_Guest, err error) { + params := []interface{}{ + templateObject, + } + err = r.Session.DoRequest("SoftLayer_Scale_Asset_Virtual_Guest", "createObject", params, &r.Options, &resp) + return +} + +// no documentation yet +func (r Scale_Asset_Virtual_Guest) DeleteObject() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Scale_Asset_Virtual_Guest", "deleteObject", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Scale_Asset_Virtual_Guest) GetObject() (resp datatypes.Scale_Asset_Virtual_Guest, err error) { + err = r.Session.DoRequest("SoftLayer_Scale_Asset_Virtual_Guest", "getObject", nil, &r.Options, &resp) + return +} + +// Retrieve The group this asset belongs to. +func (r Scale_Asset_Virtual_Guest) GetScaleGroup() (resp datatypes.Scale_Group, err error) { + err = r.Session.DoRequest("SoftLayer_Scale_Asset_Virtual_Guest", "getScaleGroup", nil, &r.Options, &resp) + return +} + +// Retrieve The guest for this asset. +func (r Scale_Asset_Virtual_Guest) GetVirtualGuest() (resp datatypes.Virtual_Guest, err error) { + err = r.Session.DoRequest("SoftLayer_Scale_Asset_Virtual_Guest", "getVirtualGuest", nil, &r.Options, &resp) + return +} + +// Retrieve The identifier of the guest for this asset. +func (r Scale_Asset_Virtual_Guest) GetVirtualGuestId() (resp int, err error) { + err = r.Session.DoRequest("SoftLayer_Scale_Asset_Virtual_Guest", "getVirtualGuestId", nil, &r.Options, &resp) + return +} + +// no documentation yet +type Scale_Group struct { + Session *session.Session + Options sl.Options +} + +// GetScaleGroupService returns an instance of the Scale_Group SoftLayer service +func GetScaleGroupService(sess *session.Session) Scale_Group { + return Scale_Group{Session: sess} +} + +func (r Scale_Group) Id(id int) Scale_Group { + r.Options.Id = &id + return r +} + +func (r Scale_Group) Mask(mask string) Scale_Group { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Scale_Group) Filter(filter string) Scale_Group { + r.Options.Filter = filter + return r +} + +func (r Scale_Group) Limit(limit int) Scale_Group { + r.Options.Limit = &limit + return r +} + +func (r Scale_Group) Offset(offset int) Scale_Group { + r.Options.Offset = &offset + return r +} + +// no documentation yet +func (r Scale_Group) CreateObject(templateObject *datatypes.Scale_Group) (resp datatypes.Scale_Group, err error) { + params := []interface{}{ + templateObject, + } + err = r.Session.DoRequest("SoftLayer_Scale_Group", "createObject", params, &r.Options, &resp) + return +} + +// no documentation yet +func (r Scale_Group) DeleteObject() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Scale_Group", "deleteObject", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Scale_Group) EditObject(templateObject *datatypes.Scale_Group) (resp bool, err error) { + params := []interface{}{ + templateObject, + } + err = r.Session.DoRequest("SoftLayer_Scale_Group", "editObject", params, &r.Options, &resp) + return +} + +// no documentation yet +func (r Scale_Group) ForceDeleteObject() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Scale_Group", "forceDeleteObject", nil, &r.Options, &resp) + return +} + +// Retrieve The account for this scaling group. +func (r Scale_Group) GetAccount() (resp datatypes.Account, err error) { + err = r.Session.DoRequest("SoftLayer_Scale_Group", "getAccount", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Scale_Group) GetAvailableHourlyInstanceLimit() (resp int, err error) { + err = r.Session.DoRequest("SoftLayer_Scale_Group", "getAvailableHourlyInstanceLimit", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Scale_Group) GetAvailableRegionalGroups() (resp []datatypes.Location_Group, err error) { + err = r.Session.DoRequest("SoftLayer_Scale_Group", "getAvailableRegionalGroups", nil, &r.Options, &resp) + return +} + +// Retrieve Collection of load balancers for this auto scale group. +func (r Scale_Group) GetLoadBalancers() (resp []datatypes.Scale_LoadBalancer, err error) { + err = r.Session.DoRequest("SoftLayer_Scale_Group", "getLoadBalancers", nil, &r.Options, &resp) + return +} + +// Retrieve Collection of log entries for this group. +func (r Scale_Group) GetLogs() (resp []datatypes.Scale_Group_Log, err error) { + err = r.Session.DoRequest("SoftLayer_Scale_Group", "getLogs", nil, &r.Options, &resp) + return +} + +// Retrieve Collection of VLANs for this auto scale group. VLANs are optional. This can contain a public or private VLAN or both. When a single VLAN for a public/private type is given it can be a non-purchased VLAN only if the minimumMemberCount on the group is >= 1. This can also contain any number of public/private purchased VLANs and members are staggered across them when scaled up. +func (r Scale_Group) GetNetworkVlans() (resp []datatypes.Scale_Network_Vlan, err error) { + err = r.Session.DoRequest("SoftLayer_Scale_Group", "getNetworkVlans", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Scale_Group) GetObject() (resp datatypes.Scale_Group, err error) { + err = r.Session.DoRequest("SoftLayer_Scale_Group", "getObject", nil, &r.Options, &resp) + return +} + +// Retrieve Collection of policies for this group. This can be empty. +func (r Scale_Group) GetPolicies() (resp []datatypes.Scale_Policy, err error) { + err = r.Session.DoRequest("SoftLayer_Scale_Group", "getPolicies", nil, &r.Options, &resp) + return +} + +// Retrieve The regional group for this scale group. +func (r Scale_Group) GetRegionalGroup() (resp datatypes.Location_Group_Regional, err error) { + err = r.Session.DoRequest("SoftLayer_Scale_Group", "getRegionalGroup", nil, &r.Options, &resp) + return +} + +// Retrieve The status for this scale group. +func (r Scale_Group) GetStatus() (resp datatypes.Scale_Group_Status, err error) { + err = r.Session.DoRequest("SoftLayer_Scale_Group", "getStatus", nil, &r.Options, &resp) + return +} + +// Retrieve The termination policy for this scaling group. +func (r Scale_Group) GetTerminationPolicy() (resp datatypes.Scale_Termination_Policy, err error) { + err = r.Session.DoRequest("SoftLayer_Scale_Group", "getTerminationPolicy", nil, &r.Options, &resp) + return +} + +// Retrieve Collection of guests that have been pinned to this group. Guest assets are only used for certain trigger checks such as resource watches. They do not count towards the auto scaling guest counts of this group in anyway and are never automatically added or removed. +func (r Scale_Group) GetVirtualGuestAssets() (resp []datatypes.Scale_Asset_Virtual_Guest, err error) { + err = r.Session.DoRequest("SoftLayer_Scale_Group", "getVirtualGuestAssets", nil, &r.Options, &resp) + return +} + +// Retrieve Collection of guests that have been scaled with the group. When this group is active, the count of guests here is guaranteed to be between minimumMemberCount and maximumMemberCount inclusively. +func (r Scale_Group) GetVirtualGuestMembers() (resp []datatypes.Scale_Member_Virtual_Guest, err error) { + err = r.Session.DoRequest("SoftLayer_Scale_Group", "getVirtualGuestMembers", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Scale_Group) Resume() (err error) { + var resp datatypes.Void + err = r.Session.DoRequest("SoftLayer_Scale_Group", "resume", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Scale_Group) Scale(delta *int) (resp []datatypes.Scale_Member, err error) { + params := []interface{}{ + delta, + } + err = r.Session.DoRequest("SoftLayer_Scale_Group", "scale", params, &r.Options, &resp) + return +} + +// no documentation yet +func (r Scale_Group) ScaleTo(number *int) (resp []datatypes.Scale_Member, err error) { + params := []interface{}{ + number, + } + err = r.Session.DoRequest("SoftLayer_Scale_Group", "scaleTo", params, &r.Options, &resp) + return +} + +// no documentation yet +func (r Scale_Group) Suspend() (err error) { + var resp datatypes.Void + err = r.Session.DoRequest("SoftLayer_Scale_Group", "suspend", nil, &r.Options, &resp) + return +} + +// no documentation yet +type Scale_Group_Status struct { + Session *session.Session + Options sl.Options +} + +// GetScaleGroupStatusService returns an instance of the Scale_Group_Status SoftLayer service +func GetScaleGroupStatusService(sess *session.Session) Scale_Group_Status { + return Scale_Group_Status{Session: sess} +} + +func (r Scale_Group_Status) Id(id int) Scale_Group_Status { + r.Options.Id = &id + return r +} + +func (r Scale_Group_Status) Mask(mask string) Scale_Group_Status { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Scale_Group_Status) Filter(filter string) Scale_Group_Status { + r.Options.Filter = filter + return r +} + +func (r Scale_Group_Status) Limit(limit int) Scale_Group_Status { + r.Options.Limit = &limit + return r +} + +func (r Scale_Group_Status) Offset(offset int) Scale_Group_Status { + r.Options.Offset = &offset + return r +} + +// no documentation yet +func (r Scale_Group_Status) GetAllObjects() (resp []datatypes.Scale_Group_Status, err error) { + err = r.Session.DoRequest("SoftLayer_Scale_Group_Status", "getAllObjects", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Scale_Group_Status) GetObject() (resp datatypes.Scale_Group_Status, err error) { + err = r.Session.DoRequest("SoftLayer_Scale_Group_Status", "getObject", nil, &r.Options, &resp) + return +} + +// no documentation yet +type Scale_LoadBalancer struct { + Session *session.Session + Options sl.Options +} + +// GetScaleLoadBalancerService returns an instance of the Scale_LoadBalancer SoftLayer service +func GetScaleLoadBalancerService(sess *session.Session) Scale_LoadBalancer { + return Scale_LoadBalancer{Session: sess} +} + +func (r Scale_LoadBalancer) Id(id int) Scale_LoadBalancer { + r.Options.Id = &id + return r +} + +func (r Scale_LoadBalancer) Mask(mask string) Scale_LoadBalancer { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Scale_LoadBalancer) Filter(filter string) Scale_LoadBalancer { + r.Options.Filter = filter + return r +} + +func (r Scale_LoadBalancer) Limit(limit int) Scale_LoadBalancer { + r.Options.Limit = &limit + return r +} + +func (r Scale_LoadBalancer) Offset(offset int) Scale_LoadBalancer { + r.Options.Offset = &offset + return r +} + +// no documentation yet +func (r Scale_LoadBalancer) CreateObject(templateObject *datatypes.Scale_LoadBalancer) (resp datatypes.Scale_LoadBalancer, err error) { + params := []interface{}{ + templateObject, + } + err = r.Session.DoRequest("SoftLayer_Scale_LoadBalancer", "createObject", params, &r.Options, &resp) + return +} + +// no documentation yet +func (r Scale_LoadBalancer) DeleteObject() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Scale_LoadBalancer", "deleteObject", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Scale_LoadBalancer) EditObject(templateObject *datatypes.Scale_LoadBalancer) (resp bool, err error) { + params := []interface{}{ + templateObject, + } + err = r.Session.DoRequest("SoftLayer_Scale_LoadBalancer", "editObject", params, &r.Options, &resp) + return +} + +// Retrieve The percentage of connections allocated to this virtual server. +func (r Scale_LoadBalancer) GetAllocationPercent() (resp int, err error) { + err = r.Session.DoRequest("SoftLayer_Scale_LoadBalancer", "getAllocationPercent", nil, &r.Options, &resp) + return +} + +// Retrieve The health check for this configuration. +func (r Scale_LoadBalancer) GetHealthCheck() (resp datatypes.Network_Application_Delivery_Controller_LoadBalancer_Health_Check, err error) { + err = r.Session.DoRequest("SoftLayer_Scale_LoadBalancer", "getHealthCheck", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Scale_LoadBalancer) GetObject() (resp datatypes.Scale_LoadBalancer, err error) { + err = r.Session.DoRequest("SoftLayer_Scale_LoadBalancer", "getObject", nil, &r.Options, &resp) + return +} + +// Retrieve The routing method. +func (r Scale_LoadBalancer) GetRoutingMethod() (resp datatypes.Network_Application_Delivery_Controller_LoadBalancer_Routing_Method, err error) { + err = r.Session.DoRequest("SoftLayer_Scale_LoadBalancer", "getRoutingMethod", nil, &r.Options, &resp) + return +} + +// Retrieve The routing type. +func (r Scale_LoadBalancer) GetRoutingType() (resp datatypes.Network_Application_Delivery_Controller_LoadBalancer_Routing_Type, err error) { + err = r.Session.DoRequest("SoftLayer_Scale_LoadBalancer", "getRoutingType", nil, &r.Options, &resp) + return +} + +// Retrieve The group this load balancer configuration is for. +func (r Scale_LoadBalancer) GetScaleGroup() (resp datatypes.Scale_Group, err error) { + err = r.Session.DoRequest("SoftLayer_Scale_LoadBalancer", "getScaleGroup", nil, &r.Options, &resp) + return +} + +// Retrieve The ID of the virtual IP address. +func (r Scale_LoadBalancer) GetVirtualIpAddressId() (resp int, err error) { + err = r.Session.DoRequest("SoftLayer_Scale_LoadBalancer", "getVirtualIpAddressId", nil, &r.Options, &resp) + return +} + +// Retrieve The virtual server for this configuration. +func (r Scale_LoadBalancer) GetVirtualServer() (resp datatypes.Network_Application_Delivery_Controller_LoadBalancer_VirtualServer, err error) { + err = r.Session.DoRequest("SoftLayer_Scale_LoadBalancer", "getVirtualServer", nil, &r.Options, &resp) + return +} + +// Retrieve The port on the virtual server. +func (r Scale_LoadBalancer) GetVirtualServerPort() (resp int, err error) { + err = r.Session.DoRequest("SoftLayer_Scale_LoadBalancer", "getVirtualServerPort", nil, &r.Options, &resp) + return +} + +// no documentation yet +type Scale_Member struct { + Session *session.Session + Options sl.Options +} + +// GetScaleMemberService returns an instance of the Scale_Member SoftLayer service +func GetScaleMemberService(sess *session.Session) Scale_Member { + return Scale_Member{Session: sess} +} + +func (r Scale_Member) Id(id int) Scale_Member { + r.Options.Id = &id + return r +} + +func (r Scale_Member) Mask(mask string) Scale_Member { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Scale_Member) Filter(filter string) Scale_Member { + r.Options.Filter = filter + return r +} + +func (r Scale_Member) Limit(limit int) Scale_Member { + r.Options.Limit = &limit + return r +} + +func (r Scale_Member) Offset(offset int) Scale_Member { + r.Options.Offset = &offset + return r +} + +// no documentation yet +func (r Scale_Member) DeleteObject() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Scale_Member", "deleteObject", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Scale_Member) GetObject() (resp datatypes.Scale_Member, err error) { + err = r.Session.DoRequest("SoftLayer_Scale_Member", "getObject", nil, &r.Options, &resp) + return +} + +// Retrieve The group this member belongs to. +func (r Scale_Member) GetScaleGroup() (resp datatypes.Scale_Group, err error) { + err = r.Session.DoRequest("SoftLayer_Scale_Member", "getScaleGroup", nil, &r.Options, &resp) + return +} + +// no documentation yet +type Scale_Member_Virtual_Guest struct { + Session *session.Session + Options sl.Options +} + +// GetScaleMemberVirtualGuestService returns an instance of the Scale_Member_Virtual_Guest SoftLayer service +func GetScaleMemberVirtualGuestService(sess *session.Session) Scale_Member_Virtual_Guest { + return Scale_Member_Virtual_Guest{Session: sess} +} + +func (r Scale_Member_Virtual_Guest) Id(id int) Scale_Member_Virtual_Guest { + r.Options.Id = &id + return r +} + +func (r Scale_Member_Virtual_Guest) Mask(mask string) Scale_Member_Virtual_Guest { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Scale_Member_Virtual_Guest) Filter(filter string) Scale_Member_Virtual_Guest { + r.Options.Filter = filter + return r +} + +func (r Scale_Member_Virtual_Guest) Limit(limit int) Scale_Member_Virtual_Guest { + r.Options.Limit = &limit + return r +} + +func (r Scale_Member_Virtual_Guest) Offset(offset int) Scale_Member_Virtual_Guest { + r.Options.Offset = &offset + return r +} + +// no documentation yet +func (r Scale_Member_Virtual_Guest) DeleteObject() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Scale_Member_Virtual_Guest", "deleteObject", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Scale_Member_Virtual_Guest) GetObject() (resp datatypes.Scale_Member_Virtual_Guest, err error) { + err = r.Session.DoRequest("SoftLayer_Scale_Member_Virtual_Guest", "getObject", nil, &r.Options, &resp) + return +} + +// Retrieve The group this member belongs to. +func (r Scale_Member_Virtual_Guest) GetScaleGroup() (resp datatypes.Scale_Group, err error) { + err = r.Session.DoRequest("SoftLayer_Scale_Member_Virtual_Guest", "getScaleGroup", nil, &r.Options, &resp) + return +} + +// Retrieve The guest for this member. +func (r Scale_Member_Virtual_Guest) GetVirtualGuest() (resp datatypes.Virtual_Guest, err error) { + err = r.Session.DoRequest("SoftLayer_Scale_Member_Virtual_Guest", "getVirtualGuest", nil, &r.Options, &resp) + return +} + +// Retrieve The identifier of the guest for this member. +func (r Scale_Member_Virtual_Guest) GetVirtualGuestId() (resp int, err error) { + err = r.Session.DoRequest("SoftLayer_Scale_Member_Virtual_Guest", "getVirtualGuestId", nil, &r.Options, &resp) + return +} + +// no documentation yet +type Scale_Network_Vlan struct { + Session *session.Session + Options sl.Options +} + +// GetScaleNetworkVlanService returns an instance of the Scale_Network_Vlan SoftLayer service +func GetScaleNetworkVlanService(sess *session.Session) Scale_Network_Vlan { + return Scale_Network_Vlan{Session: sess} +} + +func (r Scale_Network_Vlan) Id(id int) Scale_Network_Vlan { + r.Options.Id = &id + return r +} + +func (r Scale_Network_Vlan) Mask(mask string) Scale_Network_Vlan { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Scale_Network_Vlan) Filter(filter string) Scale_Network_Vlan { + r.Options.Filter = filter + return r +} + +func (r Scale_Network_Vlan) Limit(limit int) Scale_Network_Vlan { + r.Options.Limit = &limit + return r +} + +func (r Scale_Network_Vlan) Offset(offset int) Scale_Network_Vlan { + r.Options.Offset = &offset + return r +} + +// no documentation yet +func (r Scale_Network_Vlan) CreateObject(templateObject *datatypes.Scale_Network_Vlan) (resp datatypes.Scale_Network_Vlan, err error) { + params := []interface{}{ + templateObject, + } + err = r.Session.DoRequest("SoftLayer_Scale_Network_Vlan", "createObject", params, &r.Options, &resp) + return +} + +// no documentation yet +func (r Scale_Network_Vlan) DeleteObject() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Scale_Network_Vlan", "deleteObject", nil, &r.Options, &resp) + return +} + +// Retrieve The network VLAN to scale with. +func (r Scale_Network_Vlan) GetNetworkVlan() (resp datatypes.Network_Vlan, err error) { + err = r.Session.DoRequest("SoftLayer_Scale_Network_Vlan", "getNetworkVlan", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Scale_Network_Vlan) GetObject() (resp datatypes.Scale_Network_Vlan, err error) { + err = r.Session.DoRequest("SoftLayer_Scale_Network_Vlan", "getObject", nil, &r.Options, &resp) + return +} + +// Retrieve The group this network VLAN is for. +func (r Scale_Network_Vlan) GetScaleGroup() (resp datatypes.Scale_Group, err error) { + err = r.Session.DoRequest("SoftLayer_Scale_Network_Vlan", "getScaleGroup", nil, &r.Options, &resp) + return +} + +// no documentation yet +type Scale_Policy struct { + Session *session.Session + Options sl.Options +} + +// GetScalePolicyService returns an instance of the Scale_Policy SoftLayer service +func GetScalePolicyService(sess *session.Session) Scale_Policy { + return Scale_Policy{Session: sess} +} + +func (r Scale_Policy) Id(id int) Scale_Policy { + r.Options.Id = &id + return r +} + +func (r Scale_Policy) Mask(mask string) Scale_Policy { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Scale_Policy) Filter(filter string) Scale_Policy { + r.Options.Filter = filter + return r +} + +func (r Scale_Policy) Limit(limit int) Scale_Policy { + r.Options.Limit = &limit + return r +} + +func (r Scale_Policy) Offset(offset int) Scale_Policy { + r.Options.Offset = &offset + return r +} + +// no documentation yet +func (r Scale_Policy) CreateObject(templateObject *datatypes.Scale_Policy) (resp datatypes.Scale_Policy, err error) { + params := []interface{}{ + templateObject, + } + err = r.Session.DoRequest("SoftLayer_Scale_Policy", "createObject", params, &r.Options, &resp) + return +} + +// no documentation yet +func (r Scale_Policy) DeleteObject() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Scale_Policy", "deleteObject", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Scale_Policy) EditObject(templateObject *datatypes.Scale_Policy) (resp bool, err error) { + params := []interface{}{ + templateObject, + } + err = r.Session.DoRequest("SoftLayer_Scale_Policy", "editObject", params, &r.Options, &resp) + return +} + +// Retrieve The actions to perform upon any trigger hit. Currently this must be a single value. +func (r Scale_Policy) GetActions() (resp []datatypes.Scale_Policy_Action, err error) { + err = r.Session.DoRequest("SoftLayer_Scale_Policy", "getActions", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Scale_Policy) GetObject() (resp datatypes.Scale_Policy, err error) { + err = r.Session.DoRequest("SoftLayer_Scale_Policy", "getObject", nil, &r.Options, &resp) + return +} + +// Retrieve The one-time triggers to check for this group. +func (r Scale_Policy) GetOneTimeTriggers() (resp []datatypes.Scale_Policy_Trigger_OneTime, err error) { + err = r.Session.DoRequest("SoftLayer_Scale_Policy", "getOneTimeTriggers", nil, &r.Options, &resp) + return +} + +// Retrieve The repeating triggers to check for this group. +func (r Scale_Policy) GetRepeatingTriggers() (resp []datatypes.Scale_Policy_Trigger_Repeating, err error) { + err = r.Session.DoRequest("SoftLayer_Scale_Policy", "getRepeatingTriggers", nil, &r.Options, &resp) + return +} + +// Retrieve The resource-use triggers to check for this group. +func (r Scale_Policy) GetResourceUseTriggers() (resp []datatypes.Scale_Policy_Trigger_ResourceUse, err error) { + err = r.Session.DoRequest("SoftLayer_Scale_Policy", "getResourceUseTriggers", nil, &r.Options, &resp) + return +} + +// Retrieve The scale actions to perform upon any trigger hit. Currently this must be a single value. +func (r Scale_Policy) GetScaleActions() (resp []datatypes.Scale_Policy_Action_Scale, err error) { + err = r.Session.DoRequest("SoftLayer_Scale_Policy", "getScaleActions", nil, &r.Options, &resp) + return +} + +// Retrieve The group this policy is on. +func (r Scale_Policy) GetScaleGroup() (resp datatypes.Scale_Group, err error) { + err = r.Session.DoRequest("SoftLayer_Scale_Policy", "getScaleGroup", nil, &r.Options, &resp) + return +} + +// Retrieve The triggers to check for this group. +func (r Scale_Policy) GetTriggers() (resp []datatypes.Scale_Policy_Trigger, err error) { + err = r.Session.DoRequest("SoftLayer_Scale_Policy", "getTriggers", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Scale_Policy) Trigger() (resp []datatypes.Scale_Member, err error) { + err = r.Session.DoRequest("SoftLayer_Scale_Policy", "trigger", nil, &r.Options, &resp) + return +} + +// no documentation yet +type Scale_Policy_Action struct { + Session *session.Session + Options sl.Options +} + +// GetScalePolicyActionService returns an instance of the Scale_Policy_Action SoftLayer service +func GetScalePolicyActionService(sess *session.Session) Scale_Policy_Action { + return Scale_Policy_Action{Session: sess} +} + +func (r Scale_Policy_Action) Id(id int) Scale_Policy_Action { + r.Options.Id = &id + return r +} + +func (r Scale_Policy_Action) Mask(mask string) Scale_Policy_Action { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Scale_Policy_Action) Filter(filter string) Scale_Policy_Action { + r.Options.Filter = filter + return r +} + +func (r Scale_Policy_Action) Limit(limit int) Scale_Policy_Action { + r.Options.Limit = &limit + return r +} + +func (r Scale_Policy_Action) Offset(offset int) Scale_Policy_Action { + r.Options.Offset = &offset + return r +} + +// no documentation yet +func (r Scale_Policy_Action) DeleteObject() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Scale_Policy_Action", "deleteObject", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Scale_Policy_Action) EditObject(templateObject *datatypes.Scale_Policy_Action) (resp bool, err error) { + params := []interface{}{ + templateObject, + } + err = r.Session.DoRequest("SoftLayer_Scale_Policy_Action", "editObject", params, &r.Options, &resp) + return +} + +// no documentation yet +func (r Scale_Policy_Action) GetObject() (resp datatypes.Scale_Policy_Action, err error) { + err = r.Session.DoRequest("SoftLayer_Scale_Policy_Action", "getObject", nil, &r.Options, &resp) + return +} + +// Retrieve The policy this action is on. +func (r Scale_Policy_Action) GetScalePolicy() (resp datatypes.Scale_Policy, err error) { + err = r.Session.DoRequest("SoftLayer_Scale_Policy_Action", "getScalePolicy", nil, &r.Options, &resp) + return +} + +// Retrieve The type of action. +func (r Scale_Policy_Action) GetType() (resp datatypes.Scale_Policy_Action_Type, err error) { + err = r.Session.DoRequest("SoftLayer_Scale_Policy_Action", "getType", nil, &r.Options, &resp) + return +} + +// no documentation yet +type Scale_Policy_Action_Scale struct { + Session *session.Session + Options sl.Options +} + +// GetScalePolicyActionScaleService returns an instance of the Scale_Policy_Action_Scale SoftLayer service +func GetScalePolicyActionScaleService(sess *session.Session) Scale_Policy_Action_Scale { + return Scale_Policy_Action_Scale{Session: sess} +} + +func (r Scale_Policy_Action_Scale) Id(id int) Scale_Policy_Action_Scale { + r.Options.Id = &id + return r +} + +func (r Scale_Policy_Action_Scale) Mask(mask string) Scale_Policy_Action_Scale { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Scale_Policy_Action_Scale) Filter(filter string) Scale_Policy_Action_Scale { + r.Options.Filter = filter + return r +} + +func (r Scale_Policy_Action_Scale) Limit(limit int) Scale_Policy_Action_Scale { + r.Options.Limit = &limit + return r +} + +func (r Scale_Policy_Action_Scale) Offset(offset int) Scale_Policy_Action_Scale { + r.Options.Offset = &offset + return r +} + +// no documentation yet +func (r Scale_Policy_Action_Scale) CreateObject(templateObject *datatypes.Scale_Policy_Action_Scale) (resp datatypes.Scale_Policy_Action_Scale, err error) { + params := []interface{}{ + templateObject, + } + err = r.Session.DoRequest("SoftLayer_Scale_Policy_Action_Scale", "createObject", params, &r.Options, &resp) + return +} + +// no documentation yet +func (r Scale_Policy_Action_Scale) DeleteObject() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Scale_Policy_Action_Scale", "deleteObject", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Scale_Policy_Action_Scale) EditObject(templateObject *datatypes.Scale_Policy_Action) (resp bool, err error) { + params := []interface{}{ + templateObject, + } + err = r.Session.DoRequest("SoftLayer_Scale_Policy_Action_Scale", "editObject", params, &r.Options, &resp) + return +} + +// no documentation yet +func (r Scale_Policy_Action_Scale) GetObject() (resp datatypes.Scale_Policy_Action_Scale, err error) { + err = r.Session.DoRequest("SoftLayer_Scale_Policy_Action_Scale", "getObject", nil, &r.Options, &resp) + return +} + +// Retrieve The policy this action is on. +func (r Scale_Policy_Action_Scale) GetScalePolicy() (resp datatypes.Scale_Policy, err error) { + err = r.Session.DoRequest("SoftLayer_Scale_Policy_Action_Scale", "getScalePolicy", nil, &r.Options, &resp) + return +} + +// Retrieve The type of action. +func (r Scale_Policy_Action_Scale) GetType() (resp datatypes.Scale_Policy_Action_Type, err error) { + err = r.Session.DoRequest("SoftLayer_Scale_Policy_Action_Scale", "getType", nil, &r.Options, &resp) + return +} + +// no documentation yet +type Scale_Policy_Action_Type struct { + Session *session.Session + Options sl.Options +} + +// GetScalePolicyActionTypeService returns an instance of the Scale_Policy_Action_Type SoftLayer service +func GetScalePolicyActionTypeService(sess *session.Session) Scale_Policy_Action_Type { + return Scale_Policy_Action_Type{Session: sess} +} + +func (r Scale_Policy_Action_Type) Id(id int) Scale_Policy_Action_Type { + r.Options.Id = &id + return r +} + +func (r Scale_Policy_Action_Type) Mask(mask string) Scale_Policy_Action_Type { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Scale_Policy_Action_Type) Filter(filter string) Scale_Policy_Action_Type { + r.Options.Filter = filter + return r +} + +func (r Scale_Policy_Action_Type) Limit(limit int) Scale_Policy_Action_Type { + r.Options.Limit = &limit + return r +} + +func (r Scale_Policy_Action_Type) Offset(offset int) Scale_Policy_Action_Type { + r.Options.Offset = &offset + return r +} + +// no documentation yet +func (r Scale_Policy_Action_Type) GetAllObjects() (resp []datatypes.Scale_Policy_Action_Type, err error) { + err = r.Session.DoRequest("SoftLayer_Scale_Policy_Action_Type", "getAllObjects", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Scale_Policy_Action_Type) GetObject() (resp datatypes.Scale_Policy_Action_Type, err error) { + err = r.Session.DoRequest("SoftLayer_Scale_Policy_Action_Type", "getObject", nil, &r.Options, &resp) + return +} + +// no documentation yet +type Scale_Policy_Trigger struct { + Session *session.Session + Options sl.Options +} + +// GetScalePolicyTriggerService returns an instance of the Scale_Policy_Trigger SoftLayer service +func GetScalePolicyTriggerService(sess *session.Session) Scale_Policy_Trigger { + return Scale_Policy_Trigger{Session: sess} +} + +func (r Scale_Policy_Trigger) Id(id int) Scale_Policy_Trigger { + r.Options.Id = &id + return r +} + +func (r Scale_Policy_Trigger) Mask(mask string) Scale_Policy_Trigger { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Scale_Policy_Trigger) Filter(filter string) Scale_Policy_Trigger { + r.Options.Filter = filter + return r +} + +func (r Scale_Policy_Trigger) Limit(limit int) Scale_Policy_Trigger { + r.Options.Limit = &limit + return r +} + +func (r Scale_Policy_Trigger) Offset(offset int) Scale_Policy_Trigger { + r.Options.Offset = &offset + return r +} + +// no documentation yet +func (r Scale_Policy_Trigger) CreateObject(templateObject *datatypes.Scale_Policy_Trigger) (resp datatypes.Scale_Policy_Trigger, err error) { + params := []interface{}{ + templateObject, + } + err = r.Session.DoRequest("SoftLayer_Scale_Policy_Trigger", "createObject", params, &r.Options, &resp) + return +} + +// no documentation yet +func (r Scale_Policy_Trigger) DeleteObject() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Scale_Policy_Trigger", "deleteObject", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Scale_Policy_Trigger) EditObject(templateObject *datatypes.Scale_Policy_Trigger) (resp bool, err error) { + params := []interface{}{ + templateObject, + } + err = r.Session.DoRequest("SoftLayer_Scale_Policy_Trigger", "editObject", params, &r.Options, &resp) + return +} + +// no documentation yet +func (r Scale_Policy_Trigger) GetObject() (resp datatypes.Scale_Policy_Trigger, err error) { + err = r.Session.DoRequest("SoftLayer_Scale_Policy_Trigger", "getObject", nil, &r.Options, &resp) + return +} + +// Retrieve The policy this trigger is on. +func (r Scale_Policy_Trigger) GetScalePolicy() (resp datatypes.Scale_Policy, err error) { + err = r.Session.DoRequest("SoftLayer_Scale_Policy_Trigger", "getScalePolicy", nil, &r.Options, &resp) + return +} + +// Retrieve The type of trigger. +func (r Scale_Policy_Trigger) GetType() (resp datatypes.Scale_Policy_Trigger_Type, err error) { + err = r.Session.DoRequest("SoftLayer_Scale_Policy_Trigger", "getType", nil, &r.Options, &resp) + return +} + +// no documentation yet +type Scale_Policy_Trigger_OneTime struct { + Session *session.Session + Options sl.Options +} + +// GetScalePolicyTriggerOneTimeService returns an instance of the Scale_Policy_Trigger_OneTime SoftLayer service +func GetScalePolicyTriggerOneTimeService(sess *session.Session) Scale_Policy_Trigger_OneTime { + return Scale_Policy_Trigger_OneTime{Session: sess} +} + +func (r Scale_Policy_Trigger_OneTime) Id(id int) Scale_Policy_Trigger_OneTime { + r.Options.Id = &id + return r +} + +func (r Scale_Policy_Trigger_OneTime) Mask(mask string) Scale_Policy_Trigger_OneTime { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Scale_Policy_Trigger_OneTime) Filter(filter string) Scale_Policy_Trigger_OneTime { + r.Options.Filter = filter + return r +} + +func (r Scale_Policy_Trigger_OneTime) Limit(limit int) Scale_Policy_Trigger_OneTime { + r.Options.Limit = &limit + return r +} + +func (r Scale_Policy_Trigger_OneTime) Offset(offset int) Scale_Policy_Trigger_OneTime { + r.Options.Offset = &offset + return r +} + +// no documentation yet +func (r Scale_Policy_Trigger_OneTime) CreateObject(templateObject *datatypes.Scale_Policy_Trigger_OneTime) (resp datatypes.Scale_Policy_Trigger_OneTime, err error) { + params := []interface{}{ + templateObject, + } + err = r.Session.DoRequest("SoftLayer_Scale_Policy_Trigger_OneTime", "createObject", params, &r.Options, &resp) + return +} + +// no documentation yet +func (r Scale_Policy_Trigger_OneTime) DeleteObject() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Scale_Policy_Trigger_OneTime", "deleteObject", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Scale_Policy_Trigger_OneTime) EditObject(templateObject *datatypes.Scale_Policy_Trigger) (resp bool, err error) { + params := []interface{}{ + templateObject, + } + err = r.Session.DoRequest("SoftLayer_Scale_Policy_Trigger_OneTime", "editObject", params, &r.Options, &resp) + return +} + +// no documentation yet +func (r Scale_Policy_Trigger_OneTime) GetObject() (resp datatypes.Scale_Policy_Trigger_OneTime, err error) { + err = r.Session.DoRequest("SoftLayer_Scale_Policy_Trigger_OneTime", "getObject", nil, &r.Options, &resp) + return +} + +// Retrieve The policy this trigger is on. +func (r Scale_Policy_Trigger_OneTime) GetScalePolicy() (resp datatypes.Scale_Policy, err error) { + err = r.Session.DoRequest("SoftLayer_Scale_Policy_Trigger_OneTime", "getScalePolicy", nil, &r.Options, &resp) + return +} + +// Retrieve The type of trigger. +func (r Scale_Policy_Trigger_OneTime) GetType() (resp datatypes.Scale_Policy_Trigger_Type, err error) { + err = r.Session.DoRequest("SoftLayer_Scale_Policy_Trigger_OneTime", "getType", nil, &r.Options, &resp) + return +} + +// no documentation yet +type Scale_Policy_Trigger_Repeating struct { + Session *session.Session + Options sl.Options +} + +// GetScalePolicyTriggerRepeatingService returns an instance of the Scale_Policy_Trigger_Repeating SoftLayer service +func GetScalePolicyTriggerRepeatingService(sess *session.Session) Scale_Policy_Trigger_Repeating { + return Scale_Policy_Trigger_Repeating{Session: sess} +} + +func (r Scale_Policy_Trigger_Repeating) Id(id int) Scale_Policy_Trigger_Repeating { + r.Options.Id = &id + return r +} + +func (r Scale_Policy_Trigger_Repeating) Mask(mask string) Scale_Policy_Trigger_Repeating { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Scale_Policy_Trigger_Repeating) Filter(filter string) Scale_Policy_Trigger_Repeating { + r.Options.Filter = filter + return r +} + +func (r Scale_Policy_Trigger_Repeating) Limit(limit int) Scale_Policy_Trigger_Repeating { + r.Options.Limit = &limit + return r +} + +func (r Scale_Policy_Trigger_Repeating) Offset(offset int) Scale_Policy_Trigger_Repeating { + r.Options.Offset = &offset + return r +} + +// no documentation yet +func (r Scale_Policy_Trigger_Repeating) CreateObject(templateObject *datatypes.Scale_Policy_Trigger_Repeating) (resp datatypes.Scale_Policy_Trigger_Repeating, err error) { + params := []interface{}{ + templateObject, + } + err = r.Session.DoRequest("SoftLayer_Scale_Policy_Trigger_Repeating", "createObject", params, &r.Options, &resp) + return +} + +// no documentation yet +func (r Scale_Policy_Trigger_Repeating) DeleteObject() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Scale_Policy_Trigger_Repeating", "deleteObject", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Scale_Policy_Trigger_Repeating) EditObject(templateObject *datatypes.Scale_Policy_Trigger) (resp bool, err error) { + params := []interface{}{ + templateObject, + } + err = r.Session.DoRequest("SoftLayer_Scale_Policy_Trigger_Repeating", "editObject", params, &r.Options, &resp) + return +} + +// no documentation yet +func (r Scale_Policy_Trigger_Repeating) GetObject() (resp datatypes.Scale_Policy_Trigger_Repeating, err error) { + err = r.Session.DoRequest("SoftLayer_Scale_Policy_Trigger_Repeating", "getObject", nil, &r.Options, &resp) + return +} + +// Retrieve The policy this trigger is on. +func (r Scale_Policy_Trigger_Repeating) GetScalePolicy() (resp datatypes.Scale_Policy, err error) { + err = r.Session.DoRequest("SoftLayer_Scale_Policy_Trigger_Repeating", "getScalePolicy", nil, &r.Options, &resp) + return +} + +// Retrieve The type of trigger. +func (r Scale_Policy_Trigger_Repeating) GetType() (resp datatypes.Scale_Policy_Trigger_Type, err error) { + err = r.Session.DoRequest("SoftLayer_Scale_Policy_Trigger_Repeating", "getType", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Scale_Policy_Trigger_Repeating) ValidateCronExpression(expression *string) (err error) { + var resp datatypes.Void + params := []interface{}{ + expression, + } + err = r.Session.DoRequest("SoftLayer_Scale_Policy_Trigger_Repeating", "validateCronExpression", params, &r.Options, &resp) + return +} + +// no documentation yet +type Scale_Policy_Trigger_ResourceUse struct { + Session *session.Session + Options sl.Options +} + +// GetScalePolicyTriggerResourceUseService returns an instance of the Scale_Policy_Trigger_ResourceUse SoftLayer service +func GetScalePolicyTriggerResourceUseService(sess *session.Session) Scale_Policy_Trigger_ResourceUse { + return Scale_Policy_Trigger_ResourceUse{Session: sess} +} + +func (r Scale_Policy_Trigger_ResourceUse) Id(id int) Scale_Policy_Trigger_ResourceUse { + r.Options.Id = &id + return r +} + +func (r Scale_Policy_Trigger_ResourceUse) Mask(mask string) Scale_Policy_Trigger_ResourceUse { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Scale_Policy_Trigger_ResourceUse) Filter(filter string) Scale_Policy_Trigger_ResourceUse { + r.Options.Filter = filter + return r +} + +func (r Scale_Policy_Trigger_ResourceUse) Limit(limit int) Scale_Policy_Trigger_ResourceUse { + r.Options.Limit = &limit + return r +} + +func (r Scale_Policy_Trigger_ResourceUse) Offset(offset int) Scale_Policy_Trigger_ResourceUse { + r.Options.Offset = &offset + return r +} + +// no documentation yet +func (r Scale_Policy_Trigger_ResourceUse) CreateObject(templateObject *datatypes.Scale_Policy_Trigger_ResourceUse) (resp datatypes.Scale_Policy_Trigger_ResourceUse, err error) { + params := []interface{}{ + templateObject, + } + err = r.Session.DoRequest("SoftLayer_Scale_Policy_Trigger_ResourceUse", "createObject", params, &r.Options, &resp) + return +} + +// no documentation yet +func (r Scale_Policy_Trigger_ResourceUse) DeleteObject() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Scale_Policy_Trigger_ResourceUse", "deleteObject", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Scale_Policy_Trigger_ResourceUse) EditObject(templateObject *datatypes.Scale_Policy_Trigger) (resp bool, err error) { + params := []interface{}{ + templateObject, + } + err = r.Session.DoRequest("SoftLayer_Scale_Policy_Trigger_ResourceUse", "editObject", params, &r.Options, &resp) + return +} + +// no documentation yet +func (r Scale_Policy_Trigger_ResourceUse) GetObject() (resp datatypes.Scale_Policy_Trigger_ResourceUse, err error) { + err = r.Session.DoRequest("SoftLayer_Scale_Policy_Trigger_ResourceUse", "getObject", nil, &r.Options, &resp) + return +} + +// Retrieve The policy this trigger is on. +func (r Scale_Policy_Trigger_ResourceUse) GetScalePolicy() (resp datatypes.Scale_Policy, err error) { + err = r.Session.DoRequest("SoftLayer_Scale_Policy_Trigger_ResourceUse", "getScalePolicy", nil, &r.Options, &resp) + return +} + +// Retrieve The type of trigger. +func (r Scale_Policy_Trigger_ResourceUse) GetType() (resp datatypes.Scale_Policy_Trigger_Type, err error) { + err = r.Session.DoRequest("SoftLayer_Scale_Policy_Trigger_ResourceUse", "getType", nil, &r.Options, &resp) + return +} + +// Retrieve The resource watches for this trigger. +func (r Scale_Policy_Trigger_ResourceUse) GetWatches() (resp []datatypes.Scale_Policy_Trigger_ResourceUse_Watch, err error) { + err = r.Session.DoRequest("SoftLayer_Scale_Policy_Trigger_ResourceUse", "getWatches", nil, &r.Options, &resp) + return +} + +// no documentation yet +type Scale_Policy_Trigger_ResourceUse_Watch struct { + Session *session.Session + Options sl.Options +} + +// GetScalePolicyTriggerResourceUseWatchService returns an instance of the Scale_Policy_Trigger_ResourceUse_Watch SoftLayer service +func GetScalePolicyTriggerResourceUseWatchService(sess *session.Session) Scale_Policy_Trigger_ResourceUse_Watch { + return Scale_Policy_Trigger_ResourceUse_Watch{Session: sess} +} + +func (r Scale_Policy_Trigger_ResourceUse_Watch) Id(id int) Scale_Policy_Trigger_ResourceUse_Watch { + r.Options.Id = &id + return r +} + +func (r Scale_Policy_Trigger_ResourceUse_Watch) Mask(mask string) Scale_Policy_Trigger_ResourceUse_Watch { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Scale_Policy_Trigger_ResourceUse_Watch) Filter(filter string) Scale_Policy_Trigger_ResourceUse_Watch { + r.Options.Filter = filter + return r +} + +func (r Scale_Policy_Trigger_ResourceUse_Watch) Limit(limit int) Scale_Policy_Trigger_ResourceUse_Watch { + r.Options.Limit = &limit + return r +} + +func (r Scale_Policy_Trigger_ResourceUse_Watch) Offset(offset int) Scale_Policy_Trigger_ResourceUse_Watch { + r.Options.Offset = &offset + return r +} + +// no documentation yet +func (r Scale_Policy_Trigger_ResourceUse_Watch) CreateObject(templateObject *datatypes.Scale_Policy_Trigger_ResourceUse_Watch) (resp datatypes.Scale_Policy_Trigger_ResourceUse_Watch, err error) { + params := []interface{}{ + templateObject, + } + err = r.Session.DoRequest("SoftLayer_Scale_Policy_Trigger_ResourceUse_Watch", "createObject", params, &r.Options, &resp) + return +} + +// no documentation yet +func (r Scale_Policy_Trigger_ResourceUse_Watch) DeleteObject() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Scale_Policy_Trigger_ResourceUse_Watch", "deleteObject", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Scale_Policy_Trigger_ResourceUse_Watch) EditObject(templateObject *datatypes.Scale_Policy_Trigger_ResourceUse_Watch) (resp bool, err error) { + params := []interface{}{ + templateObject, + } + err = r.Session.DoRequest("SoftLayer_Scale_Policy_Trigger_ResourceUse_Watch", "editObject", params, &r.Options, &resp) + return +} + +// no documentation yet +func (r Scale_Policy_Trigger_ResourceUse_Watch) GetAllPossibleAlgorithms() (resp []string, err error) { + err = r.Session.DoRequest("SoftLayer_Scale_Policy_Trigger_ResourceUse_Watch", "getAllPossibleAlgorithms", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Scale_Policy_Trigger_ResourceUse_Watch) GetAllPossibleMetrics() (resp []string, err error) { + err = r.Session.DoRequest("SoftLayer_Scale_Policy_Trigger_ResourceUse_Watch", "getAllPossibleMetrics", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Scale_Policy_Trigger_ResourceUse_Watch) GetAllPossibleOperators() (resp []string, err error) { + err = r.Session.DoRequest("SoftLayer_Scale_Policy_Trigger_ResourceUse_Watch", "getAllPossibleOperators", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Scale_Policy_Trigger_ResourceUse_Watch) GetObject() (resp datatypes.Scale_Policy_Trigger_ResourceUse_Watch, err error) { + err = r.Session.DoRequest("SoftLayer_Scale_Policy_Trigger_ResourceUse_Watch", "getObject", nil, &r.Options, &resp) + return +} + +// Retrieve The trigger this watch is on. +func (r Scale_Policy_Trigger_ResourceUse_Watch) GetScalePolicyTrigger() (resp datatypes.Scale_Policy_Trigger_ResourceUse, err error) { + err = r.Session.DoRequest("SoftLayer_Scale_Policy_Trigger_ResourceUse_Watch", "getScalePolicyTrigger", nil, &r.Options, &resp) + return +} + +// no documentation yet +type Scale_Policy_Trigger_Type struct { + Session *session.Session + Options sl.Options +} + +// GetScalePolicyTriggerTypeService returns an instance of the Scale_Policy_Trigger_Type SoftLayer service +func GetScalePolicyTriggerTypeService(sess *session.Session) Scale_Policy_Trigger_Type { + return Scale_Policy_Trigger_Type{Session: sess} +} + +func (r Scale_Policy_Trigger_Type) Id(id int) Scale_Policy_Trigger_Type { + r.Options.Id = &id + return r +} + +func (r Scale_Policy_Trigger_Type) Mask(mask string) Scale_Policy_Trigger_Type { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Scale_Policy_Trigger_Type) Filter(filter string) Scale_Policy_Trigger_Type { + r.Options.Filter = filter + return r +} + +func (r Scale_Policy_Trigger_Type) Limit(limit int) Scale_Policy_Trigger_Type { + r.Options.Limit = &limit + return r +} + +func (r Scale_Policy_Trigger_Type) Offset(offset int) Scale_Policy_Trigger_Type { + r.Options.Offset = &offset + return r +} + +// no documentation yet +func (r Scale_Policy_Trigger_Type) GetAllObjects() (resp []datatypes.Scale_Policy_Trigger_Type, err error) { + err = r.Session.DoRequest("SoftLayer_Scale_Policy_Trigger_Type", "getAllObjects", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Scale_Policy_Trigger_Type) GetObject() (resp datatypes.Scale_Policy_Trigger_Type, err error) { + err = r.Session.DoRequest("SoftLayer_Scale_Policy_Trigger_Type", "getObject", nil, &r.Options, &resp) + return +} + +// no documentation yet +type Scale_Termination_Policy struct { + Session *session.Session + Options sl.Options +} + +// GetScaleTerminationPolicyService returns an instance of the Scale_Termination_Policy SoftLayer service +func GetScaleTerminationPolicyService(sess *session.Session) Scale_Termination_Policy { + return Scale_Termination_Policy{Session: sess} +} + +func (r Scale_Termination_Policy) Id(id int) Scale_Termination_Policy { + r.Options.Id = &id + return r +} + +func (r Scale_Termination_Policy) Mask(mask string) Scale_Termination_Policy { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Scale_Termination_Policy) Filter(filter string) Scale_Termination_Policy { + r.Options.Filter = filter + return r +} + +func (r Scale_Termination_Policy) Limit(limit int) Scale_Termination_Policy { + r.Options.Limit = &limit + return r +} + +func (r Scale_Termination_Policy) Offset(offset int) Scale_Termination_Policy { + r.Options.Offset = &offset + return r +} + +// no documentation yet +func (r Scale_Termination_Policy) GetAllObjects() (resp []datatypes.Scale_Termination_Policy, err error) { + err = r.Session.DoRequest("SoftLayer_Scale_Termination_Policy", "getAllObjects", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Scale_Termination_Policy) GetObject() (resp datatypes.Scale_Termination_Policy, err error) { + err = r.Session.DoRequest("SoftLayer_Scale_Termination_Policy", "getObject", nil, &r.Options, &resp) + return +} diff --git a/vendor/github.com/softlayer/softlayer-go/services/search.go b/vendor/github.com/softlayer/softlayer-go/services/search.go new file mode 100644 index 000000000..572069990 --- /dev/null +++ b/vendor/github.com/softlayer/softlayer-go/services/search.go @@ -0,0 +1,122 @@ +/** + * Copyright 2016 IBM Corp. + * + * 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. + */ + +/** + * AUTOMATICALLY GENERATED CODE - DO NOT MODIFY + */ + +package services + +import ( + "fmt" + "strings" + + "github.com/softlayer/softlayer-go/datatypes" + "github.com/softlayer/softlayer-go/session" + "github.com/softlayer/softlayer-go/sl" +) + +// no documentation yet +type Search struct { + Session *session.Session + Options sl.Options +} + +// GetSearchService returns an instance of the Search SoftLayer service +func GetSearchService(sess *session.Session) Search { + return Search{Session: sess} +} + +func (r Search) Id(id int) Search { + r.Options.Id = &id + return r +} + +func (r Search) Mask(mask string) Search { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Search) Filter(filter string) Search { + r.Options.Filter = filter + return r +} + +func (r Search) Limit(limit int) Search { + r.Options.Limit = &limit + return r +} + +func (r Search) Offset(offset int) Search { + r.Options.Offset = &offset + return r +} + +// This method allows for searching for SoftLayer resources by simple terms and operators. Fields that are used for searching will be available at sldn.softlayer.com. It returns a collection or array of [[SoftLayer_Container_Search_Result (type)|SoftLayer_Container_Search_Result]] objects that have search metadata for each result and the resulting resource found. +// +// The advancedSearch() method recognizes the special _objectType: quantifier in search strings. See the documentation for the [[SoftLayer_Search/search|search()]] method on how to restrict searches using object types. +// +// The advancedSearch() method recognizes [[SoftLayer_Container_Search_ObjectType_Property (type)|object properties]], which can also be used to limit searches. Example: +// +// _objectType:Type_1 propertyA:value +// +// A search string can specify multiple properties, separated with spaces. Example: +// +// _objectType:Type_1 propertyA:value propertyB:value +// +// A collection of available object types and their properties can be retrieved by calling the [[SoftLayer_Search/getObjectTypes|getObjectTypes()]] method. +func (r Search) AdvancedSearch(searchString *string) (resp []datatypes.Container_Search_Result, err error) { + params := []interface{}{ + searchString, + } + err = r.Session.DoRequest("SoftLayer_Search", "advancedSearch", params, &r.Options, &resp) + return +} + +// This method returns a collection of [[SoftLayer_Container_Search_ObjectType (type)|SoftLayer_Container_Search_ObjectType]] containers that specify which indexed object types and properties are exposed for the current user. These object types can be used to discover searchable data and to create or validate object index search strings. +// +//

    Refer to the [[SoftLayer_Search/search|search()]] and [[SoftLayer_Search/advancedSearch|advancedSearch()]] methods for information on using object types and properties in search strings. +func (r Search) GetObjectTypes() (resp []datatypes.Container_Search_ObjectType, err error) { + err = r.Session.DoRequest("SoftLayer_Search", "getObjectTypes", nil, &r.Options, &resp) + return +} + +// This method allows for searching for SoftLayer resources by simple phrase. It returns a collection or array of [[SoftLayer_Container_Search_Result (type)|SoftLayer_Container_Search_Result]] objects that have search metadata for each result and the resulting resource found. +// +// This method recognizes the special _objectType: quantifier in search strings. This quantifier can be used to restrict a search to specific object types. Example usage: +// +// _objectType:Type_1 (other search terms...) +// +// A search string can specify multiple object types, separated by commas (no spaces are permitted between the type names). Example: +// +// _objectType:Type_1,Type_2,Type_3 (other search terms...) +// +// If the list of object types is prefixed with a hyphen or minus sign (-), then the specified types are excluded from the search. Example: +// +// _objectType:-Type_4,Type_5 (other search terms...) +// +// A collection of available object types can be retrieved by calling the [[SoftLayer_Search/getObjectTypes|getObjectTypes()]] method. +func (r Search) Search(searchString *string) (resp []datatypes.Container_Search_Result, err error) { + params := []interface{}{ + searchString, + } + err = r.Session.DoRequest("SoftLayer_Search", "search", params, &r.Options, &resp) + return +} diff --git a/vendor/github.com/softlayer/softlayer-go/services/security.go b/vendor/github.com/softlayer/softlayer-go/services/security.go new file mode 100644 index 000000000..1a6fb2228 --- /dev/null +++ b/vendor/github.com/softlayer/softlayer-go/services/security.go @@ -0,0 +1,456 @@ +/** + * Copyright 2016 IBM Corp. + * + * 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. + */ + +/** + * AUTOMATICALLY GENERATED CODE - DO NOT MODIFY + */ + +package services + +import ( + "fmt" + "strings" + + "github.com/softlayer/softlayer-go/datatypes" + "github.com/softlayer/softlayer-go/session" + "github.com/softlayer/softlayer-go/sl" +) + +// no documentation yet +type Security_Certificate struct { + Session *session.Session + Options sl.Options +} + +// GetSecurityCertificateService returns an instance of the Security_Certificate SoftLayer service +func GetSecurityCertificateService(sess *session.Session) Security_Certificate { + return Security_Certificate{Session: sess} +} + +func (r Security_Certificate) Id(id int) Security_Certificate { + r.Options.Id = &id + return r +} + +func (r Security_Certificate) Mask(mask string) Security_Certificate { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Security_Certificate) Filter(filter string) Security_Certificate { + r.Options.Filter = filter + return r +} + +func (r Security_Certificate) Limit(limit int) Security_Certificate { + r.Options.Limit = &limit + return r +} + +func (r Security_Certificate) Offset(offset int) Security_Certificate { + r.Options.Offset = &offset + return r +} + +// Add a certificate to your account for your records, or for use with various services. Only the certificate and private key are usually required. If your issuer provided an intermediate certificate, you must also provide that certificate. Details will be extracted from the certificate. Validation will be performed between the certificate and the private key as well as the certificate and the intermediate certificate, if provided. +// +// The certificate signing request is not required, but can be provided for your records. +func (r Security_Certificate) CreateObject(templateObject *datatypes.Security_Certificate) (resp datatypes.Security_Certificate, err error) { + params := []interface{}{ + templateObject, + } + err = r.Session.DoRequest("SoftLayer_Security_Certificate", "createObject", params, &r.Options, &resp) + return +} + +// Remove a certificate from your account. You may not remove a certificate with associated services. +func (r Security_Certificate) DeleteObject() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Security_Certificate", "deleteObject", nil, &r.Options, &resp) + return +} + +// Update a certificate. Modifications are restricted to the note and CSR if the are any services associated with the certificate. There are no modification restrictions for a certificate with no associated services. +func (r Security_Certificate) EditObject(templateObject *datatypes.Security_Certificate) (resp bool, err error) { + params := []interface{}{ + templateObject, + } + err = r.Session.DoRequest("SoftLayer_Security_Certificate", "editObject", params, &r.Options, &resp) + return +} + +// Locate certificates by their common name, traditionally a domain name. +func (r Security_Certificate) FindByCommonName(commonName *string) (resp []datatypes.Security_Certificate, err error) { + params := []interface{}{ + commonName, + } + err = r.Session.DoRequest("SoftLayer_Security_Certificate", "findByCommonName", params, &r.Options, &resp) + return +} + +// Retrieve The number of services currently associated with the certificate. +func (r Security_Certificate) GetAssociatedServiceCount() (resp int, err error) { + err = r.Session.DoRequest("SoftLayer_Security_Certificate", "getAssociatedServiceCount", nil, &r.Options, &resp) + return +} + +// Retrieve The load balancers virtual IP addresses currently associated with the certificate. +func (r Security_Certificate) GetLoadBalancerVirtualIpAddresses() (resp []datatypes.Network_Application_Delivery_Controller_LoadBalancer_VirtualIpAddress, err error) { + err = r.Session.DoRequest("SoftLayer_Security_Certificate", "getLoadBalancerVirtualIpAddresses", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Security_Certificate) GetObject() (resp datatypes.Security_Certificate, err error) { + err = r.Session.DoRequest("SoftLayer_Security_Certificate", "getObject", nil, &r.Options, &resp) + return +} + +// Retrieve the certificate in PEM (Privacy Enhanced Mail) format, which is a string containing all base64 encoded (DER) certificates delimited by -----BEGIN/END *----- clauses. +func (r Security_Certificate) GetPemFormat() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_Security_Certificate", "getPemFormat", nil, &r.Options, &resp) + return +} + +// SoftLayer_Security_Certificate_Request data type is used to harness your SSL certificate order to a Certificate Authority. This contains data that is required by a Certificate Authority to place an SSL certificate order. +type Security_Certificate_Request struct { + Session *session.Session + Options sl.Options +} + +// GetSecurityCertificateRequestService returns an instance of the Security_Certificate_Request SoftLayer service +func GetSecurityCertificateRequestService(sess *session.Session) Security_Certificate_Request { + return Security_Certificate_Request{Session: sess} +} + +func (r Security_Certificate_Request) Id(id int) Security_Certificate_Request { + r.Options.Id = &id + return r +} + +func (r Security_Certificate_Request) Mask(mask string) Security_Certificate_Request { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Security_Certificate_Request) Filter(filter string) Security_Certificate_Request { + r.Options.Filter = filter + return r +} + +func (r Security_Certificate_Request) Limit(limit int) Security_Certificate_Request { + r.Options.Limit = &limit + return r +} + +func (r Security_Certificate_Request) Offset(offset int) Security_Certificate_Request { + r.Options.Offset = &offset + return r +} + +// Cancels a pending SSL certificate order at the Certificate Authority +func (r Security_Certificate_Request) CancelSslOrder() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Security_Certificate_Request", "cancelSslOrder", nil, &r.Options, &resp) + return +} + +// Retrieve The account to which a SSL certificate request belongs. +func (r Security_Certificate_Request) GetAccount() (resp datatypes.Account, err error) { + err = r.Session.DoRequest("SoftLayer_Security_Certificate_Request", "getAccount", nil, &r.Options, &resp) + return +} + +// Gets the email domains that can be used to validate a certificate to a domain. +func (r Security_Certificate_Request) GetAdministratorEmailDomains(commonName *string) (resp []string, err error) { + params := []interface{}{ + commonName, + } + err = r.Session.DoRequest("SoftLayer_Security_Certificate_Request", "getAdministratorEmailDomains", params, &r.Options, &resp) + return +} + +// Gets the email accounts that can be used to validate a certificate to a domain. +func (r Security_Certificate_Request) GetAdministratorEmailPrefixes() (resp []string, err error) { + err = r.Session.DoRequest("SoftLayer_Security_Certificate_Request", "getAdministratorEmailPrefixes", nil, &r.Options, &resp) + return +} + +// Retrieve The Certificate Authority name +func (r Security_Certificate_Request) GetCertificateAuthorityName() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_Security_Certificate_Request", "getCertificateAuthorityName", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Security_Certificate_Request) GetObject() (resp datatypes.Security_Certificate_Request, err error) { + err = r.Session.DoRequest("SoftLayer_Security_Certificate_Request", "getObject", nil, &r.Options, &resp) + return +} + +// Retrieve The order contains the information related to a SSL certificate request. +func (r Security_Certificate_Request) GetOrder() (resp datatypes.Billing_Order, err error) { + err = r.Session.DoRequest("SoftLayer_Security_Certificate_Request", "getOrder", nil, &r.Options, &resp) + return +} + +// Retrieve The associated order item for this SSL certificate request. +func (r Security_Certificate_Request) GetOrderItem() (resp datatypes.Billing_Order_Item, err error) { + err = r.Session.DoRequest("SoftLayer_Security_Certificate_Request", "getOrderItem", nil, &r.Options, &resp) + return +} + +// Returns previous SSL certificate order data. You can use this data for to place a renewal order for a completed SSL certificate. +func (r Security_Certificate_Request) GetPreviousOrderData() (resp datatypes.Container_Product_Order_Security_Certificate, err error) { + err = r.Session.DoRequest("SoftLayer_Security_Certificate_Request", "getPreviousOrderData", nil, &r.Options, &resp) + return +} + +// Returns all the SSL certificate requests. +func (r Security_Certificate_Request) GetSslCertificateRequests(accountId *int) (resp []datatypes.Security_Certificate_Request, err error) { + params := []interface{}{ + accountId, + } + err = r.Session.DoRequest("SoftLayer_Security_Certificate_Request", "getSslCertificateRequests", params, &r.Options, &resp) + return +} + +// Retrieve The status of a SSL certificate request. +func (r Security_Certificate_Request) GetStatus() (resp datatypes.Security_Certificate_Request_Status, err error) { + err = r.Session.DoRequest("SoftLayer_Security_Certificate_Request", "getStatus", nil, &r.Options, &resp) + return +} + +// A Certificate Authority sends out various emails to your domain administrator or your technical contact. Use this service to have these emails re-sent. +func (r Security_Certificate_Request) ResendEmail(emailType *string) (resp bool, err error) { + params := []interface{}{ + emailType, + } + err = r.Session.DoRequest("SoftLayer_Security_Certificate_Request", "resendEmail", params, &r.Options, &resp) + return +} + +// Allows you to validate a Certificate Signing Request (CSR) required for an SSL certificate with the certificate authority (CA). This method sends the CSR, the length of the subscription in months, the certificate type, and the server type for validation against requirements of the CA. Returns true if valid. +// +// More information on CSR generation can be found at: [http://en.wikipedia.org/wiki/Certificate_signing_request Wikipedia] [https://knowledge.verisign.com/support/ssl-certificates-support/index?page=content&id=AR235&actp=LIST&viewlocale=en_US VeriSign] +func (r Security_Certificate_Request) ValidateCsr(csr *string, validityMonths *int, itemId *int, serverType *string) (resp bool, err error) { + params := []interface{}{ + csr, + validityMonths, + itemId, + serverType, + } + err = r.Session.DoRequest("SoftLayer_Security_Certificate_Request", "validateCsr", params, &r.Options, &resp) + return +} + +// Represents a server type that can be specified when ordering an SSL certificate. +type Security_Certificate_Request_ServerType struct { + Session *session.Session + Options sl.Options +} + +// GetSecurityCertificateRequestServerTypeService returns an instance of the Security_Certificate_Request_ServerType SoftLayer service +func GetSecurityCertificateRequestServerTypeService(sess *session.Session) Security_Certificate_Request_ServerType { + return Security_Certificate_Request_ServerType{Session: sess} +} + +func (r Security_Certificate_Request_ServerType) Id(id int) Security_Certificate_Request_ServerType { + r.Options.Id = &id + return r +} + +func (r Security_Certificate_Request_ServerType) Mask(mask string) Security_Certificate_Request_ServerType { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Security_Certificate_Request_ServerType) Filter(filter string) Security_Certificate_Request_ServerType { + r.Options.Filter = filter + return r +} + +func (r Security_Certificate_Request_ServerType) Limit(limit int) Security_Certificate_Request_ServerType { + r.Options.Limit = &limit + return r +} + +func (r Security_Certificate_Request_ServerType) Offset(offset int) Security_Certificate_Request_ServerType { + r.Options.Offset = &offset + return r +} + +// Returns all SSL certificate server types, which are passed in on a [[SoftLayer_Container_Product_Order_Security_Certificate|certificate order]]. +func (r Security_Certificate_Request_ServerType) GetAllObjects() (resp []datatypes.Security_Certificate_Request_ServerType, err error) { + err = r.Session.DoRequest("SoftLayer_Security_Certificate_Request_ServerType", "getAllObjects", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Security_Certificate_Request_ServerType) GetObject() (resp datatypes.Security_Certificate_Request_ServerType, err error) { + err = r.Session.DoRequest("SoftLayer_Security_Certificate_Request_ServerType", "getObject", nil, &r.Options, &resp) + return +} + +// Represents the status of an SSL certificate request. +type Security_Certificate_Request_Status struct { + Session *session.Session + Options sl.Options +} + +// GetSecurityCertificateRequestStatusService returns an instance of the Security_Certificate_Request_Status SoftLayer service +func GetSecurityCertificateRequestStatusService(sess *session.Session) Security_Certificate_Request_Status { + return Security_Certificate_Request_Status{Session: sess} +} + +func (r Security_Certificate_Request_Status) Id(id int) Security_Certificate_Request_Status { + r.Options.Id = &id + return r +} + +func (r Security_Certificate_Request_Status) Mask(mask string) Security_Certificate_Request_Status { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Security_Certificate_Request_Status) Filter(filter string) Security_Certificate_Request_Status { + r.Options.Filter = filter + return r +} + +func (r Security_Certificate_Request_Status) Limit(limit int) Security_Certificate_Request_Status { + r.Options.Limit = &limit + return r +} + +func (r Security_Certificate_Request_Status) Offset(offset int) Security_Certificate_Request_Status { + r.Options.Offset = &offset + return r +} + +// no documentation yet +func (r Security_Certificate_Request_Status) GetObject() (resp datatypes.Security_Certificate_Request_Status, err error) { + err = r.Session.DoRequest("SoftLayer_Security_Certificate_Request_Status", "getObject", nil, &r.Options, &resp) + return +} + +// Returns all SSL certificate request status objects +func (r Security_Certificate_Request_Status) GetSslRequestStatuses() (resp []datatypes.Security_Certificate_Request_Status, err error) { + err = r.Session.DoRequest("SoftLayer_Security_Certificate_Request_Status", "getSslRequestStatuses", nil, &r.Options, &resp) + return +} + +// no documentation yet +type Security_Ssh_Key struct { + Session *session.Session + Options sl.Options +} + +// GetSecuritySshKeyService returns an instance of the Security_Ssh_Key SoftLayer service +func GetSecuritySshKeyService(sess *session.Session) Security_Ssh_Key { + return Security_Ssh_Key{Session: sess} +} + +func (r Security_Ssh_Key) Id(id int) Security_Ssh_Key { + r.Options.Id = &id + return r +} + +func (r Security_Ssh_Key) Mask(mask string) Security_Ssh_Key { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Security_Ssh_Key) Filter(filter string) Security_Ssh_Key { + r.Options.Filter = filter + return r +} + +func (r Security_Ssh_Key) Limit(limit int) Security_Ssh_Key { + r.Options.Limit = &limit + return r +} + +func (r Security_Ssh_Key) Offset(offset int) Security_Ssh_Key { + r.Options.Offset = &offset + return r +} + +// Add a ssh key to your account for use during server provisioning and os reloads. +func (r Security_Ssh_Key) CreateObject(templateObject *datatypes.Security_Ssh_Key) (resp datatypes.Security_Ssh_Key, err error) { + params := []interface{}{ + templateObject, + } + err = r.Session.DoRequest("SoftLayer_Security_Ssh_Key", "createObject", params, &r.Options, &resp) + return +} + +// Remove a ssh key from your account. +func (r Security_Ssh_Key) DeleteObject() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Security_Ssh_Key", "deleteObject", nil, &r.Options, &resp) + return +} + +// Update a ssh key. +func (r Security_Ssh_Key) EditObject(templateObject *datatypes.Security_Ssh_Key) (resp bool, err error) { + params := []interface{}{ + templateObject, + } + err = r.Session.DoRequest("SoftLayer_Security_Ssh_Key", "editObject", params, &r.Options, &resp) + return +} + +// Retrieve +func (r Security_Ssh_Key) GetAccount() (resp datatypes.Account, err error) { + err = r.Session.DoRequest("SoftLayer_Security_Ssh_Key", "getAccount", nil, &r.Options, &resp) + return +} + +// Retrieve The image template groups that are linked to an SSH key. +func (r Security_Ssh_Key) GetBlockDeviceTemplateGroups() (resp []datatypes.Virtual_Guest_Block_Device_Template_Group, err error) { + err = r.Session.DoRequest("SoftLayer_Security_Ssh_Key", "getBlockDeviceTemplateGroups", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Security_Ssh_Key) GetObject() (resp datatypes.Security_Ssh_Key, err error) { + err = r.Session.DoRequest("SoftLayer_Security_Ssh_Key", "getObject", nil, &r.Options, &resp) + return +} + +// Retrieve The OS root users that are linked to an SSH key. +func (r Security_Ssh_Key) GetSoftwarePasswords() (resp []datatypes.Software_Component_Password, err error) { + err = r.Session.DoRequest("SoftLayer_Security_Ssh_Key", "getSoftwarePasswords", nil, &r.Options, &resp) + return +} diff --git a/vendor/github.com/softlayer/softlayer-go/services/software.go b/vendor/github.com/softlayer/softlayer-go/services/software.go new file mode 100644 index 000000000..7dc00688f --- /dev/null +++ b/vendor/github.com/softlayer/softlayer-go/services/software.go @@ -0,0 +1,797 @@ +/** + * Copyright 2016 IBM Corp. + * + * 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. + */ + +/** + * AUTOMATICALLY GENERATED CODE - DO NOT MODIFY + */ + +package services + +import ( + "fmt" + "strings" + + "github.com/softlayer/softlayer-go/datatypes" + "github.com/softlayer/softlayer-go/session" + "github.com/softlayer/softlayer-go/sl" +) + +// SoftLayer_Software_AccountLicense is a class that represents software licenses that are tied only to a customer's account and not to any particular hardware, IP address, etc. +type Software_AccountLicense struct { + Session *session.Session + Options sl.Options +} + +// GetSoftwareAccountLicenseService returns an instance of the Software_AccountLicense SoftLayer service +func GetSoftwareAccountLicenseService(sess *session.Session) Software_AccountLicense { + return Software_AccountLicense{Session: sess} +} + +func (r Software_AccountLicense) Id(id int) Software_AccountLicense { + r.Options.Id = &id + return r +} + +func (r Software_AccountLicense) Mask(mask string) Software_AccountLicense { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Software_AccountLicense) Filter(filter string) Software_AccountLicense { + r.Options.Filter = filter + return r +} + +func (r Software_AccountLicense) Limit(limit int) Software_AccountLicense { + r.Options.Limit = &limit + return r +} + +func (r Software_AccountLicense) Offset(offset int) Software_AccountLicense { + r.Options.Offset = &offset + return r +} + +// Retrieve The customer account this Account License belongs to. +func (r Software_AccountLicense) GetAccount() (resp datatypes.Account, err error) { + err = r.Session.DoRequest("SoftLayer_Software_AccountLicense", "getAccount", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Software_AccountLicense) GetAllObjects() (resp []datatypes.Software_AccountLicense, err error) { + err = r.Session.DoRequest("SoftLayer_Software_AccountLicense", "getAllObjects", nil, &r.Options, &resp) + return +} + +// Retrieve The billing item for a software account license. +func (r Software_AccountLicense) GetBillingItem() (resp datatypes.Billing_Item, err error) { + err = r.Session.DoRequest("SoftLayer_Software_AccountLicense", "getBillingItem", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Software_AccountLicense) GetObject() (resp datatypes.Software_AccountLicense, err error) { + err = r.Session.DoRequest("SoftLayer_Software_AccountLicense", "getObject", nil, &r.Options, &resp) + return +} + +// Retrieve The SoftLayer_Software_Description that this account license is for. +func (r Software_AccountLicense) GetSoftwareDescription() (resp datatypes.Software_Description, err error) { + err = r.Session.DoRequest("SoftLayer_Software_AccountLicense", "getSoftwareDescription", nil, &r.Options, &resp) + return +} + +// A SoftLayer_Software_Component ties the installation of a specific piece of software onto a specific piece of hardware. +// +// SoftLayer_Software_Component works with SoftLayer_Software_License and SoftLayer_Software_Description to tie this all together. +// +//

    • SoftLayer_Software_Component is the installation of a specific piece of software onto a specific piece of hardware in accordance to a software license.
      • SoftLayer_Software_License dictates when and how a specific piece of software may be installed onto a piece of hardware.
        • SoftLayer_Software_Description describes a specific piece of software which can be installed onto hardware in accordance with it's license agreement.
    +type Software_Component struct { + Session *session.Session + Options sl.Options +} + +// GetSoftwareComponentService returns an instance of the Software_Component SoftLayer service +func GetSoftwareComponentService(sess *session.Session) Software_Component { + return Software_Component{Session: sess} +} + +func (r Software_Component) Id(id int) Software_Component { + r.Options.Id = &id + return r +} + +func (r Software_Component) Mask(mask string) Software_Component { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Software_Component) Filter(filter string) Software_Component { + r.Options.Filter = filter + return r +} + +func (r Software_Component) Limit(limit int) Software_Component { + r.Options.Limit = &limit + return r +} + +func (r Software_Component) Offset(offset int) Software_Component { + r.Options.Offset = &offset + return r +} + +// Retrieve The average amount of time that a software component takes to install. +func (r Software_Component) GetAverageInstallationDuration() (resp uint, err error) { + err = r.Session.DoRequest("SoftLayer_Software_Component", "getAverageInstallationDuration", nil, &r.Options, &resp) + return +} + +// Retrieve The billing item for a software component. +func (r Software_Component) GetBillingItem() (resp datatypes.Billing_Item, err error) { + err = r.Session.DoRequest("SoftLayer_Software_Component", "getBillingItem", nil, &r.Options, &resp) + return +} + +// Retrieve The hardware this Software Component is installed upon. +func (r Software_Component) GetHardware() (resp datatypes.Hardware, err error) { + err = r.Session.DoRequest("SoftLayer_Software_Component", "getHardware", nil, &r.Options, &resp) + return +} + +// Attempt to retrieve the file associated with a software component. If the software component does not support downloading license files an exception will be thrown. +func (r Software_Component) GetLicenseFile() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_Software_Component", "getLicenseFile", nil, &r.Options, &resp) + return +} + +// getObject retrieves the SoftLayer_Software_Component object whose ID corresponds to the ID number of the init parameter passed to the SoftLayer_Software_Component service. +// +// The best way to get software components is through getSoftwareComponents from the Hardware service. +func (r Software_Component) GetObject() (resp datatypes.Software_Component, err error) { + err = r.Session.DoRequest("SoftLayer_Software_Component", "getObject", nil, &r.Options, &resp) + return +} + +// Retrieve History Records for Software Passwords. +func (r Software_Component) GetPasswordHistory() (resp []datatypes.Software_Component_Password_History, err error) { + err = r.Session.DoRequest("SoftLayer_Software_Component", "getPasswordHistory", nil, &r.Options, &resp) + return +} + +// Retrieve Username/Password pairs used for access to this Software Installation. +func (r Software_Component) GetPasswords() (resp []datatypes.Software_Component_Password, err error) { + err = r.Session.DoRequest("SoftLayer_Software_Component", "getPasswords", nil, &r.Options, &resp) + return +} + +// Retrieve The Software Description of this Software Component. +func (r Software_Component) GetSoftwareDescription() (resp datatypes.Software_Description, err error) { + err = r.Session.DoRequest("SoftLayer_Software_Component", "getSoftwareDescription", nil, &r.Options, &resp) + return +} + +// Retrieve The License this Software Component uses. +func (r Software_Component) GetSoftwareLicense() (resp datatypes.Software_License, err error) { + err = r.Session.DoRequest("SoftLayer_Software_Component", "getSoftwareLicense", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Software_Component) GetVendorSetUpConfiguration() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_Software_Component", "getVendorSetUpConfiguration", nil, &r.Options, &resp) + return +} + +// Retrieve The virtual guest this software component is installed upon. +func (r Software_Component) GetVirtualGuest() (resp datatypes.Virtual_Guest, err error) { + err = r.Session.DoRequest("SoftLayer_Software_Component", "getVirtualGuest", nil, &r.Options, &resp) + return +} + +// This object specifies a specific type of Software Component: An Anti-virus/spyware instance. Anti-virus/spyware installations have specific properties and methods such as SoftLayer_Software_Component_AntivirusSpyware::updateAntivirusSpywarePolicy. Defaults are initiated by this object. +type Software_Component_AntivirusSpyware struct { + Session *session.Session + Options sl.Options +} + +// GetSoftwareComponentAntivirusSpywareService returns an instance of the Software_Component_AntivirusSpyware SoftLayer service +func GetSoftwareComponentAntivirusSpywareService(sess *session.Session) Software_Component_AntivirusSpyware { + return Software_Component_AntivirusSpyware{Session: sess} +} + +func (r Software_Component_AntivirusSpyware) Id(id int) Software_Component_AntivirusSpyware { + r.Options.Id = &id + return r +} + +func (r Software_Component_AntivirusSpyware) Mask(mask string) Software_Component_AntivirusSpyware { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Software_Component_AntivirusSpyware) Filter(filter string) Software_Component_AntivirusSpyware { + r.Options.Filter = filter + return r +} + +func (r Software_Component_AntivirusSpyware) Limit(limit int) Software_Component_AntivirusSpyware { + r.Options.Limit = &limit + return r +} + +func (r Software_Component_AntivirusSpyware) Offset(offset int) Software_Component_AntivirusSpyware { + r.Options.Offset = &offset + return r +} + +// Retrieve The average amount of time that a software component takes to install. +func (r Software_Component_AntivirusSpyware) GetAverageInstallationDuration() (resp uint, err error) { + err = r.Session.DoRequest("SoftLayer_Software_Component_AntivirusSpyware", "getAverageInstallationDuration", nil, &r.Options, &resp) + return +} + +// Retrieve The billing item for a software component. +func (r Software_Component_AntivirusSpyware) GetBillingItem() (resp datatypes.Billing_Item, err error) { + err = r.Session.DoRequest("SoftLayer_Software_Component_AntivirusSpyware", "getBillingItem", nil, &r.Options, &resp) + return +} + +// Retrieve The hardware this Software Component is installed upon. +func (r Software_Component_AntivirusSpyware) GetHardware() (resp datatypes.Hardware, err error) { + err = r.Session.DoRequest("SoftLayer_Software_Component_AntivirusSpyware", "getHardware", nil, &r.Options, &resp) + return +} + +// Attempt to retrieve the file associated with a software component. If the software component does not support downloading license files an exception will be thrown. +func (r Software_Component_AntivirusSpyware) GetLicenseFile() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_Software_Component_AntivirusSpyware", "getLicenseFile", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Software_Component_AntivirusSpyware) GetObject() (resp datatypes.Software_Component_AntivirusSpyware, err error) { + err = r.Session.DoRequest("SoftLayer_Software_Component_AntivirusSpyware", "getObject", nil, &r.Options, &resp) + return +} + +// Retrieve History Records for Software Passwords. +func (r Software_Component_AntivirusSpyware) GetPasswordHistory() (resp []datatypes.Software_Component_Password_History, err error) { + err = r.Session.DoRequest("SoftLayer_Software_Component_AntivirusSpyware", "getPasswordHistory", nil, &r.Options, &resp) + return +} + +// Retrieve Username/Password pairs used for access to this Software Installation. +func (r Software_Component_AntivirusSpyware) GetPasswords() (resp []datatypes.Software_Component_Password, err error) { + err = r.Session.DoRequest("SoftLayer_Software_Component_AntivirusSpyware", "getPasswords", nil, &r.Options, &resp) + return +} + +// Retrieve The Software Description of this Software Component. +func (r Software_Component_AntivirusSpyware) GetSoftwareDescription() (resp datatypes.Software_Description, err error) { + err = r.Session.DoRequest("SoftLayer_Software_Component_AntivirusSpyware", "getSoftwareDescription", nil, &r.Options, &resp) + return +} + +// Retrieve The License this Software Component uses. +func (r Software_Component_AntivirusSpyware) GetSoftwareLicense() (resp datatypes.Software_License, err error) { + err = r.Session.DoRequest("SoftLayer_Software_Component_AntivirusSpyware", "getSoftwareLicense", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Software_Component_AntivirusSpyware) GetVendorSetUpConfiguration() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_Software_Component_AntivirusSpyware", "getVendorSetUpConfiguration", nil, &r.Options, &resp) + return +} + +// Retrieve The virtual guest this software component is installed upon. +func (r Software_Component_AntivirusSpyware) GetVirtualGuest() (resp datatypes.Virtual_Guest, err error) { + err = r.Session.DoRequest("SoftLayer_Software_Component_AntivirusSpyware", "getVirtualGuest", nil, &r.Options, &resp) + return +} + +// Update an anti-virus/spyware policy. The policy options that it accepts are the following: +// *1 - Minimal +// *2 - Relaxed +// *3 - Default +// *4 - High +// *5 - Ultimate +func (r Software_Component_AntivirusSpyware) UpdateAntivirusSpywarePolicy(newPolicy *string, enforce *bool) (resp bool, err error) { + params := []interface{}{ + newPolicy, + enforce, + } + err = r.Session.DoRequest("SoftLayer_Software_Component_AntivirusSpyware", "updateAntivirusSpywarePolicy", params, &r.Options, &resp) + return +} + +// This object specifies a specific type of Software Component: A Host Intrusion Protection System instance. +type Software_Component_HostIps struct { + Session *session.Session + Options sl.Options +} + +// GetSoftwareComponentHostIpsService returns an instance of the Software_Component_HostIps SoftLayer service +func GetSoftwareComponentHostIpsService(sess *session.Session) Software_Component_HostIps { + return Software_Component_HostIps{Session: sess} +} + +func (r Software_Component_HostIps) Id(id int) Software_Component_HostIps { + r.Options.Id = &id + return r +} + +func (r Software_Component_HostIps) Mask(mask string) Software_Component_HostIps { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Software_Component_HostIps) Filter(filter string) Software_Component_HostIps { + r.Options.Filter = filter + return r +} + +func (r Software_Component_HostIps) Limit(limit int) Software_Component_HostIps { + r.Options.Limit = &limit + return r +} + +func (r Software_Component_HostIps) Offset(offset int) Software_Component_HostIps { + r.Options.Offset = &offset + return r +} + +// Retrieve The average amount of time that a software component takes to install. +func (r Software_Component_HostIps) GetAverageInstallationDuration() (resp uint, err error) { + err = r.Session.DoRequest("SoftLayer_Software_Component_HostIps", "getAverageInstallationDuration", nil, &r.Options, &resp) + return +} + +// Retrieve The billing item for a software component. +func (r Software_Component_HostIps) GetBillingItem() (resp datatypes.Billing_Item, err error) { + err = r.Session.DoRequest("SoftLayer_Software_Component_HostIps", "getBillingItem", nil, &r.Options, &resp) + return +} + +// Get the current Host IPS policies. +func (r Software_Component_HostIps) GetCurrentHostIpsPolicies() (resp []datatypes.Container_Software_Component_HostIps_Policy, err error) { + err = r.Session.DoRequest("SoftLayer_Software_Component_HostIps", "getCurrentHostIpsPolicies", nil, &r.Options, &resp) + return +} + +// Retrieve The hardware this Software Component is installed upon. +func (r Software_Component_HostIps) GetHardware() (resp datatypes.Hardware, err error) { + err = r.Session.DoRequest("SoftLayer_Software_Component_HostIps", "getHardware", nil, &r.Options, &resp) + return +} + +// Attempt to retrieve the file associated with a software component. If the software component does not support downloading license files an exception will be thrown. +func (r Software_Component_HostIps) GetLicenseFile() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_Software_Component_HostIps", "getLicenseFile", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Software_Component_HostIps) GetObject() (resp datatypes.Software_Component_HostIps, err error) { + err = r.Session.DoRequest("SoftLayer_Software_Component_HostIps", "getObject", nil, &r.Options, &resp) + return +} + +// Retrieve History Records for Software Passwords. +func (r Software_Component_HostIps) GetPasswordHistory() (resp []datatypes.Software_Component_Password_History, err error) { + err = r.Session.DoRequest("SoftLayer_Software_Component_HostIps", "getPasswordHistory", nil, &r.Options, &resp) + return +} + +// Retrieve Username/Password pairs used for access to this Software Installation. +func (r Software_Component_HostIps) GetPasswords() (resp []datatypes.Software_Component_Password, err error) { + err = r.Session.DoRequest("SoftLayer_Software_Component_HostIps", "getPasswords", nil, &r.Options, &resp) + return +} + +// Retrieve The Software Description of this Software Component. +func (r Software_Component_HostIps) GetSoftwareDescription() (resp datatypes.Software_Description, err error) { + err = r.Session.DoRequest("SoftLayer_Software_Component_HostIps", "getSoftwareDescription", nil, &r.Options, &resp) + return +} + +// Retrieve The License this Software Component uses. +func (r Software_Component_HostIps) GetSoftwareLicense() (resp datatypes.Software_License, err error) { + err = r.Session.DoRequest("SoftLayer_Software_Component_HostIps", "getSoftwareLicense", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Software_Component_HostIps) GetVendorSetUpConfiguration() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_Software_Component_HostIps", "getVendorSetUpConfiguration", nil, &r.Options, &resp) + return +} + +// Retrieve The virtual guest this software component is installed upon. +func (r Software_Component_HostIps) GetVirtualGuest() (resp datatypes.Virtual_Guest, err error) { + err = r.Session.DoRequest("SoftLayer_Software_Component_HostIps", "getVirtualGuest", nil, &r.Options, &resp) + return +} + +// Update the Host IPS policies. To retrieve valid policy options you must use the provided relationships. +func (r Software_Component_HostIps) UpdateHipsPolicies(newIpsMode *string, newIpsProtection *string, newFirewallMode *string, newFirewallRuleset *string, newApplicationMode *string, newApplicationRuleset *string, newEnforcementPolicy *string) (resp bool, err error) { + params := []interface{}{ + newIpsMode, + newIpsProtection, + newFirewallMode, + newFirewallRuleset, + newApplicationMode, + newApplicationRuleset, + newEnforcementPolicy, + } + err = r.Session.DoRequest("SoftLayer_Software_Component_HostIps", "updateHipsPolicies", params, &r.Options, &resp) + return +} + +// This SoftLayer_Software_Component_Password data type contains a password for a specific software component instance. +type Software_Component_Password struct { + Session *session.Session + Options sl.Options +} + +// GetSoftwareComponentPasswordService returns an instance of the Software_Component_Password SoftLayer service +func GetSoftwareComponentPasswordService(sess *session.Session) Software_Component_Password { + return Software_Component_Password{Session: sess} +} + +func (r Software_Component_Password) Id(id int) Software_Component_Password { + r.Options.Id = &id + return r +} + +func (r Software_Component_Password) Mask(mask string) Software_Component_Password { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Software_Component_Password) Filter(filter string) Software_Component_Password { + r.Options.Filter = filter + return r +} + +func (r Software_Component_Password) Limit(limit int) Software_Component_Password { + r.Options.Limit = &limit + return r +} + +func (r Software_Component_Password) Offset(offset int) Software_Component_Password { + r.Options.Offset = &offset + return r +} + +// Create a password for a software component. +func (r Software_Component_Password) CreateObject(templateObject *datatypes.Software_Component_Password) (resp datatypes.Software_Component_Password, err error) { + params := []interface{}{ + templateObject, + } + err = r.Session.DoRequest("SoftLayer_Software_Component_Password", "createObject", params, &r.Options, &resp) + return +} + +// Create more than one password for a software component. +func (r Software_Component_Password) CreateObjects(templateObjects []datatypes.Software_Component_Password) (resp bool, err error) { + params := []interface{}{ + templateObjects, + } + err = r.Session.DoRequest("SoftLayer_Software_Component_Password", "createObjects", params, &r.Options, &resp) + return +} + +// Delete a password from a software component. +func (r Software_Component_Password) DeleteObject() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Software_Component_Password", "deleteObject", nil, &r.Options, &resp) + return +} + +// Delete more than one passwords from a software component. +func (r Software_Component_Password) DeleteObjects(templateObjects []datatypes.Software_Component_Password) (resp bool, err error) { + params := []interface{}{ + templateObjects, + } + err = r.Session.DoRequest("SoftLayer_Software_Component_Password", "deleteObjects", params, &r.Options, &resp) + return +} + +// Edit the properties of a software component password such as the username, password, port, and notes. +func (r Software_Component_Password) EditObject(templateObject *datatypes.Software_Component_Password) (resp bool, err error) { + params := []interface{}{ + templateObject, + } + err = r.Session.DoRequest("SoftLayer_Software_Component_Password", "editObject", params, &r.Options, &resp) + return +} + +// Edit more than one password from a software component. +func (r Software_Component_Password) EditObjects(templateObjects []datatypes.Software_Component_Password) (resp bool, err error) { + params := []interface{}{ + templateObjects, + } + err = r.Session.DoRequest("SoftLayer_Software_Component_Password", "editObjects", params, &r.Options, &resp) + return +} + +// no documentation yet +func (r Software_Component_Password) GetObject() (resp datatypes.Software_Component_Password, err error) { + err = r.Session.DoRequest("SoftLayer_Software_Component_Password", "getObject", nil, &r.Options, &resp) + return +} + +// Retrieve The SoftLayer_Software_Component instance that this username/password pair is valid for. +func (r Software_Component_Password) GetSoftware() (resp datatypes.Software_Component, err error) { + err = r.Session.DoRequest("SoftLayer_Software_Component_Password", "getSoftware", nil, &r.Options, &resp) + return +} + +// Retrieve SSH keys to be installed on the server during provisioning or an OS reload. +func (r Software_Component_Password) GetSshKeys() (resp []datatypes.Security_Ssh_Key, err error) { + err = r.Session.DoRequest("SoftLayer_Software_Component_Password", "getSshKeys", nil, &r.Options, &resp) + return +} + +// This class holds a description for a specific installation of a Software Component. +// +// SoftLayer_Software_Licenses tie a Software Component (A specific installation on a piece of hardware) to it's description. +// +// The "Manufacturer" and "Name" properties of a SoftLayer_Software_Description are used by the framework to factory specific objects, objects that may have special methods for that specific piece of software, or objects that contain application specific data, such as default ports. For example, if you create a SoftLayer_Software_Component who's SoftLayer_Software_License points to the SoftLayer_Software_Description for "Swsoft" "Plesk", you'll actually get a SoftLayer_Software_Component_Swsoft_Plesk object. +type Software_Description struct { + Session *session.Session + Options sl.Options +} + +// GetSoftwareDescriptionService returns an instance of the Software_Description SoftLayer service +func GetSoftwareDescriptionService(sess *session.Session) Software_Description { + return Software_Description{Session: sess} +} + +func (r Software_Description) Id(id int) Software_Description { + r.Options.Id = &id + return r +} + +func (r Software_Description) Mask(mask string) Software_Description { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Software_Description) Filter(filter string) Software_Description { + r.Options.Filter = filter + return r +} + +func (r Software_Description) Limit(limit int) Software_Description { + r.Options.Limit = &limit + return r +} + +func (r Software_Description) Offset(offset int) Software_Description { + r.Options.Offset = &offset + return r +} + +// no documentation yet +func (r Software_Description) GetAllObjects() (resp []datatypes.Software_Description, err error) { + err = r.Session.DoRequest("SoftLayer_Software_Description", "getAllObjects", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Software_Description) GetAttributes() (resp []datatypes.Software_Description_Attribute, err error) { + err = r.Session.DoRequest("SoftLayer_Software_Description", "getAttributes", nil, &r.Options, &resp) + return +} + +// Retrieve The average amount of time that a software description takes to install. +func (r Software_Description) GetAverageInstallationDuration() (resp int, err error) { + err = r.Session.DoRequest("SoftLayer_Software_Description", "getAverageInstallationDuration", nil, &r.Options, &resp) + return +} + +// Retrieve A list of the software descriptions that are compatible with this software description. +func (r Software_Description) GetCompatibleSoftwareDescriptions() (resp []datatypes.Software_Description, err error) { + err = r.Session.DoRequest("SoftLayer_Software_Description", "getCompatibleSoftwareDescriptions", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Software_Description) GetCustomerOwnedLicenseDescriptions() (resp []datatypes.Software_Description, err error) { + err = r.Session.DoRequest("SoftLayer_Software_Description", "getCustomerOwnedLicenseDescriptions", nil, &r.Options, &resp) + return +} + +// Retrieve The feature attributes of a software description. +func (r Software_Description) GetFeatures() (resp []datatypes.Software_Description_Feature, err error) { + err = r.Session.DoRequest("SoftLayer_Software_Description", "getFeatures", nil, &r.Options, &resp) + return +} + +// Retrieve The latest version of a software description. +func (r Software_Description) GetLatestVersion() (resp []datatypes.Software_Description, err error) { + err = r.Session.DoRequest("SoftLayer_Software_Description", "getLatestVersion", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Software_Description) GetObject() (resp datatypes.Software_Description, err error) { + err = r.Session.DoRequest("SoftLayer_Software_Description", "getObject", nil, &r.Options, &resp) + return +} + +// Retrieve The various product items to which this software description is linked. +func (r Software_Description) GetProductItems() (resp []datatypes.Product_Item, err error) { + err = r.Session.DoRequest("SoftLayer_Software_Description", "getProductItems", nil, &r.Options, &resp) + return +} + +// Retrieve This details the provisioning transaction group for this software. This is only valid for Operating System software. +func (r Software_Description) GetProvisionTransactionGroup() (resp datatypes.Provisioning_Version1_Transaction_Group, err error) { + err = r.Session.DoRequest("SoftLayer_Software_Description", "getProvisionTransactionGroup", nil, &r.Options, &resp) + return +} + +// Retrieve The transaction group that a software description belongs to. A transaction group is a sequence of transactions that must be performed in a specific order for the installation of software. +func (r Software_Description) GetReloadTransactionGroup() (resp datatypes.Provisioning_Version1_Transaction_Group, err error) { + err = r.Session.DoRequest("SoftLayer_Software_Description", "getReloadTransactionGroup", nil, &r.Options, &resp) + return +} + +// Retrieve The default user created for a given a software description. +func (r Software_Description) GetRequiredUser() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_Software_Description", "getRequiredUser", nil, &r.Options, &resp) + return +} + +// Retrieve Software Licenses that govern this Software Description. +func (r Software_Description) GetSoftwareLicenses() (resp []datatypes.Software_License, err error) { + err = r.Session.DoRequest("SoftLayer_Software_Description", "getSoftwareLicenses", nil, &r.Options, &resp) + return +} + +// Retrieve A suggestion for an upgrade path from this Software Description +func (r Software_Description) GetUpgradeSoftwareDescription() (resp datatypes.Software_Description, err error) { + err = r.Session.DoRequest("SoftLayer_Software_Description", "getUpgradeSoftwareDescription", nil, &r.Options, &resp) + return +} + +// Retrieve A suggestion for an upgrade path from this Software Description (Deprecated - Use upgradeSoftwareDescription) +func (r Software_Description) GetUpgradeSwDesc() (resp datatypes.Software_Description, err error) { + err = r.Session.DoRequest("SoftLayer_Software_Description", "getUpgradeSwDesc", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Software_Description) GetValidFilesystemTypes() (resp []datatypes.Configuration_Storage_Filesystem_Type, err error) { + err = r.Session.DoRequest("SoftLayer_Software_Description", "getValidFilesystemTypes", nil, &r.Options, &resp) + return +} + +// SoftLayer_Software_VirtualLicense is the application class that handles a special type of Software License. Most software licenses are licensed to a specific hardware ID; virtual licenses are designed for virtual machines and therefore are assigned to an IP Address. Not all software packages can be "virtual licensed". +type Software_VirtualLicense struct { + Session *session.Session + Options sl.Options +} + +// GetSoftwareVirtualLicenseService returns an instance of the Software_VirtualLicense SoftLayer service +func GetSoftwareVirtualLicenseService(sess *session.Session) Software_VirtualLicense { + return Software_VirtualLicense{Session: sess} +} + +func (r Software_VirtualLicense) Id(id int) Software_VirtualLicense { + r.Options.Id = &id + return r +} + +func (r Software_VirtualLicense) Mask(mask string) Software_VirtualLicense { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Software_VirtualLicense) Filter(filter string) Software_VirtualLicense { + r.Options.Filter = filter + return r +} + +func (r Software_VirtualLicense) Limit(limit int) Software_VirtualLicense { + r.Options.Limit = &limit + return r +} + +func (r Software_VirtualLicense) Offset(offset int) Software_VirtualLicense { + r.Options.Offset = &offset + return r +} + +// Retrieve The customer account this Virtual License belongs to. +func (r Software_VirtualLicense) GetAccount() (resp datatypes.Account, err error) { + err = r.Session.DoRequest("SoftLayer_Software_VirtualLicense", "getAccount", nil, &r.Options, &resp) + return +} + +// Retrieve The billing item for a software virtual license. +func (r Software_VirtualLicense) GetBillingItem() (resp datatypes.Billing_Item, err error) { + err = r.Session.DoRequest("SoftLayer_Software_VirtualLicense", "getBillingItem", nil, &r.Options, &resp) + return +} + +// Retrieve The hardware record to which the software virtual license is assigned. +func (r Software_VirtualLicense) GetHostHardware() (resp datatypes.Hardware_Server, err error) { + err = r.Session.DoRequest("SoftLayer_Software_VirtualLicense", "getHostHardware", nil, &r.Options, &resp) + return +} + +// Retrieve The IP Address record associated with a virtual license. +func (r Software_VirtualLicense) GetIpAddressRecord() (resp datatypes.Network_Subnet_IpAddress, err error) { + err = r.Session.DoRequest("SoftLayer_Software_VirtualLicense", "getIpAddressRecord", nil, &r.Options, &resp) + return +} + +// Attempt to retrieve the file associated with a virtual license, if such a file exists. If there is no file for this virtual license, calling this method will either throw an exception or return false. +func (r Software_VirtualLicense) GetLicenseFile() (resp []byte, err error) { + err = r.Session.DoRequest("SoftLayer_Software_VirtualLicense", "getLicenseFile", nil, &r.Options, &resp) + return +} + +// getObject retrieves the SoftLayer_Software_VirtualLicense object whose ID number corresponds to the ID number of the init parameter passed to the SoftLayer_Software_VirtualLicense service. You can only retrieve Virtual Licenses assigned to your account number. +func (r Software_VirtualLicense) GetObject() (resp datatypes.Software_VirtualLicense, err error) { + err = r.Session.DoRequest("SoftLayer_Software_VirtualLicense", "getObject", nil, &r.Options, &resp) + return +} + +// Retrieve The SoftLayer_Software_Description that this virtual license is for. +func (r Software_VirtualLicense) GetSoftwareDescription() (resp datatypes.Software_Description, err error) { + err = r.Session.DoRequest("SoftLayer_Software_VirtualLicense", "getSoftwareDescription", nil, &r.Options, &resp) + return +} + +// Retrieve The subnet this Virtual License's IP address belongs to. +func (r Software_VirtualLicense) GetSubnet() (resp datatypes.Network_Subnet, err error) { + err = r.Session.DoRequest("SoftLayer_Software_VirtualLicense", "getSubnet", nil, &r.Options, &resp) + return +} diff --git a/vendor/github.com/softlayer/softlayer-go/services/survey.go b/vendor/github.com/softlayer/softlayer-go/services/survey.go new file mode 100644 index 000000000..aa956c842 --- /dev/null +++ b/vendor/github.com/softlayer/softlayer-go/services/survey.go @@ -0,0 +1,112 @@ +/** + * Copyright 2016 IBM Corp. + * + * 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. + */ + +/** + * AUTOMATICALLY GENERATED CODE - DO NOT MODIFY + */ + +package services + +import ( + "fmt" + "strings" + + "github.com/softlayer/softlayer-go/datatypes" + "github.com/softlayer/softlayer-go/session" + "github.com/softlayer/softlayer-go/sl" +) + +// The SoftLayer_Survey data type contains general information relating to a single SoftLayer survey. +type Survey struct { + Session *session.Session + Options sl.Options +} + +// GetSurveyService returns an instance of the Survey SoftLayer service +func GetSurveyService(sess *session.Session) Survey { + return Survey{Session: sess} +} + +func (r Survey) Id(id int) Survey { + r.Options.Id = &id + return r +} + +func (r Survey) Mask(mask string) Survey { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Survey) Filter(filter string) Survey { + r.Options.Filter = filter + return r +} + +func (r Survey) Limit(limit int) Survey { + r.Options.Limit = &limit + return r +} + +func (r Survey) Offset(offset int) Survey { + r.Options.Offset = &offset + return r +} + +// Provides survey details for the given type +func (r Survey) GetActiveSurveyByType(typ *string) (resp datatypes.Survey, err error) { + params := []interface{}{ + typ, + } + err = r.Session.DoRequest("SoftLayer_Survey", "getActiveSurveyByType", params, &r.Options, &resp) + return +} + +// getObject retrieves the SoftLayer_Survey object whose ID number corresponds to the ID number of the init parameter passed to the SoftLayer_Survey service. You can only retrieve the survey that your portal user has taken. +func (r Survey) GetObject() (resp datatypes.Survey, err error) { + err = r.Session.DoRequest("SoftLayer_Survey", "getObject", nil, &r.Options, &resp) + return +} + +// Retrieve The questions for a survey. +func (r Survey) GetQuestions() (resp []datatypes.Survey_Question, err error) { + err = r.Session.DoRequest("SoftLayer_Survey", "getQuestions", nil, &r.Options, &resp) + return +} + +// Retrieve The status of the survey +func (r Survey) GetStatus() (resp datatypes.Survey_Status, err error) { + err = r.Session.DoRequest("SoftLayer_Survey", "getStatus", nil, &r.Options, &resp) + return +} + +// Retrieve The type of survey +func (r Survey) GetType() (resp datatypes.Survey_Type, err error) { + err = r.Session.DoRequest("SoftLayer_Survey", "getType", nil, &r.Options, &resp) + return +} + +// Response to a SoftLayer survey's questions. +func (r Survey) TakeSurvey(responses []datatypes.Survey_Response) (resp bool, err error) { + params := []interface{}{ + responses, + } + err = r.Session.DoRequest("SoftLayer_Survey", "takeSurvey", params, &r.Options, &resp) + return +} diff --git a/vendor/github.com/softlayer/softlayer-go/services/tag.go b/vendor/github.com/softlayer/softlayer-go/services/tag.go new file mode 100644 index 000000000..644ac1a77 --- /dev/null +++ b/vendor/github.com/softlayer/softlayer-go/services/tag.go @@ -0,0 +1,123 @@ +/** + * Copyright 2016 IBM Corp. + * + * 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. + */ + +/** + * AUTOMATICALLY GENERATED CODE - DO NOT MODIFY + */ + +package services + +import ( + "fmt" + "strings" + + "github.com/softlayer/softlayer-go/datatypes" + "github.com/softlayer/softlayer-go/session" + "github.com/softlayer/softlayer-go/sl" +) + +// The SoftLayer_Tag data type is an optional type associated with hardware. The account ID that the tag is tied to, and the tag itself are stored in this data type. There is also a flag to denote whether the tag is internal or not. +type Tag struct { + Session *session.Session + Options sl.Options +} + +// GetTagService returns an instance of the Tag SoftLayer service +func GetTagService(sess *session.Session) Tag { + return Tag{Session: sess} +} + +func (r Tag) Id(id int) Tag { + r.Options.Id = &id + return r +} + +func (r Tag) Mask(mask string) Tag { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Tag) Filter(filter string) Tag { + r.Options.Filter = filter + return r +} + +func (r Tag) Limit(limit int) Tag { + r.Options.Limit = &limit + return r +} + +func (r Tag) Offset(offset int) Tag { + r.Options.Offset = &offset + return r +} + +// This function is responsible for setting the Tags values. The internal flag is set to 0 if the user is a customer, and 1 otherwise. AccountId is set to the account bound to the user, and the tags name is set to the clean version of the tag inputted by the user. +func (r Tag) AutoComplete(tag *string) (resp []datatypes.Tag, err error) { + params := []interface{}{ + tag, + } + err = r.Session.DoRequest("SoftLayer_Tag", "autoComplete", params, &r.Options, &resp) + return +} + +// Retrieve The account to which the tag is tied. +func (r Tag) GetAccount() (resp datatypes.Account, err error) { + err = r.Session.DoRequest("SoftLayer_Tag", "getAccount", nil, &r.Options, &resp) + return +} + +// Returns all tags of a given object type. +func (r Tag) GetAllTagTypes() (resp []datatypes.Tag_Type, err error) { + err = r.Session.DoRequest("SoftLayer_Tag", "getAllTagTypes", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Tag) GetObject() (resp datatypes.Tag, err error) { + err = r.Session.DoRequest("SoftLayer_Tag", "getObject", nil, &r.Options, &resp) + return +} + +// Retrieve References that tie object to the tag. +func (r Tag) GetReferences() (resp []datatypes.Tag_Reference, err error) { + err = r.Session.DoRequest("SoftLayer_Tag", "getReferences", nil, &r.Options, &resp) + return +} + +// Returns the Tag object with a given name. The user types in the tag name and this method returns the tag with that name. +func (r Tag) GetTagByTagName(tagList *string) (resp []datatypes.Tag, err error) { + params := []interface{}{ + tagList, + } + err = r.Session.DoRequest("SoftLayer_Tag", "getTagByTagName", params, &r.Options, &resp) + return +} + +// Tag an object by passing in one or more tags separated by a comma. Tag references are cleared out every time this method is called. If your object is already tagged you will need to pass the current tags along with any new ones. To remove all tag references pass an empty string. To remove one or more tags omit them from the tag list. The characters permitted are A-Z, 0-9, whitespace, _ (underscore), - (hypen), . (period), and : (colon). All other characters will be stripped away. +func (r Tag) SetTags(tags *string, keyName *string, resourceTableId *int) (resp bool, err error) { + params := []interface{}{ + tags, + keyName, + resourceTableId, + } + err = r.Session.DoRequest("SoftLayer_Tag", "setTags", params, &r.Options, &resp) + return +} diff --git a/vendor/github.com/softlayer/softlayer-go/services/ticket.go b/vendor/github.com/softlayer/softlayer-go/services/ticket.go new file mode 100644 index 000000000..0d7a9d800 --- /dev/null +++ b/vendor/github.com/softlayer/softlayer-go/services/ticket.go @@ -0,0 +1,1024 @@ +/** + * Copyright 2016 IBM Corp. + * + * 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. + */ + +/** + * AUTOMATICALLY GENERATED CODE - DO NOT MODIFY + */ + +package services + +import ( + "fmt" + "strings" + + "github.com/softlayer/softlayer-go/datatypes" + "github.com/softlayer/softlayer-go/session" + "github.com/softlayer/softlayer-go/sl" +) + +// The SoftLayer_Ticket data type models a single SoftLayer customer support or notification ticket. Each ticket object contains references to it's updates, the user it's assigned to, the SoftLayer department and employee that it's assigned to, and any hardware objects or attached files associated with the ticket. Tickets are described in further detail on the [[SoftLayer_Ticket]] service page. +// +// To create a support ticket execute the [[SoftLayer_Ticket::createStandardTicket|createStandardTicket]] or [[SoftLayer_Ticket::createAdministrativeTicket|createAdministrativeTicket]] methods in the SoftLayer_Ticket service. To create an upgrade ticket for the SoftLayer sales group execute the [[SoftLayer_Ticket::createUpgradeTicket|createUpgradeTicket]]. +type Ticket struct { + Session *session.Session + Options sl.Options +} + +// GetTicketService returns an instance of the Ticket SoftLayer service +func GetTicketService(sess *session.Session) Ticket { + return Ticket{Session: sess} +} + +func (r Ticket) Id(id int) Ticket { + r.Options.Id = &id + return r +} + +func (r Ticket) Mask(mask string) Ticket { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Ticket) Filter(filter string) Ticket { + r.Options.Filter = filter + return r +} + +func (r Ticket) Limit(limit int) Ticket { + r.Options.Limit = &limit + return r +} + +func (r Ticket) Offset(offset int) Ticket { + r.Options.Offset = &offset + return r +} + +// +// +// +func (r Ticket) AddAssignedAgent(agentId *int) (err error) { + var resp datatypes.Void + params := []interface{}{ + agentId, + } + err = r.Session.DoRequest("SoftLayer_Ticket", "addAssignedAgent", params, &r.Options, &resp) + return +} + +// Creates new additional emails for assigned user if new emails are provided. Attaches any newly created additional emails to ticket. +func (r Ticket) AddAttachedAdditionalEmails(emails []string) (resp bool, err error) { + params := []interface{}{ + emails, + } + err = r.Session.DoRequest("SoftLayer_Ticket", "addAttachedAdditionalEmails", params, &r.Options, &resp) + return +} + +// Attach the given file to a SoftLayer ticket. A file attachment is a convenient way to submit non-textual error reports to SoftLayer employees in a ticket. File attachments to tickets must have a unique name. +func (r Ticket) AddAttachedFile(fileAttachment *datatypes.Container_Utility_File_Attachment) (resp datatypes.Ticket_Attachment_File, err error) { + params := []interface{}{ + fileAttachment, + } + err = r.Session.DoRequest("SoftLayer_Ticket", "addAttachedFile", params, &r.Options, &resp) + return +} + +// Attach the given hardware to a SoftLayer ticket. A hardware attachment provides an easy way for SoftLayer's employees to quickly look up your hardware records in the case of hardware-specific issues. +func (r Ticket) AddAttachedHardware(hardwareId *int) (resp datatypes.Ticket_Attachment_Hardware, err error) { + params := []interface{}{ + hardwareId, + } + err = r.Session.DoRequest("SoftLayer_Ticket", "addAttachedHardware", params, &r.Options, &resp) + return +} + +// Attach the given CloudLayer Computing Instance to a SoftLayer ticket. An attachment provides an easy way for SoftLayer's employees to quickly look up your records in the case of specific issues. +func (r Ticket) AddAttachedVirtualGuest(guestId *int) (resp datatypes.Ticket_Attachment_Virtual_Guest, err error) { + params := []interface{}{ + guestId, + } + err = r.Session.DoRequest("SoftLayer_Ticket", "addAttachedVirtualGuest", params, &r.Options, &resp) + return +} + +// As part of the customer service process SoftLayer has provided a quick feedback mechanism for its customers to rate their overall experience with SoftLayer after a ticket is closed. addFinalComments() sets these comments for a ticket update made by a SoftLayer employee. Final comments may only be set on closed tickets, can only be set once, and may not exceed 4000 characters in length. Once the comments are set ''addFinalComments()'' returns a boolean true. +func (r Ticket) AddFinalComments(finalComments *string) (resp bool, err error) { + params := []interface{}{ + finalComments, + } + err = r.Session.DoRequest("SoftLayer_Ticket", "addFinalComments", params, &r.Options, &resp) + return +} + +// no documentation yet +func (r Ticket) AddScheduledAlert(activationTime *string) (err error) { + var resp datatypes.Void + params := []interface{}{ + activationTime, + } + err = r.Session.DoRequest("SoftLayer_Ticket", "addScheduledAlert", params, &r.Options, &resp) + return +} + +// no documentation yet +func (r Ticket) AddScheduledAutoClose(activationTime *string) (err error) { + var resp datatypes.Void + params := []interface{}{ + activationTime, + } + err = r.Session.DoRequest("SoftLayer_Ticket", "addScheduledAutoClose", params, &r.Options, &resp) + return +} + +// Add an update to a ticket. A ticket update's entry has a maximum length of 4000 characters, so ''addUpdate()'' splits the ''entry'' property in the ''templateObject'' parameter into 3900 character blocks and creates one entry per 3900 character block. Once complete ''addUpdate()'' emails the ticket's owner and additional email addresses with an update message if the ticket's ''notifyUserOnUpdateFlag'' is set. If the ticket is a Legal or Abuse ticket, then the account's abuse emails are also notified when the updates are processed. Finally, ''addUpdate()'' returns an array of the newly created ticket updates. +func (r Ticket) AddUpdate(templateObject *datatypes.Ticket_Update, attachedFiles []datatypes.Container_Utility_File_Attachment) (resp []datatypes.Ticket_Update, err error) { + params := []interface{}{ + templateObject, + attachedFiles, + } + err = r.Session.DoRequest("SoftLayer_Ticket", "addUpdate", params, &r.Options, &resp) + return +} + +// Create an administrative support ticket. Use an administrative ticket if you require SoftLayer's assistance managing your server or content. If you are experiencing an issue with SoftLayer's hardware, network, or services then please open a standard support ticket. +// +// Support tickets may only be created in the open state. The SoftLayer API defaults new ticket properties ''userEditableFlag'' to true, ''accountId'' to the id of the account that your API user belongs to, and ''statusId'' to 1001 (or "open"). You may not assign your new to ticket to users that your API user does not have access to. +// +// Once your ticket is created it is placed in a queue for SoftLayer employees to work. As they update the ticket new [[SoftLayer_Ticket_Update]] entries are added to the ticket object. +// +// Administrative support tickets add a one-time $3USD charge to your account. +func (r Ticket) CreateAdministrativeTicket(templateObject *datatypes.Ticket, contents *string, attachmentId *int, rootPassword *string, controlPanelPassword *string, accessPort *string, attachedFiles []datatypes.Container_Utility_File_Attachment, attachmentType *string) (resp datatypes.Ticket, err error) { + params := []interface{}{ + templateObject, + contents, + attachmentId, + rootPassword, + controlPanelPassword, + accessPort, + attachedFiles, + attachmentType, + } + err = r.Session.DoRequest("SoftLayer_Ticket", "createAdministrativeTicket", params, &r.Options, &resp) + return +} + +// A cancel server request creates a ticket to cancel the resource on next bill date. The hardware ID parameter is required to determine which server is to be cancelled. NOTE: Hourly bare metal servers will be cancelled on next bill date. +// +// The reason parameter could be from the list below: +// * "No longer needed" +// * "Business closing down" +// * "Server / Upgrade Costs" +// * "Migrating to larger server" +// * "Migrating to smaller server" +// * "Migrating to a different SoftLayer datacenter" +// * "Network performance / latency" +// * "Support response / timing" +// * "Sales process / upgrades" +// * "Moving to competitor" +// +// +// The content parameter describes further the reason for cancelling the server. +func (r Ticket) CreateCancelServerTicket(attachmentId *int, reason *string, content *string, cancelAssociatedItems *bool, attachmentType *string) (resp datatypes.Ticket, err error) { + params := []interface{}{ + attachmentId, + reason, + content, + cancelAssociatedItems, + attachmentType, + } + err = r.Session.DoRequest("SoftLayer_Ticket", "createCancelServerTicket", params, &r.Options, &resp) + return +} + +// A cancel service request creates a sales ticket. The hardware ID parameter is required to determine which server is to be cancelled. +// +// The reason parameter could be from the list below: +// * "No longer needed" +// * "Business closing down" +// * "Server / Upgrade Costs" +// * "Migrating to larger server" +// * "Migrating to smaller server" +// * "Migrating to a different SoftLayer datacenter" +// * "Network performance / latency" +// * "Support response / timing" +// * "Sales process / upgrades" +// * "Moving to competitor" +// +// +// The content parameter describes further the reason for cancelling service. +func (r Ticket) CreateCancelServiceTicket(attachmentId *int, reason *string, content *string, attachmentType *string) (resp datatypes.Ticket, err error) { + params := []interface{}{ + attachmentId, + reason, + content, + attachmentType, + } + err = r.Session.DoRequest("SoftLayer_Ticket", "createCancelServiceTicket", params, &r.Options, &resp) + return +} + +// Create a standard support ticket. Use a standard support ticket if you need to work out a problem related to SoftLayer's hardware, network, or services. If you require SoftLayer's assistance managing your server or content then please open an administrative ticket. +// +// Support tickets may only be created in the open state. The SoftLayer API defaults new ticket properties ''userEditableFlag'' to true, ''accountId'' to the id of the account that your API user belongs to, and ''statusId'' to 1001 (or "open"). You may not assign your new to ticket to users that your API user does not have access to. +// +// Once your ticket is created it is placed in a queue for SoftLayer employees to work. As they update the ticket new [[SoftLayer_Ticket_Update]] entries are added to the ticket object. +func (r Ticket) CreateStandardTicket(templateObject *datatypes.Ticket, contents *string, attachmentId *int, rootPassword *string, controlPanelPassword *string, accessPort *string, attachedFiles []datatypes.Container_Utility_File_Attachment, attachmentType *string) (resp datatypes.Ticket, err error) { + params := []interface{}{ + templateObject, + contents, + attachmentId, + rootPassword, + controlPanelPassword, + accessPort, + attachedFiles, + attachmentType, + } + err = r.Session.DoRequest("SoftLayer_Ticket", "createStandardTicket", params, &r.Options, &resp) + return +} + +// Create a ticket for the SoftLayer sales team to perform a hardware or service upgrade. Our sales team will work with you on upgrade feasibility and pricing and then send the upgrade ticket to the proper department to perform the actual upgrade. Service affecting upgrades, such as server hardware or CloudLayer Computing Instance upgrades that require the server powered down must have a two hour maintenance specified for our datacenter engineers to perform your upgrade. Account level upgrades, such as adding PPTP VPN users, CDNLayer accounts, and monitoring services are processed much faster and do not require a maintenance window. +func (r Ticket) CreateUpgradeTicket(attachmentId *int, genericUpgrade *string, upgradeMaintenanceWindow *string, details *string, attachmentType *string, title *string) (resp datatypes.Ticket, err error) { + params := []interface{}{ + attachmentId, + genericUpgrade, + upgradeMaintenanceWindow, + details, + attachmentType, + title, + } + err = r.Session.DoRequest("SoftLayer_Ticket", "createUpgradeTicket", params, &r.Options, &resp) + return +} + +// Edit a SoftLayer ticket. The edit method is two-fold. You may either edit a ticket itself, add an update to a ticket, attach up to two files to a ticket, or perform all of these tasks. The SoftLayer API ignores changes made to the ''userEditableFlag'' and ''accountId'' properties. You may not assign a ticket to a user that your API account does not have access to. You may not enter a custom title for standard support tickets, buy may do so when editing an administrative ticket. Finally, you may not close a ticket using this method. Please contact SoftLayer if you need a ticket closed. +// +// If you need to only add an update to a ticket then please use the [[SoftLayer_Ticket::addUpdate|addUpdate]] method in this service. Likewise if you need to only attach a file to a ticket then use the [[SoftLayer_Ticket::addAttachedFile|addAttachedFile]] method. The edit method exists as a convenience if you need to perform all these tasks at once. +func (r Ticket) Edit(templateObject *datatypes.Ticket, contents *string, attachedFiles []datatypes.Container_Utility_File_Attachment) (resp datatypes.Ticket, err error) { + params := []interface{}{ + templateObject, + contents, + attachedFiles, + } + err = r.Session.DoRequest("SoftLayer_Ticket", "edit", params, &r.Options, &resp) + return +} + +// Retrieve The SoftLayer customer account associated with a ticket. +func (r Ticket) GetAccount() (resp datatypes.Account, err error) { + err = r.Session.DoRequest("SoftLayer_Ticket", "getAccount", nil, &r.Options, &resp) + return +} + +// getAllTicketGroups() retrieves a list of all groups that a ticket may be assigned to. Ticket groups represent the internal department at SoftLayer who a ticket is assigned to. +// +// Every SoftLayer ticket has groupId and ticketGroup properties that correspond to one of the groups returned by getAllTicketGroups(). +func (r Ticket) GetAllTicketGroups() (resp []datatypes.Ticket_Group, err error) { + err = r.Session.DoRequest("SoftLayer_Ticket", "getAllTicketGroups", nil, &r.Options, &resp) + return +} + +// getAllTicketStatuses() retrieves a list of all statuses that a ticket may exist in. Ticket status represent the current state of a ticket, usually "open", "assigned", and "closed". +// +// Every SoftLayer ticket has statusId and status properties that correspond to one of the statuses returned by getAllTicketStatuses(). +func (r Ticket) GetAllTicketStatuses() (resp []datatypes.Ticket_Status, err error) { + err = r.Session.DoRequest("SoftLayer_Ticket", "getAllTicketStatuses", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Ticket) GetAssignedAgents() (resp []datatypes.User_Customer, err error) { + err = r.Session.DoRequest("SoftLayer_Ticket", "getAssignedAgents", nil, &r.Options, &resp) + return +} + +// Retrieve The portal user that a ticket is assigned to. +func (r Ticket) GetAssignedUser() (resp datatypes.User_Customer, err error) { + err = r.Session.DoRequest("SoftLayer_Ticket", "getAssignedUser", nil, &r.Options, &resp) + return +} + +// Retrieve The list of additional emails to notify when a ticket update is made. +func (r Ticket) GetAttachedAdditionalEmails() (resp []datatypes.User_Customer_AdditionalEmail, err error) { + err = r.Session.DoRequest("SoftLayer_Ticket", "getAttachedAdditionalEmails", nil, &r.Options, &resp) + return +} + +// Retrieve The Dedicated Hosts associated with a ticket. This is used in cases where a ticket is directly associated with one or more Dedicated Hosts. +func (r Ticket) GetAttachedDedicatedHosts() (resp []datatypes.Virtual_DedicatedHost, err error) { + err = r.Session.DoRequest("SoftLayer_Ticket", "getAttachedDedicatedHosts", nil, &r.Options, &resp) + return +} + +// Retrieve the file attached to a SoftLayer ticket by it's given identifier. To retrieve a list of files attached to a ticket either call the SoftLayer_Ticket::getAttachedFiles method or call SoftLayer_Ticket::getObject with ''attachedFiles'' defined in an object mask. +func (r Ticket) GetAttachedFile(attachmentId *int) (resp []byte, err error) { + params := []interface{}{ + attachmentId, + } + err = r.Session.DoRequest("SoftLayer_Ticket", "getAttachedFile", params, &r.Options, &resp) + return +} + +// Retrieve The files attached to a ticket. +func (r Ticket) GetAttachedFiles() (resp []datatypes.Ticket_Attachment_File, err error) { + err = r.Session.DoRequest("SoftLayer_Ticket", "getAttachedFiles", nil, &r.Options, &resp) + return +} + +// Retrieve The hardware associated with a ticket. This is used in cases where a ticket is directly associated with one or more pieces of hardware. +func (r Ticket) GetAttachedHardware() (resp []datatypes.Hardware, err error) { + err = r.Session.DoRequest("SoftLayer_Ticket", "getAttachedHardware", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Ticket) GetAttachedHardwareCount() (resp uint, err error) { + err = r.Session.DoRequest("SoftLayer_Ticket", "getAttachedHardwareCount", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Ticket) GetAttachedResources() (resp []datatypes.Ticket_Attachment, err error) { + err = r.Session.DoRequest("SoftLayer_Ticket", "getAttachedResources", nil, &r.Options, &resp) + return +} + +// Retrieve The virtual guests associated with a ticket. This is used in cases where a ticket is directly associated with one or more virtualized guests installations or Virtual Servers. +func (r Ticket) GetAttachedVirtualGuests() (resp []datatypes.Virtual_Guest, err error) { + err = r.Session.DoRequest("SoftLayer_Ticket", "getAttachedVirtualGuests", nil, &r.Options, &resp) + return +} + +// Retrieve Ticket is waiting on a response from a customer flag. +func (r Ticket) GetAwaitingUserResponseFlag() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Ticket", "getAwaitingUserResponseFlag", nil, &r.Options, &resp) + return +} + +// Retrieve A service cancellation request. +func (r Ticket) GetCancellationRequest() (resp datatypes.Billing_Item_Cancellation_Request, err error) { + err = r.Session.DoRequest("SoftLayer_Ticket", "getCancellationRequest", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Ticket) GetEmployeeAttachments() (resp []datatypes.User_Employee, err error) { + err = r.Session.DoRequest("SoftLayer_Ticket", "getEmployeeAttachments", nil, &r.Options, &resp) + return +} + +// Retrieve The first physical or virtual server attached to a ticket. +func (r Ticket) GetFirstAttachedResource() (resp datatypes.Ticket_Attachment, err error) { + err = r.Session.DoRequest("SoftLayer_Ticket", "getFirstAttachedResource", nil, &r.Options, &resp) + return +} + +// Retrieve The first update made to a ticket. This is typically the contents of a ticket when it's created. +func (r Ticket) GetFirstUpdate() (resp datatypes.Ticket_Update, err error) { + err = r.Session.DoRequest("SoftLayer_Ticket", "getFirstUpdate", nil, &r.Options, &resp) + return +} + +// Retrieve The SoftLayer department that a ticket is assigned to. +func (r Ticket) GetGroup() (resp datatypes.Ticket_Group, err error) { + err = r.Session.DoRequest("SoftLayer_Ticket", "getGroup", nil, &r.Options, &resp) + return +} + +// Retrieve The invoice items associated with a ticket. Ticket based invoice items only exist when a ticket incurs a fee that has been invoiced. +func (r Ticket) GetInvoiceItems() (resp []datatypes.Billing_Invoice_Item, err error) { + err = r.Session.DoRequest("SoftLayer_Ticket", "getInvoiceItems", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Ticket) GetLastActivity() (resp datatypes.Ticket_Activity, err error) { + err = r.Session.DoRequest("SoftLayer_Ticket", "getLastActivity", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Ticket) GetLastEditor() (resp datatypes.User_Interface, err error) { + err = r.Session.DoRequest("SoftLayer_Ticket", "getLastEditor", nil, &r.Options, &resp) + return +} + +// Retrieve The last update made to a ticket. +func (r Ticket) GetLastUpdate() (resp datatypes.Ticket_Update, err error) { + err = r.Session.DoRequest("SoftLayer_Ticket", "getLastUpdate", nil, &r.Options, &resp) + return +} + +// Retrieve A timestamp of the last time the Ticket was viewed by the active user. +func (r Ticket) GetLastViewedDate() (resp datatypes.Time, err error) { + err = r.Session.DoRequest("SoftLayer_Ticket", "getLastViewedDate", nil, &r.Options, &resp) + return +} + +// Retrieve A ticket's associated location within the SoftLayer location hierarchy. +func (r Ticket) GetLocation() (resp datatypes.Location, err error) { + err = r.Session.DoRequest("SoftLayer_Ticket", "getLocation", nil, &r.Options, &resp) + return +} + +// Retrieve True if there are new, unread updates to this ticket for the current user, False otherwise. +func (r Ticket) GetNewUpdatesFlag() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Ticket", "getNewUpdatesFlag", nil, &r.Options, &resp) + return +} + +// getObject retrieves the SoftLayer_Ticket object whose ID number corresponds to the ID number of the init parameter passed to the SoftLayer_Ticket service. You can only retrieve tickets that are associated with your SoftLayer customer account. +func (r Ticket) GetObject() (resp datatypes.Ticket, err error) { + err = r.Session.DoRequest("SoftLayer_Ticket", "getObject", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Ticket) GetScheduledActions() (resp []datatypes.Provisioning_Version1_Transaction, err error) { + err = r.Session.DoRequest("SoftLayer_Ticket", "getScheduledActions", nil, &r.Options, &resp) + return +} + +// Retrieve The invoice associated with a ticket. Only tickets with an associated administrative charge have an invoice. +func (r Ticket) GetServerAdministrationBillingInvoice() (resp datatypes.Billing_Invoice, err error) { + err = r.Session.DoRequest("SoftLayer_Ticket", "getServerAdministrationBillingInvoice", nil, &r.Options, &resp) + return +} + +// Retrieve The refund invoice associated with a ticket. Only tickets with a refund applied in them have an associated refund invoice. +func (r Ticket) GetServerAdministrationRefundInvoice() (resp datatypes.Billing_Invoice, err error) { + err = r.Session.DoRequest("SoftLayer_Ticket", "getServerAdministrationRefundInvoice", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Ticket) GetServiceProvider() (resp datatypes.Service_Provider, err error) { + err = r.Session.DoRequest("SoftLayer_Ticket", "getServiceProvider", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Ticket) GetState() (resp []datatypes.Ticket_State, err error) { + err = r.Session.DoRequest("SoftLayer_Ticket", "getState", nil, &r.Options, &resp) + return +} + +// Retrieve A ticket's status. +func (r Ticket) GetStatus() (resp datatypes.Ticket_Status, err error) { + err = r.Session.DoRequest("SoftLayer_Ticket", "getStatus", nil, &r.Options, &resp) + return +} + +// Retrieve A ticket's subject. Only standard support tickets have an associated subject. A standard support ticket's title corresponds with it's subject's name. +func (r Ticket) GetSubject() (resp datatypes.Ticket_Subject, err error) { + err = r.Session.DoRequest("SoftLayer_Ticket", "getSubject", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Ticket) GetTagReferences() (resp []datatypes.Tag_Reference, err error) { + err = r.Session.DoRequest("SoftLayer_Ticket", "getTagReferences", nil, &r.Options, &resp) + return +} + +// Retrieve all tickets closed since a given date. +func (r Ticket) GetTicketsClosedSinceDate(closeDate *datatypes.Time) (resp []datatypes.Ticket, err error) { + params := []interface{}{ + closeDate, + } + err = r.Session.DoRequest("SoftLayer_Ticket", "getTicketsClosedSinceDate", params, &r.Options, &resp) + return +} + +// Retrieve A ticket's updates. +func (r Ticket) GetUpdates() (resp []datatypes.Ticket_Update, err error) { + err = r.Session.DoRequest("SoftLayer_Ticket", "getUpdates", nil, &r.Options, &resp) + return +} + +// Mark a ticket as viewed. All currently posted updates will be marked as viewed. The lastViewedDate property will be updated to the current time. +func (r Ticket) MarkAsViewed() (err error) { + var resp datatypes.Void + err = r.Session.DoRequest("SoftLayer_Ticket", "markAsViewed", nil, &r.Options, &resp) + return +} + +// +// +// +func (r Ticket) RemoveAssignedAgent(agentId *int) (err error) { + var resp datatypes.Void + params := []interface{}{ + agentId, + } + err = r.Session.DoRequest("SoftLayer_Ticket", "removeAssignedAgent", params, &r.Options, &resp) + return +} + +// removeAttachedAdditionalEmails() removes the specified email addresses from a ticket's notification list. If one of the provided email addresses is not attached to the ticket then ''removeAttachedAdditiaonalEmails()'' ignores it and continues to the next one. Once the email addresses are removed ''removeAttachedAdditiaonalEmails()'' returns a boolean true. +func (r Ticket) RemoveAttachedAdditionalEmails(emails []string) (resp bool, err error) { + params := []interface{}{ + emails, + } + err = r.Session.DoRequest("SoftLayer_Ticket", "removeAttachedAdditionalEmails", params, &r.Options, &resp) + return +} + +// detach the given hardware from a SoftLayer ticket. Removing a hardware attachment may delay ticket processing time if the hardware removed is relevant to the ticket's issue. Return a boolean true upon successful hardware detachment. +func (r Ticket) RemoveAttachedHardware(hardwareId *int) (resp bool, err error) { + params := []interface{}{ + hardwareId, + } + err = r.Session.DoRequest("SoftLayer_Ticket", "removeAttachedHardware", params, &r.Options, &resp) + return +} + +// Detach the given CloudLayer Computing Instance from a SoftLayer ticket. Removing an attachment may delay ticket processing time if the instance removed is relevant to the ticket's issue. Return a boolean true upon successful detachment. +func (r Ticket) RemoveAttachedVirtualGuest(guestId *int) (resp bool, err error) { + params := []interface{}{ + guestId, + } + err = r.Session.DoRequest("SoftLayer_Ticket", "removeAttachedVirtualGuest", params, &r.Options, &resp) + return +} + +// no documentation yet +func (r Ticket) RemoveScheduledAlert() (err error) { + var resp datatypes.Void + err = r.Session.DoRequest("SoftLayer_Ticket", "removeScheduledAlert", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Ticket) RemoveScheduledAutoClose() (err error) { + var resp datatypes.Void + err = r.Session.DoRequest("SoftLayer_Ticket", "removeScheduledAutoClose", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Ticket) SetTags(tags *string) (resp bool, err error) { + params := []interface{}{ + tags, + } + err = r.Session.DoRequest("SoftLayer_Ticket", "setTags", params, &r.Options, &resp) + return +} + +// (DEPRECATED) Use [[SoftLayer_Ticket_Survey::getPreference]] method. +func (r Ticket) SurveyEligible() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Ticket", "surveyEligible", nil, &r.Options, &resp) + return +} + +// Creates new additional emails for assigned user if new emails are provided. Attaches any newly created additional emails to ticket. Remove any additional emails from a ticket that are not provided as part of $emails +func (r Ticket) UpdateAttachedAdditionalEmails(emails []string) (resp bool, err error) { + params := []interface{}{ + emails, + } + err = r.Session.DoRequest("SoftLayer_Ticket", "updateAttachedAdditionalEmails", params, &r.Options, &resp) + return +} + +// SoftLayer tickets have the ability to be associated with specific pieces of dedicated hosts in a customer's inventory. Attaching a dedicated host to a ticket can greatly increase response time from SoftLayer for issues that are related to one or more specific servers on a customer's account. The SoftLayer_Ticket_Attachment_Dedicated_Host data type models the relationship between a dedicated host and a ticket. Only one attachment record may exist per dedicated host item per ticket. +type Ticket_Attachment_Dedicated_Host struct { + Session *session.Session + Options sl.Options +} + +// GetTicketAttachmentDedicatedHostService returns an instance of the Ticket_Attachment_Dedicated_Host SoftLayer service +func GetTicketAttachmentDedicatedHostService(sess *session.Session) Ticket_Attachment_Dedicated_Host { + return Ticket_Attachment_Dedicated_Host{Session: sess} +} + +func (r Ticket_Attachment_Dedicated_Host) Id(id int) Ticket_Attachment_Dedicated_Host { + r.Options.Id = &id + return r +} + +func (r Ticket_Attachment_Dedicated_Host) Mask(mask string) Ticket_Attachment_Dedicated_Host { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Ticket_Attachment_Dedicated_Host) Filter(filter string) Ticket_Attachment_Dedicated_Host { + r.Options.Filter = filter + return r +} + +func (r Ticket_Attachment_Dedicated_Host) Limit(limit int) Ticket_Attachment_Dedicated_Host { + r.Options.Limit = &limit + return r +} + +func (r Ticket_Attachment_Dedicated_Host) Offset(offset int) Ticket_Attachment_Dedicated_Host { + r.Options.Offset = &offset + return r +} + +// Retrieve The Dedicated Host that is attached to a ticket. +func (r Ticket_Attachment_Dedicated_Host) GetDedicatedHost() (resp datatypes.Virtual_DedicatedHost, err error) { + err = r.Session.DoRequest("SoftLayer_Ticket_Attachment_Dedicated_Host", "getDedicatedHost", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Ticket_Attachment_Dedicated_Host) GetObject() (resp datatypes.Ticket_Attachment_Dedicated_Host, err error) { + err = r.Session.DoRequest("SoftLayer_Ticket_Attachment_Dedicated_Host", "getObject", nil, &r.Options, &resp) + return +} + +// Retrieve The Dedicated Host that is attached to a ticket. +func (r Ticket_Attachment_Dedicated_Host) GetResource() (resp datatypes.Virtual_DedicatedHost, err error) { + err = r.Session.DoRequest("SoftLayer_Ticket_Attachment_Dedicated_Host", "getResource", nil, &r.Options, &resp) + return +} + +// SoftLayer tickets can have have files attached to them. Attaching a file to a ticket is a good way to report issues, provide documentation, and give examples of an issue. Both SoftLayer customers and employees have the ability to attach files to a ticket. The SoftLayer_Ticket_Attachment_File data type models a single file attached to a ticket. +type Ticket_Attachment_File struct { + Session *session.Session + Options sl.Options +} + +// GetTicketAttachmentFileService returns an instance of the Ticket_Attachment_File SoftLayer service +func GetTicketAttachmentFileService(sess *session.Session) Ticket_Attachment_File { + return Ticket_Attachment_File{Session: sess} +} + +func (r Ticket_Attachment_File) Id(id int) Ticket_Attachment_File { + r.Options.Id = &id + return r +} + +func (r Ticket_Attachment_File) Mask(mask string) Ticket_Attachment_File { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Ticket_Attachment_File) Filter(filter string) Ticket_Attachment_File { + r.Options.Filter = filter + return r +} + +func (r Ticket_Attachment_File) Limit(limit int) Ticket_Attachment_File { + r.Options.Limit = &limit + return r +} + +func (r Ticket_Attachment_File) Offset(offset int) Ticket_Attachment_File { + r.Options.Offset = &offset + return r +} + +// no documentation yet +func (r Ticket_Attachment_File) GetExtensionWhitelist() (resp []string, err error) { + err = r.Session.DoRequest("SoftLayer_Ticket_Attachment_File", "getExtensionWhitelist", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Ticket_Attachment_File) GetObject() (resp datatypes.Ticket_Attachment_File, err error) { + err = r.Session.DoRequest("SoftLayer_Ticket_Attachment_File", "getObject", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Ticket_Attachment_File) GetTicket() (resp datatypes.Ticket, err error) { + err = r.Session.DoRequest("SoftLayer_Ticket_Attachment_File", "getTicket", nil, &r.Options, &resp) + return +} + +// Retrieve The ticket that a file is attached to. +func (r Ticket_Attachment_File) GetUpdate() (resp datatypes.Ticket_Update, err error) { + err = r.Session.DoRequest("SoftLayer_Ticket_Attachment_File", "getUpdate", nil, &r.Options, &resp) + return +} + +// no documentation yet +type Ticket_Priority struct { + Session *session.Session + Options sl.Options +} + +// GetTicketPriorityService returns an instance of the Ticket_Priority SoftLayer service +func GetTicketPriorityService(sess *session.Session) Ticket_Priority { + return Ticket_Priority{Session: sess} +} + +func (r Ticket_Priority) Id(id int) Ticket_Priority { + r.Options.Id = &id + return r +} + +func (r Ticket_Priority) Mask(mask string) Ticket_Priority { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Ticket_Priority) Filter(filter string) Ticket_Priority { + r.Options.Filter = filter + return r +} + +func (r Ticket_Priority) Limit(limit int) Ticket_Priority { + r.Options.Limit = &limit + return r +} + +func (r Ticket_Priority) Offset(offset int) Ticket_Priority { + r.Options.Offset = &offset + return r +} + +// no documentation yet +func (r Ticket_Priority) GetPriorities() (resp []datatypes.Container_Ticket_Priority, err error) { + err = r.Session.DoRequest("SoftLayer_Ticket_Priority", "getPriorities", nil, &r.Options, &resp) + return +} + +// The SoftLayer_Ticket_Subject data type models one of the possible subjects that a standard support ticket may belong to. A basic support ticket's title matches it's corresponding subject's name. +type Ticket_Subject struct { + Session *session.Session + Options sl.Options +} + +// GetTicketSubjectService returns an instance of the Ticket_Subject SoftLayer service +func GetTicketSubjectService(sess *session.Session) Ticket_Subject { + return Ticket_Subject{Session: sess} +} + +func (r Ticket_Subject) Id(id int) Ticket_Subject { + r.Options.Id = &id + return r +} + +func (r Ticket_Subject) Mask(mask string) Ticket_Subject { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Ticket_Subject) Filter(filter string) Ticket_Subject { + r.Options.Filter = filter + return r +} + +func (r Ticket_Subject) Limit(limit int) Ticket_Subject { + r.Options.Limit = &limit + return r +} + +func (r Ticket_Subject) Offset(offset int) Ticket_Subject { + r.Options.Offset = &offset + return r +} + +// Retrieve all possible ticket subjects. The SoftLayer customer portal uses this method in the add standard support ticket form. +func (r Ticket_Subject) GetAllObjects() (resp []datatypes.Ticket_Subject, err error) { + err = r.Session.DoRequest("SoftLayer_Ticket_Subject", "getAllObjects", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Ticket_Subject) GetCategory() (resp datatypes.Ticket_Subject_Category, err error) { + err = r.Session.DoRequest("SoftLayer_Ticket_Subject", "getCategory", nil, &r.Options, &resp) + return +} + +// Retrieve A child subject +func (r Ticket_Subject) GetChildren() (resp []datatypes.Ticket_Subject, err error) { + err = r.Session.DoRequest("SoftLayer_Ticket_Subject", "getChildren", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Ticket_Subject) GetGroup() (resp datatypes.Ticket_Group, err error) { + err = r.Session.DoRequest("SoftLayer_Ticket_Subject", "getGroup", nil, &r.Options, &resp) + return +} + +// getObject retrieves the SoftLayer_Ticket_Subject object whose ID number corresponds to the ID number of the init parameter passed to the SoftLayer_Ticket_Subject service. +func (r Ticket_Subject) GetObject() (resp datatypes.Ticket_Subject, err error) { + err = r.Session.DoRequest("SoftLayer_Ticket_Subject", "getObject", nil, &r.Options, &resp) + return +} + +// Retrieve A parent subject +func (r Ticket_Subject) GetParent() (resp datatypes.Ticket_Subject, err error) { + err = r.Session.DoRequest("SoftLayer_Ticket_Subject", "getParent", nil, &r.Options, &resp) + return +} + +// SoftLayer maintains relationships between the generic subjects for standard administration and the top five commonly asked questions about these subjects. getTopFileKnowledgeLayerQuestions() retrieves the top five questions and answers from the SoftLayer KnowledgeLayer related to the given ticket subject. +func (r Ticket_Subject) GetTopFiveKnowledgeLayerQuestions() (resp []datatypes.Container_KnowledgeLayer_QuestionAnswer, err error) { + err = r.Session.DoRequest("SoftLayer_Ticket_Subject", "getTopFiveKnowledgeLayerQuestions", nil, &r.Options, &resp) + return +} + +// SoftLayer_Ticket_Subject_Category groups ticket subjects into logical group. +type Ticket_Subject_Category struct { + Session *session.Session + Options sl.Options +} + +// GetTicketSubjectCategoryService returns an instance of the Ticket_Subject_Category SoftLayer service +func GetTicketSubjectCategoryService(sess *session.Session) Ticket_Subject_Category { + return Ticket_Subject_Category{Session: sess} +} + +func (r Ticket_Subject_Category) Id(id int) Ticket_Subject_Category { + r.Options.Id = &id + return r +} + +func (r Ticket_Subject_Category) Mask(mask string) Ticket_Subject_Category { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Ticket_Subject_Category) Filter(filter string) Ticket_Subject_Category { + r.Options.Filter = filter + return r +} + +func (r Ticket_Subject_Category) Limit(limit int) Ticket_Subject_Category { + r.Options.Limit = &limit + return r +} + +func (r Ticket_Subject_Category) Offset(offset int) Ticket_Subject_Category { + r.Options.Offset = &offset + return r +} + +// Retrieve all ticket subject categories. +func (r Ticket_Subject_Category) GetAllObjects() (resp []datatypes.Ticket_Subject_Category, err error) { + err = r.Session.DoRequest("SoftLayer_Ticket_Subject_Category", "getAllObjects", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Ticket_Subject_Category) GetObject() (resp datatypes.Ticket_Subject_Category, err error) { + err = r.Session.DoRequest("SoftLayer_Ticket_Subject_Category", "getObject", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Ticket_Subject_Category) GetSubjects() (resp []datatypes.Ticket_Subject, err error) { + err = r.Session.DoRequest("SoftLayer_Ticket_Subject_Category", "getSubjects", nil, &r.Options, &resp) + return +} + +// no documentation yet +type Ticket_Survey struct { + Session *session.Session + Options sl.Options +} + +// GetTicketSurveyService returns an instance of the Ticket_Survey SoftLayer service +func GetTicketSurveyService(sess *session.Session) Ticket_Survey { + return Ticket_Survey{Session: sess} +} + +func (r Ticket_Survey) Id(id int) Ticket_Survey { + r.Options.Id = &id + return r +} + +func (r Ticket_Survey) Mask(mask string) Ticket_Survey { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Ticket_Survey) Filter(filter string) Ticket_Survey { + r.Options.Filter = filter + return r +} + +func (r Ticket_Survey) Limit(limit int) Ticket_Survey { + r.Options.Limit = &limit + return r +} + +func (r Ticket_Survey) Offset(offset int) Ticket_Survey { + r.Options.Offset = &offset + return r +} + +// Use this method to retrieve the ticket survey preferences. It will return your [[SoftLayer_Container_Ticket_Survey_Preference|survey preference]] which indicates if your account is applicable to receive a survey and if you're opted in. You can control the survey opt via the [[SoftLayer_Ticket_Survey::optIn|opt-in]] or [[SoftLayer_Ticket_Survey::optOut|opt-out]] method. +func (r Ticket_Survey) GetPreference() (resp datatypes.Container_Ticket_Survey_Preference, err error) { + err = r.Session.DoRequest("SoftLayer_Ticket_Survey", "getPreference", nil, &r.Options, &resp) + return +} + +// You will not receive a ticket survey if you are opted out. Use this method to opt back in if you wish to provide feedback to our support team. You may use the [[SoftLayer_Ticket_Survey::getPreference|getPreference]] method to check your current opt status. +// +// This method is depricated. Use [[SoftLayer_User_Customer::changePreference]] instead. +func (r Ticket_Survey) OptIn() (resp datatypes.Container_Ticket_Survey_Preference, err error) { + err = r.Session.DoRequest("SoftLayer_Ticket_Survey", "optIn", nil, &r.Options, &resp) + return +} + +// By default, customers will occasionally receive a ticket survey upon closing of a ticket. Use this method to opt out of it for the next 90 days. Ticket surveys may not be applicable for some customers. Use the [[SoftLayer_Ticket_Survey::getPreference|getPreference]] method to retrieve your survey preference. The "applicable" property of the [[SoftLayer_Container_Ticket_Survey_Preference|survey preference]] indicates if the survey is relevant to your account or not. +// +// This method is depricated. Use [[SoftLayer_User_Customer::changePreference]] instead. +func (r Ticket_Survey) OptOut() (resp datatypes.Container_Ticket_Survey_Preference, err error) { + err = r.Session.DoRequest("SoftLayer_Ticket_Survey", "optOut", nil, &r.Options, &resp) + return +} + +// The SoftLayer_Ticket_Update_Employee data type models an update to a ticket made by a SoftLayer employee. +type Ticket_Update_Employee struct { + Session *session.Session + Options sl.Options +} + +// GetTicketUpdateEmployeeService returns an instance of the Ticket_Update_Employee SoftLayer service +func GetTicketUpdateEmployeeService(sess *session.Session) Ticket_Update_Employee { + return Ticket_Update_Employee{Session: sess} +} + +func (r Ticket_Update_Employee) Id(id int) Ticket_Update_Employee { + r.Options.Id = &id + return r +} + +func (r Ticket_Update_Employee) Mask(mask string) Ticket_Update_Employee { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Ticket_Update_Employee) Filter(filter string) Ticket_Update_Employee { + r.Options.Filter = filter + return r +} + +func (r Ticket_Update_Employee) Limit(limit int) Ticket_Update_Employee { + r.Options.Limit = &limit + return r +} + +func (r Ticket_Update_Employee) Offset(offset int) Ticket_Update_Employee { + r.Options.Offset = &offset + return r +} + +// As part of the customer service process SoftLayer has provided a quick feedback mechanism for its customers to rate the responses that its employees give on tickets. addResponseRating() sets the rating for a single ticket update made by a SoftLayer employee. Ticket ratings have the integer values 1 through 5, with 1 being the worst and 5 being the best. Once the rating is set ''addResponseRating()'' returns a boolean true. +func (r Ticket_Update_Employee) AddResponseRating(responseRating *int) (resp bool, err error) { + params := []interface{}{ + responseRating, + } + err = r.Session.DoRequest("SoftLayer_Ticket_Update_Employee", "addResponseRating", params, &r.Options, &resp) + return +} + +// getObject retrieves the SoftLayer_Ticket_Update_Employee object whose ID number corresponds to the ID number of the init parameter passed to the SoftLayer_Ticket_Update_Employee service. You can only retrieve employee updates to tickets that your API account has access to. +func (r Ticket_Update_Employee) GetObject() (resp datatypes.Ticket_Update_Employee, err error) { + err = r.Session.DoRequest("SoftLayer_Ticket_Update_Employee", "getObject", nil, &r.Options, &resp) + return +} diff --git a/vendor/github.com/softlayer/softlayer-go/services/user.go b/vendor/github.com/softlayer/softlayer-go/services/user.go new file mode 100644 index 000000000..ff7eb11a7 --- /dev/null +++ b/vendor/github.com/softlayer/softlayer-go/services/user.go @@ -0,0 +1,4396 @@ +/** + * Copyright 2016 IBM Corp. + * + * 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. + */ + +/** + * AUTOMATICALLY GENERATED CODE - DO NOT MODIFY + */ + +package services + +import ( + "fmt" + "strings" + + "github.com/softlayer/softlayer-go/datatypes" + "github.com/softlayer/softlayer-go/session" + "github.com/softlayer/softlayer-go/sl" +) + +// The SoftLayer_User_Customer data type contains general information relating to a single SoftLayer customer portal user. Personal information in this type such as names, addresses, and phone numbers are not necessarily associated with the customer account the user is assigned to. +type User_Customer struct { + Session *session.Session + Options sl.Options +} + +// GetUserCustomerService returns an instance of the User_Customer SoftLayer service +func GetUserCustomerService(sess *session.Session) User_Customer { + return User_Customer{Session: sess} +} + +func (r User_Customer) Id(id int) User_Customer { + r.Options.Id = &id + return r +} + +func (r User_Customer) Mask(mask string) User_Customer { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r User_Customer) Filter(filter string) User_Customer { + r.Options.Filter = filter + return r +} + +func (r User_Customer) Limit(limit int) User_Customer { + r.Options.Limit = &limit + return r +} + +func (r User_Customer) Offset(offset int) User_Customer { + r.Options.Offset = &offset + return r +} + +// no documentation yet +func (r User_Customer) AcknowledgeSupportPolicy() (err error) { + var resp datatypes.Void + err = r.Session.DoRequest("SoftLayer_User_Customer", "acknowledgeSupportPolicy", nil, &r.Options, &resp) + return +} + +// Create a user's API authentication key, allowing that user access to query the SoftLayer API. addApiAuthenticationKey() returns the users new API key. Each portal user is allowed a maximum of two API keys. +func (r User_Customer) AddApiAuthenticationKey() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_User_Customer", "addApiAuthenticationKey", nil, &r.Options, &resp) + return +} + +// Add multiple hardware to a portal user's hardware access list. A user's hardware access list controls which of an account's hardware objects a user has access to in the SoftLayer customer portal and API. Hardware does not exist in the SoftLayer portal and returns "not found" exceptions in the API if the user doesn't have access to it. addBulkHardwareAccess() does not attempt to add hardware access if the given user already has access to that hardware object. +// +// Users can assign hardware access to their child users, but not to themselves. An account's master has access to all hardware on their customer account and can set hardware access for any of the other users on their account. +func (r User_Customer) AddBulkHardwareAccess(hardwareIds []int) (resp bool, err error) { + params := []interface{}{ + hardwareIds, + } + err = r.Session.DoRequest("SoftLayer_User_Customer", "addBulkHardwareAccess", params, &r.Options, &resp) + return +} + +// Add multiple permissions to a portal user's permission set. [[Permissions]] control which features in the SoftLayer customer portal and API a user may use. addBulkPortalPermission() does not attempt to add permissions already assigned to the user. +// +// Users can assign permissions to their child users, but not to themselves. An account's master has all portal permissions and can set permissions for any of the other users on their account. +// +// Use the [[SoftLayer_User_Customer_CustomerPermission_Permission::getAllObjects]] method to retrieve a list of all permissions available in the SoftLayer customer portal and API. Permissions are removed based on the keyName property of the permission objects within the permissions parameter. +func (r User_Customer) AddBulkPortalPermission(permissions []datatypes.User_Customer_CustomerPermission_Permission) (resp bool, err error) { + params := []interface{}{ + permissions, + } + err = r.Session.DoRequest("SoftLayer_User_Customer", "addBulkPortalPermission", params, &r.Options, &resp) + return +} + +// no documentation yet +func (r User_Customer) AddBulkRoles(roles []datatypes.User_Permission_Role) (err error) { + var resp datatypes.Void + params := []interface{}{ + roles, + } + err = r.Session.DoRequest("SoftLayer_User_Customer", "addBulkRoles", params, &r.Options, &resp) + return +} + +// Add multiple CloudLayer Computing Instances to a portal user's access list. A user's CloudLayer Computing Instance access list controls which of an account's CloudLayer Computing Instance objects a user has access to in the SoftLayer customer portal and API. CloudLayer Computing Instances do not exist in the SoftLayer portal and returns "not found" exceptions in the API if the user doesn't have access to it. addBulkVirtualGuestAccess() does not attempt to add CloudLayer Computing Instance access if the given user already has access to that CloudLayer Computing Instance object. +// +// Users can assign CloudLayer Computing Instance access to their child users, but not to themselves. An account's master has access to all CloudLayer Computing Instances on their customer account and can set CloudLayer Computing Instance access for any of the other users on their account. +func (r User_Customer) AddBulkVirtualGuestAccess(virtualGuestIds []int) (resp bool, err error) { + params := []interface{}{ + virtualGuestIds, + } + err = r.Session.DoRequest("SoftLayer_User_Customer", "addBulkVirtualGuestAccess", params, &r.Options, &resp) + return +} + +// no documentation yet +func (r User_Customer) AddExternalBinding(externalBinding *datatypes.User_External_Binding) (resp datatypes.User_Customer_External_Binding, err error) { + params := []interface{}{ + externalBinding, + } + err = r.Session.DoRequest("SoftLayer_User_Customer", "addExternalBinding", params, &r.Options, &resp) + return +} + +// Add hardware to a portal user's hardware access list. A user's hardware access list controls which of an account's hardware objects a user has access to in the SoftLayer customer portal and API. Hardware does not exist in the SoftLayer portal and returns "not found" exceptions in the API if the user doesn't have access to it. If a user already has access to the hardware you're attempting to add then addHardwareAccess() returns true. +// +// Users can assign hardware access to their child users, but not to themselves. An account's master has access to all hardware on their customer account and can set hardware access for any of the other users on their account. +func (r User_Customer) AddHardwareAccess(hardwareId *int) (resp bool, err error) { + params := []interface{}{ + hardwareId, + } + err = r.Session.DoRequest("SoftLayer_User_Customer", "addHardwareAccess", params, &r.Options, &resp) + return +} + +// Create a notification subscription record for the user. If a subscription record exists for the notification, the record will be set to active, if currently inactive. +func (r User_Customer) AddNotificationSubscriber(notificationKeyName *string) (resp bool, err error) { + params := []interface{}{ + notificationKeyName, + } + err = r.Session.DoRequest("SoftLayer_User_Customer", "addNotificationSubscriber", params, &r.Options, &resp) + return +} + +// Add a permission to a portal user's permission set. [[Permissions]] control which features in the SoftLayer customer portal and API a user may use. If the user already has the permission you're attempting to add then addPortalPermission() returns true. +// +// Users can assign permissions to their child users, but not to themselves. An account's master has all portal permissions and can set permissions for any of the other users on their account. +// +// Use the [[SoftLayer_User_Customer_CustomerPermission_Permission::getAllObjects]] method to retrieve a list of all permissions available in the SoftLayer customer portal and API. Permissions are added based on the keyName property of the permission parameter. +func (r User_Customer) AddPortalPermission(permission *datatypes.User_Customer_CustomerPermission_Permission) (resp bool, err error) { + params := []interface{}{ + permission, + } + err = r.Session.DoRequest("SoftLayer_User_Customer", "addPortalPermission", params, &r.Options, &resp) + return +} + +// no documentation yet +func (r User_Customer) AddRole(role *datatypes.User_Permission_Role) (err error) { + var resp datatypes.Void + params := []interface{}{ + role, + } + err = r.Session.DoRequest("SoftLayer_User_Customer", "addRole", params, &r.Options, &resp) + return +} + +// Add a CloudLayer Computing Instance to a portal user's access list. A user's CloudLayer Computing Instance access list controls which of an account's CloudLayer Computing Instance objects a user has access to in the SoftLayer customer portal and API. CloudLayer Computing Instances do not exist in the SoftLayer portal and returns "not found" exceptions in the API if the user doesn't have access to it. If a user already has access to the CloudLayer Computing Instance you're attempting to add then addVirtualGuestAccess() returns true. +// +// Users can assign CloudLayer Computing Instance access to their child users, but not to themselves. An account's master has access to all CloudLayer Computing Instances on their customer account and can set CloudLayer Computing Instance access for any of the other users on their account. +func (r User_Customer) AddVirtualGuestAccess(virtualGuestId *int) (resp bool, err error) { + params := []interface{}{ + virtualGuestId, + } + err = r.Session.DoRequest("SoftLayer_User_Customer", "addVirtualGuestAccess", params, &r.Options, &resp) + return +} + +// Select a type of preference you would like to modify using [[SoftLayer_User_Customer::getPreferenceTypes|getPreferenceTypes]] and invoke this method using that preference type key name. +func (r User_Customer) ChangePreference(preferenceTypeKeyName *string, value *string) (resp []datatypes.User_Preference, err error) { + params := []interface{}{ + preferenceTypeKeyName, + value, + } + err = r.Session.DoRequest("SoftLayer_User_Customer", "changePreference", params, &r.Options, &resp) + return +} + +// This service checks the result of a previously requested external authentication. [[SoftLayer_Container_User_Customer_External_Binding_Phone|Phone external binding]] container can be used for this service. Make sure to set the [[SoftLayer_Container_User_Customer_External_Binding_Phone::authenticationToken|authenticationToken]] that is generated by [[SoftLayer_User_Customer|initiateExternalAuthentication]] service. +func (r User_Customer) CheckExternalAuthenticationStatus(authenticationContainer *datatypes.Container_User_Customer_External_Binding) (resp datatypes.Container_User_Customer_Portal_Token, err error) { + params := []interface{}{ + authenticationContainer, + } + err = r.Session.DoRequest("SoftLayer_User_Customer", "checkExternalAuthenticationStatus", params, &r.Options, &resp) + return +} + +// Add a description here +// +// +func (r User_Customer) CheckPhoneFactorAuthenticationForPasswordSet(passwordSet *datatypes.Container_User_Customer_PasswordSet, authenticationContainer *datatypes.Container_User_Customer_External_Binding) (resp bool, err error) { + params := []interface{}{ + passwordSet, + authenticationContainer, + } + err = r.Session.DoRequest("SoftLayer_User_Customer", "checkPhoneFactorAuthenticationForPasswordSet", params, &r.Options, &resp) + return +} + +// Create a new subscriber for a given resource. +func (r User_Customer) CreateNotificationSubscriber(keyName *string, resourceTableId *int) (resp bool, err error) { + params := []interface{}{ + keyName, + resourceTableId, + } + err = r.Session.DoRequest("SoftLayer_User_Customer", "createNotificationSubscriber", params, &r.Options, &resp) + return +} + +// Create a new user in the SoftLayer customer portal. createObject() creates a user's portal record and adds them into the SoftLayer community forums. It is no longer possible to set up the SSL or PPTP enable flag in this call since the manage permissions have not yet been set. You will need to make a subsequent call to edit object in order to enable VPN access. An account's master user and sub-users who have the User Manage permission can add new users. createObject() creates users with a default permission set. After adding a user it may be helpful to set their permissions and hardware access. +// +// Note, neither password nor vpnPassword parameters are required. +// +// Password When a new user is created, an email will be sent to the new user's email address with a link to a url that will allow the new user to create or change their password for the SoftLayer customer portal. +// +// If the password parameter is provided and is not null, then that value will be validated. If it is a valid password, then the user will be created with this password. This user will still receive a portal password email. It can be used within 24 hours to change their password, or it can be allowed to expire, and the password provided during user creation will remain as the user's password. +// +// If the password parameter is not provided or the value is null, the user must set their portal password using the link sent in email within 24 hours.  If the user fails to set their password within 24 hours, then a non-master user can use the "Reset Password" link on the login page of the portal to request a new email. A master user can use the link to retrieve a phone number to call to assist in resetting their password. +// +// The password parameter is ignored for VPN_ONLY users or for IBMid authenticated users. +// +// vpnPassword If the vpnPassword is provided, then the user's vpnPassword will be set to the provided password.  When creating a vpn only user, the vpnPassword MUST be supplied.  If the vpnPassword is not provided, then the user will need to use the portal to edit their profile and set the vpnPassword. +// +// +func (r User_Customer) CreateObject(templateObject *datatypes.User_Customer, password *string, vpnPassword *string) (resp datatypes.User_Customer, err error) { + params := []interface{}{ + templateObject, + password, + vpnPassword, + } + err = r.Session.DoRequest("SoftLayer_User_Customer", "createObject", params, &r.Options, &resp) + return +} + +// Create delivery methods for a notification that the user is subscribed to. Multiple delivery method keyNames can be supplied to create multiple delivery methods for the specified notification. Available delivery methods - 'EMAIL'. Available notifications - 'PLANNED_MAINTENANCE', 'UNPLANNED_INCIDENT'. +func (r User_Customer) CreateSubscriberDeliveryMethods(notificationKeyName *string, deliveryMethodKeyNames []string) (resp bool, err error) { + params := []interface{}{ + notificationKeyName, + deliveryMethodKeyNames, + } + err = r.Session.DoRequest("SoftLayer_User_Customer", "createSubscriberDeliveryMethods", params, &r.Options, &resp) + return +} + +// Create a new subscriber for a given resource. +func (r User_Customer) DeactivateNotificationSubscriber(keyName *string, resourceTableId *int) (resp bool, err error) { + params := []interface{}{ + keyName, + resourceTableId, + } + err = r.Session.DoRequest("SoftLayer_User_Customer", "deactivateNotificationSubscriber", params, &r.Options, &resp) + return +} + +// Account master users and sub-users who have the User Manage permission in the SoftLayer customer portal can update other user's information. Use editObject() if you wish to edit a single user account. Users who do not have the User Manage permission can only update their own information. +func (r User_Customer) EditObject(templateObject *datatypes.User_Customer) (resp bool, err error) { + params := []interface{}{ + templateObject, + } + err = r.Session.DoRequest("SoftLayer_User_Customer", "editObject", params, &r.Options, &resp) + return +} + +// Account master users and sub-users who have the User Manage permission in the SoftLayer customer portal can update other user's information. Use editObjects() if you wish to edit multiple users at once. Users who do not have the User Manage permission can only update their own information. +func (r User_Customer) EditObjects(templateObjects []datatypes.User_Customer) (resp bool, err error) { + params := []interface{}{ + templateObjects, + } + err = r.Session.DoRequest("SoftLayer_User_Customer", "editObjects", params, &r.Options, &resp) + return +} + +// no documentation yet +func (r User_Customer) FindUserPreference(profileName *string, containerKeyname *string, preferenceKeyname *string) (resp []datatypes.Layout_Profile, err error) { + params := []interface{}{ + profileName, + containerKeyname, + preferenceKeyname, + } + err = r.Session.DoRequest("SoftLayer_User_Customer", "findUserPreference", params, &r.Options, &resp) + return +} + +// Retrieve The customer account that a user belongs to. +func (r User_Customer) GetAccount() (resp datatypes.Account, err error) { + err = r.Session.DoRequest("SoftLayer_User_Customer", "getAccount", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r User_Customer) GetActions() (resp []datatypes.User_Permission_Action, err error) { + err = r.Session.DoRequest("SoftLayer_User_Customer", "getActions", nil, &r.Options, &resp) + return +} + +// The getActiveExternalAuthenticationVendors method will return a list of available external vendors that a SoftLayer user can authenticate against. The list will only contain vendors for which the user has at least one active external binding. +func (r User_Customer) GetActiveExternalAuthenticationVendors() (resp []datatypes.Container_User_Customer_External_Binding_Vendor, err error) { + err = r.Session.DoRequest("SoftLayer_User_Customer", "getActiveExternalAuthenticationVendors", nil, &r.Options, &resp) + return +} + +// Retrieve A portal user's additional email addresses. These email addresses are contacted when updates are made to support tickets. +func (r User_Customer) GetAdditionalEmails() (resp []datatypes.User_Customer_AdditionalEmail, err error) { + err = r.Session.DoRequest("SoftLayer_User_Customer", "getAdditionalEmails", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r User_Customer) GetAllowedHardwareIds() (resp []int, err error) { + err = r.Session.DoRequest("SoftLayer_User_Customer", "getAllowedHardwareIds", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r User_Customer) GetAllowedVirtualGuestIds() (resp []int, err error) { + err = r.Session.DoRequest("SoftLayer_User_Customer", "getAllowedVirtualGuestIds", nil, &r.Options, &resp) + return +} + +// Retrieve A portal user's API Authentication keys. There is a max limit of two API keys per user. +func (r User_Customer) GetApiAuthenticationKeys() (resp []datatypes.User_Customer_ApiAuthentication, err error) { + err = r.Session.DoRequest("SoftLayer_User_Customer", "getApiAuthenticationKeys", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r User_Customer) GetAuthenticationToken(token *datatypes.Container_User_Authentication_Token) (resp datatypes.Container_User_Authentication_Token, err error) { + params := []interface{}{ + token, + } + err = r.Session.DoRequest("SoftLayer_User_Customer", "getAuthenticationToken", params, &r.Options, &resp) + return +} + +// Retrieve The CDN accounts associated with a portal user. +func (r User_Customer) GetCdnAccounts() (resp []datatypes.Network_ContentDelivery_Account, err error) { + err = r.Session.DoRequest("SoftLayer_User_Customer", "getCdnAccounts", nil, &r.Options, &resp) + return +} + +// Retrieve A portal user's child users. Some portal users may not have child users. +func (r User_Customer) GetChildUsers() (resp []datatypes.User_Customer, err error) { + err = r.Session.DoRequest("SoftLayer_User_Customer", "getChildUsers", nil, &r.Options, &resp) + return +} + +// Retrieve An user's associated closed tickets. +func (r User_Customer) GetClosedTickets() (resp []datatypes.Ticket, err error) { + err = r.Session.DoRequest("SoftLayer_User_Customer", "getClosedTickets", nil, &r.Options, &resp) + return +} + +// This API gets the default account for the OpenIdConnect identity that is linked to the current SoftLayer user identity. If there is no default present, the API returns null, except in the special case where we find one active user linked to the IBMid. In that case, we will set the link from the IBMid to that user as default, and return the account of which that user is a member. Invoke this only on IBMid-authenticated users. +func (r User_Customer) GetDefaultAccount(providerType *string) (resp datatypes.Account, err error) { + params := []interface{}{ + providerType, + } + err = r.Session.DoRequest("SoftLayer_User_Customer", "getDefaultAccount", params, &r.Options, &resp) + return +} + +// This method is deprecated. Please see documentation for initiatePortalPasswordChange +func (r User_Customer) GetDefaultSecurityQuestions(key *string) (resp []datatypes.User_Security_Question, err error) { + params := []interface{}{ + key, + } + err = r.Session.DoRequest("SoftLayer_User_Customer", "getDefaultSecurityQuestions", params, &r.Options, &resp) + return +} + +// Retrieve The external authentication bindings that link an external identifier to a SoftLayer user. +func (r User_Customer) GetExternalBindings() (resp []datatypes.User_External_Binding, err error) { + err = r.Session.DoRequest("SoftLayer_User_Customer", "getExternalBindings", nil, &r.Options, &resp) + return +} + +// Retrieve A portal user's accessible hardware. These permissions control which hardware a user has access to in the SoftLayer customer portal. +func (r User_Customer) GetHardware() (resp []datatypes.Hardware, err error) { + err = r.Session.DoRequest("SoftLayer_User_Customer", "getHardware", nil, &r.Options, &resp) + return +} + +// Retrieve the number of servers that a portal user has access to. Portal users can have restrictions set to limit services for and to perform actions on hardware. You can set these permissions in the portal by clicking the "administrative" then "user admin" links. +func (r User_Customer) GetHardwareCount() (resp int, err error) { + err = r.Session.DoRequest("SoftLayer_User_Customer", "getHardwareCount", nil, &r.Options, &resp) + return +} + +// Retrieve Hardware notifications associated with this user. A hardware notification links a user to a piece of hardware, and that user will be notified if any monitors on that hardware fail, if the monitors have a status of 'Notify User'. +func (r User_Customer) GetHardwareNotifications() (resp []datatypes.User_Customer_Notification_Hardware, err error) { + err = r.Session.DoRequest("SoftLayer_User_Customer", "getHardwareNotifications", nil, &r.Options, &resp) + return +} + +// Retrieve Whether or not a user has acknowledged the support policy. +func (r User_Customer) GetHasAcknowledgedSupportPolicyFlag() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_User_Customer", "getHasAcknowledgedSupportPolicyFlag", nil, &r.Options, &resp) + return +} + +// Retrieve Whether or not a portal user has access to all hardware on their account. +func (r User_Customer) GetHasFullHardwareAccessFlag() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_User_Customer", "getHasFullHardwareAccessFlag", nil, &r.Options, &resp) + return +} + +// Retrieve Whether or not a portal user has access to all hardware on their account. +func (r User_Customer) GetHasFullVirtualGuestAccessFlag() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_User_Customer", "getHasFullVirtualGuestAccessFlag", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r User_Customer) GetImpersonationToken() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_User_Customer", "getImpersonationToken", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r User_Customer) GetLayoutProfiles() (resp []datatypes.Layout_Profile, err error) { + err = r.Session.DoRequest("SoftLayer_User_Customer", "getLayoutProfiles", nil, &r.Options, &resp) + return +} + +// Retrieve A user's locale. Locale holds user's language and region information. +func (r User_Customer) GetLocale() (resp datatypes.Locale, err error) { + err = r.Session.DoRequest("SoftLayer_User_Customer", "getLocale", nil, &r.Options, &resp) + return +} + +// Retrieve A user's attempts to log into the SoftLayer customer portal. +func (r User_Customer) GetLoginAttempts() (resp []datatypes.User_Customer_Access_Authentication, err error) { + err = r.Session.DoRequest("SoftLayer_User_Customer", "getLoginAttempts", nil, &r.Options, &resp) + return +} + +// Attempt to authenticate a user to the SoftLayer customer portal using the provided authentication container. Depending on the specific type of authentication container that is used, this API will leverage the appropriate authentication protocol. If authentication is successful then the API returns a list of linked accounts for the user, a token containing the ID of the authenticated user and a hash key used by the SoftLayer customer portal to maintain authentication. +func (r User_Customer) GetLoginToken(request *datatypes.Container_Authentication_Request_Contract) (resp datatypes.Container_Authentication_Response_Common, err error) { + params := []interface{}{ + request, + } + err = r.Session.DoRequest("SoftLayer_User_Customer", "getLoginToken", params, &r.Options, &resp) + return +} + +// An OpenIdConnect identity, for example an IBMid, can be linked or mapped to one or more individual SoftLayer users, but no more than one SoftLayer user per account. This effectively links the OpenIdConnect identity to those accounts. This API returns a list of all the accounts for which there is a link between the OpenIdConnect identity and a SoftLayer user. Invoke this only on IBMid-authenticated users. +func (r User_Customer) GetMappedAccounts(providerType *string) (resp []datatypes.Account, err error) { + params := []interface{}{ + providerType, + } + err = r.Session.DoRequest("SoftLayer_User_Customer", "getMappedAccounts", params, &r.Options, &resp) + return +} + +// Retrieve A portal user's associated mobile device profiles. +func (r User_Customer) GetMobileDevices() (resp []datatypes.User_Customer_MobileDevice, err error) { + err = r.Session.DoRequest("SoftLayer_User_Customer", "getMobileDevices", nil, &r.Options, &resp) + return +} + +// Retrieve Notification subscription records for the user. +func (r User_Customer) GetNotificationSubscribers() (resp []datatypes.Notification_Subscriber, err error) { + err = r.Session.DoRequest("SoftLayer_User_Customer", "getNotificationSubscribers", nil, &r.Options, &resp) + return +} + +// getObject retrieves the SoftLayer_User_Customer object whose ID number corresponds to the ID number of the init parameter passed to the SoftLayer_User_Customer service. You can only retrieve users that are assigned to the customer account belonging to the user making the API call. +func (r User_Customer) GetObject() (resp datatypes.User_Customer, err error) { + err = r.Session.DoRequest("SoftLayer_User_Customer", "getObject", nil, &r.Options, &resp) + return +} + +// This API returns a SoftLayer_Container_User_Customer_OpenIdConnect_MigrationState object containing the necessary information to determine what migration state the user is in. If the account is not OpenIdConnect authenticated, then an exception is thrown. +func (r User_Customer) GetOpenIdConnectMigrationState() (resp datatypes.Container_User_Customer_OpenIdConnect_MigrationState, err error) { + err = r.Session.DoRequest("SoftLayer_User_Customer", "getOpenIdConnectMigrationState", nil, &r.Options, &resp) + return +} + +// Retrieve An user's associated open tickets. +func (r User_Customer) GetOpenTickets() (resp []datatypes.Ticket, err error) { + err = r.Session.DoRequest("SoftLayer_User_Customer", "getOpenTickets", nil, &r.Options, &resp) + return +} + +// Retrieve A portal user's vpn accessible subnets. +func (r User_Customer) GetOverrides() (resp []datatypes.Network_Service_Vpn_Overrides, err error) { + err = r.Session.DoRequest("SoftLayer_User_Customer", "getOverrides", nil, &r.Options, &resp) + return +} + +// Retrieve A portal user's parent user. If a SoftLayer_User_Customer has a null parentId property then it doesn't have a parent user. +func (r User_Customer) GetParent() (resp datatypes.User_Customer, err error) { + err = r.Session.DoRequest("SoftLayer_User_Customer", "getParent", nil, &r.Options, &resp) + return +} + +// Retrieve A portal user's permissions. These permissions control that user's access to functions within the SoftLayer customer portal and API. +func (r User_Customer) GetPermissions() (resp []datatypes.User_Customer_CustomerPermission_Permission, err error) { + err = r.Session.DoRequest("SoftLayer_User_Customer", "getPermissions", nil, &r.Options, &resp) + return +} + +// Attempt to authenticate a username and password to the SoftLayer customer portal. Many portal user accounts are configured to require answering a security question on login. In this case getPortalLoginToken() also verifies the given security question ID and answer. If authentication is successful then the API returns a token containing the ID of the authenticated user and a hash key used by the SoftLayer customer portal to maintain authentication. +func (r User_Customer) GetPortalLoginToken(username *string, password *string, securityQuestionId *int, securityQuestionAnswer *string) (resp datatypes.Container_User_Customer_Portal_Token, err error) { + params := []interface{}{ + username, + password, + securityQuestionId, + securityQuestionAnswer, + } + err = r.Session.DoRequest("SoftLayer_User_Customer", "getPortalLoginToken", params, &r.Options, &resp) + return +} + +// Select a type of preference you would like to get using [[SoftLayer_User_Customer::getPreferenceTypes|getPreferenceTypes]] and invoke this method using that preference type key name. +func (r User_Customer) GetPreference(preferenceTypeKeyName *string) (resp datatypes.User_Preference, err error) { + params := []interface{}{ + preferenceTypeKeyName, + } + err = r.Session.DoRequest("SoftLayer_User_Customer", "getPreference", params, &r.Options, &resp) + return +} + +// Use any of the preference types to fetch or modify user preferences using [[SoftLayer_User_Customer::getPreference|getPreference]] or [[SoftLayer_User_Customer::changePreference|changePreference]], respectively. +func (r User_Customer) GetPreferenceTypes() (resp []datatypes.User_Preference_Type, err error) { + err = r.Session.DoRequest("SoftLayer_User_Customer", "getPreferenceTypes", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r User_Customer) GetPreferences() (resp []datatypes.User_Preference, err error) { + err = r.Session.DoRequest("SoftLayer_User_Customer", "getPreferences", nil, &r.Options, &resp) + return +} + +// Retrieve the authentication requirements for an outstanding password set/reset request. The password key provided to the user in an email generated by the [[SoftLayer_User_Customer::newUserPassword|newUserPassword]]. Password recovery keys are valid for 24 hours after they're generated. +func (r User_Customer) GetRequirementsForPasswordSet(passwordSet *datatypes.Container_User_Customer_PasswordSet) (resp datatypes.Container_User_Customer_PasswordSet, err error) { + params := []interface{}{ + passwordSet, + } + err = r.Session.DoRequest("SoftLayer_User_Customer", "getRequirementsForPasswordSet", params, &r.Options, &resp) + return +} + +// Retrieve +func (r User_Customer) GetRoles() (resp []datatypes.User_Permission_Role, err error) { + err = r.Session.DoRequest("SoftLayer_User_Customer", "getRoles", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r User_Customer) GetSalesforceUserLink() (resp datatypes.User_Customer_Link, err error) { + err = r.Session.DoRequest("SoftLayer_User_Customer", "getSalesforceUserLink", nil, &r.Options, &resp) + return +} + +// Retrieve A portal user's security question answers. Some portal users may not have security answers or may not be configured to require answering a security question on login. +func (r User_Customer) GetSecurityAnswers() (resp []datatypes.User_Customer_Security_Answer, err error) { + err = r.Session.DoRequest("SoftLayer_User_Customer", "getSecurityAnswers", nil, &r.Options, &resp) + return +} + +// Retrieve A user's notification subscription records. +func (r User_Customer) GetSubscribers() (resp []datatypes.Notification_User_Subscriber, err error) { + err = r.Session.DoRequest("SoftLayer_User_Customer", "getSubscribers", nil, &r.Options, &resp) + return +} + +// Retrieve A user's successful attempts to log into the SoftLayer customer portal. +func (r User_Customer) GetSuccessfulLogins() (resp []datatypes.User_Customer_Access_Authentication, err error) { + err = r.Session.DoRequest("SoftLayer_User_Customer", "getSuccessfulLogins", nil, &r.Options, &resp) + return +} + +// Retrieve Whether or not a user is required to acknowledge the support policy for portal access. +func (r User_Customer) GetSupportPolicyAcknowledgementRequiredFlag() (resp int, err error) { + err = r.Session.DoRequest("SoftLayer_User_Customer", "getSupportPolicyAcknowledgementRequiredFlag", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r User_Customer) GetSupportPolicyDocument() (resp []byte, err error) { + err = r.Session.DoRequest("SoftLayer_User_Customer", "getSupportPolicyDocument", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r User_Customer) GetSupportPolicyName() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_User_Customer", "getSupportPolicyName", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r User_Customer) GetSupportedLocales() (resp []datatypes.Locale, err error) { + err = r.Session.DoRequest("SoftLayer_User_Customer", "getSupportedLocales", nil, &r.Options, &resp) + return +} + +// Retrieve Whether or not a user must take a brief survey the next time they log into the SoftLayer customer portal. +func (r User_Customer) GetSurveyRequiredFlag() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_User_Customer", "getSurveyRequiredFlag", nil, &r.Options, &resp) + return +} + +// Retrieve The surveys that a user has taken in the SoftLayer customer portal. +func (r User_Customer) GetSurveys() (resp []datatypes.Survey, err error) { + err = r.Session.DoRequest("SoftLayer_User_Customer", "getSurveys", nil, &r.Options, &resp) + return +} + +// Retrieve An user's associated tickets. +func (r User_Customer) GetTickets() (resp []datatypes.Ticket, err error) { + err = r.Session.DoRequest("SoftLayer_User_Customer", "getTickets", nil, &r.Options, &resp) + return +} + +// Retrieve A portal user's time zone. +func (r User_Customer) GetTimezone() (resp datatypes.Locale_Timezone, err error) { + err = r.Session.DoRequest("SoftLayer_User_Customer", "getTimezone", nil, &r.Options, &resp) + return +} + +// Retrieve A user's unsuccessful attempts to log into the SoftLayer customer portal. +func (r User_Customer) GetUnsuccessfulLogins() (resp []datatypes.User_Customer_Access_Authentication, err error) { + err = r.Session.DoRequest("SoftLayer_User_Customer", "getUnsuccessfulLogins", nil, &r.Options, &resp) + return +} + +// This method is deprecated. Please see documentation for initiatePortalPasswordChange Retrieve a user object using a password recovery key received in an email generated by the [[SoftLayer_User_Customer::lostPassword|lostPassword]] method. The SoftLayer customer portal uses getUserFromLostPasswordRequest() to retrieve user security questions. Password recovery keys are valid for 24 hours after they're generated. +func (r User_Customer) GetUserFromLostPasswordRequest(key *string) (resp []datatypes.User_Security_Question, err error) { + params := []interface{}{ + key, + } + err = r.Session.DoRequest("SoftLayer_User_Customer", "getUserFromLostPasswordRequest", params, &r.Options, &resp) + return +} + +// Retrieve a user object using a password token. When a new user is created or when a user has requested a password change using initiatePortalPasswordChange, they will have received an email that contains a url with a token. That token is used as the parameter for getUserIdForPasswordSet. +func (r User_Customer) GetUserIdForPasswordSet(key *string) (resp int, err error) { + params := []interface{}{ + key, + } + err = r.Session.DoRequest("SoftLayer_User_Customer", "getUserIdForPasswordSet", params, &r.Options, &resp) + return +} + +// Retrieve +func (r User_Customer) GetUserLinks() (resp []datatypes.User_Customer_Link, err error) { + err = r.Session.DoRequest("SoftLayer_User_Customer", "getUserLinks", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r User_Customer) GetUserPreferences(profileName *string, containerKeyname *string) (resp []datatypes.Layout_Profile, err error) { + params := []interface{}{ + profileName, + containerKeyname, + } + err = r.Session.DoRequest("SoftLayer_User_Customer", "getUserPreferences", params, &r.Options, &resp) + return +} + +// Retrieve A portal user's status, which controls overall access to the SoftLayer customer portal and VPN access to the private network. +func (r User_Customer) GetUserStatus() (resp datatypes.User_Customer_Status, err error) { + err = r.Session.DoRequest("SoftLayer_User_Customer", "getUserStatus", nil, &r.Options, &resp) + return +} + +// Retrieve the number of CloudLayer Computing Instances that a portal user has access to. Portal users can have restrictions set to limit services for and to perform actions on CloudLayer Computing Instances. You can set these permissions in the portal by clicking the "administrative" then "user admin" links. +func (r User_Customer) GetVirtualGuestCount() (resp int, err error) { + err = r.Session.DoRequest("SoftLayer_User_Customer", "getVirtualGuestCount", nil, &r.Options, &resp) + return +} + +// Retrieve A portal user's accessible CloudLayer Computing Instances. These permissions control which CloudLayer Computing Instances a user has access to in the SoftLayer customer portal. +func (r User_Customer) GetVirtualGuests() (resp []datatypes.Virtual_Guest, err error) { + err = r.Session.DoRequest("SoftLayer_User_Customer", "getVirtualGuests", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r User_Customer) InTerminalStatus() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_User_Customer", "inTerminalStatus", nil, &r.Options, &resp) + return +} + +// The service initiates an external authentication with the given external authentication vendor. The authentication container and its content will be verified before an attempt is made to initiate an external authentication. [[SoftLayer_Container_User_Customer_External_Binding_Phone|Phone external binding]] container can be used for this service. +// +// This service returns a unique authentication request token. You can use [[SoftLayer_User_Customer::checkExternalAuthenticationStatus|checkExternalAuthenticationStatus]] service to check if the authentication request is complete or not. +func (r User_Customer) InitiateExternalAuthentication(authenticationContainer *datatypes.Container_User_Customer_External_Binding) (resp string, err error) { + params := []interface{}{ + authenticationContainer, + } + err = r.Session.DoRequest("SoftLayer_User_Customer", "initiateExternalAuthentication", params, &r.Options, &resp) + return +} + +// Sends password change email to the user containing url that allows the user the change their password. This is the first step when a user wishes to change their password. The url that is generated contains a one-time use token that is valid for only 24-hours. +// +// If this is a new master user who has never logged into the portal, then password reset will be initiated. Once a master user has logged into the portal, they must setup their security questions prior to logging out because master users are required to answer a security question during the password reset process. Should a master user not have security questions defined and not remember their password in order to define the security questions, then they will need to contact support at live chat or Revenue Services for assistance. +// +// Due to security reasons, the number reset requests per username are limited within a undisclosed timeframe. +func (r User_Customer) InitiatePortalPasswordChange(username *string) (resp bool, err error) { + params := []interface{}{ + username, + } + err = r.Session.DoRequest("SoftLayer_User_Customer", "initiatePortalPasswordChange", params, &r.Options, &resp) + return +} + +// A Brand Agent that has permissions to Add Customer Accounts will be able to request the password email be sent to the Master User of a Customer Account created by the same Brand as the agent making the request. Due to security reasons, the number of reset requests are limited within an undisclosed timeframe. +func (r User_Customer) InitiatePortalPasswordChangeByBrandAgent(username *string) (resp bool, err error) { + params := []interface{}{ + username, + } + err = r.Session.DoRequest("SoftLayer_User_Customer", "initiatePortalPasswordChangeByBrandAgent", params, &r.Options, &resp) + return +} + +// Send email invitation to a user to join a SoftLayer account and authenticate with OpenIdConnect. Throws an exception on error. +func (r User_Customer) InviteUserToLinkOpenIdConnect(providerType *string) (err error) { + var resp datatypes.Void + params := []interface{}{ + providerType, + } + err = r.Session.DoRequest("SoftLayer_User_Customer", "inviteUserToLinkOpenIdConnect", params, &r.Options, &resp) + return +} + +// Portal users are considered master users if they don't have an associated parent user. The only users who don't have parent users are users whose username matches their SoftLayer account name. Master users have special permissions throughout the SoftLayer customer portal. +func (r User_Customer) IsMasterUser() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_User_Customer", "isMasterUser", nil, &r.Options, &resp) + return +} + +// This method is deprecated! SoftLayer Community Forums no longer exist, therefore, any password verified will return false. +// +// Determine if a string is the given user's login password to the SoftLayer community forums. +func (r User_Customer) IsValidForumPassword(password *string) (resp bool, err error) { + params := []interface{}{ + password, + } + err = r.Session.DoRequest("SoftLayer_User_Customer", "isValidForumPassword", params, &r.Options, &resp) + return +} + +// Determine if a string is the given user's login password to the SoftLayer customer portal. +func (r User_Customer) IsValidPortalPassword(password *string) (resp bool, err error) { + params := []interface{}{ + password, + } + err = r.Session.DoRequest("SoftLayer_User_Customer", "isValidPortalPassword", params, &r.Options, &resp) + return +} + +// This method is deprecated. Please see documentation for initiatePortalPasswordChange SoftLayer provides a way for users of it's customer portal to recover lost passwords. The lostPassword() method is the first step in this process. Given a valid username and email address, the SoftLayer API will email the address provided with a URL to visit to begin the password recovery process. The last part of this URL is a hash key that's used as an identifier throughout this process. Use this hash key in the [[SoftLayer_User_Customer::setPasswordFromLostPasswordRequest|setPasswordFromLostPasswordRequest]] method to reset a user's password. Password recovery hash keys are valid for 24 hours after they're generated. +func (r User_Customer) LostPassword(username *string, email *string) (resp bool, err error) { + params := []interface{}{ + username, + email, + } + err = r.Session.DoRequest("SoftLayer_User_Customer", "lostPassword", params, &r.Options, &resp) + return +} + +// The perform external authentication method will authenticate the given external authentication container with an external vendor. The authentication container and its contents will be verified before an attempt is made to authenticate the contents of the container with an external vendor. +func (r User_Customer) PerformExternalAuthentication(authenticationContainer *datatypes.Container_User_Customer_External_Binding) (resp datatypes.Container_User_Customer_Portal_Token, err error) { + params := []interface{}{ + authenticationContainer, + } + err = r.Session.DoRequest("SoftLayer_User_Customer", "performExternalAuthentication", params, &r.Options, &resp) + return +} + +// Set the password for a user who has an outstanding password request. A user with an outstanding password request will have an unused and unexpired password key. The password key is part of the url provided to the user in the email sent to the user with information on how to set their password. The email was generated by the [[SoftLayer_User_Customer::processPasswordSetRequest|processPasswordSetRequest]] method. Password recovery keys are valid for 24 hours after they're generated. +// +// User portal passwords must match the following restrictions. Portal passwords must... +// * ...be over eight characters long. +// * ...be under twenty characters long. +// * ...contain at least one uppercase letter +// * ...contain at least one lowercase letter +// * ...contain at least one number +// * ...contain one of the special characters _ - | @ . , ? / ! ~ # $ % ^ & * ( ) { } [ ] \ + = +// * ...not match your username +// * ...not match your forum password +func (r User_Customer) ProcessPasswordSetRequest(passwordSet *datatypes.Container_User_Customer_PasswordSet, authenticationContainer *datatypes.Container_User_Customer_External_Binding) (resp bool, err error) { + params := []interface{}{ + passwordSet, + authenticationContainer, + } + err = r.Session.DoRequest("SoftLayer_User_Customer", "processPasswordSetRequest", params, &r.Options, &resp) + return +} + +// Remove all hardware from a portal user's hardware access list. A user's hardware access list controls which of an account's hardware objects a user has access to in the SoftLayer customer portal and API. If the current user does not have administrative privileges over this user, an inadequate permissions exception will get thrown. +// +// Users can call this function on child users, but not to themselves. An account's master has access to all users permissions on their account. +func (r User_Customer) RemoveAllHardwareAccessForThisUser() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_User_Customer", "removeAllHardwareAccessForThisUser", nil, &r.Options, &resp) + return +} + +// Remove all cloud computing instances from a portal user's instance access list. A user's instance access list controls which of an account's computing instance objects a user has access to in the SoftLayer customer portal and API. If the current user does not have administrative privileges over this user, an inadequate permissions exception will get thrown. +// +// Users can call this function on child users, but not to themselves. An account's master has access to all users permissions on their account. +func (r User_Customer) RemoveAllVirtualAccessForThisUser() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_User_Customer", "removeAllVirtualAccessForThisUser", nil, &r.Options, &resp) + return +} + +// Remove a user's API authentication key, removing that user's access to query the SoftLayer API. +func (r User_Customer) RemoveApiAuthenticationKey(keyId *int) (resp bool, err error) { + params := []interface{}{ + keyId, + } + err = r.Session.DoRequest("SoftLayer_User_Customer", "removeApiAuthenticationKey", params, &r.Options, &resp) + return +} + +// Remove multiple hardware from a portal user's hardware access list. A user's hardware access list controls which of an account's hardware objects a user has access to in the SoftLayer customer portal and API. Hardware does not exist in the SoftLayer portal and returns "not found" exceptions in the API if the user doesn't have access to it. If a user does not has access to the hardware you're attempting remove add then removeBulkHardwareAccess() returns true. +// +// Users can assign hardware access to their child users, but not to themselves. An account's master has access to all hardware on their customer account and can set hardware access for any of the other users on their account. +// +// If the user has full hardware access, then it will provide access to "ALL but passed in" hardware ids. +func (r User_Customer) RemoveBulkHardwareAccess(hardwareIds []int) (resp bool, err error) { + params := []interface{}{ + hardwareIds, + } + err = r.Session.DoRequest("SoftLayer_User_Customer", "removeBulkHardwareAccess", params, &r.Options, &resp) + return +} + +// Remove multiple permissions from a portal user's permission set. [[Permissions]] control which features in the SoftLayer customer portal and API a user may use. Removing a user's permission will affect that user's portal and API access. removePortalPermission() does not attempt to remove permissions that are not assigned to the user. +// +// Users can assign permissions to their child users, but not to themselves. An account's master has all portal permissions and can set permissions for any of the other users on their account. +// +// Use the [[SoftLayer_User_Customer_CustomerPermission_Permission::getAllObjects]] method to retrieve a list of all permissions available in the SoftLayer customer portal and API. Permissions are removed based on the keyName property of the permission objects within the permissions parameter. +func (r User_Customer) RemoveBulkPortalPermission(permissions []datatypes.User_Customer_CustomerPermission_Permission) (resp bool, err error) { + params := []interface{}{ + permissions, + } + err = r.Session.DoRequest("SoftLayer_User_Customer", "removeBulkPortalPermission", params, &r.Options, &resp) + return +} + +// no documentation yet +func (r User_Customer) RemoveBulkRoles(roles []datatypes.User_Permission_Role) (err error) { + var resp datatypes.Void + params := []interface{}{ + roles, + } + err = r.Session.DoRequest("SoftLayer_User_Customer", "removeBulkRoles", params, &r.Options, &resp) + return +} + +// Remove multiple CloudLayer Computing Instances from a portal user's access list. A user's CloudLayer Computing Instance access list controls which of an account's CloudLayer Computing Instance objects a user has access to in the SoftLayer customer portal and API. CloudLayer Computing Instances do not exist in the SoftLayer portal and returns "not found" exceptions in the API if the user doesn't have access to it. If a user does not has access to the CloudLayer Computing Instance you're attempting remove add then removeBulkVirtualGuestAccess() returns true. +// +// Users can assign CloudLayer Computing Instance access to their child users, but not to themselves. An account's master has access to all CloudLayer Computing Instances on their customer account and can set hardware access for any of the other users on their account. +func (r User_Customer) RemoveBulkVirtualGuestAccess(virtualGuestIds []int) (resp bool, err error) { + params := []interface{}{ + virtualGuestIds, + } + err = r.Session.DoRequest("SoftLayer_User_Customer", "removeBulkVirtualGuestAccess", params, &r.Options, &resp) + return +} + +// no documentation yet +func (r User_Customer) RemoveExternalBinding(externalBinding *datatypes.User_External_Binding) (resp bool, err error) { + params := []interface{}{ + externalBinding, + } + err = r.Session.DoRequest("SoftLayer_User_Customer", "removeExternalBinding", params, &r.Options, &resp) + return +} + +// Remove hardware from a portal user's hardware access list. A user's hardware access list controls which of an account's hardware objects a user has access to in the SoftLayer customer portal and API. Hardware does not exist in the SoftLayer portal and returns "not found" exceptions in the API if the user doesn't have access to it. If a user does not has access to the hardware you're attempting remove add then removeHardwareAccess() returns true. +// +// Users can assign hardware access to their child users, but not to themselves. An account's master has access to all hardware on their customer account and can set hardware access for any of the other users on their account. +func (r User_Customer) RemoveHardwareAccess(hardwareId *int) (resp bool, err error) { + params := []interface{}{ + hardwareId, + } + err = r.Session.DoRequest("SoftLayer_User_Customer", "removeHardwareAccess", params, &r.Options, &resp) + return +} + +// Remove a permission from a portal user's permission set. [[Permissions]] control which features in the SoftLayer customer portal and API a user may use. Removing a user's permission will affect that user's portal and API access. If the user does not have the permission you're attempting to remove then removePortalPermission() returns true. +// +// Users can assign permissions to their child users, but not to themselves. An account's master has all portal permissions and can set permissions for any of the other users on their account. +// +// Use the [[SoftLayer_User_Customer_CustomerPermission_Permission::getAllObjects]] method to retrieve a list of all permissions available in the SoftLayer customer portal and API. Permissions are removed based on the keyName property of the permission parameter. +func (r User_Customer) RemovePortalPermission(permission *datatypes.User_Customer_CustomerPermission_Permission) (resp bool, err error) { + params := []interface{}{ + permission, + } + err = r.Session.DoRequest("SoftLayer_User_Customer", "removePortalPermission", params, &r.Options, &resp) + return +} + +// no documentation yet +func (r User_Customer) RemoveRole(role *datatypes.User_Permission_Role) (err error) { + var resp datatypes.Void + params := []interface{}{ + role, + } + err = r.Session.DoRequest("SoftLayer_User_Customer", "removeRole", params, &r.Options, &resp) + return +} + +// Remove a CloudLayer Computing Instance from a portal user's access list. A user's CloudLayer Computing Instance access list controls which of an account's computing instances a user has access to in the SoftLayer customer portal and API. CloudLayer Computing Instances do not exist in the SoftLayer portal and returns "not found" exceptions in the API if the user doesn't have access to it. If a user does not has access to the CloudLayer Computing Instance you're attempting remove add then removeVirtualGuestAccess() returns true. +// +// Users can assign CloudLayer Computing Instance access to their child users, but not to themselves. An account's master has access to all CloudLayer Computing Instances on their customer account and can set instance access for any of the other users on their account. +func (r User_Customer) RemoveVirtualGuestAccess(virtualGuestId *int) (resp bool, err error) { + params := []interface{}{ + virtualGuestId, + } + err = r.Session.DoRequest("SoftLayer_User_Customer", "removeVirtualGuestAccess", params, &r.Options, &resp) + return +} + +// This method is deprecated. Please see documentation for initiatePortalPasswordChange Attempt to authenticate a username and password to the SoftLayer customer portal and reset there password. If authentication and password reset is successful then the API returns true. +func (r User_Customer) ResetExpiredPassword(username *string, password *string, newPassword *string, securityQuestionId *int, securityQuestionAnswer *string) (resp bool, err error) { + params := []interface{}{ + username, + password, + newPassword, + securityQuestionId, + securityQuestionAnswer, + } + err = r.Session.DoRequest("SoftLayer_User_Customer", "resetExpiredPassword", params, &r.Options, &resp) + return +} + +// no documentation yet +func (r User_Customer) SamlAuthenticate(accountId *string, samlResponse *string) (resp datatypes.Container_User_Customer_Portal_Token, err error) { + params := []interface{}{ + accountId, + samlResponse, + } + err = r.Session.DoRequest("SoftLayer_User_Customer", "samlAuthenticate", params, &r.Options, &resp) + return +} + +// no documentation yet +func (r User_Customer) SamlBeginAuthentication(accountId *int) (resp string, err error) { + params := []interface{}{ + accountId, + } + err = r.Session.DoRequest("SoftLayer_User_Customer", "samlBeginAuthentication", params, &r.Options, &resp) + return +} + +// no documentation yet +func (r User_Customer) SamlBeginLogout() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_User_Customer", "samlBeginLogout", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r User_Customer) SamlLogout(samlResponse *string) (err error) { + var resp datatypes.Void + params := []interface{}{ + samlResponse, + } + err = r.Session.DoRequest("SoftLayer_User_Customer", "samlLogout", params, &r.Options, &resp) + return +} + +// An OpenIdConnect identity, for example an IBMid, can be linked or mapped to one or more individual SoftLayer users, but no more than one per account. If an OpenIdConnect identity is mapped to multiple accounts in this manner, one such account should be identified as the default account for that identity. Invoke this only on IBMid-authenticated users. +func (r User_Customer) SetDefaultAccount(providerType *string, accountId *int) (resp datatypes.Account, err error) { + params := []interface{}{ + providerType, + accountId, + } + err = r.Session.DoRequest("SoftLayer_User_Customer", "setDefaultAccount", params, &r.Options, &resp) + return +} + +// Set a user's password via the lost password recovery system, using a password recovery key received in an email generated by the [[SoftLayer_User_Customer::lostPassword|lostPassword]] method. Password recovery keys are valid for 24 hours after they're generated. +// +// User portal passwords must match the following restrictions. Portal passwords must... +// * ...be over eight characters long. +// * ...be under twenty characters long. +// * ...contain at least one uppercase letter +// * ...contain at least one lowercase letter +// * ...contain at least one number +// * ...contain one of the special characters _ - | @ . , ? / ! ~ # $ % ^ & * ( ) { } [ ] \ + = +// * ...not match your username +// * ...not match your forum password +func (r User_Customer) SetPasswordFromLostPasswordRequest(key *string, password *string, securityAnswers []datatypes.User_Customer_Security_Answer) (resp bool, err error) { + params := []interface{}{ + key, + password, + securityAnswers, + } + err = r.Session.DoRequest("SoftLayer_User_Customer", "setPasswordFromLostPasswordRequest", params, &r.Options, &resp) + return +} + +// As master user, calling this api for the IBMid provider type when there is an existing IBMid for the email on the SL account will silently (without sending an invitation email) create a link for the IBMid. NOTE: If the SoftLayer user is already linked to IBMid, this call will fail. If the IBMid specified by the email of this user, is already used in a link to another user in this account, this call will fail. If there is already an open invitation from this SoftLayer user to this or any IBMid, this call will fail. If there is already an open invitation from some other SoftLayer user in this account to this IBMid, then this call will fail. +func (r User_Customer) SilentlyMigrateUserOpenIdConnect(providerType *string) (resp bool, err error) { + params := []interface{}{ + providerType, + } + err = r.Session.DoRequest("SoftLayer_User_Customer", "silentlyMigrateUserOpenIdConnect", params, &r.Options, &resp) + return +} + +// This method is deprecated! SoftLayer Community Forums no longer exist, therefore, this method will return false. +// +// Update a user's password on the SoftLayer community forums. As with portal passwords, user forum passwords must match the following restrictions. Forum passwords must... +// * ...be over eight characters long. +// * ...be under twenty characters long. +// * ...contain at least one uppercase letter +// * ...contain at least one lowercase letter +// * ...contain at least one number +// * ...contain one of the special characters _ - | @ . , ? / ! ~ # $ % ^ & * ( ) { } [ ] \ + = +// * ...not match your username +// * ...not match your portal password +// Finally, users can only update their own password. +func (r User_Customer) UpdateForumPassword(password *string) (resp bool, err error) { + params := []interface{}{ + password, + } + err = r.Session.DoRequest("SoftLayer_User_Customer", "updateForumPassword", params, &r.Options, &resp) + return +} + +// Update the active status for a notification that the user is subscribed to. A notification along with an active flag can be supplied to update the active status for a particular notification subscription. +func (r User_Customer) UpdateNotificationSubscriber(notificationKeyName *string, active *int) (resp bool, err error) { + params := []interface{}{ + notificationKeyName, + active, + } + err = r.Session.DoRequest("SoftLayer_User_Customer", "updateNotificationSubscriber", params, &r.Options, &resp) + return +} + +// This method is deprecated. Please see documentation for initiatePortalPasswordChange Update a user's password on the SoftLayer customer portal. As with forum passwords, user portal passwords must match the following restrictions. Portal passwords must... +// * ...be over eight characters long. +// * ...be under twenty characters long. +// * ...contain at least one uppercase letter +// * ...contain at least one lowercase letter +// * ...contain at least one number +// * ...contain one of the special characters _ - | @ . , ? / ! ~ # $ % ^ & * ( ) { } [ ] \ + = +// * ...not match your username +// * ...not match your forum password +// Finally, users can only update their own password. An account's master user can update any of their account users' passwords. +func (r User_Customer) UpdatePassword(password *string) (resp bool, err error) { + params := []interface{}{ + password, + } + err = r.Session.DoRequest("SoftLayer_User_Customer", "updatePassword", params, &r.Options, &resp) + return +} + +// Update a user's login security questions and answers on the SoftLayer customer portal. These questions and answers are used to optionally log into the SoftLayer customer portal using two-factor authentication. Each user must have three distinct questions set with a unique answer for each question, and each answer may only contain alphanumeric or the . , - _ ( ) [ ] : ; > < characters. Existing user security questions and answers are deleted before new ones are set, and users may only update their own security questions and answers. +func (r User_Customer) UpdateSecurityAnswers(questions []datatypes.User_Security_Question, answers []string) (resp bool, err error) { + params := []interface{}{ + questions, + answers, + } + err = r.Session.DoRequest("SoftLayer_User_Customer", "updateSecurityAnswers", params, &r.Options, &resp) + return +} + +// Update a delivery method for a notification that the user is subscribed to. A delivery method keyName along with an active flag can be supplied to update the active status of the delivery methods for the specified notification. Available delivery methods - 'EMAIL'. Available notifications - 'PLANNED_MAINTENANCE', 'UNPLANNED_INCIDENT'. +func (r User_Customer) UpdateSubscriberDeliveryMethod(notificationKeyName *string, deliveryMethodKeyNames []string, active *int) (resp bool, err error) { + params := []interface{}{ + notificationKeyName, + deliveryMethodKeyNames, + active, + } + err = r.Session.DoRequest("SoftLayer_User_Customer", "updateSubscriberDeliveryMethod", params, &r.Options, &resp) + return +} + +// Update a user's VPN password on the SoftLayer customer portal. As with portal passwords, VPN passwords must match the following restrictions. VPN passwords must... +// * ...be over eight characters long. +// * ...be under twenty characters long. +// * ...contain at least one uppercase letter +// * ...contain at least one lowercase letter +// * ...contain at least one number +// * ...contain one of the special characters _ - | @ . , ? / ! ~ # $ % ^ & * ( ) { } [ ] \ = +// * ...not match your username +// * ...not match your forum password +// Finally, users can only update their own VPN password. An account's master user can update any of their account users' VPN passwords. +func (r User_Customer) UpdateVpnPassword(password *string) (resp bool, err error) { + params := []interface{}{ + password, + } + err = r.Session.DoRequest("SoftLayer_User_Customer", "updateVpnPassword", params, &r.Options, &resp) + return +} + +// Always call this function to enable changes when manually configuring VPN subnet access. +func (r User_Customer) UpdateVpnUser() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_User_Customer", "updateVpnUser", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r User_Customer) ValidateAuthenticationToken(authenticationToken *datatypes.Container_User_Authentication_Token) (resp datatypes.Container_User_Customer_Portal_Token, err error) { + params := []interface{}{ + authenticationToken, + } + err = r.Session.DoRequest("SoftLayer_User_Customer", "validateAuthenticationToken", params, &r.Options, &resp) + return +} + +// The SoftLayer_User_Customer_ApiAuthentication type contains user's authentication key(s). +type User_Customer_ApiAuthentication struct { + Session *session.Session + Options sl.Options +} + +// GetUserCustomerApiAuthenticationService returns an instance of the User_Customer_ApiAuthentication SoftLayer service +func GetUserCustomerApiAuthenticationService(sess *session.Session) User_Customer_ApiAuthentication { + return User_Customer_ApiAuthentication{Session: sess} +} + +func (r User_Customer_ApiAuthentication) Id(id int) User_Customer_ApiAuthentication { + r.Options.Id = &id + return r +} + +func (r User_Customer_ApiAuthentication) Mask(mask string) User_Customer_ApiAuthentication { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r User_Customer_ApiAuthentication) Filter(filter string) User_Customer_ApiAuthentication { + r.Options.Filter = filter + return r +} + +func (r User_Customer_ApiAuthentication) Limit(limit int) User_Customer_ApiAuthentication { + r.Options.Limit = &limit + return r +} + +func (r User_Customer_ApiAuthentication) Offset(offset int) User_Customer_ApiAuthentication { + r.Options.Offset = &offset + return r +} + +// no documentation yet +func (r User_Customer_ApiAuthentication) EditObject(templateObject *datatypes.User_Customer_ApiAuthentication) (resp datatypes.User_Customer_ApiAuthentication, err error) { + params := []interface{}{ + templateObject, + } + err = r.Session.DoRequest("SoftLayer_User_Customer_ApiAuthentication", "editObject", params, &r.Options, &resp) + return +} + +// getObject retrieves the SoftLayer_User_Customer_ApiAuthentication object whose ID number corresponds to the ID number of the init parameter passed to the SoftLayer_User_Customer_ApiAuthentication service. +func (r User_Customer_ApiAuthentication) GetObject() (resp datatypes.User_Customer_ApiAuthentication, err error) { + err = r.Session.DoRequest("SoftLayer_User_Customer_ApiAuthentication", "getObject", nil, &r.Options, &resp) + return +} + +// Retrieve The user who owns the api authentication key. +func (r User_Customer_ApiAuthentication) GetUser() (resp datatypes.User_Customer, err error) { + err = r.Session.DoRequest("SoftLayer_User_Customer_ApiAuthentication", "getUser", nil, &r.Options, &resp) + return +} + +// Each SoftLayer portal account is assigned a series of permissions that determine what access the user has to functions within the SoftLayer customer portal. This status is reflected in the SoftLayer_User_Customer_Status data type. Permissions differ from user status in that user status applies globally to the portal while user permissions are applied to specific portal functions. +type User_Customer_CustomerPermission_Permission struct { + Session *session.Session + Options sl.Options +} + +// GetUserCustomerCustomerPermissionPermissionService returns an instance of the User_Customer_CustomerPermission_Permission SoftLayer service +func GetUserCustomerCustomerPermissionPermissionService(sess *session.Session) User_Customer_CustomerPermission_Permission { + return User_Customer_CustomerPermission_Permission{Session: sess} +} + +func (r User_Customer_CustomerPermission_Permission) Id(id int) User_Customer_CustomerPermission_Permission { + r.Options.Id = &id + return r +} + +func (r User_Customer_CustomerPermission_Permission) Mask(mask string) User_Customer_CustomerPermission_Permission { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r User_Customer_CustomerPermission_Permission) Filter(filter string) User_Customer_CustomerPermission_Permission { + r.Options.Filter = filter + return r +} + +func (r User_Customer_CustomerPermission_Permission) Limit(limit int) User_Customer_CustomerPermission_Permission { + r.Options.Limit = &limit + return r +} + +func (r User_Customer_CustomerPermission_Permission) Offset(offset int) User_Customer_CustomerPermission_Permission { + r.Options.Offset = &offset + return r +} + +// Retrieve all available permissions. +func (r User_Customer_CustomerPermission_Permission) GetAllObjects() (resp []datatypes.User_Customer_CustomerPermission_Permission, err error) { + err = r.Session.DoRequest("SoftLayer_User_Customer_CustomerPermission_Permission", "getAllObjects", nil, &r.Options, &resp) + return +} + +// getObject retrieves the SoftLayer_User_Customer_CustomerPermission_Permission object whose ID number corresponds to the ID number of the init parameter passed to the SoftLayer_User_Customer_CustomerPermission_Permission service. +func (r User_Customer_CustomerPermission_Permission) GetObject() (resp datatypes.User_Customer_CustomerPermission_Permission, err error) { + err = r.Session.DoRequest("SoftLayer_User_Customer_CustomerPermission_Permission", "getObject", nil, &r.Options, &resp) + return +} + +// The SoftLayer_User_Customer_External_Binding data type contains general information for a single external binding. This includes the 3rd party vendor, type of binding, and a unique identifier and password that is used to authenticate against the 3rd party service. +type User_Customer_External_Binding struct { + Session *session.Session + Options sl.Options +} + +// GetUserCustomerExternalBindingService returns an instance of the User_Customer_External_Binding SoftLayer service +func GetUserCustomerExternalBindingService(sess *session.Session) User_Customer_External_Binding { + return User_Customer_External_Binding{Session: sess} +} + +func (r User_Customer_External_Binding) Id(id int) User_Customer_External_Binding { + r.Options.Id = &id + return r +} + +func (r User_Customer_External_Binding) Mask(mask string) User_Customer_External_Binding { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r User_Customer_External_Binding) Filter(filter string) User_Customer_External_Binding { + r.Options.Filter = filter + return r +} + +func (r User_Customer_External_Binding) Limit(limit int) User_Customer_External_Binding { + r.Options.Limit = &limit + return r +} + +func (r User_Customer_External_Binding) Offset(offset int) User_Customer_External_Binding { + r.Options.Offset = &offset + return r +} + +// Delete an external authentication binding. If the external binding currently has an active billing item associated you will be prevented from deleting the binding. The alternative method to remove an external authentication binding is to use the service cancellation form. +func (r User_Customer_External_Binding) DeleteObject() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_User_Customer_External_Binding", "deleteObject", nil, &r.Options, &resp) + return +} + +// Disabling an external binding will allow you to keep the external binding on your SoftLayer account, but will not require you to authentication with our trusted 2 form factor vendor when logging into the SoftLayer customer portal. +// +// You may supply one of the following reason when you disable an external binding: +// *Unspecified +// *TemporarilyUnavailable +// *Lost +// *Stolen +func (r User_Customer_External_Binding) Disable(reason *string) (resp bool, err error) { + params := []interface{}{ + reason, + } + err = r.Session.DoRequest("SoftLayer_User_Customer_External_Binding", "disable", params, &r.Options, &resp) + return +} + +// Enabling an external binding will activate the binding on your account and require you to authenticate with our trusted 3rd party 2 form factor vendor when logging into the SoftLayer customer portal. +// +// Please note that API access will be disabled for users that have an active external binding. +func (r User_Customer_External_Binding) Enable() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_User_Customer_External_Binding", "enable", nil, &r.Options, &resp) + return +} + +// Retrieve Attributes of an external authentication binding. +func (r User_Customer_External_Binding) GetAttributes() (resp []datatypes.User_External_Binding_Attribute, err error) { + err = r.Session.DoRequest("SoftLayer_User_Customer_External_Binding", "getAttributes", nil, &r.Options, &resp) + return +} + +// Retrieve Information regarding the billing item for external authentication. +func (r User_Customer_External_Binding) GetBillingItem() (resp datatypes.Billing_Item, err error) { + err = r.Session.DoRequest("SoftLayer_User_Customer_External_Binding", "getBillingItem", nil, &r.Options, &resp) + return +} + +// Retrieve An optional note for identifying the external binding. +func (r User_Customer_External_Binding) GetNote() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_User_Customer_External_Binding", "getNote", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r User_Customer_External_Binding) GetObject() (resp datatypes.User_Customer_External_Binding, err error) { + err = r.Session.DoRequest("SoftLayer_User_Customer_External_Binding", "getObject", nil, &r.Options, &resp) + return +} + +// Retrieve The type of external authentication binding. +func (r User_Customer_External_Binding) GetType() (resp datatypes.User_External_Binding_Type, err error) { + err = r.Session.DoRequest("SoftLayer_User_Customer_External_Binding", "getType", nil, &r.Options, &resp) + return +} + +// Retrieve The SoftLayer user that the external authentication binding belongs to. +func (r User_Customer_External_Binding) GetUser() (resp datatypes.User_Customer, err error) { + err = r.Session.DoRequest("SoftLayer_User_Customer_External_Binding", "getUser", nil, &r.Options, &resp) + return +} + +// Retrieve The vendor of an external authentication binding. +func (r User_Customer_External_Binding) GetVendor() (resp datatypes.User_External_Binding_Vendor, err error) { + err = r.Session.DoRequest("SoftLayer_User_Customer_External_Binding", "getVendor", nil, &r.Options, &resp) + return +} + +// Update the note of an external binding. The note is an optional property that is used to store information about a binding. +func (r User_Customer_External_Binding) UpdateNote(text *string) (resp bool, err error) { + params := []interface{}{ + text, + } + err = r.Session.DoRequest("SoftLayer_User_Customer_External_Binding", "updateNote", params, &r.Options, &resp) + return +} + +// The SoftLayer_User_Customer_External_Binding_Phone data type contains information about an external binding that uses a phone call, SMS or mobile app for 2 form factor authentication. The external binding information is used when a SoftLayer customer logs into the SoftLayer customer portal or VPN to authenticate them against a trusted 3rd party, in this case using a mobile phone, mobile phone application or land-line phone. +// +// SoftLayer users with an active external binding will be prohibited from using the API for security reasons. +type User_Customer_External_Binding_Phone struct { + Session *session.Session + Options sl.Options +} + +// GetUserCustomerExternalBindingPhoneService returns an instance of the User_Customer_External_Binding_Phone SoftLayer service +func GetUserCustomerExternalBindingPhoneService(sess *session.Session) User_Customer_External_Binding_Phone { + return User_Customer_External_Binding_Phone{Session: sess} +} + +func (r User_Customer_External_Binding_Phone) Id(id int) User_Customer_External_Binding_Phone { + r.Options.Id = &id + return r +} + +func (r User_Customer_External_Binding_Phone) Mask(mask string) User_Customer_External_Binding_Phone { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r User_Customer_External_Binding_Phone) Filter(filter string) User_Customer_External_Binding_Phone { + r.Options.Filter = filter + return r +} + +func (r User_Customer_External_Binding_Phone) Limit(limit int) User_Customer_External_Binding_Phone { + r.Options.Limit = &limit + return r +} + +func (r User_Customer_External_Binding_Phone) Offset(offset int) User_Customer_External_Binding_Phone { + r.Options.Offset = &offset + return r +} + +// Return a phone validation result. +func (r User_Customer_External_Binding_Phone) CheckPhoneValidationResult(token *string) (resp bool, err error) { + params := []interface{}{ + token, + } + err = r.Session.DoRequest("SoftLayer_User_Customer_External_Binding_Phone", "checkPhoneValidationResult", params, &r.Options, &resp) + return +} + +// Delete an external authentication binding. If the external binding currently has an active billing item associated you will be prevented from deleting the binding. The alternative method to remove an external authentication binding is to use the service cancellation form. +func (r User_Customer_External_Binding_Phone) DeleteObject() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_User_Customer_External_Binding_Phone", "deleteObject", nil, &r.Options, &resp) + return +} + +// Disabling an external binding will allow you to keep the external binding on your SoftLayer account, but will not require you to authentication with our trusted 2 form factor vendor when logging into the SoftLayer customer portal. +// +// You may supply one of the following reason when you disable an external binding: +// *Unspecified +// *TemporarilyUnavailable +// *Lost +// *Stolen +func (r User_Customer_External_Binding_Phone) Disable(reason *string) (resp bool, err error) { + params := []interface{}{ + reason, + } + err = r.Session.DoRequest("SoftLayer_User_Customer_External_Binding_Phone", "disable", params, &r.Options, &resp) + return +} + +// Enabling an external binding will activate the binding on your account and require you to authenticate with our trusted 3rd party 2 form factor vendor when logging into the SoftLayer customer portal. +// +// Please note that API access will be disabled for users that have an active external binding. +func (r User_Customer_External_Binding_Phone) Enable() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_User_Customer_External_Binding_Phone", "enable", nil, &r.Options, &resp) + return +} + +// This service returns key names of all available authentication modes. See [[SoftLayer_Container_User_Customer_External_Binding_Phone_Mode|authentication mode]] container for details. +func (r User_Customer_External_Binding_Phone) GetAllAuthenticationModes() (resp []string, err error) { + err = r.Session.DoRequest("SoftLayer_User_Customer_External_Binding_Phone", "getAllAuthenticationModes", nil, &r.Options, &resp) + return +} + +// This service returns key names of all available authentication modes. Refer to [[SoftLayer_User_Customer_External_Binding_Phone::getAllAuthenticationModes|getAllAuthenticationModes]] to retrieve authentication mode key names. +func (r User_Customer_External_Binding_Phone) GetAllAuthenticationPinModes(authenticationModeKeyName *string) (resp []string, err error) { + params := []interface{}{ + authenticationModeKeyName, + } + err = r.Session.DoRequest("SoftLayer_User_Customer_External_Binding_Phone", "getAllAuthenticationPinModes", params, &r.Options, &resp) + return +} + +// Retrieve Attributes of an external authentication binding. +func (r User_Customer_External_Binding_Phone) GetAttributes() (resp []datatypes.User_External_Binding_Attribute, err error) { + err = r.Session.DoRequest("SoftLayer_User_Customer_External_Binding_Phone", "getAttributes", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r User_Customer_External_Binding_Phone) GetAuthenticationMode() (resp datatypes.Container_User_Customer_External_Binding_Phone_Mode, err error) { + err = r.Session.DoRequest("SoftLayer_User_Customer_External_Binding_Phone", "getAuthenticationMode", nil, &r.Options, &resp) + return +} + +// Retrieve Information regarding the billing item for external authentication. +func (r User_Customer_External_Binding_Phone) GetBillingItem() (resp datatypes.Billing_Item, err error) { + err = r.Session.DoRequest("SoftLayer_User_Customer_External_Binding_Phone", "getBillingItem", nil, &r.Options, &resp) + return +} + +// Retrieve The current external binding status. It can be "ACTIVE" or "BLOCKED". +func (r User_Customer_External_Binding_Phone) GetBindingStatus() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_User_Customer_External_Binding_Phone", "getBindingStatus", nil, &r.Options, &resp) + return +} + +// Retrieve An optional note for identifying the external binding. +func (r User_Customer_External_Binding_Phone) GetNote() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_User_Customer_External_Binding_Phone", "getNote", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r User_Customer_External_Binding_Phone) GetObject() (resp datatypes.User_Customer_External_Binding_Phone, err error) { + err = r.Session.DoRequest("SoftLayer_User_Customer_External_Binding_Phone", "getObject", nil, &r.Options, &resp) + return +} + +// Some vendor's mobile app requires an activation code. Use this method to get an activation data. +func (r User_Customer_External_Binding_Phone) GetPhoneAppActivationCode() (resp []datatypes.User_External_Binding_Attribute, err error) { + err = r.Session.DoRequest("SoftLayer_User_Customer_External_Binding_Phone", "getPhoneAppActivationCode", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r User_Customer_External_Binding_Phone) GetPhoneData() (resp []datatypes.Container_User_Data_Phone, err error) { + err = r.Session.DoRequest("SoftLayer_User_Customer_External_Binding_Phone", "getPhoneData", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r User_Customer_External_Binding_Phone) GetPinLength() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_User_Customer_External_Binding_Phone", "getPinLength", nil, &r.Options, &resp) + return +} + +// Retrieve The type of external authentication binding. +func (r User_Customer_External_Binding_Phone) GetType() (resp datatypes.User_External_Binding_Type, err error) { + err = r.Session.DoRequest("SoftLayer_User_Customer_External_Binding_Phone", "getType", nil, &r.Options, &resp) + return +} + +// Retrieve The SoftLayer user that the external authentication binding belongs to. +func (r User_Customer_External_Binding_Phone) GetUser() (resp datatypes.User_Customer, err error) { + err = r.Session.DoRequest("SoftLayer_User_Customer_External_Binding_Phone", "getUser", nil, &r.Options, &resp) + return +} + +// Retrieve The vendor of an external authentication binding. +func (r User_Customer_External_Binding_Phone) GetVendor() (resp datatypes.User_External_Binding_Vendor, err error) { + err = r.Session.DoRequest("SoftLayer_User_Customer_External_Binding_Phone", "getVendor", nil, &r.Options, &resp) + return +} + +// Initiates a phone validation requests and returns a unique token. Use [[SoftLayer_User_Customer_External_Binding_Phone::checkPhoneValidationResult|checkPhoneValidationResult]] to find the phone validation result. +func (r User_Customer_External_Binding_Phone) RequestPhoneValidation(phoneData *datatypes.Container_User_Data_Phone) (resp string, err error) { + params := []interface{}{ + phoneData, + } + err = r.Session.DoRequest("SoftLayer_User_Customer_External_Binding_Phone", "requestPhoneValidation", params, &r.Options, &resp) + return +} + +// This service allow you to change your phone authentication mode. See [[SoftLayer_Container_User_Customer_External_Binding_Phone_Mode|authentication mode]] container for available modes. +func (r User_Customer_External_Binding_Phone) UpdateAuthenticationMode(mode *datatypes.Container_User_Customer_External_Binding_Phone_Mode) (resp bool, err error) { + params := []interface{}{ + mode, + } + err = r.Session.DoRequest("SoftLayer_User_Customer_External_Binding_Phone", "updateAuthenticationMode", params, &r.Options, &resp) + return +} + +// Update the note of an external binding. The note is an optional property that is used to store information about a binding. +func (r User_Customer_External_Binding_Phone) UpdateNote(text *string) (resp bool, err error) { + params := []interface{}{ + text, + } + err = r.Session.DoRequest("SoftLayer_User_Customer_External_Binding_Phone", "updateNote", params, &r.Options, &resp) + return +} + +// Phone external binding supports a primary and a backup phone number. You can use this method to update your phone number used for the phone authentication. You can provide an array of [[SoftLayer_Container_User_Data_Phone|User Phone]] objects. You have to mark one as the primary phone number by setting "phoneType" to "PRIMARY". +// +// +// *countryCode: Country code number for the phone number. Default: 1 (United States & Canada +1) +// *phone: Phone number that 2 Form Factor system will call or text for user authentication. The phone number format must match the format selected in the Country Code. +// *extension: Specify the extension that will be dialed after the call is answered. Digits, commas, *, and # are allowed. Commas can be used for a one second pause to navigate phone system menus. +// *phoneType: Specify the primary and backup phone number by setting this value to "PRIMARY" or "BACKUP". If omitted, it will be considered to be the primary phone number. If you are passing two Phone objects, you must specify the phone type of each phone number. +// +// +func (r User_Customer_External_Binding_Phone) UpdatePhone(phoneData []datatypes.Container_User_Data_Phone) (resp bool, err error) { + params := []interface{}{ + phoneData, + } + err = r.Session.DoRequest("SoftLayer_User_Customer_External_Binding_Phone", "updatePhone", params, &r.Options, &resp) + return +} + +// The SoftLayer_User_Customer_External_Binding_Totp data type contains information about a single time-based one time password external binding. The external binding information is used when a SoftLayer customer logs into the SoftLayer customer portal to authenticate them. +// +// The information provided by this external binding data type includes: +// * The type of credential +// * The current state of the credential +// ** Active +// ** Inactive +// +// +// SoftLayer users with an active external binding will be prohibited from using the API for security reasons. +type User_Customer_External_Binding_Totp struct { + Session *session.Session + Options sl.Options +} + +// GetUserCustomerExternalBindingTotpService returns an instance of the User_Customer_External_Binding_Totp SoftLayer service +func GetUserCustomerExternalBindingTotpService(sess *session.Session) User_Customer_External_Binding_Totp { + return User_Customer_External_Binding_Totp{Session: sess} +} + +func (r User_Customer_External_Binding_Totp) Id(id int) User_Customer_External_Binding_Totp { + r.Options.Id = &id + return r +} + +func (r User_Customer_External_Binding_Totp) Mask(mask string) User_Customer_External_Binding_Totp { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r User_Customer_External_Binding_Totp) Filter(filter string) User_Customer_External_Binding_Totp { + r.Options.Filter = filter + return r +} + +func (r User_Customer_External_Binding_Totp) Limit(limit int) User_Customer_External_Binding_Totp { + r.Options.Limit = &limit + return r +} + +func (r User_Customer_External_Binding_Totp) Offset(offset int) User_Customer_External_Binding_Totp { + r.Options.Offset = &offset + return r +} + +// no documentation yet +func (r User_Customer_External_Binding_Totp) Activate() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_User_Customer_External_Binding_Totp", "activate", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r User_Customer_External_Binding_Totp) Deactivate() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_User_Customer_External_Binding_Totp", "deactivate", nil, &r.Options, &resp) + return +} + +// Delete an external authentication binding. If the external binding currently has an active billing item associated you will be prevented from deleting the binding. The alternative method to remove an external authentication binding is to use the service cancellation form. +func (r User_Customer_External_Binding_Totp) DeleteObject() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_User_Customer_External_Binding_Totp", "deleteObject", nil, &r.Options, &resp) + return +} + +// Disabling an external binding will allow you to keep the external binding on your SoftLayer account, but will not require you to authentication with our trusted 2 form factor vendor when logging into the SoftLayer customer portal. +// +// You may supply one of the following reason when you disable an external binding: +// *Unspecified +// *TemporarilyUnavailable +// *Lost +// *Stolen +func (r User_Customer_External_Binding_Totp) Disable(reason *string) (resp bool, err error) { + params := []interface{}{ + reason, + } + err = r.Session.DoRequest("SoftLayer_User_Customer_External_Binding_Totp", "disable", params, &r.Options, &resp) + return +} + +// Enabling an external binding will activate the binding on your account and require you to authenticate with our trusted 3rd party 2 form factor vendor when logging into the SoftLayer customer portal. +// +// Please note that API access will be disabled for users that have an active external binding. +func (r User_Customer_External_Binding_Totp) Enable() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_User_Customer_External_Binding_Totp", "enable", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r User_Customer_External_Binding_Totp) GenerateSecretKey() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_User_Customer_External_Binding_Totp", "generateSecretKey", nil, &r.Options, &resp) + return +} + +// Retrieve Attributes of an external authentication binding. +func (r User_Customer_External_Binding_Totp) GetAttributes() (resp []datatypes.User_External_Binding_Attribute, err error) { + err = r.Session.DoRequest("SoftLayer_User_Customer_External_Binding_Totp", "getAttributes", nil, &r.Options, &resp) + return +} + +// Retrieve Information regarding the billing item for external authentication. +func (r User_Customer_External_Binding_Totp) GetBillingItem() (resp datatypes.Billing_Item, err error) { + err = r.Session.DoRequest("SoftLayer_User_Customer_External_Binding_Totp", "getBillingItem", nil, &r.Options, &resp) + return +} + +// Retrieve An optional note for identifying the external binding. +func (r User_Customer_External_Binding_Totp) GetNote() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_User_Customer_External_Binding_Totp", "getNote", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r User_Customer_External_Binding_Totp) GetObject() (resp datatypes.User_Customer_External_Binding_Totp, err error) { + err = r.Session.DoRequest("SoftLayer_User_Customer_External_Binding_Totp", "getObject", nil, &r.Options, &resp) + return +} + +// Retrieve The type of external authentication binding. +func (r User_Customer_External_Binding_Totp) GetType() (resp datatypes.User_External_Binding_Type, err error) { + err = r.Session.DoRequest("SoftLayer_User_Customer_External_Binding_Totp", "getType", nil, &r.Options, &resp) + return +} + +// Retrieve The SoftLayer user that the external authentication binding belongs to. +func (r User_Customer_External_Binding_Totp) GetUser() (resp datatypes.User_Customer, err error) { + err = r.Session.DoRequest("SoftLayer_User_Customer_External_Binding_Totp", "getUser", nil, &r.Options, &resp) + return +} + +// Retrieve The vendor of an external authentication binding. +func (r User_Customer_External_Binding_Totp) GetVendor() (resp datatypes.User_External_Binding_Vendor, err error) { + err = r.Session.DoRequest("SoftLayer_User_Customer_External_Binding_Totp", "getVendor", nil, &r.Options, &resp) + return +} + +// Update the note of an external binding. The note is an optional property that is used to store information about a binding. +func (r User_Customer_External_Binding_Totp) UpdateNote(text *string) (resp bool, err error) { + params := []interface{}{ + text, + } + err = r.Session.DoRequest("SoftLayer_User_Customer_External_Binding_Totp", "updateNote", params, &r.Options, &resp) + return +} + +// The SoftLayer_User_Customer_External_Binding_Vendor data type contains information for a single external binding vendor. This information includes a user friendly vendor name, a unique version of the vendor name, and a unique internal identifier that can be used when creating a new external binding. +type User_Customer_External_Binding_Vendor struct { + Session *session.Session + Options sl.Options +} + +// GetUserCustomerExternalBindingVendorService returns an instance of the User_Customer_External_Binding_Vendor SoftLayer service +func GetUserCustomerExternalBindingVendorService(sess *session.Session) User_Customer_External_Binding_Vendor { + return User_Customer_External_Binding_Vendor{Session: sess} +} + +func (r User_Customer_External_Binding_Vendor) Id(id int) User_Customer_External_Binding_Vendor { + r.Options.Id = &id + return r +} + +func (r User_Customer_External_Binding_Vendor) Mask(mask string) User_Customer_External_Binding_Vendor { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r User_Customer_External_Binding_Vendor) Filter(filter string) User_Customer_External_Binding_Vendor { + r.Options.Filter = filter + return r +} + +func (r User_Customer_External_Binding_Vendor) Limit(limit int) User_Customer_External_Binding_Vendor { + r.Options.Limit = &limit + return r +} + +func (r User_Customer_External_Binding_Vendor) Offset(offset int) User_Customer_External_Binding_Vendor { + r.Options.Offset = &offset + return r +} + +// getAllObjects() will return a list of the available external binding vendors that SoftLayer supports. Use this list to select the appropriate vendor when creating a new external binding. +func (r User_Customer_External_Binding_Vendor) GetAllObjects() (resp []datatypes.User_External_Binding_Vendor, err error) { + err = r.Session.DoRequest("SoftLayer_User_Customer_External_Binding_Vendor", "getAllObjects", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r User_Customer_External_Binding_Vendor) GetObject() (resp datatypes.User_Customer_External_Binding_Vendor, err error) { + err = r.Session.DoRequest("SoftLayer_User_Customer_External_Binding_Vendor", "getObject", nil, &r.Options, &resp) + return +} + +// The SoftLayer_User_Customer_External_Binding_Verisign data type contains information about a single VeriSign external binding. The external binding information is used when a SoftLayer customer logs into the SoftLayer customer portal to authenticate them against a 3rd party, in this case VeriSign. +// +// The information provided by the VeriSign external binding data type includes: +// * The type of credential +// * The current state of the credential +// ** Enabled +// ** Disabled +// ** Locked +// * The credential's expiration date +// * The last time the credential was updated +// +// +// SoftLayer users with an active external binding will be prohibited from using the API for security reasons. +type User_Customer_External_Binding_Verisign struct { + Session *session.Session + Options sl.Options +} + +// GetUserCustomerExternalBindingVerisignService returns an instance of the User_Customer_External_Binding_Verisign SoftLayer service +func GetUserCustomerExternalBindingVerisignService(sess *session.Session) User_Customer_External_Binding_Verisign { + return User_Customer_External_Binding_Verisign{Session: sess} +} + +func (r User_Customer_External_Binding_Verisign) Id(id int) User_Customer_External_Binding_Verisign { + r.Options.Id = &id + return r +} + +func (r User_Customer_External_Binding_Verisign) Mask(mask string) User_Customer_External_Binding_Verisign { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r User_Customer_External_Binding_Verisign) Filter(filter string) User_Customer_External_Binding_Verisign { + r.Options.Filter = filter + return r +} + +func (r User_Customer_External_Binding_Verisign) Limit(limit int) User_Customer_External_Binding_Verisign { + r.Options.Limit = &limit + return r +} + +func (r User_Customer_External_Binding_Verisign) Offset(offset int) User_Customer_External_Binding_Verisign { + r.Options.Offset = &offset + return r +} + +// Delete a VeriSign external binding. The only VeriSign external binding that can be deleted through this method is the free VeriSign external binding for the master user of a SoftLayer account. All other external bindings must be canceled using the SoftLayer service cancellation form. +// +// When a VeriSign external binding is deleted the credential is deactivated in VeriSign's system for use on the SoftLayer site and the $0 billing item associated with the free VeriSign external binding is cancelled. +func (r User_Customer_External_Binding_Verisign) DeleteObject() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_User_Customer_External_Binding_Verisign", "deleteObject", nil, &r.Options, &resp) + return +} + +// Disabling an external binding will allow you to keep the external binding on your SoftLayer account, but will not require you to authentication with our trusted 2 form factor vendor when logging into the SoftLayer customer portal. +// +// You may supply one of the following reason when you disable an external binding: +// *Unspecified +// *TemporarilyUnavailable +// *Lost +// *Stolen +func (r User_Customer_External_Binding_Verisign) Disable(reason *string) (resp bool, err error) { + params := []interface{}{ + reason, + } + err = r.Session.DoRequest("SoftLayer_User_Customer_External_Binding_Verisign", "disable", params, &r.Options, &resp) + return +} + +// Enabling an external binding will activate the binding on your account and require you to authenticate with our trusted 3rd party 2 form factor vendor when logging into the SoftLayer customer portal. +// +// Please note that API access will be disabled for users that have an active external binding. +func (r User_Customer_External_Binding_Verisign) Enable() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_User_Customer_External_Binding_Verisign", "enable", nil, &r.Options, &resp) + return +} + +// An activation code is required when provisioning a new mobile credential from Verisign. This method will return the required activation code. +func (r User_Customer_External_Binding_Verisign) GetActivationCodeForMobileClient() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_User_Customer_External_Binding_Verisign", "getActivationCodeForMobileClient", nil, &r.Options, &resp) + return +} + +// Retrieve Attributes of an external authentication binding. +func (r User_Customer_External_Binding_Verisign) GetAttributes() (resp []datatypes.User_External_Binding_Attribute, err error) { + err = r.Session.DoRequest("SoftLayer_User_Customer_External_Binding_Verisign", "getAttributes", nil, &r.Options, &resp) + return +} + +// Retrieve Information regarding the billing item for external authentication. +func (r User_Customer_External_Binding_Verisign) GetBillingItem() (resp datatypes.Billing_Item, err error) { + err = r.Session.DoRequest("SoftLayer_User_Customer_External_Binding_Verisign", "getBillingItem", nil, &r.Options, &resp) + return +} + +// Retrieve The date that a VeriSign credential expires. +func (r User_Customer_External_Binding_Verisign) GetCredentialExpirationDate() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_User_Customer_External_Binding_Verisign", "getCredentialExpirationDate", nil, &r.Options, &resp) + return +} + +// Retrieve The last time a VeriSign credential was updated. +func (r User_Customer_External_Binding_Verisign) GetCredentialLastUpdateDate() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_User_Customer_External_Binding_Verisign", "getCredentialLastUpdateDate", nil, &r.Options, &resp) + return +} + +// Retrieve The current state of a VeriSign credential. This can be 'Enabled', 'Disabled', or 'Locked'. +func (r User_Customer_External_Binding_Verisign) GetCredentialState() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_User_Customer_External_Binding_Verisign", "getCredentialState", nil, &r.Options, &resp) + return +} + +// Retrieve The type of VeriSign credential. This can be either 'Hardware' or 'Software'. +func (r User_Customer_External_Binding_Verisign) GetCredentialType() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_User_Customer_External_Binding_Verisign", "getCredentialType", nil, &r.Options, &resp) + return +} + +// Retrieve An optional note for identifying the external binding. +func (r User_Customer_External_Binding_Verisign) GetNote() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_User_Customer_External_Binding_Verisign", "getNote", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r User_Customer_External_Binding_Verisign) GetObject() (resp datatypes.User_Customer_External_Binding_Verisign, err error) { + err = r.Session.DoRequest("SoftLayer_User_Customer_External_Binding_Verisign", "getObject", nil, &r.Options, &resp) + return +} + +// Retrieve The type of external authentication binding. +func (r User_Customer_External_Binding_Verisign) GetType() (resp datatypes.User_External_Binding_Type, err error) { + err = r.Session.DoRequest("SoftLayer_User_Customer_External_Binding_Verisign", "getType", nil, &r.Options, &resp) + return +} + +// Retrieve The SoftLayer user that the external authentication binding belongs to. +func (r User_Customer_External_Binding_Verisign) GetUser() (resp datatypes.User_Customer, err error) { + err = r.Session.DoRequest("SoftLayer_User_Customer_External_Binding_Verisign", "getUser", nil, &r.Options, &resp) + return +} + +// Retrieve The vendor of an external authentication binding. +func (r User_Customer_External_Binding_Verisign) GetVendor() (resp datatypes.User_External_Binding_Vendor, err error) { + err = r.Session.DoRequest("SoftLayer_User_Customer_External_Binding_Verisign", "getVendor", nil, &r.Options, &resp) + return +} + +// If a VeriSign credential becomes locked because of too many failed login attempts the unlock method can be used to unlock a VeriSign credential. As a security precaution a valid security code generated by the credential will be required before the credential is unlocked. +func (r User_Customer_External_Binding_Verisign) Unlock(securityCode *string) (resp bool, err error) { + params := []interface{}{ + securityCode, + } + err = r.Session.DoRequest("SoftLayer_User_Customer_External_Binding_Verisign", "unlock", params, &r.Options, &resp) + return +} + +// Update the note of an external binding. The note is an optional property that is used to store information about a binding. +func (r User_Customer_External_Binding_Verisign) UpdateNote(text *string) (resp bool, err error) { + params := []interface{}{ + text, + } + err = r.Session.DoRequest("SoftLayer_User_Customer_External_Binding_Verisign", "updateNote", params, &r.Options, &resp) + return +} + +// Validate the user id and VeriSign credential id used to create an external authentication binding. +func (r User_Customer_External_Binding_Verisign) ValidateCredentialId(userId *int, externalId *string) (resp bool, err error) { + params := []interface{}{ + userId, + externalId, + } + err = r.Session.DoRequest("SoftLayer_User_Customer_External_Binding_Verisign", "validateCredentialId", params, &r.Options, &resp) + return +} + +// no documentation yet +type User_Customer_Invitation struct { + Session *session.Session + Options sl.Options +} + +// GetUserCustomerInvitationService returns an instance of the User_Customer_Invitation SoftLayer service +func GetUserCustomerInvitationService(sess *session.Session) User_Customer_Invitation { + return User_Customer_Invitation{Session: sess} +} + +func (r User_Customer_Invitation) Id(id int) User_Customer_Invitation { + r.Options.Id = &id + return r +} + +func (r User_Customer_Invitation) Mask(mask string) User_Customer_Invitation { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r User_Customer_Invitation) Filter(filter string) User_Customer_Invitation { + r.Options.Filter = filter + return r +} + +func (r User_Customer_Invitation) Limit(limit int) User_Customer_Invitation { + r.Options.Limit = &limit + return r +} + +func (r User_Customer_Invitation) Offset(offset int) User_Customer_Invitation { + r.Options.Offset = &offset + return r +} + +// no documentation yet +func (r User_Customer_Invitation) GetObject() (resp datatypes.User_Customer_Invitation, err error) { + err = r.Session.DoRequest("SoftLayer_User_Customer_Invitation", "getObject", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r User_Customer_Invitation) GetUser() (resp datatypes.User_Customer, err error) { + err = r.Session.DoRequest("SoftLayer_User_Customer_Invitation", "getUser", nil, &r.Options, &resp) + return +} + +// This class represents a mobile device belonging to a user. The device can be a phone, tablet, or possibly even some Android based net books. The purpose is to tie just enough info with the device and the user to enable push notifications through non-softlayer entities (Google, Apple, RIM). +type User_Customer_MobileDevice struct { + Session *session.Session + Options sl.Options +} + +// GetUserCustomerMobileDeviceService returns an instance of the User_Customer_MobileDevice SoftLayer service +func GetUserCustomerMobileDeviceService(sess *session.Session) User_Customer_MobileDevice { + return User_Customer_MobileDevice{Session: sess} +} + +func (r User_Customer_MobileDevice) Id(id int) User_Customer_MobileDevice { + r.Options.Id = &id + return r +} + +func (r User_Customer_MobileDevice) Mask(mask string) User_Customer_MobileDevice { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r User_Customer_MobileDevice) Filter(filter string) User_Customer_MobileDevice { + r.Options.Filter = filter + return r +} + +func (r User_Customer_MobileDevice) Limit(limit int) User_Customer_MobileDevice { + r.Options.Limit = &limit + return r +} + +func (r User_Customer_MobileDevice) Offset(offset int) User_Customer_MobileDevice { + r.Options.Offset = &offset + return r +} + +// Create a new mobile device association for a user. +func (r User_Customer_MobileDevice) CreateObject(templateObject *datatypes.User_Customer_MobileDevice) (resp datatypes.User_Customer_MobileDevice, err error) { + params := []interface{}{ + templateObject, + } + err = r.Session.DoRequest("SoftLayer_User_Customer_MobileDevice", "createObject", params, &r.Options, &resp) + return +} + +// Delete a mobile device association for a user. +func (r User_Customer_MobileDevice) DeleteObject() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_User_Customer_MobileDevice", "deleteObject", nil, &r.Options, &resp) + return +} + +// Edit the object by passing in a modified instance of the object +func (r User_Customer_MobileDevice) EditObject(templateObject *datatypes.User_Customer_MobileDevice) (resp bool, err error) { + params := []interface{}{ + templateObject, + } + err = r.Session.DoRequest("SoftLayer_User_Customer_MobileDevice", "editObject", params, &r.Options, &resp) + return +} + +// Retrieve Notification subscriptions available to a mobile device. +func (r User_Customer_MobileDevice) GetAvailablePushNotificationSubscriptions() (resp []datatypes.Notification, err error) { + err = r.Session.DoRequest("SoftLayer_User_Customer_MobileDevice", "getAvailablePushNotificationSubscriptions", nil, &r.Options, &resp) + return +} + +// Retrieve The user this mobile device belongs to. +func (r User_Customer_MobileDevice) GetCustomer() (resp datatypes.User_Customer, err error) { + err = r.Session.DoRequest("SoftLayer_User_Customer_MobileDevice", "getCustomer", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r User_Customer_MobileDevice) GetObject() (resp datatypes.User_Customer_MobileDevice, err error) { + err = r.Session.DoRequest("SoftLayer_User_Customer_MobileDevice", "getObject", nil, &r.Options, &resp) + return +} + +// Retrieve The operating system this device is using +func (r User_Customer_MobileDevice) GetOperatingSystem() (resp datatypes.User_Customer_MobileDevice_OperatingSystem, err error) { + err = r.Session.DoRequest("SoftLayer_User_Customer_MobileDevice", "getOperatingSystem", nil, &r.Options, &resp) + return +} + +// Retrieve Notification subscriptions attached to a mobile device. +func (r User_Customer_MobileDevice) GetPushNotificationSubscriptions() (resp []datatypes.Notification_User_Subscriber, err error) { + err = r.Session.DoRequest("SoftLayer_User_Customer_MobileDevice", "getPushNotificationSubscriptions", nil, &r.Options, &resp) + return +} + +// Retrieve The type of device this user is using +func (r User_Customer_MobileDevice) GetType() (resp datatypes.User_Customer_MobileDevice_Type, err error) { + err = r.Session.DoRequest("SoftLayer_User_Customer_MobileDevice", "getType", nil, &r.Options, &resp) + return +} + +// This class represents the mobile operating system installed on a user's registered mobile device. It assists us when determining the how to get a push notification to the user. +type User_Customer_MobileDevice_OperatingSystem struct { + Session *session.Session + Options sl.Options +} + +// GetUserCustomerMobileDeviceOperatingSystemService returns an instance of the User_Customer_MobileDevice_OperatingSystem SoftLayer service +func GetUserCustomerMobileDeviceOperatingSystemService(sess *session.Session) User_Customer_MobileDevice_OperatingSystem { + return User_Customer_MobileDevice_OperatingSystem{Session: sess} +} + +func (r User_Customer_MobileDevice_OperatingSystem) Id(id int) User_Customer_MobileDevice_OperatingSystem { + r.Options.Id = &id + return r +} + +func (r User_Customer_MobileDevice_OperatingSystem) Mask(mask string) User_Customer_MobileDevice_OperatingSystem { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r User_Customer_MobileDevice_OperatingSystem) Filter(filter string) User_Customer_MobileDevice_OperatingSystem { + r.Options.Filter = filter + return r +} + +func (r User_Customer_MobileDevice_OperatingSystem) Limit(limit int) User_Customer_MobileDevice_OperatingSystem { + r.Options.Limit = &limit + return r +} + +func (r User_Customer_MobileDevice_OperatingSystem) Offset(offset int) User_Customer_MobileDevice_OperatingSystem { + r.Options.Offset = &offset + return r +} + +// no documentation yet +func (r User_Customer_MobileDevice_OperatingSystem) GetAllObjects() (resp []datatypes.User_Customer_MobileDevice_OperatingSystem, err error) { + err = r.Session.DoRequest("SoftLayer_User_Customer_MobileDevice_OperatingSystem", "getAllObjects", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r User_Customer_MobileDevice_OperatingSystem) GetObject() (resp datatypes.User_Customer_MobileDevice_OperatingSystem, err error) { + err = r.Session.DoRequest("SoftLayer_User_Customer_MobileDevice_OperatingSystem", "getObject", nil, &r.Options, &resp) + return +} + +// Describes a supported class of mobile device. In this the word class is used in the context of classes of consumer electronic devices, the two most prominent examples being mobile phones and tablets. +type User_Customer_MobileDevice_Type struct { + Session *session.Session + Options sl.Options +} + +// GetUserCustomerMobileDeviceTypeService returns an instance of the User_Customer_MobileDevice_Type SoftLayer service +func GetUserCustomerMobileDeviceTypeService(sess *session.Session) User_Customer_MobileDevice_Type { + return User_Customer_MobileDevice_Type{Session: sess} +} + +func (r User_Customer_MobileDevice_Type) Id(id int) User_Customer_MobileDevice_Type { + r.Options.Id = &id + return r +} + +func (r User_Customer_MobileDevice_Type) Mask(mask string) User_Customer_MobileDevice_Type { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r User_Customer_MobileDevice_Type) Filter(filter string) User_Customer_MobileDevice_Type { + r.Options.Filter = filter + return r +} + +func (r User_Customer_MobileDevice_Type) Limit(limit int) User_Customer_MobileDevice_Type { + r.Options.Limit = &limit + return r +} + +func (r User_Customer_MobileDevice_Type) Offset(offset int) User_Customer_MobileDevice_Type { + r.Options.Offset = &offset + return r +} + +// no documentation yet +func (r User_Customer_MobileDevice_Type) GetAllObjects() (resp []datatypes.User_Customer_MobileDevice_Type, err error) { + err = r.Session.DoRequest("SoftLayer_User_Customer_MobileDevice_Type", "getAllObjects", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r User_Customer_MobileDevice_Type) GetObject() (resp datatypes.User_Customer_MobileDevice_Type, err error) { + err = r.Session.DoRequest("SoftLayer_User_Customer_MobileDevice_Type", "getObject", nil, &r.Options, &resp) + return +} + +// The Customer_Notification_Hardware object stores links between customers and the hardware devices they wish to monitor. This link is not enough, the user must be sure to also create SoftLayer_Network_Monitor_Version1_Query_Host instance with the response action set to "notify users" in order for the users linked to that hardware object to be notified on failure. +type User_Customer_Notification_Hardware struct { + Session *session.Session + Options sl.Options +} + +// GetUserCustomerNotificationHardwareService returns an instance of the User_Customer_Notification_Hardware SoftLayer service +func GetUserCustomerNotificationHardwareService(sess *session.Session) User_Customer_Notification_Hardware { + return User_Customer_Notification_Hardware{Session: sess} +} + +func (r User_Customer_Notification_Hardware) Id(id int) User_Customer_Notification_Hardware { + r.Options.Id = &id + return r +} + +func (r User_Customer_Notification_Hardware) Mask(mask string) User_Customer_Notification_Hardware { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r User_Customer_Notification_Hardware) Filter(filter string) User_Customer_Notification_Hardware { + r.Options.Filter = filter + return r +} + +func (r User_Customer_Notification_Hardware) Limit(limit int) User_Customer_Notification_Hardware { + r.Options.Limit = &limit + return r +} + +func (r User_Customer_Notification_Hardware) Offset(offset int) User_Customer_Notification_Hardware { + r.Options.Offset = &offset + return r +} + +// Passing in an unsaved instances of a Customer_Notification_Hardware object into this function will create the object and return the results to the user. +func (r User_Customer_Notification_Hardware) CreateObject(templateObject *datatypes.User_Customer_Notification_Hardware) (resp datatypes.User_Customer_Notification_Hardware, err error) { + params := []interface{}{ + templateObject, + } + err = r.Session.DoRequest("SoftLayer_User_Customer_Notification_Hardware", "createObject", params, &r.Options, &resp) + return +} + +// Passing in a collection of unsaved instances of Customer_Notification_Hardware objects into this function will create all objects and return the results to the user. +func (r User_Customer_Notification_Hardware) CreateObjects(templateObjects []datatypes.User_Customer_Notification_Hardware) (resp []datatypes.Dns_Domain, err error) { + params := []interface{}{ + templateObjects, + } + err = r.Session.DoRequest("SoftLayer_User_Customer_Notification_Hardware", "createObjects", params, &r.Options, &resp) + return +} + +// Like any other API object, the customer notification objects can be deleted by passing an instance of them into this function. The ID on the object must be set. +func (r User_Customer_Notification_Hardware) DeleteObjects(templateObjects []datatypes.User_Customer_Notification_Hardware) (resp bool, err error) { + params := []interface{}{ + templateObjects, + } + err = r.Session.DoRequest("SoftLayer_User_Customer_Notification_Hardware", "deleteObjects", params, &r.Options, &resp) + return +} + +// This method returns all Customer_Notification_Hardware objects associated with the passed in hardware ID as long as that hardware ID is owned by the current user's account. +// +// This behavior can also be accomplished by simply tapping monitoringUserNotification on the Hardware_Server object. +func (r User_Customer_Notification_Hardware) FindByHardwareId(hardwareId *int) (resp []datatypes.User_Customer_Notification_Hardware, err error) { + params := []interface{}{ + hardwareId, + } + err = r.Session.DoRequest("SoftLayer_User_Customer_Notification_Hardware", "findByHardwareId", params, &r.Options, &resp) + return +} + +// Retrieve The hardware object that will be monitored. +func (r User_Customer_Notification_Hardware) GetHardware() (resp datatypes.Hardware, err error) { + err = r.Session.DoRequest("SoftLayer_User_Customer_Notification_Hardware", "getHardware", nil, &r.Options, &resp) + return +} + +// getObject retrieves the SoftLayer_User_Customer_Notification_Hardware object whose ID number corresponds to the ID number of the init parameter passed to the SoftLayer_User_Customer_Notification_Hardware service. You can only retrieve hardware notifications attached to hardware and users that belong to your account +func (r User_Customer_Notification_Hardware) GetObject() (resp datatypes.User_Customer_Notification_Hardware, err error) { + err = r.Session.DoRequest("SoftLayer_User_Customer_Notification_Hardware", "getObject", nil, &r.Options, &resp) + return +} + +// Retrieve The user that will be notified when the associated hardware object fails a monitoring instance. +func (r User_Customer_Notification_Hardware) GetUser() (resp datatypes.User_Customer, err error) { + err = r.Session.DoRequest("SoftLayer_User_Customer_Notification_Hardware", "getUser", nil, &r.Options, &resp) + return +} + +// The SoftLayer_User_Customer_Notification_Virtual_Guest object stores links between customers and the virtual guests they wish to monitor. This link is not enough, the user must be sure to also create SoftLayer_Network_Monitor_Version1_Query_Host instance with the response action set to "notify users" in order for the users linked to that hardware object to be notified on failure. +type User_Customer_Notification_Virtual_Guest struct { + Session *session.Session + Options sl.Options +} + +// GetUserCustomerNotificationVirtualGuestService returns an instance of the User_Customer_Notification_Virtual_Guest SoftLayer service +func GetUserCustomerNotificationVirtualGuestService(sess *session.Session) User_Customer_Notification_Virtual_Guest { + return User_Customer_Notification_Virtual_Guest{Session: sess} +} + +func (r User_Customer_Notification_Virtual_Guest) Id(id int) User_Customer_Notification_Virtual_Guest { + r.Options.Id = &id + return r +} + +func (r User_Customer_Notification_Virtual_Guest) Mask(mask string) User_Customer_Notification_Virtual_Guest { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r User_Customer_Notification_Virtual_Guest) Filter(filter string) User_Customer_Notification_Virtual_Guest { + r.Options.Filter = filter + return r +} + +func (r User_Customer_Notification_Virtual_Guest) Limit(limit int) User_Customer_Notification_Virtual_Guest { + r.Options.Limit = &limit + return r +} + +func (r User_Customer_Notification_Virtual_Guest) Offset(offset int) User_Customer_Notification_Virtual_Guest { + r.Options.Offset = &offset + return r +} + +// Passing in an unsaved instance of a SoftLayer_Customer_Notification_Virtual_Guest object into this function will create the object and return the results to the user. +func (r User_Customer_Notification_Virtual_Guest) CreateObject(templateObject *datatypes.User_Customer_Notification_Virtual_Guest) (resp datatypes.User_Customer_Notification_Virtual_Guest, err error) { + params := []interface{}{ + templateObject, + } + err = r.Session.DoRequest("SoftLayer_User_Customer_Notification_Virtual_Guest", "createObject", params, &r.Options, &resp) + return +} + +// Passing in a collection of unsaved instances of SoftLayer_Customer_Notification_Virtual_Guest objects into this function will create all objects and return the results to the user. +func (r User_Customer_Notification_Virtual_Guest) CreateObjects(templateObjects []datatypes.User_Customer_Notification_Virtual_Guest) (resp []datatypes.User_Customer_Notification_Virtual_Guest, err error) { + params := []interface{}{ + templateObjects, + } + err = r.Session.DoRequest("SoftLayer_User_Customer_Notification_Virtual_Guest", "createObjects", params, &r.Options, &resp) + return +} + +// Like any other API object, the customer notification objects can be deleted by passing an instance of them into this function. The ID on the object must be set. +func (r User_Customer_Notification_Virtual_Guest) DeleteObjects(templateObjects []datatypes.User_Customer_Notification_Virtual_Guest) (resp bool, err error) { + params := []interface{}{ + templateObjects, + } + err = r.Session.DoRequest("SoftLayer_User_Customer_Notification_Virtual_Guest", "deleteObjects", params, &r.Options, &resp) + return +} + +// This method returns all SoftLayer_User_Customer_Notification_Virtual_Guest objects associated with the passed in ID as long as that hardware ID is owned by the current user's account. +// +// This behavior can also be accomplished by simply tapping monitoringUserNotification on the Virtual_Guest object. +func (r User_Customer_Notification_Virtual_Guest) FindByGuestId(id *int) (resp []datatypes.User_Customer_Notification_Virtual_Guest, err error) { + params := []interface{}{ + id, + } + err = r.Session.DoRequest("SoftLayer_User_Customer_Notification_Virtual_Guest", "findByGuestId", params, &r.Options, &resp) + return +} + +// Retrieve The virtual guest object that will be monitored. +func (r User_Customer_Notification_Virtual_Guest) GetGuest() (resp datatypes.Virtual_Guest, err error) { + err = r.Session.DoRequest("SoftLayer_User_Customer_Notification_Virtual_Guest", "getGuest", nil, &r.Options, &resp) + return +} + +// getObject retrieves the SoftLayer_User_Customer_Notification_Virtual_Guest object whose ID number corresponds to the ID number of the init parameter passed to the SoftLayer_User_Customer_Notification_Virtual_Guest service. You can only retrieve guest notifications attached to virtual guests and users that belong to your account +func (r User_Customer_Notification_Virtual_Guest) GetObject() (resp datatypes.User_Customer_Notification_Virtual_Guest, err error) { + err = r.Session.DoRequest("SoftLayer_User_Customer_Notification_Virtual_Guest", "getObject", nil, &r.Options, &resp) + return +} + +// Retrieve The user that will be notified when the associated virtual guest object fails a monitoring instance. +func (r User_Customer_Notification_Virtual_Guest) GetUser() (resp datatypes.User_Customer, err error) { + err = r.Session.DoRequest("SoftLayer_User_Customer_Notification_Virtual_Guest", "getUser", nil, &r.Options, &resp) + return +} + +// no documentation yet +type User_Customer_OpenIdConnect struct { + Session *session.Session + Options sl.Options +} + +// GetUserCustomerOpenIdConnectService returns an instance of the User_Customer_OpenIdConnect SoftLayer service +func GetUserCustomerOpenIdConnectService(sess *session.Session) User_Customer_OpenIdConnect { + return User_Customer_OpenIdConnect{Session: sess} +} + +func (r User_Customer_OpenIdConnect) Id(id int) User_Customer_OpenIdConnect { + r.Options.Id = &id + return r +} + +func (r User_Customer_OpenIdConnect) Mask(mask string) User_Customer_OpenIdConnect { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r User_Customer_OpenIdConnect) Filter(filter string) User_Customer_OpenIdConnect { + r.Options.Filter = filter + return r +} + +func (r User_Customer_OpenIdConnect) Limit(limit int) User_Customer_OpenIdConnect { + r.Options.Limit = &limit + return r +} + +func (r User_Customer_OpenIdConnect) Offset(offset int) User_Customer_OpenIdConnect { + r.Options.Offset = &offset + return r +} + +// no documentation yet +func (r User_Customer_OpenIdConnect) AcknowledgeSupportPolicy() (err error) { + var resp datatypes.Void + err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "acknowledgeSupportPolicy", nil, &r.Options, &resp) + return +} + +// Completes invitation process for an OpenIdConnect user created by Bluemix Unified User Console. +func (r User_Customer_OpenIdConnect) ActivateOpenIdConnectUser(verificationCode *string, userInfo *datatypes.User_Customer) (err error) { + var resp datatypes.Void + params := []interface{}{ + verificationCode, + userInfo, + } + err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "activateOpenIdConnectUser", params, &r.Options, &resp) + return +} + +// Create a user's API authentication key, allowing that user access to query the SoftLayer API. addApiAuthenticationKey() returns the users new API key. Each portal user is allowed a maximum of two API keys. +func (r User_Customer_OpenIdConnect) AddApiAuthenticationKey() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "addApiAuthenticationKey", nil, &r.Options, &resp) + return +} + +// Add multiple hardware to a portal user's hardware access list. A user's hardware access list controls which of an account's hardware objects a user has access to in the SoftLayer customer portal and API. Hardware does not exist in the SoftLayer portal and returns "not found" exceptions in the API if the user doesn't have access to it. addBulkHardwareAccess() does not attempt to add hardware access if the given user already has access to that hardware object. +// +// Users can assign hardware access to their child users, but not to themselves. An account's master has access to all hardware on their customer account and can set hardware access for any of the other users on their account. +func (r User_Customer_OpenIdConnect) AddBulkHardwareAccess(hardwareIds []int) (resp bool, err error) { + params := []interface{}{ + hardwareIds, + } + err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "addBulkHardwareAccess", params, &r.Options, &resp) + return +} + +// Add multiple permissions to a portal user's permission set. [[Permissions]] control which features in the SoftLayer customer portal and API a user may use. addBulkPortalPermission() does not attempt to add permissions already assigned to the user. +// +// Users can assign permissions to their child users, but not to themselves. An account's master has all portal permissions and can set permissions for any of the other users on their account. +// +// Use the [[SoftLayer_User_Customer_CustomerPermission_Permission::getAllObjects]] method to retrieve a list of all permissions available in the SoftLayer customer portal and API. Permissions are removed based on the keyName property of the permission objects within the permissions parameter. +func (r User_Customer_OpenIdConnect) AddBulkPortalPermission(permissions []datatypes.User_Customer_CustomerPermission_Permission) (resp bool, err error) { + params := []interface{}{ + permissions, + } + err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "addBulkPortalPermission", params, &r.Options, &resp) + return +} + +// no documentation yet +func (r User_Customer_OpenIdConnect) AddBulkRoles(roles []datatypes.User_Permission_Role) (err error) { + var resp datatypes.Void + params := []interface{}{ + roles, + } + err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "addBulkRoles", params, &r.Options, &resp) + return +} + +// Add multiple CloudLayer Computing Instances to a portal user's access list. A user's CloudLayer Computing Instance access list controls which of an account's CloudLayer Computing Instance objects a user has access to in the SoftLayer customer portal and API. CloudLayer Computing Instances do not exist in the SoftLayer portal and returns "not found" exceptions in the API if the user doesn't have access to it. addBulkVirtualGuestAccess() does not attempt to add CloudLayer Computing Instance access if the given user already has access to that CloudLayer Computing Instance object. +// +// Users can assign CloudLayer Computing Instance access to their child users, but not to themselves. An account's master has access to all CloudLayer Computing Instances on their customer account and can set CloudLayer Computing Instance access for any of the other users on their account. +func (r User_Customer_OpenIdConnect) AddBulkVirtualGuestAccess(virtualGuestIds []int) (resp bool, err error) { + params := []interface{}{ + virtualGuestIds, + } + err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "addBulkVirtualGuestAccess", params, &r.Options, &resp) + return +} + +// no documentation yet +func (r User_Customer_OpenIdConnect) AddExternalBinding(externalBinding *datatypes.User_External_Binding) (resp datatypes.User_Customer_External_Binding, err error) { + params := []interface{}{ + externalBinding, + } + err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "addExternalBinding", params, &r.Options, &resp) + return +} + +// Add hardware to a portal user's hardware access list. A user's hardware access list controls which of an account's hardware objects a user has access to in the SoftLayer customer portal and API. Hardware does not exist in the SoftLayer portal and returns "not found" exceptions in the API if the user doesn't have access to it. If a user already has access to the hardware you're attempting to add then addHardwareAccess() returns true. +// +// Users can assign hardware access to their child users, but not to themselves. An account's master has access to all hardware on their customer account and can set hardware access for any of the other users on their account. +func (r User_Customer_OpenIdConnect) AddHardwareAccess(hardwareId *int) (resp bool, err error) { + params := []interface{}{ + hardwareId, + } + err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "addHardwareAccess", params, &r.Options, &resp) + return +} + +// Create a notification subscription record for the user. If a subscription record exists for the notification, the record will be set to active, if currently inactive. +func (r User_Customer_OpenIdConnect) AddNotificationSubscriber(notificationKeyName *string) (resp bool, err error) { + params := []interface{}{ + notificationKeyName, + } + err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "addNotificationSubscriber", params, &r.Options, &resp) + return +} + +// Add a permission to a portal user's permission set. [[Permissions]] control which features in the SoftLayer customer portal and API a user may use. If the user already has the permission you're attempting to add then addPortalPermission() returns true. +// +// Users can assign permissions to their child users, but not to themselves. An account's master has all portal permissions and can set permissions for any of the other users on their account. +// +// Use the [[SoftLayer_User_Customer_CustomerPermission_Permission::getAllObjects]] method to retrieve a list of all permissions available in the SoftLayer customer portal and API. Permissions are added based on the keyName property of the permission parameter. +func (r User_Customer_OpenIdConnect) AddPortalPermission(permission *datatypes.User_Customer_CustomerPermission_Permission) (resp bool, err error) { + params := []interface{}{ + permission, + } + err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "addPortalPermission", params, &r.Options, &resp) + return +} + +// no documentation yet +func (r User_Customer_OpenIdConnect) AddRole(role *datatypes.User_Permission_Role) (err error) { + var resp datatypes.Void + params := []interface{}{ + role, + } + err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "addRole", params, &r.Options, &resp) + return +} + +// Add a CloudLayer Computing Instance to a portal user's access list. A user's CloudLayer Computing Instance access list controls which of an account's CloudLayer Computing Instance objects a user has access to in the SoftLayer customer portal and API. CloudLayer Computing Instances do not exist in the SoftLayer portal and returns "not found" exceptions in the API if the user doesn't have access to it. If a user already has access to the CloudLayer Computing Instance you're attempting to add then addVirtualGuestAccess() returns true. +// +// Users can assign CloudLayer Computing Instance access to their child users, but not to themselves. An account's master has access to all CloudLayer Computing Instances on their customer account and can set CloudLayer Computing Instance access for any of the other users on their account. +func (r User_Customer_OpenIdConnect) AddVirtualGuestAccess(virtualGuestId *int) (resp bool, err error) { + params := []interface{}{ + virtualGuestId, + } + err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "addVirtualGuestAccess", params, &r.Options, &resp) + return +} + +// Select a type of preference you would like to modify using [[SoftLayer_User_Customer::getPreferenceTypes|getPreferenceTypes]] and invoke this method using that preference type key name. +func (r User_Customer_OpenIdConnect) ChangePreference(preferenceTypeKeyName *string, value *string) (resp []datatypes.User_Preference, err error) { + params := []interface{}{ + preferenceTypeKeyName, + value, + } + err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "changePreference", params, &r.Options, &resp) + return +} + +// This service checks the result of a previously requested external authentication. [[SoftLayer_Container_User_Customer_External_Binding_Phone|Phone external binding]] container can be used for this service. Make sure to set the [[SoftLayer_Container_User_Customer_External_Binding_Phone::authenticationToken|authenticationToken]] that is generated by [[SoftLayer_User_Customer|initiateExternalAuthentication]] service. +func (r User_Customer_OpenIdConnect) CheckExternalAuthenticationStatus(authenticationContainer *datatypes.Container_User_Customer_External_Binding) (resp datatypes.Container_User_Customer_Portal_Token, err error) { + params := []interface{}{ + authenticationContainer, + } + err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "checkExternalAuthenticationStatus", params, &r.Options, &resp) + return +} + +// Add a description here +// +// +func (r User_Customer_OpenIdConnect) CheckPhoneFactorAuthenticationForPasswordSet(passwordSet *datatypes.Container_User_Customer_PasswordSet, authenticationContainer *datatypes.Container_User_Customer_External_Binding) (resp bool, err error) { + params := []interface{}{ + passwordSet, + authenticationContainer, + } + err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "checkPhoneFactorAuthenticationForPasswordSet", params, &r.Options, &resp) + return +} + +// no documentation yet +func (r User_Customer_OpenIdConnect) CompleteInvitationAfterLogin(providerType *string, accessToken *string, emailRegistrationCode *string) (err error) { + var resp datatypes.Void + params := []interface{}{ + providerType, + accessToken, + emailRegistrationCode, + } + err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "completeInvitationAfterLogin", params, &r.Options, &resp) + return +} + +// Create a new subscriber for a given resource. +func (r User_Customer_OpenIdConnect) CreateNotificationSubscriber(keyName *string, resourceTableId *int) (resp bool, err error) { + params := []interface{}{ + keyName, + resourceTableId, + } + err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "createNotificationSubscriber", params, &r.Options, &resp) + return +} + +// Create a new user in the SoftLayer customer portal. createObject() creates a user's portal record and adds them into the SoftLayer community forums. It is no longer possible to set up the SSL or PPTP enable flag in this call since the manage permissions have not yet been set. You will need to make a subsequent call to edit object in order to enable VPN access. An account's master user and sub-users who have the User Manage permission can add new users. createObject() creates users with a default permission set. After adding a user it may be helpful to set their permissions and hardware access. +// +// Note, neither password nor vpnPassword parameters are required. +// +// Password When a new user is created, an email will be sent to the new user's email address with a link to a url that will allow the new user to create or change their password for the SoftLayer customer portal. +// +// If the password parameter is provided and is not null, then that value will be validated. If it is a valid password, then the user will be created with this password. This user will still receive a portal password email. It can be used within 24 hours to change their password, or it can be allowed to expire, and the password provided during user creation will remain as the user's password. +// +// If the password parameter is not provided or the value is null, the user must set their portal password using the link sent in email within 24 hours.  If the user fails to set their password within 24 hours, then a non-master user can use the "Reset Password" link on the login page of the portal to request a new email. A master user can use the link to retrieve a phone number to call to assist in resetting their password. +// +// The password parameter is ignored for VPN_ONLY users or for IBMid authenticated users. +// +// vpnPassword If the vpnPassword is provided, then the user's vpnPassword will be set to the provided password.  When creating a vpn only user, the vpnPassword MUST be supplied.  If the vpnPassword is not provided, then the user will need to use the portal to edit their profile and set the vpnPassword. +// +// +func (r User_Customer_OpenIdConnect) CreateObject(templateObject *datatypes.User_Customer, password *string, vpnPassword *string) (resp datatypes.User_Customer, err error) { + params := []interface{}{ + templateObject, + password, + vpnPassword, + } + err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "createObject", params, &r.Options, &resp) + return +} + +// no documentation yet +func (r User_Customer_OpenIdConnect) CreateOpenIdConnectUserAndCompleteInvitation(providerType *string, user *datatypes.User_Customer, password *string, registrationCode *string) (resp string, err error) { + params := []interface{}{ + providerType, + user, + password, + registrationCode, + } + err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "createOpenIdConnectUserAndCompleteInvitation", params, &r.Options, &resp) + return +} + +// Create delivery methods for a notification that the user is subscribed to. Multiple delivery method keyNames can be supplied to create multiple delivery methods for the specified notification. Available delivery methods - 'EMAIL'. Available notifications - 'PLANNED_MAINTENANCE', 'UNPLANNED_INCIDENT'. +func (r User_Customer_OpenIdConnect) CreateSubscriberDeliveryMethods(notificationKeyName *string, deliveryMethodKeyNames []string) (resp bool, err error) { + params := []interface{}{ + notificationKeyName, + deliveryMethodKeyNames, + } + err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "createSubscriberDeliveryMethods", params, &r.Options, &resp) + return +} + +// Create a new subscriber for a given resource. +func (r User_Customer_OpenIdConnect) DeactivateNotificationSubscriber(keyName *string, resourceTableId *int) (resp bool, err error) { + params := []interface{}{ + keyName, + resourceTableId, + } + err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "deactivateNotificationSubscriber", params, &r.Options, &resp) + return +} + +// Declines an invitation to link an OpenIdConnect identity to a SoftLayer (Atlas) identity and account. Note that this uses a registration code that is likely a one-time-use-only token, so if an invitation has already been processed (accepted or previously declined) it will not be possible to process it a second time. +func (r User_Customer_OpenIdConnect) DeclineInvitation(providerType *string, registrationCode *string) (err error) { + var resp datatypes.Void + params := []interface{}{ + providerType, + registrationCode, + } + err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "declineInvitation", params, &r.Options, &resp) + return +} + +// Account master users and sub-users who have the User Manage permission in the SoftLayer customer portal can update other user's information. Use editObject() if you wish to edit a single user account. Users who do not have the User Manage permission can only update their own information. +func (r User_Customer_OpenIdConnect) EditObject(templateObject *datatypes.User_Customer) (resp bool, err error) { + params := []interface{}{ + templateObject, + } + err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "editObject", params, &r.Options, &resp) + return +} + +// Account master users and sub-users who have the User Manage permission in the SoftLayer customer portal can update other user's information. Use editObjects() if you wish to edit multiple users at once. Users who do not have the User Manage permission can only update their own information. +func (r User_Customer_OpenIdConnect) EditObjects(templateObjects []datatypes.User_Customer) (resp bool, err error) { + params := []interface{}{ + templateObjects, + } + err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "editObjects", params, &r.Options, &resp) + return +} + +// no documentation yet +func (r User_Customer_OpenIdConnect) FindUserPreference(profileName *string, containerKeyname *string, preferenceKeyname *string) (resp []datatypes.Layout_Profile, err error) { + params := []interface{}{ + profileName, + containerKeyname, + preferenceKeyname, + } + err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "findUserPreference", params, &r.Options, &resp) + return +} + +// Retrieve The customer account that a user belongs to. +func (r User_Customer_OpenIdConnect) GetAccount() (resp datatypes.Account, err error) { + err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "getAccount", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r User_Customer_OpenIdConnect) GetActions() (resp []datatypes.User_Permission_Action, err error) { + err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "getActions", nil, &r.Options, &resp) + return +} + +// The getActiveExternalAuthenticationVendors method will return a list of available external vendors that a SoftLayer user can authenticate against. The list will only contain vendors for which the user has at least one active external binding. +func (r User_Customer_OpenIdConnect) GetActiveExternalAuthenticationVendors() (resp []datatypes.Container_User_Customer_External_Binding_Vendor, err error) { + err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "getActiveExternalAuthenticationVendors", nil, &r.Options, &resp) + return +} + +// Retrieve A portal user's additional email addresses. These email addresses are contacted when updates are made to support tickets. +func (r User_Customer_OpenIdConnect) GetAdditionalEmails() (resp []datatypes.User_Customer_AdditionalEmail, err error) { + err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "getAdditionalEmails", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r User_Customer_OpenIdConnect) GetAllowedHardwareIds() (resp []int, err error) { + err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "getAllowedHardwareIds", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r User_Customer_OpenIdConnect) GetAllowedVirtualGuestIds() (resp []int, err error) { + err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "getAllowedVirtualGuestIds", nil, &r.Options, &resp) + return +} + +// Retrieve A portal user's API Authentication keys. There is a max limit of two API keys per user. +func (r User_Customer_OpenIdConnect) GetApiAuthenticationKeys() (resp []datatypes.User_Customer_ApiAuthentication, err error) { + err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "getApiAuthenticationKeys", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r User_Customer_OpenIdConnect) GetAuthenticationToken(token *datatypes.Container_User_Authentication_Token) (resp datatypes.Container_User_Authentication_Token, err error) { + params := []interface{}{ + token, + } + err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "getAuthenticationToken", params, &r.Options, &resp) + return +} + +// Retrieve The CDN accounts associated with a portal user. +func (r User_Customer_OpenIdConnect) GetCdnAccounts() (resp []datatypes.Network_ContentDelivery_Account, err error) { + err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "getCdnAccounts", nil, &r.Options, &resp) + return +} + +// Retrieve A portal user's child users. Some portal users may not have child users. +func (r User_Customer_OpenIdConnect) GetChildUsers() (resp []datatypes.User_Customer, err error) { + err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "getChildUsers", nil, &r.Options, &resp) + return +} + +// Retrieve An user's associated closed tickets. +func (r User_Customer_OpenIdConnect) GetClosedTickets() (resp []datatypes.Ticket, err error) { + err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "getClosedTickets", nil, &r.Options, &resp) + return +} + +// This API gets the default account for the OpenIdConnect identity that is linked to the current SoftLayer user identity. If there is no default present, the API returns null, except in the special case where we find one active user linked to the IBMid. In that case, we will set the link from the IBMid to that user as default, and return the account of which that user is a member. Invoke this only on IBMid-authenticated users. +func (r User_Customer_OpenIdConnect) GetDefaultAccount(providerType *string) (resp datatypes.Account, err error) { + params := []interface{}{ + providerType, + } + err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "getDefaultAccount", params, &r.Options, &resp) + return +} + +// This method is deprecated. Please see documentation for initiatePortalPasswordChange +func (r User_Customer_OpenIdConnect) GetDefaultSecurityQuestions(key *string) (resp []datatypes.User_Security_Question, err error) { + params := []interface{}{ + key, + } + err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "getDefaultSecurityQuestions", params, &r.Options, &resp) + return +} + +// Retrieve The external authentication bindings that link an external identifier to a SoftLayer user. +func (r User_Customer_OpenIdConnect) GetExternalBindings() (resp []datatypes.User_External_Binding, err error) { + err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "getExternalBindings", nil, &r.Options, &resp) + return +} + +// Retrieve A portal user's accessible hardware. These permissions control which hardware a user has access to in the SoftLayer customer portal. +func (r User_Customer_OpenIdConnect) GetHardware() (resp []datatypes.Hardware, err error) { + err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "getHardware", nil, &r.Options, &resp) + return +} + +// Retrieve the number of servers that a portal user has access to. Portal users can have restrictions set to limit services for and to perform actions on hardware. You can set these permissions in the portal by clicking the "administrative" then "user admin" links. +func (r User_Customer_OpenIdConnect) GetHardwareCount() (resp int, err error) { + err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "getHardwareCount", nil, &r.Options, &resp) + return +} + +// Retrieve Hardware notifications associated with this user. A hardware notification links a user to a piece of hardware, and that user will be notified if any monitors on that hardware fail, if the monitors have a status of 'Notify User'. +func (r User_Customer_OpenIdConnect) GetHardwareNotifications() (resp []datatypes.User_Customer_Notification_Hardware, err error) { + err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "getHardwareNotifications", nil, &r.Options, &resp) + return +} + +// Retrieve Whether or not a user has acknowledged the support policy. +func (r User_Customer_OpenIdConnect) GetHasAcknowledgedSupportPolicyFlag() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "getHasAcknowledgedSupportPolicyFlag", nil, &r.Options, &resp) + return +} + +// Retrieve Whether or not a portal user has access to all hardware on their account. +func (r User_Customer_OpenIdConnect) GetHasFullHardwareAccessFlag() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "getHasFullHardwareAccessFlag", nil, &r.Options, &resp) + return +} + +// Retrieve Whether or not a portal user has access to all hardware on their account. +func (r User_Customer_OpenIdConnect) GetHasFullVirtualGuestAccessFlag() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "getHasFullVirtualGuestAccessFlag", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r User_Customer_OpenIdConnect) GetImpersonationToken() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "getImpersonationToken", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r User_Customer_OpenIdConnect) GetLayoutProfiles() (resp []datatypes.Layout_Profile, err error) { + err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "getLayoutProfiles", nil, &r.Options, &resp) + return +} + +// Retrieve A user's locale. Locale holds user's language and region information. +func (r User_Customer_OpenIdConnect) GetLocale() (resp datatypes.Locale, err error) { + err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "getLocale", nil, &r.Options, &resp) + return +} + +// Validates a supplied OpenIdConnect access token to the SoftLayer customer portal and returns the default account name and id for the active user. An exception will be thrown if no matching customer is found. +func (r User_Customer_OpenIdConnect) GetLoginAccountInfoOpenIdConnect(providerType *string, accessToken *string) (resp datatypes.Container_User_Customer_OpenIdConnect_LoginAccountInfo, err error) { + params := []interface{}{ + providerType, + accessToken, + } + err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "getLoginAccountInfoOpenIdConnect", params, &r.Options, &resp) + return +} + +// Retrieve A user's attempts to log into the SoftLayer customer portal. +func (r User_Customer_OpenIdConnect) GetLoginAttempts() (resp []datatypes.User_Customer_Access_Authentication, err error) { + err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "getLoginAttempts", nil, &r.Options, &resp) + return +} + +// Attempt to authenticate a user to the SoftLayer customer portal using the provided authentication container. Depending on the specific type of authentication container that is used, this API will leverage the appropriate authentication protocol. If authentication is successful then the API returns a list of linked accounts for the user, a token containing the ID of the authenticated user and a hash key used by the SoftLayer customer portal to maintain authentication. +func (r User_Customer_OpenIdConnect) GetLoginToken(request *datatypes.Container_Authentication_Request_Contract) (resp datatypes.Container_Authentication_Response_Common, err error) { + params := []interface{}{ + request, + } + err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "getLoginToken", params, &r.Options, &resp) + return +} + +// An OpenIdConnect identity, for example an IBMid, can be linked or mapped to one or more individual SoftLayer users, but no more than one SoftLayer user per account. This effectively links the OpenIdConnect identity to those accounts. This API returns a list of all the accounts for which there is a link between the OpenIdConnect identity and a SoftLayer user. Invoke this only on IBMid-authenticated users. +func (r User_Customer_OpenIdConnect) GetMappedAccounts(providerType *string) (resp []datatypes.Account, err error) { + params := []interface{}{ + providerType, + } + err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "getMappedAccounts", params, &r.Options, &resp) + return +} + +// Retrieve A portal user's associated mobile device profiles. +func (r User_Customer_OpenIdConnect) GetMobileDevices() (resp []datatypes.User_Customer_MobileDevice, err error) { + err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "getMobileDevices", nil, &r.Options, &resp) + return +} + +// Retrieve Notification subscription records for the user. +func (r User_Customer_OpenIdConnect) GetNotificationSubscribers() (resp []datatypes.Notification_Subscriber, err error) { + err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "getNotificationSubscribers", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r User_Customer_OpenIdConnect) GetObject() (resp datatypes.User_Customer_OpenIdConnect, err error) { + err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "getObject", nil, &r.Options, &resp) + return +} + +// This API returns a SoftLayer_Container_User_Customer_OpenIdConnect_MigrationState object containing the necessary information to determine what migration state the user is in. If the account is not OpenIdConnect authenticated, then an exception is thrown. +func (r User_Customer_OpenIdConnect) GetOpenIdConnectMigrationState() (resp datatypes.Container_User_Customer_OpenIdConnect_MigrationState, err error) { + err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "getOpenIdConnectMigrationState", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r User_Customer_OpenIdConnect) GetOpenIdRegistrationInfoFromCode(providerType *string, registrationCode *string) (resp datatypes.Account_Authentication_OpenIdConnect_RegistrationInformation, err error) { + params := []interface{}{ + providerType, + registrationCode, + } + err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "getOpenIdRegistrationInfoFromCode", params, &r.Options, &resp) + return +} + +// Retrieve An user's associated open tickets. +func (r User_Customer_OpenIdConnect) GetOpenTickets() (resp []datatypes.Ticket, err error) { + err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "getOpenTickets", nil, &r.Options, &resp) + return +} + +// Retrieve A portal user's vpn accessible subnets. +func (r User_Customer_OpenIdConnect) GetOverrides() (resp []datatypes.Network_Service_Vpn_Overrides, err error) { + err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "getOverrides", nil, &r.Options, &resp) + return +} + +// Retrieve A portal user's parent user. If a SoftLayer_User_Customer has a null parentId property then it doesn't have a parent user. +func (r User_Customer_OpenIdConnect) GetParent() (resp datatypes.User_Customer, err error) { + err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "getParent", nil, &r.Options, &resp) + return +} + +// Retrieve A portal user's permissions. These permissions control that user's access to functions within the SoftLayer customer portal and API. +func (r User_Customer_OpenIdConnect) GetPermissions() (resp []datatypes.User_Customer_CustomerPermission_Permission, err error) { + err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "getPermissions", nil, &r.Options, &resp) + return +} + +// Attempt to authenticate a username and password to the SoftLayer customer portal. Many portal user accounts are configured to require answering a security question on login. In this case getPortalLoginToken() also verifies the given security question ID and answer. If authentication is successful then the API returns a token containing the ID of the authenticated user and a hash key used by the SoftLayer customer portal to maintain authentication. +func (r User_Customer_OpenIdConnect) GetPortalLoginToken(username *string, password *string, securityQuestionId *int, securityQuestionAnswer *string) (resp datatypes.Container_User_Customer_Portal_Token, err error) { + params := []interface{}{ + username, + password, + securityQuestionId, + securityQuestionAnswer, + } + err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "getPortalLoginToken", params, &r.Options, &resp) + return +} + +// Attempt to authenticate a supplied OpenIdConnect access token to the SoftLayer customer portal. If authentication is successful then the API returns a token containing the ID of the authenticated user and a hash key used by the SoftLayer customer portal to maintain authentication. +func (r User_Customer_OpenIdConnect) GetPortalLoginTokenOpenIdConnect(providerType *string, accessToken *string, accountId *int, securityQuestionId *int, securityQuestionAnswer *string) (resp datatypes.Container_User_Customer_Portal_Token, err error) { + params := []interface{}{ + providerType, + accessToken, + accountId, + securityQuestionId, + securityQuestionAnswer, + } + err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "getPortalLoginTokenOpenIdConnect", params, &r.Options, &resp) + return +} + +// Select a type of preference you would like to get using [[SoftLayer_User_Customer::getPreferenceTypes|getPreferenceTypes]] and invoke this method using that preference type key name. +func (r User_Customer_OpenIdConnect) GetPreference(preferenceTypeKeyName *string) (resp datatypes.User_Preference, err error) { + params := []interface{}{ + preferenceTypeKeyName, + } + err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "getPreference", params, &r.Options, &resp) + return +} + +// Use any of the preference types to fetch or modify user preferences using [[SoftLayer_User_Customer::getPreference|getPreference]] or [[SoftLayer_User_Customer::changePreference|changePreference]], respectively. +func (r User_Customer_OpenIdConnect) GetPreferenceTypes() (resp []datatypes.User_Preference_Type, err error) { + err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "getPreferenceTypes", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r User_Customer_OpenIdConnect) GetPreferences() (resp []datatypes.User_Preference, err error) { + err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "getPreferences", nil, &r.Options, &resp) + return +} + +// Retrieve the authentication requirements for an outstanding password set/reset request. The password key provided to the user in an email generated by the [[SoftLayer_User_Customer::newUserPassword|newUserPassword]]. Password recovery keys are valid for 24 hours after they're generated. +func (r User_Customer_OpenIdConnect) GetRequirementsForPasswordSet(passwordSet *datatypes.Container_User_Customer_PasswordSet) (resp datatypes.Container_User_Customer_PasswordSet, err error) { + params := []interface{}{ + passwordSet, + } + err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "getRequirementsForPasswordSet", params, &r.Options, &resp) + return +} + +// Retrieve +func (r User_Customer_OpenIdConnect) GetRoles() (resp []datatypes.User_Permission_Role, err error) { + err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "getRoles", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r User_Customer_OpenIdConnect) GetSalesforceUserLink() (resp datatypes.User_Customer_Link, err error) { + err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "getSalesforceUserLink", nil, &r.Options, &resp) + return +} + +// Retrieve A portal user's security question answers. Some portal users may not have security answers or may not be configured to require answering a security question on login. +func (r User_Customer_OpenIdConnect) GetSecurityAnswers() (resp []datatypes.User_Customer_Security_Answer, err error) { + err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "getSecurityAnswers", nil, &r.Options, &resp) + return +} + +// Retrieve A user's notification subscription records. +func (r User_Customer_OpenIdConnect) GetSubscribers() (resp []datatypes.Notification_User_Subscriber, err error) { + err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "getSubscribers", nil, &r.Options, &resp) + return +} + +// Retrieve A user's successful attempts to log into the SoftLayer customer portal. +func (r User_Customer_OpenIdConnect) GetSuccessfulLogins() (resp []datatypes.User_Customer_Access_Authentication, err error) { + err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "getSuccessfulLogins", nil, &r.Options, &resp) + return +} + +// Retrieve Whether or not a user is required to acknowledge the support policy for portal access. +func (r User_Customer_OpenIdConnect) GetSupportPolicyAcknowledgementRequiredFlag() (resp int, err error) { + err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "getSupportPolicyAcknowledgementRequiredFlag", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r User_Customer_OpenIdConnect) GetSupportPolicyDocument() (resp []byte, err error) { + err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "getSupportPolicyDocument", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r User_Customer_OpenIdConnect) GetSupportPolicyName() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "getSupportPolicyName", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r User_Customer_OpenIdConnect) GetSupportedLocales() (resp []datatypes.Locale, err error) { + err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "getSupportedLocales", nil, &r.Options, &resp) + return +} + +// Retrieve Whether or not a user must take a brief survey the next time they log into the SoftLayer customer portal. +func (r User_Customer_OpenIdConnect) GetSurveyRequiredFlag() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "getSurveyRequiredFlag", nil, &r.Options, &resp) + return +} + +// Retrieve The surveys that a user has taken in the SoftLayer customer portal. +func (r User_Customer_OpenIdConnect) GetSurveys() (resp []datatypes.Survey, err error) { + err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "getSurveys", nil, &r.Options, &resp) + return +} + +// Retrieve An user's associated tickets. +func (r User_Customer_OpenIdConnect) GetTickets() (resp []datatypes.Ticket, err error) { + err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "getTickets", nil, &r.Options, &resp) + return +} + +// Retrieve A portal user's time zone. +func (r User_Customer_OpenIdConnect) GetTimezone() (resp datatypes.Locale_Timezone, err error) { + err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "getTimezone", nil, &r.Options, &resp) + return +} + +// Retrieve A user's unsuccessful attempts to log into the SoftLayer customer portal. +func (r User_Customer_OpenIdConnect) GetUnsuccessfulLogins() (resp []datatypes.User_Customer_Access_Authentication, err error) { + err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "getUnsuccessfulLogins", nil, &r.Options, &resp) + return +} + +// Returns an IMS User Object from the provided OpenIdConnect User ID for the Account of the active user. Enforces the User Management permissions for the Active User. An exception will be thrown if no matching IMS User is found. +func (r User_Customer_OpenIdConnect) GetUserForUnifiedInvitation(openIdConnectUserId *string) (resp datatypes.User_Customer_OpenIdConnect, err error) { + params := []interface{}{ + openIdConnectUserId, + } + err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "getUserForUnifiedInvitation", params, &r.Options, &resp) + return +} + +// This method is deprecated. Please see documentation for initiatePortalPasswordChange Retrieve a user object using a password recovery key received in an email generated by the [[SoftLayer_User_Customer::lostPassword|lostPassword]] method. The SoftLayer customer portal uses getUserFromLostPasswordRequest() to retrieve user security questions. Password recovery keys are valid for 24 hours after they're generated. +func (r User_Customer_OpenIdConnect) GetUserFromLostPasswordRequest(key *string) (resp []datatypes.User_Security_Question, err error) { + params := []interface{}{ + key, + } + err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "getUserFromLostPasswordRequest", params, &r.Options, &resp) + return +} + +// Retrieve a user object using a password token. When a new user is created or when a user has requested a password change using initiatePortalPasswordChange, they will have received an email that contains a url with a token. That token is used as the parameter for getUserIdForPasswordSet. +func (r User_Customer_OpenIdConnect) GetUserIdForPasswordSet(key *string) (resp int, err error) { + params := []interface{}{ + key, + } + err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "getUserIdForPasswordSet", params, &r.Options, &resp) + return +} + +// Retrieve +func (r User_Customer_OpenIdConnect) GetUserLinks() (resp []datatypes.User_Customer_Link, err error) { + err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "getUserLinks", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r User_Customer_OpenIdConnect) GetUserPreferences(profileName *string, containerKeyname *string) (resp []datatypes.Layout_Profile, err error) { + params := []interface{}{ + profileName, + containerKeyname, + } + err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "getUserPreferences", params, &r.Options, &resp) + return +} + +// Retrieve A portal user's status, which controls overall access to the SoftLayer customer portal and VPN access to the private network. +func (r User_Customer_OpenIdConnect) GetUserStatus() (resp datatypes.User_Customer_Status, err error) { + err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "getUserStatus", nil, &r.Options, &resp) + return +} + +// Retrieve the number of CloudLayer Computing Instances that a portal user has access to. Portal users can have restrictions set to limit services for and to perform actions on CloudLayer Computing Instances. You can set these permissions in the portal by clicking the "administrative" then "user admin" links. +func (r User_Customer_OpenIdConnect) GetVirtualGuestCount() (resp int, err error) { + err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "getVirtualGuestCount", nil, &r.Options, &resp) + return +} + +// Retrieve A portal user's accessible CloudLayer Computing Instances. These permissions control which CloudLayer Computing Instances a user has access to in the SoftLayer customer portal. +func (r User_Customer_OpenIdConnect) GetVirtualGuests() (resp []datatypes.Virtual_Guest, err error) { + err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "getVirtualGuests", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r User_Customer_OpenIdConnect) InTerminalStatus() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "inTerminalStatus", nil, &r.Options, &resp) + return +} + +// The service initiates an external authentication with the given external authentication vendor. The authentication container and its content will be verified before an attempt is made to initiate an external authentication. [[SoftLayer_Container_User_Customer_External_Binding_Phone|Phone external binding]] container can be used for this service. +// +// This service returns a unique authentication request token. You can use [[SoftLayer_User_Customer::checkExternalAuthenticationStatus|checkExternalAuthenticationStatus]] service to check if the authentication request is complete or not. +func (r User_Customer_OpenIdConnect) InitiateExternalAuthentication(authenticationContainer *datatypes.Container_User_Customer_External_Binding) (resp string, err error) { + params := []interface{}{ + authenticationContainer, + } + err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "initiateExternalAuthentication", params, &r.Options, &resp) + return +} + +// Sends password change email to the user containing url that allows the user the change their password. This is the first step when a user wishes to change their password. The url that is generated contains a one-time use token that is valid for only 24-hours. +// +// If this is a new master user who has never logged into the portal, then password reset will be initiated. Once a master user has logged into the portal, they must setup their security questions prior to logging out because master users are required to answer a security question during the password reset process. Should a master user not have security questions defined and not remember their password in order to define the security questions, then they will need to contact support at live chat or Revenue Services for assistance. +// +// Due to security reasons, the number reset requests per username are limited within a undisclosed timeframe. +func (r User_Customer_OpenIdConnect) InitiatePortalPasswordChange(username *string) (resp bool, err error) { + params := []interface{}{ + username, + } + err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "initiatePortalPasswordChange", params, &r.Options, &resp) + return +} + +// A Brand Agent that has permissions to Add Customer Accounts will be able to request the password email be sent to the Master User of a Customer Account created by the same Brand as the agent making the request. Due to security reasons, the number of reset requests are limited within an undisclosed timeframe. +func (r User_Customer_OpenIdConnect) InitiatePortalPasswordChangeByBrandAgent(username *string) (resp bool, err error) { + params := []interface{}{ + username, + } + err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "initiatePortalPasswordChangeByBrandAgent", params, &r.Options, &resp) + return +} + +// Send email invitation to a user to join a SoftLayer account and authenticate with OpenIdConnect. Throws an exception on error. +func (r User_Customer_OpenIdConnect) InviteUserToLinkOpenIdConnect(providerType *string) (err error) { + var resp datatypes.Void + params := []interface{}{ + providerType, + } + err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "inviteUserToLinkOpenIdConnect", params, &r.Options, &resp) + return +} + +// Portal users are considered master users if they don't have an associated parent user. The only users who don't have parent users are users whose username matches their SoftLayer account name. Master users have special permissions throughout the SoftLayer customer portal. +func (r User_Customer_OpenIdConnect) IsMasterUser() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "isMasterUser", nil, &r.Options, &resp) + return +} + +// This method is deprecated! SoftLayer Community Forums no longer exist, therefore, any password verified will return false. +// +// Determine if a string is the given user's login password to the SoftLayer community forums. +func (r User_Customer_OpenIdConnect) IsValidForumPassword(password *string) (resp bool, err error) { + params := []interface{}{ + password, + } + err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "isValidForumPassword", params, &r.Options, &resp) + return +} + +// Determine if a string is the given user's login password to the SoftLayer customer portal. +func (r User_Customer_OpenIdConnect) IsValidPortalPassword(password *string) (resp bool, err error) { + params := []interface{}{ + password, + } + err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "isValidPortalPassword", params, &r.Options, &resp) + return +} + +// This method is deprecated. Please see documentation for initiatePortalPasswordChange SoftLayer provides a way for users of it's customer portal to recover lost passwords. The lostPassword() method is the first step in this process. Given a valid username and email address, the SoftLayer API will email the address provided with a URL to visit to begin the password recovery process. The last part of this URL is a hash key that's used as an identifier throughout this process. Use this hash key in the [[SoftLayer_User_Customer::setPasswordFromLostPasswordRequest|setPasswordFromLostPasswordRequest]] method to reset a user's password. Password recovery hash keys are valid for 24 hours after they're generated. +func (r User_Customer_OpenIdConnect) LostPassword(username *string, email *string) (resp bool, err error) { + params := []interface{}{ + username, + email, + } + err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "lostPassword", params, &r.Options, &resp) + return +} + +// The perform external authentication method will authenticate the given external authentication container with an external vendor. The authentication container and its contents will be verified before an attempt is made to authenticate the contents of the container with an external vendor. +func (r User_Customer_OpenIdConnect) PerformExternalAuthentication(authenticationContainer *datatypes.Container_User_Customer_External_Binding) (resp datatypes.Container_User_Customer_Portal_Token, err error) { + params := []interface{}{ + authenticationContainer, + } + err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "performExternalAuthentication", params, &r.Options, &resp) + return +} + +// Set the password for a user who has an outstanding password request. A user with an outstanding password request will have an unused and unexpired password key. The password key is part of the url provided to the user in the email sent to the user with information on how to set their password. The email was generated by the [[SoftLayer_User_Customer::processPasswordSetRequest|processPasswordSetRequest]] method. Password recovery keys are valid for 24 hours after they're generated. +// +// User portal passwords must match the following restrictions. Portal passwords must... +// * ...be over eight characters long. +// * ...be under twenty characters long. +// * ...contain at least one uppercase letter +// * ...contain at least one lowercase letter +// * ...contain at least one number +// * ...contain one of the special characters _ - | @ . , ? / ! ~ # $ % ^ & * ( ) { } [ ] \ + = +// * ...not match your username +// * ...not match your forum password +func (r User_Customer_OpenIdConnect) ProcessPasswordSetRequest(passwordSet *datatypes.Container_User_Customer_PasswordSet, authenticationContainer *datatypes.Container_User_Customer_External_Binding) (resp bool, err error) { + params := []interface{}{ + passwordSet, + authenticationContainer, + } + err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "processPasswordSetRequest", params, &r.Options, &resp) + return +} + +// Remove all hardware from a portal user's hardware access list. A user's hardware access list controls which of an account's hardware objects a user has access to in the SoftLayer customer portal and API. If the current user does not have administrative privileges over this user, an inadequate permissions exception will get thrown. +// +// Users can call this function on child users, but not to themselves. An account's master has access to all users permissions on their account. +func (r User_Customer_OpenIdConnect) RemoveAllHardwareAccessForThisUser() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "removeAllHardwareAccessForThisUser", nil, &r.Options, &resp) + return +} + +// Remove all cloud computing instances from a portal user's instance access list. A user's instance access list controls which of an account's computing instance objects a user has access to in the SoftLayer customer portal and API. If the current user does not have administrative privileges over this user, an inadequate permissions exception will get thrown. +// +// Users can call this function on child users, but not to themselves. An account's master has access to all users permissions on their account. +func (r User_Customer_OpenIdConnect) RemoveAllVirtualAccessForThisUser() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "removeAllVirtualAccessForThisUser", nil, &r.Options, &resp) + return +} + +// Remove a user's API authentication key, removing that user's access to query the SoftLayer API. +func (r User_Customer_OpenIdConnect) RemoveApiAuthenticationKey(keyId *int) (resp bool, err error) { + params := []interface{}{ + keyId, + } + err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "removeApiAuthenticationKey", params, &r.Options, &resp) + return +} + +// Remove multiple hardware from a portal user's hardware access list. A user's hardware access list controls which of an account's hardware objects a user has access to in the SoftLayer customer portal and API. Hardware does not exist in the SoftLayer portal and returns "not found" exceptions in the API if the user doesn't have access to it. If a user does not has access to the hardware you're attempting remove add then removeBulkHardwareAccess() returns true. +// +// Users can assign hardware access to their child users, but not to themselves. An account's master has access to all hardware on their customer account and can set hardware access for any of the other users on their account. +// +// If the user has full hardware access, then it will provide access to "ALL but passed in" hardware ids. +func (r User_Customer_OpenIdConnect) RemoveBulkHardwareAccess(hardwareIds []int) (resp bool, err error) { + params := []interface{}{ + hardwareIds, + } + err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "removeBulkHardwareAccess", params, &r.Options, &resp) + return +} + +// Remove multiple permissions from a portal user's permission set. [[Permissions]] control which features in the SoftLayer customer portal and API a user may use. Removing a user's permission will affect that user's portal and API access. removePortalPermission() does not attempt to remove permissions that are not assigned to the user. +// +// Users can assign permissions to their child users, but not to themselves. An account's master has all portal permissions and can set permissions for any of the other users on their account. +// +// Use the [[SoftLayer_User_Customer_CustomerPermission_Permission::getAllObjects]] method to retrieve a list of all permissions available in the SoftLayer customer portal and API. Permissions are removed based on the keyName property of the permission objects within the permissions parameter. +func (r User_Customer_OpenIdConnect) RemoveBulkPortalPermission(permissions []datatypes.User_Customer_CustomerPermission_Permission) (resp bool, err error) { + params := []interface{}{ + permissions, + } + err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "removeBulkPortalPermission", params, &r.Options, &resp) + return +} + +// no documentation yet +func (r User_Customer_OpenIdConnect) RemoveBulkRoles(roles []datatypes.User_Permission_Role) (err error) { + var resp datatypes.Void + params := []interface{}{ + roles, + } + err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "removeBulkRoles", params, &r.Options, &resp) + return +} + +// Remove multiple CloudLayer Computing Instances from a portal user's access list. A user's CloudLayer Computing Instance access list controls which of an account's CloudLayer Computing Instance objects a user has access to in the SoftLayer customer portal and API. CloudLayer Computing Instances do not exist in the SoftLayer portal and returns "not found" exceptions in the API if the user doesn't have access to it. If a user does not has access to the CloudLayer Computing Instance you're attempting remove add then removeBulkVirtualGuestAccess() returns true. +// +// Users can assign CloudLayer Computing Instance access to their child users, but not to themselves. An account's master has access to all CloudLayer Computing Instances on their customer account and can set hardware access for any of the other users on their account. +func (r User_Customer_OpenIdConnect) RemoveBulkVirtualGuestAccess(virtualGuestIds []int) (resp bool, err error) { + params := []interface{}{ + virtualGuestIds, + } + err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "removeBulkVirtualGuestAccess", params, &r.Options, &resp) + return +} + +// no documentation yet +func (r User_Customer_OpenIdConnect) RemoveExternalBinding(externalBinding *datatypes.User_External_Binding) (resp bool, err error) { + params := []interface{}{ + externalBinding, + } + err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "removeExternalBinding", params, &r.Options, &resp) + return +} + +// Remove hardware from a portal user's hardware access list. A user's hardware access list controls which of an account's hardware objects a user has access to in the SoftLayer customer portal and API. Hardware does not exist in the SoftLayer portal and returns "not found" exceptions in the API if the user doesn't have access to it. If a user does not has access to the hardware you're attempting remove add then removeHardwareAccess() returns true. +// +// Users can assign hardware access to their child users, but not to themselves. An account's master has access to all hardware on their customer account and can set hardware access for any of the other users on their account. +func (r User_Customer_OpenIdConnect) RemoveHardwareAccess(hardwareId *int) (resp bool, err error) { + params := []interface{}{ + hardwareId, + } + err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "removeHardwareAccess", params, &r.Options, &resp) + return +} + +// Remove a permission from a portal user's permission set. [[Permissions]] control which features in the SoftLayer customer portal and API a user may use. Removing a user's permission will affect that user's portal and API access. If the user does not have the permission you're attempting to remove then removePortalPermission() returns true. +// +// Users can assign permissions to their child users, but not to themselves. An account's master has all portal permissions and can set permissions for any of the other users on their account. +// +// Use the [[SoftLayer_User_Customer_CustomerPermission_Permission::getAllObjects]] method to retrieve a list of all permissions available in the SoftLayer customer portal and API. Permissions are removed based on the keyName property of the permission parameter. +func (r User_Customer_OpenIdConnect) RemovePortalPermission(permission *datatypes.User_Customer_CustomerPermission_Permission) (resp bool, err error) { + params := []interface{}{ + permission, + } + err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "removePortalPermission", params, &r.Options, &resp) + return +} + +// no documentation yet +func (r User_Customer_OpenIdConnect) RemoveRole(role *datatypes.User_Permission_Role) (err error) { + var resp datatypes.Void + params := []interface{}{ + role, + } + err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "removeRole", params, &r.Options, &resp) + return +} + +// Remove a CloudLayer Computing Instance from a portal user's access list. A user's CloudLayer Computing Instance access list controls which of an account's computing instances a user has access to in the SoftLayer customer portal and API. CloudLayer Computing Instances do not exist in the SoftLayer portal and returns "not found" exceptions in the API if the user doesn't have access to it. If a user does not has access to the CloudLayer Computing Instance you're attempting remove add then removeVirtualGuestAccess() returns true. +// +// Users can assign CloudLayer Computing Instance access to their child users, but not to themselves. An account's master has access to all CloudLayer Computing Instances on their customer account and can set instance access for any of the other users on their account. +func (r User_Customer_OpenIdConnect) RemoveVirtualGuestAccess(virtualGuestId *int) (resp bool, err error) { + params := []interface{}{ + virtualGuestId, + } + err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "removeVirtualGuestAccess", params, &r.Options, &resp) + return +} + +// This method is deprecated. Please see documentation for initiatePortalPasswordChange Attempt to authenticate a username and password to the SoftLayer customer portal and reset there password. If authentication and password reset is successful then the API returns true. +func (r User_Customer_OpenIdConnect) ResetExpiredPassword(username *string, password *string, newPassword *string, securityQuestionId *int, securityQuestionAnswer *string) (resp bool, err error) { + params := []interface{}{ + username, + password, + newPassword, + securityQuestionId, + securityQuestionAnswer, + } + err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "resetExpiredPassword", params, &r.Options, &resp) + return +} + +// no documentation yet +func (r User_Customer_OpenIdConnect) SamlAuthenticate(accountId *string, samlResponse *string) (resp datatypes.Container_User_Customer_Portal_Token, err error) { + params := []interface{}{ + accountId, + samlResponse, + } + err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "samlAuthenticate", params, &r.Options, &resp) + return +} + +// no documentation yet +func (r User_Customer_OpenIdConnect) SamlBeginAuthentication(accountId *int) (resp string, err error) { + params := []interface{}{ + accountId, + } + err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "samlBeginAuthentication", params, &r.Options, &resp) + return +} + +// no documentation yet +func (r User_Customer_OpenIdConnect) SamlBeginLogout() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "samlBeginLogout", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r User_Customer_OpenIdConnect) SamlLogout(samlResponse *string) (err error) { + var resp datatypes.Void + params := []interface{}{ + samlResponse, + } + err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "samlLogout", params, &r.Options, &resp) + return +} + +// An OpenIdConnect identity, for example an IBMid, can be linked or mapped to one or more individual SoftLayer users, but no more than one per account. If an OpenIdConnect identity is mapped to multiple accounts in this manner, one such account should be identified as the default account for that identity. Invoke this only on IBMid-authenticated users. +func (r User_Customer_OpenIdConnect) SetDefaultAccount(providerType *string, accountId *int) (resp datatypes.Account, err error) { + params := []interface{}{ + providerType, + accountId, + } + err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "setDefaultAccount", params, &r.Options, &resp) + return +} + +// Set a user's password via the lost password recovery system, using a password recovery key received in an email generated by the [[SoftLayer_User_Customer::lostPassword|lostPassword]] method. Password recovery keys are valid for 24 hours after they're generated. +// +// User portal passwords must match the following restrictions. Portal passwords must... +// * ...be over eight characters long. +// * ...be under twenty characters long. +// * ...contain at least one uppercase letter +// * ...contain at least one lowercase letter +// * ...contain at least one number +// * ...contain one of the special characters _ - | @ . , ? / ! ~ # $ % ^ & * ( ) { } [ ] \ + = +// * ...not match your username +// * ...not match your forum password +func (r User_Customer_OpenIdConnect) SetPasswordFromLostPasswordRequest(key *string, password *string, securityAnswers []datatypes.User_Customer_Security_Answer) (resp bool, err error) { + params := []interface{}{ + key, + password, + securityAnswers, + } + err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "setPasswordFromLostPasswordRequest", params, &r.Options, &resp) + return +} + +// As master user, calling this api for the IBMid provider type when there is an existing IBMid for the email on the SL account will silently (without sending an invitation email) create a link for the IBMid. NOTE: If the SoftLayer user is already linked to IBMid, this call will fail. If the IBMid specified by the email of this user, is already used in a link to another user in this account, this call will fail. If there is already an open invitation from this SoftLayer user to this or any IBMid, this call will fail. If there is already an open invitation from some other SoftLayer user in this account to this IBMid, then this call will fail. +func (r User_Customer_OpenIdConnect) SilentlyMigrateUserOpenIdConnect(providerType *string) (resp bool, err error) { + params := []interface{}{ + providerType, + } + err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "silentlyMigrateUserOpenIdConnect", params, &r.Options, &resp) + return +} + +// This method is deprecated! SoftLayer Community Forums no longer exist, therefore, this method will return false. +// +// Update a user's password on the SoftLayer community forums. As with portal passwords, user forum passwords must match the following restrictions. Forum passwords must... +// * ...be over eight characters long. +// * ...be under twenty characters long. +// * ...contain at least one uppercase letter +// * ...contain at least one lowercase letter +// * ...contain at least one number +// * ...contain one of the special characters _ - | @ . , ? / ! ~ # $ % ^ & * ( ) { } [ ] \ + = +// * ...not match your username +// * ...not match your portal password +// Finally, users can only update their own password. +func (r User_Customer_OpenIdConnect) UpdateForumPassword(password *string) (resp bool, err error) { + params := []interface{}{ + password, + } + err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "updateForumPassword", params, &r.Options, &resp) + return +} + +// Update the active status for a notification that the user is subscribed to. A notification along with an active flag can be supplied to update the active status for a particular notification subscription. +func (r User_Customer_OpenIdConnect) UpdateNotificationSubscriber(notificationKeyName *string, active *int) (resp bool, err error) { + params := []interface{}{ + notificationKeyName, + active, + } + err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "updateNotificationSubscriber", params, &r.Options, &resp) + return +} + +// This method is deprecated. Please see documentation for initiatePortalPasswordChange Update a user's password on the SoftLayer customer portal. As with forum passwords, user portal passwords must match the following restrictions. Portal passwords must... +// * ...be over eight characters long. +// * ...be under twenty characters long. +// * ...contain at least one uppercase letter +// * ...contain at least one lowercase letter +// * ...contain at least one number +// * ...contain one of the special characters _ - | @ . , ? / ! ~ # $ % ^ & * ( ) { } [ ] \ + = +// * ...not match your username +// * ...not match your forum password +// Finally, users can only update their own password. An account's master user can update any of their account users' passwords. +func (r User_Customer_OpenIdConnect) UpdatePassword(password *string) (resp bool, err error) { + params := []interface{}{ + password, + } + err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "updatePassword", params, &r.Options, &resp) + return +} + +// Update a user's login security questions and answers on the SoftLayer customer portal. These questions and answers are used to optionally log into the SoftLayer customer portal using two-factor authentication. Each user must have three distinct questions set with a unique answer for each question, and each answer may only contain alphanumeric or the . , - _ ( ) [ ] : ; > < characters. Existing user security questions and answers are deleted before new ones are set, and users may only update their own security questions and answers. +func (r User_Customer_OpenIdConnect) UpdateSecurityAnswers(questions []datatypes.User_Security_Question, answers []string) (resp bool, err error) { + params := []interface{}{ + questions, + answers, + } + err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "updateSecurityAnswers", params, &r.Options, &resp) + return +} + +// Update a delivery method for a notification that the user is subscribed to. A delivery method keyName along with an active flag can be supplied to update the active status of the delivery methods for the specified notification. Available delivery methods - 'EMAIL'. Available notifications - 'PLANNED_MAINTENANCE', 'UNPLANNED_INCIDENT'. +func (r User_Customer_OpenIdConnect) UpdateSubscriberDeliveryMethod(notificationKeyName *string, deliveryMethodKeyNames []string, active *int) (resp bool, err error) { + params := []interface{}{ + notificationKeyName, + deliveryMethodKeyNames, + active, + } + err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "updateSubscriberDeliveryMethod", params, &r.Options, &resp) + return +} + +// Update a user's VPN password on the SoftLayer customer portal. As with portal passwords, VPN passwords must match the following restrictions. VPN passwords must... +// * ...be over eight characters long. +// * ...be under twenty characters long. +// * ...contain at least one uppercase letter +// * ...contain at least one lowercase letter +// * ...contain at least one number +// * ...contain one of the special characters _ - | @ . , ? / ! ~ # $ % ^ & * ( ) { } [ ] \ = +// * ...not match your username +// * ...not match your forum password +// Finally, users can only update their own VPN password. An account's master user can update any of their account users' VPN passwords. +func (r User_Customer_OpenIdConnect) UpdateVpnPassword(password *string) (resp bool, err error) { + params := []interface{}{ + password, + } + err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "updateVpnPassword", params, &r.Options, &resp) + return +} + +// Always call this function to enable changes when manually configuring VPN subnet access. +func (r User_Customer_OpenIdConnect) UpdateVpnUser() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "updateVpnUser", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r User_Customer_OpenIdConnect) ValidateAuthenticationToken(authenticationToken *datatypes.Container_User_Authentication_Token) (resp datatypes.Container_User_Customer_Portal_Token, err error) { + params := []interface{}{ + authenticationToken, + } + err = r.Session.DoRequest("SoftLayer_User_Customer_OpenIdConnect", "validateAuthenticationToken", params, &r.Options, &resp) + return +} + +// Contains user information for Service Provider Enrollment. +type User_Customer_Prospect_ServiceProvider_EnrollRequest struct { + Session *session.Session + Options sl.Options +} + +// GetUserCustomerProspectServiceProviderEnrollRequestService returns an instance of the User_Customer_Prospect_ServiceProvider_EnrollRequest SoftLayer service +func GetUserCustomerProspectServiceProviderEnrollRequestService(sess *session.Session) User_Customer_Prospect_ServiceProvider_EnrollRequest { + return User_Customer_Prospect_ServiceProvider_EnrollRequest{Session: sess} +} + +func (r User_Customer_Prospect_ServiceProvider_EnrollRequest) Id(id int) User_Customer_Prospect_ServiceProvider_EnrollRequest { + r.Options.Id = &id + return r +} + +func (r User_Customer_Prospect_ServiceProvider_EnrollRequest) Mask(mask string) User_Customer_Prospect_ServiceProvider_EnrollRequest { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r User_Customer_Prospect_ServiceProvider_EnrollRequest) Filter(filter string) User_Customer_Prospect_ServiceProvider_EnrollRequest { + r.Options.Filter = filter + return r +} + +func (r User_Customer_Prospect_ServiceProvider_EnrollRequest) Limit(limit int) User_Customer_Prospect_ServiceProvider_EnrollRequest { + r.Options.Limit = &limit + return r +} + +func (r User_Customer_Prospect_ServiceProvider_EnrollRequest) Offset(offset int) User_Customer_Prospect_ServiceProvider_EnrollRequest { + r.Options.Offset = &offset + return r +} + +// Create a new Service Provider Enrollment +func (r User_Customer_Prospect_ServiceProvider_EnrollRequest) Enroll(templateObject *datatypes.User_Customer_Prospect_ServiceProvider_EnrollRequest) (resp datatypes.User_Customer_Prospect_ServiceProvider_EnrollRequest, err error) { + params := []interface{}{ + templateObject, + } + err = r.Session.DoRequest("SoftLayer_User_Customer_Prospect_ServiceProvider_EnrollRequest", "enroll", params, &r.Options, &resp) + return +} + +// Retrieve Catalyst company types. +func (r User_Customer_Prospect_ServiceProvider_EnrollRequest) GetCompanyType() (resp datatypes.Catalyst_Company_Type, err error) { + err = r.Session.DoRequest("SoftLayer_User_Customer_Prospect_ServiceProvider_EnrollRequest", "getCompanyType", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r User_Customer_Prospect_ServiceProvider_EnrollRequest) GetObject() (resp datatypes.User_Customer_Prospect_ServiceProvider_EnrollRequest, err error) { + err = r.Session.DoRequest("SoftLayer_User_Customer_Prospect_ServiceProvider_EnrollRequest", "getObject", nil, &r.Options, &resp) + return +} + +// The SoftLayer_User_Customer_Security_Answer type contains user's answers to security questions. +type User_Customer_Security_Answer struct { + Session *session.Session + Options sl.Options +} + +// GetUserCustomerSecurityAnswerService returns an instance of the User_Customer_Security_Answer SoftLayer service +func GetUserCustomerSecurityAnswerService(sess *session.Session) User_Customer_Security_Answer { + return User_Customer_Security_Answer{Session: sess} +} + +func (r User_Customer_Security_Answer) Id(id int) User_Customer_Security_Answer { + r.Options.Id = &id + return r +} + +func (r User_Customer_Security_Answer) Mask(mask string) User_Customer_Security_Answer { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r User_Customer_Security_Answer) Filter(filter string) User_Customer_Security_Answer { + r.Options.Filter = filter + return r +} + +func (r User_Customer_Security_Answer) Limit(limit int) User_Customer_Security_Answer { + r.Options.Limit = &limit + return r +} + +func (r User_Customer_Security_Answer) Offset(offset int) User_Customer_Security_Answer { + r.Options.Offset = &offset + return r +} + +// getObject retrieves the SoftLayer_User_Customer_Security_Answer object whose ID number corresponds to the ID number of the init parameter passed to the SoftLayer_User_Customer_Security_Answer service. +func (r User_Customer_Security_Answer) GetObject() (resp datatypes.User_Customer_Security_Answer, err error) { + err = r.Session.DoRequest("SoftLayer_User_Customer_Security_Answer", "getObject", nil, &r.Options, &resp) + return +} + +// Retrieve The question the security answer is associated with. +func (r User_Customer_Security_Answer) GetQuestion() (resp datatypes.User_Security_Question, err error) { + err = r.Session.DoRequest("SoftLayer_User_Customer_Security_Answer", "getQuestion", nil, &r.Options, &resp) + return +} + +// Retrieve The user who the security answer belongs to. +func (r User_Customer_Security_Answer) GetUser() (resp datatypes.User_Customer, err error) { + err = r.Session.DoRequest("SoftLayer_User_Customer_Security_Answer", "getUser", nil, &r.Options, &resp) + return +} + +// Each SoftLayer portal account is assigned a status code that determines how it's treated in the customer portal. This status is reflected in the SoftLayer_User_Customer_Status data type. Status differs from user permissions in that user status applies globally to the portal while user permissions are applied to specific portal functions. +type User_Customer_Status struct { + Session *session.Session + Options sl.Options +} + +// GetUserCustomerStatusService returns an instance of the User_Customer_Status SoftLayer service +func GetUserCustomerStatusService(sess *session.Session) User_Customer_Status { + return User_Customer_Status{Session: sess} +} + +func (r User_Customer_Status) Id(id int) User_Customer_Status { + r.Options.Id = &id + return r +} + +func (r User_Customer_Status) Mask(mask string) User_Customer_Status { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r User_Customer_Status) Filter(filter string) User_Customer_Status { + r.Options.Filter = filter + return r +} + +func (r User_Customer_Status) Limit(limit int) User_Customer_Status { + r.Options.Limit = &limit + return r +} + +func (r User_Customer_Status) Offset(offset int) User_Customer_Status { + r.Options.Offset = &offset + return r +} + +// Retrieve all user status objects. +func (r User_Customer_Status) GetAllObjects() (resp []datatypes.User_Customer_Status, err error) { + err = r.Session.DoRequest("SoftLayer_User_Customer_Status", "getAllObjects", nil, &r.Options, &resp) + return +} + +// getObject retrieves the SoftLayer_User_Customer_Status object whose ID number corresponds to the ID number of the init parameter passed to the SoftLayer_User_Customer_Status service. +func (r User_Customer_Status) GetObject() (resp datatypes.User_Customer_Status, err error) { + err = r.Session.DoRequest("SoftLayer_User_Customer_Status", "getObject", nil, &r.Options, &resp) + return +} + +// The SoftLayer_User_External_Binding data type contains general information for a single external binding. This includes the 3rd party vendor, type of binding, and a unique identifier and password that is used to authenticate against the 3rd party service. +type User_External_Binding struct { + Session *session.Session + Options sl.Options +} + +// GetUserExternalBindingService returns an instance of the User_External_Binding SoftLayer service +func GetUserExternalBindingService(sess *session.Session) User_External_Binding { + return User_External_Binding{Session: sess} +} + +func (r User_External_Binding) Id(id int) User_External_Binding { + r.Options.Id = &id + return r +} + +func (r User_External_Binding) Mask(mask string) User_External_Binding { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r User_External_Binding) Filter(filter string) User_External_Binding { + r.Options.Filter = filter + return r +} + +func (r User_External_Binding) Limit(limit int) User_External_Binding { + r.Options.Limit = &limit + return r +} + +func (r User_External_Binding) Offset(offset int) User_External_Binding { + r.Options.Offset = &offset + return r +} + +// Delete an external authentication binding. If the external binding currently has an active billing item associated you will be prevented from deleting the binding. The alternative method to remove an external authentication binding is to use the service cancellation form. +func (r User_External_Binding) DeleteObject() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_User_External_Binding", "deleteObject", nil, &r.Options, &resp) + return +} + +// Retrieve Attributes of an external authentication binding. +func (r User_External_Binding) GetAttributes() (resp []datatypes.User_External_Binding_Attribute, err error) { + err = r.Session.DoRequest("SoftLayer_User_External_Binding", "getAttributes", nil, &r.Options, &resp) + return +} + +// Retrieve Information regarding the billing item for external authentication. +func (r User_External_Binding) GetBillingItem() (resp datatypes.Billing_Item, err error) { + err = r.Session.DoRequest("SoftLayer_User_External_Binding", "getBillingItem", nil, &r.Options, &resp) + return +} + +// Retrieve An optional note for identifying the external binding. +func (r User_External_Binding) GetNote() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_User_External_Binding", "getNote", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r User_External_Binding) GetObject() (resp datatypes.User_External_Binding, err error) { + err = r.Session.DoRequest("SoftLayer_User_External_Binding", "getObject", nil, &r.Options, &resp) + return +} + +// Retrieve The type of external authentication binding. +func (r User_External_Binding) GetType() (resp datatypes.User_External_Binding_Type, err error) { + err = r.Session.DoRequest("SoftLayer_User_External_Binding", "getType", nil, &r.Options, &resp) + return +} + +// Retrieve The vendor of an external authentication binding. +func (r User_External_Binding) GetVendor() (resp datatypes.User_External_Binding_Vendor, err error) { + err = r.Session.DoRequest("SoftLayer_User_External_Binding", "getVendor", nil, &r.Options, &resp) + return +} + +// Update the note of an external binding. The note is an optional property that is used to store information about a binding. +func (r User_External_Binding) UpdateNote(text *string) (resp bool, err error) { + params := []interface{}{ + text, + } + err = r.Session.DoRequest("SoftLayer_User_External_Binding", "updateNote", params, &r.Options, &resp) + return +} + +// The SoftLayer_User_External_Binding_Vendor data type contains information for a single external binding vendor. This information includes a user friendly vendor name, a unique version of the vendor name, and a unique internal identifier that can be used when creating a new external binding. +type User_External_Binding_Vendor struct { + Session *session.Session + Options sl.Options +} + +// GetUserExternalBindingVendorService returns an instance of the User_External_Binding_Vendor SoftLayer service +func GetUserExternalBindingVendorService(sess *session.Session) User_External_Binding_Vendor { + return User_External_Binding_Vendor{Session: sess} +} + +func (r User_External_Binding_Vendor) Id(id int) User_External_Binding_Vendor { + r.Options.Id = &id + return r +} + +func (r User_External_Binding_Vendor) Mask(mask string) User_External_Binding_Vendor { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r User_External_Binding_Vendor) Filter(filter string) User_External_Binding_Vendor { + r.Options.Filter = filter + return r +} + +func (r User_External_Binding_Vendor) Limit(limit int) User_External_Binding_Vendor { + r.Options.Limit = &limit + return r +} + +func (r User_External_Binding_Vendor) Offset(offset int) User_External_Binding_Vendor { + r.Options.Offset = &offset + return r +} + +// getAllObjects() will return a list of the available external binding vendors that SoftLayer supports. Use this list to select the appropriate vendor when creating a new external binding. +func (r User_External_Binding_Vendor) GetAllObjects() (resp []datatypes.User_External_Binding_Vendor, err error) { + err = r.Session.DoRequest("SoftLayer_User_External_Binding_Vendor", "getAllObjects", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r User_External_Binding_Vendor) GetObject() (resp datatypes.User_External_Binding_Vendor, err error) { + err = r.Session.DoRequest("SoftLayer_User_External_Binding_Vendor", "getObject", nil, &r.Options, &resp) + return +} + +// no documentation yet +type User_Permission_Action struct { + Session *session.Session + Options sl.Options +} + +// GetUserPermissionActionService returns an instance of the User_Permission_Action SoftLayer service +func GetUserPermissionActionService(sess *session.Session) User_Permission_Action { + return User_Permission_Action{Session: sess} +} + +func (r User_Permission_Action) Id(id int) User_Permission_Action { + r.Options.Id = &id + return r +} + +func (r User_Permission_Action) Mask(mask string) User_Permission_Action { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r User_Permission_Action) Filter(filter string) User_Permission_Action { + r.Options.Filter = filter + return r +} + +func (r User_Permission_Action) Limit(limit int) User_Permission_Action { + r.Options.Limit = &limit + return r +} + +func (r User_Permission_Action) Offset(offset int) User_Permission_Action { + r.Options.Offset = &offset + return r +} + +// no documentation yet +func (r User_Permission_Action) GetAllObjects() (resp []datatypes.User_Permission_Action, err error) { + err = r.Session.DoRequest("SoftLayer_User_Permission_Action", "getAllObjects", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r User_Permission_Action) GetObject() (resp datatypes.User_Permission_Action, err error) { + err = r.Session.DoRequest("SoftLayer_User_Permission_Action", "getObject", nil, &r.Options, &resp) + return +} + +// no documentation yet +type User_Permission_Group struct { + Session *session.Session + Options sl.Options +} + +// GetUserPermissionGroupService returns an instance of the User_Permission_Group SoftLayer service +func GetUserPermissionGroupService(sess *session.Session) User_Permission_Group { + return User_Permission_Group{Session: sess} +} + +func (r User_Permission_Group) Id(id int) User_Permission_Group { + r.Options.Id = &id + return r +} + +func (r User_Permission_Group) Mask(mask string) User_Permission_Group { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r User_Permission_Group) Filter(filter string) User_Permission_Group { + r.Options.Filter = filter + return r +} + +func (r User_Permission_Group) Limit(limit int) User_Permission_Group { + r.Options.Limit = &limit + return r +} + +func (r User_Permission_Group) Offset(offset int) User_Permission_Group { + r.Options.Offset = &offset + return r +} + +// no documentation yet +func (r User_Permission_Group) AddAction(action *datatypes.User_Permission_Action) (err error) { + var resp datatypes.Void + params := []interface{}{ + action, + } + err = r.Session.DoRequest("SoftLayer_User_Permission_Group", "addAction", params, &r.Options, &resp) + return +} + +// no documentation yet +func (r User_Permission_Group) AddBulkActions(actions []datatypes.User_Permission_Action) (err error) { + var resp datatypes.Void + params := []interface{}{ + actions, + } + err = r.Session.DoRequest("SoftLayer_User_Permission_Group", "addBulkActions", params, &r.Options, &resp) + return +} + +// no documentation yet +func (r User_Permission_Group) AddBulkResourceObjects(resourceObjects []datatypes.Entity, resourceTypeKeyName *string) (resp bool, err error) { + params := []interface{}{ + resourceObjects, + resourceTypeKeyName, + } + err = r.Session.DoRequest("SoftLayer_User_Permission_Group", "addBulkResourceObjects", params, &r.Options, &resp) + return +} + +// no documentation yet +func (r User_Permission_Group) AddResourceObject(resourceObject *datatypes.Entity, resourceTypeKeyName *string) (resp bool, err error) { + params := []interface{}{ + resourceObject, + resourceTypeKeyName, + } + err = r.Session.DoRequest("SoftLayer_User_Permission_Group", "addResourceObject", params, &r.Options, &resp) + return +} + +// no documentation yet +func (r User_Permission_Group) CreateObject(templateObject *datatypes.User_Permission_Group) (resp datatypes.User_Permission_Group, err error) { + params := []interface{}{ + templateObject, + } + err = r.Session.DoRequest("SoftLayer_User_Permission_Group", "createObject", params, &r.Options, &resp) + return +} + +// no documentation yet +func (r User_Permission_Group) DeleteObject() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_User_Permission_Group", "deleteObject", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r User_Permission_Group) EditObject(templateObject *datatypes.User_Permission_Group) (resp datatypes.User_Permission_Group, err error) { + params := []interface{}{ + templateObject, + } + err = r.Session.DoRequest("SoftLayer_User_Permission_Group", "editObject", params, &r.Options, &resp) + return +} + +// Retrieve +func (r User_Permission_Group) GetAccount() (resp datatypes.Account, err error) { + err = r.Session.DoRequest("SoftLayer_User_Permission_Group", "getAccount", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r User_Permission_Group) GetActions() (resp []datatypes.User_Permission_Action, err error) { + err = r.Session.DoRequest("SoftLayer_User_Permission_Group", "getActions", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r User_Permission_Group) GetObject() (resp datatypes.User_Permission_Group, err error) { + err = r.Session.DoRequest("SoftLayer_User_Permission_Group", "getObject", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r User_Permission_Group) GetRoles() (resp []datatypes.User_Permission_Role, err error) { + err = r.Session.DoRequest("SoftLayer_User_Permission_Group", "getRoles", nil, &r.Options, &resp) + return +} + +// Retrieve The type of the permission group. +func (r User_Permission_Group) GetType() (resp datatypes.User_Permission_Group_Type, err error) { + err = r.Session.DoRequest("SoftLayer_User_Permission_Group", "getType", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r User_Permission_Group) LinkRole(role *datatypes.User_Permission_Role) (err error) { + var resp datatypes.Void + params := []interface{}{ + role, + } + err = r.Session.DoRequest("SoftLayer_User_Permission_Group", "linkRole", params, &r.Options, &resp) + return +} + +// no documentation yet +func (r User_Permission_Group) RemoveAction(action *datatypes.User_Permission_Action) (err error) { + var resp datatypes.Void + params := []interface{}{ + action, + } + err = r.Session.DoRequest("SoftLayer_User_Permission_Group", "removeAction", params, &r.Options, &resp) + return +} + +// no documentation yet +func (r User_Permission_Group) RemoveBulkActions(actions []datatypes.User_Permission_Action) (err error) { + var resp datatypes.Void + params := []interface{}{ + actions, + } + err = r.Session.DoRequest("SoftLayer_User_Permission_Group", "removeBulkActions", params, &r.Options, &resp) + return +} + +// no documentation yet +func (r User_Permission_Group) RemoveBulkResourceObjects(resourceObjects []datatypes.Entity, resourceTypeKeyName *string) (resp bool, err error) { + params := []interface{}{ + resourceObjects, + resourceTypeKeyName, + } + err = r.Session.DoRequest("SoftLayer_User_Permission_Group", "removeBulkResourceObjects", params, &r.Options, &resp) + return +} + +// no documentation yet +func (r User_Permission_Group) RemoveResourceObject(resourceObject *datatypes.Entity, resourceTypeKeyName *string) (resp bool, err error) { + params := []interface{}{ + resourceObject, + resourceTypeKeyName, + } + err = r.Session.DoRequest("SoftLayer_User_Permission_Group", "removeResourceObject", params, &r.Options, &resp) + return +} + +// no documentation yet +func (r User_Permission_Group) UnlinkRole(role *datatypes.User_Permission_Role) (err error) { + var resp datatypes.Void + params := []interface{}{ + role, + } + err = r.Session.DoRequest("SoftLayer_User_Permission_Group", "unlinkRole", params, &r.Options, &resp) + return +} + +// no documentation yet +type User_Permission_Group_Type struct { + Session *session.Session + Options sl.Options +} + +// GetUserPermissionGroupTypeService returns an instance of the User_Permission_Group_Type SoftLayer service +func GetUserPermissionGroupTypeService(sess *session.Session) User_Permission_Group_Type { + return User_Permission_Group_Type{Session: sess} +} + +func (r User_Permission_Group_Type) Id(id int) User_Permission_Group_Type { + r.Options.Id = &id + return r +} + +func (r User_Permission_Group_Type) Mask(mask string) User_Permission_Group_Type { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r User_Permission_Group_Type) Filter(filter string) User_Permission_Group_Type { + r.Options.Filter = filter + return r +} + +func (r User_Permission_Group_Type) Limit(limit int) User_Permission_Group_Type { + r.Options.Limit = &limit + return r +} + +func (r User_Permission_Group_Type) Offset(offset int) User_Permission_Group_Type { + r.Options.Offset = &offset + return r +} + +// Retrieve +func (r User_Permission_Group_Type) GetGroups() (resp []datatypes.User_Permission_Group, err error) { + err = r.Session.DoRequest("SoftLayer_User_Permission_Group_Type", "getGroups", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r User_Permission_Group_Type) GetObject() (resp datatypes.User_Permission_Group_Type, err error) { + err = r.Session.DoRequest("SoftLayer_User_Permission_Group_Type", "getObject", nil, &r.Options, &resp) + return +} + +// no documentation yet +type User_Permission_Role struct { + Session *session.Session + Options sl.Options +} + +// GetUserPermissionRoleService returns an instance of the User_Permission_Role SoftLayer service +func GetUserPermissionRoleService(sess *session.Session) User_Permission_Role { + return User_Permission_Role{Session: sess} +} + +func (r User_Permission_Role) Id(id int) User_Permission_Role { + r.Options.Id = &id + return r +} + +func (r User_Permission_Role) Mask(mask string) User_Permission_Role { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r User_Permission_Role) Filter(filter string) User_Permission_Role { + r.Options.Filter = filter + return r +} + +func (r User_Permission_Role) Limit(limit int) User_Permission_Role { + r.Options.Limit = &limit + return r +} + +func (r User_Permission_Role) Offset(offset int) User_Permission_Role { + r.Options.Offset = &offset + return r +} + +// no documentation yet +func (r User_Permission_Role) AddUser(user *datatypes.User_Customer) (err error) { + var resp datatypes.Void + params := []interface{}{ + user, + } + err = r.Session.DoRequest("SoftLayer_User_Permission_Role", "addUser", params, &r.Options, &resp) + return +} + +// no documentation yet +func (r User_Permission_Role) CreateObject(templateObject *datatypes.User_Permission_Role) (resp datatypes.User_Permission_Role, err error) { + params := []interface{}{ + templateObject, + } + err = r.Session.DoRequest("SoftLayer_User_Permission_Role", "createObject", params, &r.Options, &resp) + return +} + +// no documentation yet +func (r User_Permission_Role) DeleteObject() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_User_Permission_Role", "deleteObject", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r User_Permission_Role) EditObject(templateObject *datatypes.User_Permission_Role) (resp datatypes.User_Permission_Role, err error) { + params := []interface{}{ + templateObject, + } + err = r.Session.DoRequest("SoftLayer_User_Permission_Role", "editObject", params, &r.Options, &resp) + return +} + +// Retrieve +func (r User_Permission_Role) GetAccount() (resp datatypes.Account, err error) { + err = r.Session.DoRequest("SoftLayer_User_Permission_Role", "getAccount", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r User_Permission_Role) GetActions() (resp []datatypes.User_Permission_Action, err error) { + err = r.Session.DoRequest("SoftLayer_User_Permission_Role", "getActions", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r User_Permission_Role) GetGroups() (resp []datatypes.User_Permission_Group, err error) { + err = r.Session.DoRequest("SoftLayer_User_Permission_Role", "getGroups", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r User_Permission_Role) GetObject() (resp datatypes.User_Permission_Role, err error) { + err = r.Session.DoRequest("SoftLayer_User_Permission_Role", "getObject", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r User_Permission_Role) GetUsers() (resp []datatypes.User_Customer, err error) { + err = r.Session.DoRequest("SoftLayer_User_Permission_Role", "getUsers", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r User_Permission_Role) LinkGroup(group *datatypes.User_Permission_Group) (err error) { + var resp datatypes.Void + params := []interface{}{ + group, + } + err = r.Session.DoRequest("SoftLayer_User_Permission_Role", "linkGroup", params, &r.Options, &resp) + return +} + +// no documentation yet +func (r User_Permission_Role) RemoveUser(user *datatypes.User_Customer) (err error) { + var resp datatypes.Void + params := []interface{}{ + user, + } + err = r.Session.DoRequest("SoftLayer_User_Permission_Role", "removeUser", params, &r.Options, &resp) + return +} + +// no documentation yet +func (r User_Permission_Role) UnlinkGroup(group *datatypes.User_Permission_Group) (err error) { + var resp datatypes.Void + params := []interface{}{ + group, + } + err = r.Session.DoRequest("SoftLayer_User_Permission_Role", "unlinkGroup", params, &r.Options, &resp) + return +} + +// The SoftLayer_User_Security_Question data type contains questions. +type User_Security_Question struct { + Session *session.Session + Options sl.Options +} + +// GetUserSecurityQuestionService returns an instance of the User_Security_Question SoftLayer service +func GetUserSecurityQuestionService(sess *session.Session) User_Security_Question { + return User_Security_Question{Session: sess} +} + +func (r User_Security_Question) Id(id int) User_Security_Question { + r.Options.Id = &id + return r +} + +func (r User_Security_Question) Mask(mask string) User_Security_Question { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r User_Security_Question) Filter(filter string) User_Security_Question { + r.Options.Filter = filter + return r +} + +func (r User_Security_Question) Limit(limit int) User_Security_Question { + r.Options.Limit = &limit + return r +} + +func (r User_Security_Question) Offset(offset int) User_Security_Question { + r.Options.Offset = &offset + return r +} + +// Retrieve all viewable security questions. +func (r User_Security_Question) GetAllObjects() (resp []datatypes.User_Security_Question, err error) { + err = r.Session.DoRequest("SoftLayer_User_Security_Question", "getAllObjects", nil, &r.Options, &resp) + return +} + +// getAllObjects retrieves all the SoftLayer_User_Security_Question objects where it is set to be viewable. +func (r User_Security_Question) GetObject() (resp datatypes.User_Security_Question, err error) { + err = r.Session.DoRequest("SoftLayer_User_Security_Question", "getObject", nil, &r.Options, &resp) + return +} diff --git a/vendor/github.com/softlayer/softlayer-go/services/utility.go b/vendor/github.com/softlayer/softlayer-go/services/utility.go new file mode 100644 index 000000000..9eed189f3 --- /dev/null +++ b/vendor/github.com/softlayer/softlayer-go/services/utility.go @@ -0,0 +1,88 @@ +/** + * Copyright 2016 IBM Corp. + * + * 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. + */ + +/** + * AUTOMATICALLY GENERATED CODE - DO NOT MODIFY + */ + +package services + +import ( + "fmt" + "strings" + + "github.com/softlayer/softlayer-go/session" + "github.com/softlayer/softlayer-go/sl" +) + +// no documentation yet +type Utility_Network struct { + Session *session.Session + Options sl.Options +} + +// GetUtilityNetworkService returns an instance of the Utility_Network SoftLayer service +func GetUtilityNetworkService(sess *session.Session) Utility_Network { + return Utility_Network{Session: sess} +} + +func (r Utility_Network) Id(id int) Utility_Network { + r.Options.Id = &id + return r +} + +func (r Utility_Network) Mask(mask string) Utility_Network { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Utility_Network) Filter(filter string) Utility_Network { + r.Options.Filter = filter + return r +} + +func (r Utility_Network) Limit(limit int) Utility_Network { + r.Options.Limit = &limit + return r +} + +func (r Utility_Network) Offset(offset int) Utility_Network { + r.Options.Offset = &offset + return r +} + +// A method used to return the nameserver information for a given address +func (r Utility_Network) NsLookup(address *string, typ *string) (resp string, err error) { + params := []interface{}{ + address, + typ, + } + err = r.Session.DoRequest("SoftLayer_Utility_Network", "nsLookup", params, &r.Options, &resp) + return +} + +// Perform a WHOIS lookup from SoftLayer's application servers on the given IP address or hostname and return the raw results of that command. The returned result is similar to the result received from running the command `whois` from a UNIX command shell. A WHOIS lookup queries a host's registrar to retrieve domain registrant information including registration date, expiry date, and the administrative, technical, billing, and abuse contacts responsible for a domain. WHOIS lookups are useful for determining a physical contact responsible for a particular domain. WHOIS lookups are also useful for determining domain availability. Running a WHOIS lookup on an IP address queries ARIN for that IP block's ownership, and is helpful for determining a physical entity responsible for a certain IP address. +func (r Utility_Network) Whois(address *string) (resp string, err error) { + params := []interface{}{ + address, + } + err = r.Session.DoRequest("SoftLayer_Utility_Network", "whois", params, &r.Options, &resp) + return +} diff --git a/vendor/github.com/softlayer/softlayer-go/services/virtual.go b/vendor/github.com/softlayer/softlayer-go/services/virtual.go new file mode 100644 index 000000000..c0cc92b0d --- /dev/null +++ b/vendor/github.com/softlayer/softlayer-go/services/virtual.go @@ -0,0 +1,2957 @@ +/** + * Copyright 2016 IBM Corp. + * + * 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. + */ + +/** + * AUTOMATICALLY GENERATED CODE - DO NOT MODIFY + */ + +package services + +import ( + "fmt" + "strings" + + "github.com/softlayer/softlayer-go/datatypes" + "github.com/softlayer/softlayer-go/session" + "github.com/softlayer/softlayer-go/sl" +) + +// This type presents the structure for a DedicatedHost. The type contains relational properties to distinguish a host, associate an account to it. +type Virtual_DedicatedHost struct { + Session *session.Session + Options sl.Options +} + +// GetVirtualDedicatedHostService returns an instance of the Virtual_DedicatedHost SoftLayer service +func GetVirtualDedicatedHostService(sess *session.Session) Virtual_DedicatedHost { + return Virtual_DedicatedHost{Session: sess} +} + +func (r Virtual_DedicatedHost) Id(id int) Virtual_DedicatedHost { + r.Options.Id = &id + return r +} + +func (r Virtual_DedicatedHost) Mask(mask string) Virtual_DedicatedHost { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Virtual_DedicatedHost) Filter(filter string) Virtual_DedicatedHost { + r.Options.Filter = filter + return r +} + +func (r Virtual_DedicatedHost) Limit(limit int) Virtual_DedicatedHost { + r.Options.Limit = &limit + return r +} + +func (r Virtual_DedicatedHost) Offset(offset int) Virtual_DedicatedHost { + r.Options.Offset = &offset + return r +} + +// This method will cancel a dedicated virtual host immediately. +func (r Virtual_DedicatedHost) DeleteObject() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Virtual_DedicatedHost", "deleteObject", nil, &r.Options, &resp) + return +} + +// Edit a dedicated host's properties +func (r Virtual_DedicatedHost) EditObject(templateObject *datatypes.Virtual_DedicatedHost) (resp bool, err error) { + params := []interface{}{ + templateObject, + } + err = r.Session.DoRequest("SoftLayer_Virtual_DedicatedHost", "editObject", params, &r.Options, &resp) + return +} + +// Get the allocation properties for a specified virtual host +func (r Virtual_DedicatedHost) FetchAllocationStatus() (resp datatypes.Container_Virtual_DedicatedHost_AllocationStatus, err error) { + err = r.Session.DoRequest("SoftLayer_Virtual_DedicatedHost", "fetchAllocationStatus", nil, &r.Options, &resp) + return +} + +// Retrieve The account which dedicated host belongs to. +func (r Virtual_DedicatedHost) GetAccount() (resp datatypes.Account, err error) { + err = r.Session.DoRequest("SoftLayer_Virtual_DedicatedHost", "getAccount", nil, &r.Options, &resp) + return +} + +// Retrieve The container representing allocations on a dedicated host. +func (r Virtual_DedicatedHost) GetAllocationStatus() (resp datatypes.Container_Virtual_DedicatedHost_AllocationStatus, err error) { + err = r.Session.DoRequest("SoftLayer_Virtual_DedicatedHost", "getAllocationStatus", nil, &r.Options, &resp) + return +} + +// This method will get the available backend routers to order [[SoftLayer_Virtual_DedicatedHost]] +func (r Virtual_DedicatedHost) GetAvailableRouters(dedicatedHost *datatypes.Virtual_DedicatedHost) (resp []datatypes.Hardware, err error) { + params := []interface{}{ + dedicatedHost, + } + err = r.Session.DoRequest("SoftLayer_Virtual_DedicatedHost", "getAvailableRouters", params, &r.Options, &resp) + return +} + +// Retrieve The backendRouter behind dedicated host's pool. +func (r Virtual_DedicatedHost) GetBackendRouter() (resp datatypes.Hardware_Router_Backend, err error) { + err = r.Session.DoRequest("SoftLayer_Virtual_DedicatedHost", "getBackendRouter", nil, &r.Options, &resp) + return +} + +// Retrieve The billing item for a dedicated host. +func (r Virtual_DedicatedHost) GetBillingItem() (resp datatypes.Billing_Item_Virtual_DedicatedHost, err error) { + err = r.Session.DoRequest("SoftLayer_Virtual_DedicatedHost", "getBillingItem", nil, &r.Options, &resp) + return +} + +// Retrieve The datacenter that the host resides in. +func (r Virtual_DedicatedHost) GetDatacenter() (resp datatypes.Location, err error) { + err = r.Session.DoRequest("SoftLayer_Virtual_DedicatedHost", "getDatacenter", nil, &r.Options, &resp) + return +} + +// Retrieve The guests associated with a host. +func (r Virtual_DedicatedHost) GetGuests() (resp []datatypes.Virtual_Guest, err error) { + err = r.Session.DoRequest("SoftLayer_Virtual_DedicatedHost", "getGuests", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Virtual_DedicatedHost) GetObject() (resp datatypes.Virtual_DedicatedHost, err error) { + err = r.Session.DoRequest("SoftLayer_Virtual_DedicatedHost", "getObject", nil, &r.Options, &resp) + return +} + +// The virtual disk image data type presents the structure in which a virtual disk image will be presented. +// +// Virtual block devices are assigned to disk images. +type Virtual_Disk_Image struct { + Session *session.Session + Options sl.Options +} + +// GetVirtualDiskImageService returns an instance of the Virtual_Disk_Image SoftLayer service +func GetVirtualDiskImageService(sess *session.Session) Virtual_Disk_Image { + return Virtual_Disk_Image{Session: sess} +} + +func (r Virtual_Disk_Image) Id(id int) Virtual_Disk_Image { + r.Options.Id = &id + return r +} + +func (r Virtual_Disk_Image) Mask(mask string) Virtual_Disk_Image { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Virtual_Disk_Image) Filter(filter string) Virtual_Disk_Image { + r.Options.Filter = filter + return r +} + +func (r Virtual_Disk_Image) Limit(limit int) Virtual_Disk_Image { + r.Options.Limit = &limit + return r +} + +func (r Virtual_Disk_Image) Offset(offset int) Virtual_Disk_Image { + r.Options.Offset = &offset + return r +} + +// no documentation yet +func (r Virtual_Disk_Image) EditObject(templateObject *datatypes.Virtual_Disk_Image) (resp bool, err error) { + params := []interface{}{ + templateObject, + } + err = r.Session.DoRequest("SoftLayer_Virtual_Disk_Image", "editObject", params, &r.Options, &resp) + return +} + +// Retrieve The billing item for a virtual disk image. +func (r Virtual_Disk_Image) GetBillingItem() (resp datatypes.Billing_Item_Virtual_Disk_Image, err error) { + err = r.Session.DoRequest("SoftLayer_Virtual_Disk_Image", "getBillingItem", nil, &r.Options, &resp) + return +} + +// Retrieve The block devices that a disk image is attached to. Block devices connect computing instances to disk images. +func (r Virtual_Disk_Image) GetBlockDevices() (resp []datatypes.Virtual_Guest_Block_Device, err error) { + err = r.Session.DoRequest("SoftLayer_Virtual_Disk_Image", "getBlockDevices", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Virtual_Disk_Image) GetBootableVolumeFlag() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Virtual_Disk_Image", "getBootableVolumeFlag", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Virtual_Disk_Image) GetCoalescedDiskImages() (resp []datatypes.Virtual_Disk_Image, err error) { + err = r.Session.DoRequest("SoftLayer_Virtual_Disk_Image", "getCoalescedDiskImages", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Virtual_Disk_Image) GetCopyOnWriteFlag() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Virtual_Disk_Image", "getCopyOnWriteFlag", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Virtual_Disk_Image) GetLocalDiskFlag() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Virtual_Disk_Image", "getLocalDiskFlag", nil, &r.Options, &resp) + return +} + +// Retrieve Whether this disk image is meant for storage of custom user data supplied with a Cloud Computing Instance order. +func (r Virtual_Disk_Image) GetMetadataFlag() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Virtual_Disk_Image", "getMetadataFlag", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Virtual_Disk_Image) GetObject() (resp datatypes.Virtual_Disk_Image, err error) { + err = r.Session.DoRequest("SoftLayer_Virtual_Disk_Image", "getObject", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Virtual_Disk_Image) GetPublicIsoImages() (resp []datatypes.Virtual_Disk_Image, err error) { + err = r.Session.DoRequest("SoftLayer_Virtual_Disk_Image", "getPublicIsoImages", nil, &r.Options, &resp) + return +} + +// Retrieve References to the software that resides on a disk image. +func (r Virtual_Disk_Image) GetSoftwareReferences() (resp []datatypes.Virtual_Disk_Image_Software, err error) { + err = r.Session.DoRequest("SoftLayer_Virtual_Disk_Image", "getSoftwareReferences", nil, &r.Options, &resp) + return +} + +// Retrieve The original disk image that the current disk image was cloned from. +func (r Virtual_Disk_Image) GetSourceDiskImage() (resp datatypes.Virtual_Disk_Image, err error) { + err = r.Session.DoRequest("SoftLayer_Virtual_Disk_Image", "getSourceDiskImage", nil, &r.Options, &resp) + return +} + +// Retrieve The storage repository that a disk image resides in. +func (r Virtual_Disk_Image) GetStorageRepository() (resp datatypes.Virtual_Storage_Repository, err error) { + err = r.Session.DoRequest("SoftLayer_Virtual_Disk_Image", "getStorageRepository", nil, &r.Options, &resp) + return +} + +// Retrieve The type of storage repository that a disk image resides in. +func (r Virtual_Disk_Image) GetStorageRepositoryType() (resp datatypes.Virtual_Storage_Repository_Type, err error) { + err = r.Session.DoRequest("SoftLayer_Virtual_Disk_Image", "getStorageRepositoryType", nil, &r.Options, &resp) + return +} + +// Retrieve The template that attaches a disk image to a [[SoftLayer_Virtual_Guest_Block_Device_Template_Group|archive]]. +func (r Virtual_Disk_Image) GetTemplateBlockDevice() (resp datatypes.Virtual_Guest_Block_Device_Template, err error) { + err = r.Session.DoRequest("SoftLayer_Virtual_Disk_Image", "getTemplateBlockDevice", nil, &r.Options, &resp) + return +} + +// Retrieve A virtual disk image's type. +func (r Virtual_Disk_Image) GetType() (resp datatypes.Virtual_Disk_Image_Type, err error) { + err = r.Session.DoRequest("SoftLayer_Virtual_Disk_Image", "getType", nil, &r.Options, &resp) + return +} + +// The virtual guest data type presents the structure in which all virtual guests will be presented. Internally, the structure supports various virtualization platforms with no change to external interaction. +// +// A guest, also known as a virtual server, represents an allocation of resources on a virtual host. +type Virtual_Guest struct { + Session *session.Session + Options sl.Options +} + +// GetVirtualGuestService returns an instance of the Virtual_Guest SoftLayer service +func GetVirtualGuestService(sess *session.Session) Virtual_Guest { + return Virtual_Guest{Session: sess} +} + +func (r Virtual_Guest) Id(id int) Virtual_Guest { + r.Options.Id = &id + return r +} + +func (r Virtual_Guest) Mask(mask string) Virtual_Guest { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Virtual_Guest) Filter(filter string) Virtual_Guest { + r.Options.Filter = filter + return r +} + +func (r Virtual_Guest) Limit(limit int) Virtual_Guest { + r.Options.Limit = &limit + return r +} + +func (r Virtual_Guest) Offset(offset int) Virtual_Guest { + r.Options.Offset = &offset + return r +} + +// Activate the private network port +func (r Virtual_Guest) ActivatePrivatePort() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Virtual_Guest", "activatePrivatePort", nil, &r.Options, &resp) + return +} + +// Activate the public network port +func (r Virtual_Guest) ActivatePublicPort() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Virtual_Guest", "activatePublicPort", nil, &r.Options, &resp) + return +} + +// This method is used to allow access to a SoftLayer_Network_Storage volume that supports host- or network-level access control. +func (r Virtual_Guest) AllowAccessToNetworkStorage(networkStorageTemplateObject *datatypes.Network_Storage) (resp bool, err error) { + params := []interface{}{ + networkStorageTemplateObject, + } + err = r.Session.DoRequest("SoftLayer_Virtual_Guest", "allowAccessToNetworkStorage", params, &r.Options, &resp) + return +} + +// This method is used to allow access to multiple SoftLayer_Network_Storage volumes that support host- or network-level access control. +func (r Virtual_Guest) AllowAccessToNetworkStorageList(networkStorageTemplateObjects []datatypes.Network_Storage) (resp bool, err error) { + params := []interface{}{ + networkStorageTemplateObjects, + } + err = r.Session.DoRequest("SoftLayer_Virtual_Guest", "allowAccessToNetworkStorageList", params, &r.Options, &resp) + return +} + +// Creates a transaction to attach a guest's disk image. If the disk image is already attached it will be ignored. +// +// WARNING: SoftLayer_Virtual_Guest::checkHostDiskAvailability should be called before this method. If the SoftLayer_Virtual_Guest::checkHostDiskAvailability method is not called before this method, the guest migration will happen automatically. +func (r Virtual_Guest) AttachDiskImage(imageId *int) (resp datatypes.Provisioning_Version1_Transaction, err error) { + params := []interface{}{ + imageId, + } + err = r.Session.DoRequest("SoftLayer_Virtual_Guest", "attachDiskImage", params, &r.Options, &resp) + return +} + +// Reopens the public and/or private ports to reverse the changes made when the server was isolated for a destructive action. +func (r Virtual_Guest) CancelIsolationForDestructiveAction() (err error) { + var resp datatypes.Void + err = r.Session.DoRequest("SoftLayer_Virtual_Guest", "cancelIsolationForDestructiveAction", nil, &r.Options, &resp) + return +} + +// Captures a Flex Image of the hard disk on the virtual machine, based on the capture template parameter. Returns the image template group containing the disk image. +func (r Virtual_Guest) CaptureImage(captureTemplate *datatypes.Container_Disk_Image_Capture_Template) (resp datatypes.Virtual_Guest_Block_Device_Template_Group, err error) { + params := []interface{}{ + captureTemplate, + } + err = r.Session.DoRequest("SoftLayer_Virtual_Guest", "captureImage", params, &r.Options, &resp) + return +} + +// Checks the associated host for available disk space to determine if guest migration is necessary. This method is only used with local disks. If this method returns false, calling attachDiskImage($imageId) will automatically migrate the destination guest to a new host before attaching the portable volume. +func (r Virtual_Guest) CheckHostDiskAvailability(diskCapacity *int) (resp bool, err error) { + params := []interface{}{ + diskCapacity, + } + err = r.Session.DoRequest("SoftLayer_Virtual_Guest", "checkHostDiskAvailability", params, &r.Options, &resp) + return +} + +// Returns monitoring alarm detailed history +func (r Virtual_Guest) CloseAlarm(alarmId *string) (resp bool, err error) { + params := []interface{}{ + alarmId, + } + err = r.Session.DoRequest("SoftLayer_Virtual_Guest", "closeAlarm", params, &r.Options, &resp) + return +} + +// Creates a transaction to configure the guest's metadata disk. If the guest has user data associated with it, the transaction will create a small virtual drive and write the metadata to a file on the drive; if the drive already exists, the metadata will be rewritten. If the guest has no user data associated with it, the transaction will remove the virtual drive if it exists. +// +// WARNING: The transaction created by this service will shut down the guest while the metadata disk is configured. The guest will be turned back on once this process is complete. +func (r Virtual_Guest) ConfigureMetadataDisk() (resp datatypes.Provisioning_Version1_Transaction, err error) { + err = r.Session.DoRequest("SoftLayer_Virtual_Guest", "configureMetadataDisk", nil, &r.Options, &resp) + return +} + +// Create a transaction to archive a computing instance's block devices +func (r Virtual_Guest) CreateArchiveTransaction(groupName *string, blockDevices []datatypes.Virtual_Guest_Block_Device, note *string) (resp datatypes.Provisioning_Version1_Transaction, err error) { + params := []interface{}{ + groupName, + blockDevices, + note, + } + err = r.Session.DoRequest("SoftLayer_Virtual_Guest", "createArchiveTransaction", params, &r.Options, &resp) + return +} + +// +// +// createObject() enables the creation of computing instances on an account. This +// method is a simplified alternative to interacting with the ordering system directly. +// +// +// In order to create a computing instance, a template object must be sent in with a few required +// values. +// +// +// When this method returns an order will have been placed for a computing instance of the specified configuration. +// +// +// To determine when the instance is available you can poll the instance via [[SoftLayer_Virtual_Guest/getObject|getObject]], with an [[Extended-Object-Masks|object mask]] requesting the provisionDate relational property. When provisionDate is not null, the instance will be ready. +// +// +// Warning: Computing instances created via this method will incur charges on your account. For testing input parameters see [[SoftLayer_Virtual_Guest/generateOrderTemplate|generateOrderTemplate]]. +// +// +// Input - [[SoftLayer_Virtual_Guest (type)|SoftLayer_Virtual_Guest]] +//
      +//
    • hostname +//
      Hostname for the computing instance.
        +//
      • Required
      • +//
      • Type - string
      • +//
      +//
      +//
    • +//
    • domain +//
      Domain for the computing instance.
        +//
      • Required
      • +//
      • Type - string
      • +//
      +//
      +//
    • +//
    • startCpus +//
      The number of CPU cores to allocate.
        +//
      • Required
      • +//
      • Type - int
      • +//
      • See [[SoftLayer_Virtual_Guest/getCreateObjectOptions|getCreateObjectOptions]] for available options.
      • +//
      +//
      +//
    • +//
    • maxMemory +//
      The amount of memory to allocate in megabytes.
        +//
      • Required
      • +//
      • Type - int
      • +//
      • See [[SoftLayer_Virtual_Guest/getCreateObjectOptions|getCreateObjectOptions]] for available options.
      • +//
      +//
      +//
    • +//
    • datacenter.name +//
      Specifies which datacenter the instance is to be provisioned in.
        +//
      • Required
      • +//
      • Type - string
      • +//
      • The datacenter property is a [[SoftLayer_Location (type)|location]] structure with the name field set.
      • +//
      • See [[SoftLayer_Virtual_Guest/getCreateObjectOptions|getCreateObjectOptions]] for available options.
      • +//
      +// { +// "datacenter": { +// "name": "dal05" +// } +// } +//
      +//
    • +//
    • hourlyBillingFlag +//
      Specifies the billing type for the instance.
        +//
      • Required
      • +//
      • Type - boolean
      • +//
      • When true the computing instance will be billed on hourly usage, otherwise it will be billed on a monthly basis.
      • +//
      +//
      +//
    • +//
    • localDiskFlag +//
      Specifies the disk type for the instance.
        +//
      • Required
      • +//
      • Type - boolean
      • +//
      • When true the disks for the computing instance will be provisioned on the host which it runs, otherwise SAN disks will be provisioned.
      • +//
      +//
      +//
    • +//
    • dedicatedAccountHostOnlyFlag +//
      Specifies whether or not the instance must only run on hosts with instances from the same account
        +//
      • Optional
      • +//
      • Type - boolean
      • +//
      • Default - false
      • +//
      • When true this flag specifies that a compute instance is to run on hosts that only have guests from the same account.
      • +//
      +//
      +//
    • +//
    • operatingSystemReferenceCode +//
      An identifier for the operating system to provision the computing instance with.
        +//
      • Conditionally required - Disallowed when blockDeviceTemplateGroup.globalIdentifier is provided, as the template will specify the operating system.
      • +//
      • Type - string
      • +//
      • Notice - Some operating systems are charged based on the value specified in startCpus. The price which is used can be determined by calling [[SoftLayer_Virtual_Guest/generateOrderTemplate|generateOrderTemplate]] with your desired device specifications.
      • +//
      • See [[SoftLayer_Virtual_Guest/getCreateObjectOptions|getCreateObjectOptions]] for available options.
      • +//
      +//
      +//
    • +//
    • blockDeviceTemplateGroup.globalIdentifier +//
      A global identifier for the template to be used to provision the computing instance.
        +//
      • Conditionally required - Disallowed when operatingSystemReferenceCode is provided, as the template will specify the operating system.
      • +//
      • Type - string
      • +//
      • Notice - Some operating systems are charged based on the value specified in startCpus. The price which is used can be determined by calling [[SoftLayer_Virtual_Guest/generateOrderTemplate|generateOrderTemplate]] with your desired device specifications.
      • +//
      • Both public and non-public images may be specified.
      • +//
      • A list of public images may be obtained via a request to [[SoftLayer_Virtual_Guest_Block_Device_Template_Group/getPublicImages|getPublicImages]].
      • +//
      • A list of non-public images, images owned by an account or specifically shared with an account, may be obtained via a request to [[SoftLayer_Account/getBlockDeviceTemplateGroups|getBlockDeviceTemplateGroups]].
      • +//
      +// { +// "blockDeviceTemplateGroup": { +// "globalIdentifier": "07beadaa-1e11-476e-a188-3f7795feb9fb" +// } +// } +//
      +//
    • +//
    • networkComponents.maxSpeed +//
      Specifies the connection speed for the instance's network components.
        +//
      • Optional
      • +//
      • Type - int
      • +//
      • Default - 10
      • +//
      • Description - The networkComponents property is an array with a single [[SoftLayer_Virtual_Guest_Network_Component (type)|network component]] structure. The maxSpeed property must be set to specify the network uplink speed, in megabits per second, of the computing instance.
      • +//
      • See [[SoftLayer_Virtual_Guest/getCreateObjectOptions|getCreateObjectOptions]] for available options.
      • +//
      +// { +// "networkComponents": [ +// { +// "maxSpeed": 1000 +// } +// ] +// } +//
      +//
    • +//
    • privateNetworkOnlyFlag +//
      Specifies whether or not the instance only has access to the private network
        +//
      • Optional
      • +//
      • Type - boolean
      • +//
      • Default - false
      • +//
      • When true this flag specifies that a compute instance is to only have access to the private network.
      • +//
      +//
      +//
    • +//
    • primaryNetworkComponent.networkVlan.id +//
      Specifies the network vlan which is to be used for the frontend interface of the computing instance.
        +//
      • Optional
      • +//
      • Type - int
      • +//
      • Description - The primaryNetworkComponent property is a [[SoftLayer_Virtual_Guest_Network_Component (type)|network component]] structure with the networkVlan property populated with a [[SoftLayer_Network_Vlan (type)|vlan]] structure. The id property must be set to specify the frontend network vlan of the computing instance.
      • +//
      +// { +// "primaryNetworkComponent": { +// "networkVlan": { +// "id": 1 +// } +// } +// } +//
      +//
    • +//
    • primaryBackendNetworkComponent.networkVlan.id +//
      Specifies the network vlan which is to be used for the backend interface of the computing instance.
        +//
      • Optional
      • +//
      • Type - int
      • +//
      • Description - The primaryBackendNetworkComponent property is a [[SoftLayer_Virtual_Guest_Network_Component (type)|network component]] structure with the networkVlan property populated with a [[SoftLayer_Network_Vlan (type)|vlan]] structure. The id property must be set to specify the backend network vlan of the computing instance.
      • +//
      +// { +// "primaryBackendNetworkComponent": { +// "networkVlan": { +// "id": 2 +// } +// } +// } +//
      +//
    • +//
    • blockDevices +//
      Block device and disk image settings for the computing instance
        +//
      • Optional
      • +//
      • Type - array of [[SoftLayer_Virtual_Guest_Block_Device (type)|SoftLayer_Virtual_Guest_Block_Device]
      • +//
      • Default - The smallest available capacity for the primary disk will be used. If an image template is specified the disk capacity will be be provided by the template.
      • +//
      • Description - The blockDevices property is an array of [[SoftLayer_Virtual_Guest_Block_Device (type)|block device]] structures. +//
      • Each block device must specify the device property along with the diskImage property, which is a [[SoftLayer_Virtual_Disk_Image (type)|disk image]] structure with the capacity property set.
      • +//
      • The device number '1' is reserved for the SWAP disk attached to the computing instance.
      • +//
      • See [[SoftLayer_Virtual_Guest/getCreateObjectOptions|getCreateObjectOptions]] for available options.
      • +//
      +// { +// "blockDevices": [ +// { +// "device": "0", +// "diskImage": { +// "capacity": 100 +// } +// } +// ], +// "localDiskFlag": true +// } +//
      +//
    • +//
    • userData.value +//
      Arbitrary data to be made available to the computing instance.
        +//
      • Optional
      • +//
      • Type - string
      • +//
      • Description - The userData property is an array with a single [[SoftLayer_Virtual_Guest_Attribute (type)|attribute]] structure with the value property set to an arbitrary value.
      • +//
      • This value can be retrieved via the [[SoftLayer_Resource_Metadata/getUserMetadata|getUserMetadata]] method from a request originating from the computing instance. This is primarily useful for providing data to software that may be on the instance and configured to execute upon first boot.
      • +//
      +// { +// "userData": [ +// { +// "value": "someValue" +// } +// ] +// } +//
      +//
    • +//
    • sshKeys +//
      SSH keys to install on the computing instance upon provisioning.
        +//
      • Optional
      • +//
      • Type - array of [[SoftLayer_Security_Ssh_Key (type)|SoftLayer_Security_Ssh_Key]]
      • +//
      • Description - The sshKeys property is an array of [[SoftLayer_Security_Ssh_Key (type)|SSH Key]] structures with the id property set to the value of an existing SSH key.
      • +//
      • To create a new SSH key, call [[SoftLayer_Security_Ssh_Key/createObject|createObject]] on the [[SoftLayer_Security_Ssh_Key]] service.
      • +//
      • To obtain a list of existing SSH keys, call [[SoftLayer_Account/getSshKeys|getSshKeys]] on the [[SoftLayer_Account]] service. +//
      +// { +// "sshKeys": [ +// { +// "id": 123 +// } +// ] +// } +//
      +//
    • +//
    • postInstallScriptUri +//
      Specifies the uri location of the script to be downloaded and run after installation is complete.
        +//
      • Optional
      • +//
      • Type - string
      • +//
      +//
      +//
    • +//
    +// +// +//

    REST Example

    +// curl -X POST -d '{ +// "parameters":[ +// { +// "hostname": "host1", +// "domain": "example.com", +// "startCpus": 1, +// "maxMemory": 1024, +// "hourlyBillingFlag": true, +// "localDiskFlag": true, +// "operatingSystemReferenceCode": "UBUNTU_LATEST" +// } +// ] +// }' https://api.softlayer.com/rest/v3/SoftLayer_Virtual_Guest.json +// +// HTTP/1.1 201 Created +// Location: https://api.softlayer.com/rest/v3/SoftLayer_Virtual_Guest/1301396/getObject +// +// +// { +// "accountId": 232298, +// "createDate": "2012-11-30T16:28:17-06:00", +// "dedicatedAccountHostOnlyFlag": false, +// "domain": "example.com", +// "hostname": "host1", +// "id": 1301396, +// "lastPowerStateId": null, +// "lastVerifiedDate": null, +// "maxCpu": 1, +// "maxCpuUnits": "CORE", +// "maxMemory": 1024, +// "metricPollDate": null, +// "modifyDate": null, +// "privateNetworkOnlyFlag": false, +// "startCpus": 1, +// "statusId": 1001, +// "globalIdentifier": "2d203774-0ee1-49f5-9599-6ef67358dd31" +// } +// +func (r Virtual_Guest) CreateObject(templateObject *datatypes.Virtual_Guest) (resp datatypes.Virtual_Guest, err error) { + params := []interface{}{ + templateObject, + } + err = r.Session.DoRequest("SoftLayer_Virtual_Guest", "createObject", params, &r.Options, &resp) + return +} + +// +// createObjects() enables the creation of multiple computing instances on an account in a single call. This +// method is a simplified alternative to interacting with the ordering system directly. +// +// +// In order to create a computing instance a set of template objects must be sent in with a few required +// values. +// +// +// Warning: Computing instances created via this method will incur charges on your account. +// +// +// See [[SoftLayer_Virtual_Guest/createObject|createObject]] for specifics on the requirements of each template object. +// +// +//

    Example

    +// curl -X POST -d '{ +// "parameters":[ +// [ +// { +// "hostname": "host1", +// "domain": "example.com", +// "startCpus": 1, +// "maxMemory": 1024, +// "hourlyBillingFlag": true, +// "localDiskFlag": true, +// "operatingSystemReferenceCode": "UBUNTU_LATEST" +// }, +// { +// "hostname": "host2", +// "domain": "example.com", +// "startCpus": 1, +// "maxMemory": 1024, +// "hourlyBillingFlag": true, +// "localDiskFlag": true, +// "operatingSystemReferenceCode": "UBUNTU_LATEST" +// } +// ] +// ] +// }' https://api.softlayer.com/rest/v3/SoftLayer_Virtual_Guest/createObjects.json +// +// HTTP/1.1 200 OK +// +// +// [ +// { +// "accountId": 232298, +// "createDate": "2012-11-30T23:56:48-06:00", +// "dedicatedAccountHostOnlyFlag": false, +// "domain": "softlayer.com", +// "hostname": "ubuntu1", +// "id": 1301456, +// "lastPowerStateId": null, +// "lastVerifiedDate": null, +// "maxCpu": 1, +// "maxCpuUnits": "CORE", +// "maxMemory": 1024, +// "metricPollDate": null, +// "modifyDate": null, +// "privateNetworkOnlyFlag": false, +// "startCpus": 1, +// "statusId": 1001, +// "globalIdentifier": "fed4c822-48c0-45d0-85e2-90476aa0c542" +// }, +// { +// "accountId": 232298, +// "createDate": "2012-11-30T23:56:49-06:00", +// "dedicatedAccountHostOnlyFlag": false, +// "domain": "softlayer.com", +// "hostname": "ubuntu2", +// "id": 1301457, +// "lastPowerStateId": null, +// "lastVerifiedDate": null, +// "maxCpu": 1, +// "maxCpuUnits": "CORE", +// "maxMemory": 1024, +// "metricPollDate": null, +// "modifyDate": null, +// "privateNetworkOnlyFlag": false, +// "startCpus": 1, +// "statusId": 1001, +// "globalIdentifier": "bed4c686-9562-4ade-9049-dc4d5b6b200c" +// } +// ] +// +func (r Virtual_Guest) CreateObjects(templateObjects []datatypes.Virtual_Guest) (resp []datatypes.Virtual_Guest, err error) { + params := []interface{}{ + templateObjects, + } + err = r.Session.DoRequest("SoftLayer_Virtual_Guest", "createObjects", params, &r.Options, &resp) + return +} + +// no documentation yet +func (r Virtual_Guest) CreatePostSoftwareInstallTransaction(data *string, returnBoolean *bool) (resp bool, err error) { + params := []interface{}{ + data, + returnBoolean, + } + err = r.Session.DoRequest("SoftLayer_Virtual_Guest", "createPostSoftwareInstallTransaction", params, &r.Options, &resp) + return +} + +// +// This method will cancel a computing instance effective immediately. For instances billed hourly, the charges will stop immediately after the method returns. +func (r Virtual_Guest) DeleteObject() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Virtual_Guest", "deleteObject", nil, &r.Options, &resp) + return +} + +// Creates a transaction to detach a guest's disk image. If the disk image is already detached it will be ignored. +// +// WARNING: The transaction created by this service will shut down the guest while the disk image is attached. The guest will be turned back on once this process is complete. +func (r Virtual_Guest) DetachDiskImage(imageId *int) (resp datatypes.Provisioning_Version1_Transaction, err error) { + params := []interface{}{ + imageId, + } + err = r.Session.DoRequest("SoftLayer_Virtual_Guest", "detachDiskImage", params, &r.Options, &resp) + return +} + +// Edit a computing instance's properties +func (r Virtual_Guest) EditObject(templateObject *datatypes.Virtual_Guest) (resp bool, err error) { + params := []interface{}{ + templateObject, + } + err = r.Session.DoRequest("SoftLayer_Virtual_Guest", "editObject", params, &r.Options, &resp) + return +} + +// Reboot a guest into the Idera Bare Metal Restore image. +func (r Virtual_Guest) ExecuteIderaBareMetalRestore() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Virtual_Guest", "executeIderaBareMetalRestore", nil, &r.Options, &resp) + return +} + +// Reboot a guest into the R1Soft Bare Metal Restore image. +func (r Virtual_Guest) ExecuteR1SoftBareMetalRestore() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Virtual_Guest", "executeR1SoftBareMetalRestore", nil, &r.Options, &resp) + return +} + +// Download and run remote script from uri on virtual guests. +func (r Virtual_Guest) ExecuteRemoteScript(uri *string) (err error) { + var resp datatypes.Void + params := []interface{}{ + uri, + } + err = r.Session.DoRequest("SoftLayer_Virtual_Guest", "executeRemoteScript", params, &r.Options, &resp) + return +} + +// Reboot a Linux guest into the Xen rescue image. +func (r Virtual_Guest) ExecuteRescueLayer() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Virtual_Guest", "executeRescueLayer", nil, &r.Options, &resp) + return +} + +// Find CCI by only its primary public or private IP address. IP addresses within secondary subnets tied to the CCI will not return the CCI. If no CCI is found, no errors are generated and no data is returned. +func (r Virtual_Guest) FindByIpAddress(ipAddress *string) (resp datatypes.Virtual_Guest, err error) { + params := []interface{}{ + ipAddress, + } + err = r.Session.DoRequest("SoftLayer_Virtual_Guest", "findByIpAddress", params, &r.Options, &resp) + return +} + +// +// Obtain an [[SoftLayer_Container_Product_Order_Virtual_Guest (type)|order container]] that can be sent to [[SoftLayer_Product_Order/verifyOrder|verifyOrder]] or [[SoftLayer_Product_Order/placeOrder|placeOrder]]. +// +// +// This is primarily useful when there is a necessity to confirm the price which will be charged for an order. +// +// +// See [[SoftLayer_Virtual_Guest/createObject|createObject]] for specifics on the requirements of the template object parameter. +func (r Virtual_Guest) GenerateOrderTemplate(templateObject *datatypes.Virtual_Guest) (resp datatypes.Container_Product_Order, err error) { + params := []interface{}{ + templateObject, + } + err = r.Session.DoRequest("SoftLayer_Virtual_Guest", "generateOrderTemplate", params, &r.Options, &resp) + return +} + +// Retrieve The account that a virtual guest belongs to. +func (r Virtual_Guest) GetAccount() (resp datatypes.Account, err error) { + err = r.Session.DoRequest("SoftLayer_Virtual_Guest", "getAccount", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Virtual_Guest) GetAccountOwnedPoolFlag() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Virtual_Guest", "getAccountOwnedPoolFlag", nil, &r.Options, &resp) + return +} + +// Retrieve A virtual guest's currently active network monitoring incidents. +func (r Virtual_Guest) GetActiveNetworkMonitorIncident() (resp []datatypes.Network_Monitor_Version1_Incident, err error) { + err = r.Session.DoRequest("SoftLayer_Virtual_Guest", "getActiveNetworkMonitorIncident", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Virtual_Guest) GetActiveTickets() (resp []datatypes.Ticket, err error) { + err = r.Session.DoRequest("SoftLayer_Virtual_Guest", "getActiveTickets", nil, &r.Options, &resp) + return +} + +// Retrieve A transaction that is still be performed on a cloud server. +func (r Virtual_Guest) GetActiveTransaction() (resp datatypes.Provisioning_Version1_Transaction, err error) { + err = r.Session.DoRequest("SoftLayer_Virtual_Guest", "getActiveTransaction", nil, &r.Options, &resp) + return +} + +// Retrieve Any active transaction(s) that are currently running for the server (example: os reload). +func (r Virtual_Guest) GetActiveTransactions() (resp []datatypes.Provisioning_Version1_Transaction, err error) { + err = r.Session.DoRequest("SoftLayer_Virtual_Guest", "getActiveTransactions", nil, &r.Options, &resp) + return +} + +// Return a collection of SoftLayer_Item_Price objects for an OS reload +func (r Virtual_Guest) GetAdditionalRequiredPricesForOsReload(config *datatypes.Container_Hardware_Server_Configuration) (resp []datatypes.Product_Item_Price, err error) { + params := []interface{}{ + config, + } + err = r.Session.DoRequest("SoftLayer_Virtual_Guest", "getAdditionalRequiredPricesForOsReload", params, &r.Options, &resp) + return +} + +// Returns monitoring alarm detailed history +func (r Virtual_Guest) GetAlarmHistory(startDate *datatypes.Time, endDate *datatypes.Time, alarmId *string) (resp []datatypes.Container_Monitoring_Alarm_History, err error) { + params := []interface{}{ + startDate, + endDate, + alarmId, + } + err = r.Session.DoRequest("SoftLayer_Virtual_Guest", "getAlarmHistory", params, &r.Options, &resp) + return +} + +// Retrieve The SoftLayer_Network_Storage_Allowed_Host information to connect this Virtual Guest to Network Storage volumes that require access control lists. +func (r Virtual_Guest) GetAllowedHost() (resp datatypes.Network_Storage_Allowed_Host, err error) { + err = r.Session.DoRequest("SoftLayer_Virtual_Guest", "getAllowedHost", nil, &r.Options, &resp) + return +} + +// Retrieve The SoftLayer_Network_Storage objects that this SoftLayer_Virtual_Guest has access to. +func (r Virtual_Guest) GetAllowedNetworkStorage() (resp []datatypes.Network_Storage, err error) { + err = r.Session.DoRequest("SoftLayer_Virtual_Guest", "getAllowedNetworkStorage", nil, &r.Options, &resp) + return +} + +// Retrieve The SoftLayer_Network_Storage objects whose Replica that this SoftLayer_Virtual_Guest has access to. +func (r Virtual_Guest) GetAllowedNetworkStorageReplicas() (resp []datatypes.Network_Storage, err error) { + err = r.Session.DoRequest("SoftLayer_Virtual_Guest", "getAllowedNetworkStorageReplicas", nil, &r.Options, &resp) + return +} + +// Retrieve A antivirus / spyware software component object. +func (r Virtual_Guest) GetAntivirusSpywareSoftwareComponent() (resp datatypes.Software_Component, err error) { + err = r.Session.DoRequest("SoftLayer_Virtual_Guest", "getAntivirusSpywareSoftwareComponent", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Virtual_Guest) GetApplicationDeliveryController() (resp datatypes.Network_Application_Delivery_Controller, err error) { + err = r.Session.DoRequest("SoftLayer_Virtual_Guest", "getApplicationDeliveryController", nil, &r.Options, &resp) + return +} + +// This method is retrieve a list of SoftLayer_Network_Storage volumes that are authorized access to this SoftLayer_Virtual_Guest. +func (r Virtual_Guest) GetAttachedNetworkStorages(nasType *string) (resp []datatypes.Network_Storage, err error) { + params := []interface{}{ + nasType, + } + err = r.Session.DoRequest("SoftLayer_Virtual_Guest", "getAttachedNetworkStorages", params, &r.Options, &resp) + return +} + +// Retrieve +func (r Virtual_Guest) GetAttributes() (resp []datatypes.Virtual_Guest_Attribute, err error) { + err = r.Session.DoRequest("SoftLayer_Virtual_Guest", "getAttributes", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Virtual_Guest) GetAvailableBlockDevicePositions() (resp []string, err error) { + err = r.Session.DoRequest("SoftLayer_Virtual_Guest", "getAvailableBlockDevicePositions", nil, &r.Options, &resp) + return +} + +// Retrieve An object that stores the maximum level for the monitoring query types and response types. +func (r Virtual_Guest) GetAvailableMonitoring() (resp []datatypes.Network_Monitor_Version1_Query_Host_Stratum, err error) { + err = r.Session.DoRequest("SoftLayer_Virtual_Guest", "getAvailableMonitoring", nil, &r.Options, &resp) + return +} + +// This method retrieves a list of SoftLayer_Network_Storage volumes that can be authorized to this SoftLayer_Virtual_Guest. +func (r Virtual_Guest) GetAvailableNetworkStorages(nasType *string) (resp []datatypes.Network_Storage, err error) { + params := []interface{}{ + nasType, + } + err = r.Session.DoRequest("SoftLayer_Virtual_Guest", "getAvailableNetworkStorages", params, &r.Options, &resp) + return +} + +// Retrieve The average daily private bandwidth usage for the current billing cycle. +func (r Virtual_Guest) GetAverageDailyPrivateBandwidthUsage() (resp datatypes.Float64, err error) { + err = r.Session.DoRequest("SoftLayer_Virtual_Guest", "getAverageDailyPrivateBandwidthUsage", nil, &r.Options, &resp) + return +} + +// Retrieve The average daily public bandwidth usage for the current billing cycle. +func (r Virtual_Guest) GetAverageDailyPublicBandwidthUsage() (resp datatypes.Float64, err error) { + err = r.Session.DoRequest("SoftLayer_Virtual_Guest", "getAverageDailyPublicBandwidthUsage", nil, &r.Options, &resp) + return +} + +// Retrieve A guests's backend network components. +func (r Virtual_Guest) GetBackendNetworkComponents() (resp []datatypes.Virtual_Guest_Network_Component, err error) { + err = r.Session.DoRequest("SoftLayer_Virtual_Guest", "getBackendNetworkComponents", nil, &r.Options, &resp) + return +} + +// Retrieve A guest's backend or private router. +func (r Virtual_Guest) GetBackendRouters() (resp []datatypes.Hardware, err error) { + err = r.Session.DoRequest("SoftLayer_Virtual_Guest", "getBackendRouters", nil, &r.Options, &resp) + return +} + +// Retrieve A computing instance's allotted bandwidth (measured in GB). +func (r Virtual_Guest) GetBandwidthAllocation() (resp datatypes.Float64, err error) { + err = r.Session.DoRequest("SoftLayer_Virtual_Guest", "getBandwidthAllocation", nil, &r.Options, &resp) + return +} + +// Retrieve A computing instance's allotted detail record. Allotment details link bandwidth allocation with allotments. +func (r Virtual_Guest) GetBandwidthAllotmentDetail() (resp datatypes.Network_Bandwidth_Version1_Allotment_Detail, err error) { + err = r.Session.DoRequest("SoftLayer_Virtual_Guest", "getBandwidthAllotmentDetail", nil, &r.Options, &resp) + return +} + +// Use this method when needing the metric data for bandwidth for a single guest. It will gather the correct input parameters based on the date ranges +func (r Virtual_Guest) GetBandwidthDataByDate(startDateTime *datatypes.Time, endDateTime *datatypes.Time, networkType *string) (resp []datatypes.Metric_Tracking_Object_Data, err error) { + params := []interface{}{ + startDateTime, + endDateTime, + networkType, + } + err = r.Session.DoRequest("SoftLayer_Virtual_Guest", "getBandwidthDataByDate", params, &r.Options, &resp) + return +} + +// Retrieve a collection of bandwidth data from an individual public or private network tracking object. Data is ideal if you with to employ your own traffic storage and graphing systems. +func (r Virtual_Guest) GetBandwidthForDateRange(startDate *datatypes.Time, endDate *datatypes.Time) (resp []datatypes.Metric_Tracking_Object_Data, err error) { + params := []interface{}{ + startDate, + endDate, + } + err = r.Session.DoRequest("SoftLayer_Virtual_Guest", "getBandwidthForDateRange", params, &r.Options, &resp) + return +} + +// Use this method when needing a bandwidth image for a single guest. It will gather the correct input parameters for the generic graphing utility automatically based on the snapshot specified. +func (r Virtual_Guest) GetBandwidthImage(networkType *string, snapshotRange *string, dateSpecified *datatypes.Time, dateSpecifiedEnd *datatypes.Time) (resp datatypes.Container_Bandwidth_GraphOutputs, err error) { + params := []interface{}{ + networkType, + snapshotRange, + dateSpecified, + dateSpecifiedEnd, + } + err = r.Session.DoRequest("SoftLayer_Virtual_Guest", "getBandwidthImage", params, &r.Options, &resp) + return +} + +// Use this method when needing a bandwidth image for a single guest. It will gather the correct input parameters for the generic graphing utility based on the date ranges +func (r Virtual_Guest) GetBandwidthImageByDate(startDateTime *datatypes.Time, endDateTime *datatypes.Time, networkType *string) (resp datatypes.Container_Bandwidth_GraphOutputs, err error) { + params := []interface{}{ + startDateTime, + endDateTime, + networkType, + } + err = r.Session.DoRequest("SoftLayer_Virtual_Guest", "getBandwidthImageByDate", params, &r.Options, &resp) + return +} + +// Returns the total amount of bandwidth used during the time specified for a computing instance. +func (r Virtual_Guest) GetBandwidthTotal(startDateTime *datatypes.Time, endDateTime *datatypes.Time, direction *string, side *string) (resp uint, err error) { + params := []interface{}{ + startDateTime, + endDateTime, + direction, + side, + } + err = r.Session.DoRequest("SoftLayer_Virtual_Guest", "getBandwidthTotal", params, &r.Options, &resp) + return +} + +// Retrieve The raw bandwidth usage data for the current billing cycle. One object will be returned for each network this server is attached to. +func (r Virtual_Guest) GetBillingCycleBandwidthUsage() (resp []datatypes.Network_Bandwidth_Usage, err error) { + err = r.Session.DoRequest("SoftLayer_Virtual_Guest", "getBillingCycleBandwidthUsage", nil, &r.Options, &resp) + return +} + +// Retrieve The raw private bandwidth usage data for the current billing cycle. +func (r Virtual_Guest) GetBillingCyclePrivateBandwidthUsage() (resp datatypes.Network_Bandwidth_Usage, err error) { + err = r.Session.DoRequest("SoftLayer_Virtual_Guest", "getBillingCyclePrivateBandwidthUsage", nil, &r.Options, &resp) + return +} + +// Retrieve The raw public bandwidth usage data for the current billing cycle. +func (r Virtual_Guest) GetBillingCyclePublicBandwidthUsage() (resp datatypes.Network_Bandwidth_Usage, err error) { + err = r.Session.DoRequest("SoftLayer_Virtual_Guest", "getBillingCyclePublicBandwidthUsage", nil, &r.Options, &resp) + return +} + +// Retrieve The billing item for a CloudLayer Compute Instance. +func (r Virtual_Guest) GetBillingItem() (resp datatypes.Billing_Item_Virtual_Guest, err error) { + err = r.Session.DoRequest("SoftLayer_Virtual_Guest", "getBillingItem", nil, &r.Options, &resp) + return +} + +// Retrieve Determines whether the instance is ineligible for cancellation because it is disconnected. +func (r Virtual_Guest) GetBlockCancelBecauseDisconnectedFlag() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Virtual_Guest", "getBlockCancelBecauseDisconnectedFlag", nil, &r.Options, &resp) + return +} + +// Retrieve The global identifier for the image template that was used to provision or reload a guest. +func (r Virtual_Guest) GetBlockDeviceTemplateGroup() (resp datatypes.Virtual_Guest_Block_Device_Template_Group, err error) { + err = r.Session.DoRequest("SoftLayer_Virtual_Guest", "getBlockDeviceTemplateGroup", nil, &r.Options, &resp) + return +} + +// Retrieve A computing instance's block devices. Block devices link [[SoftLayer_Virtual_Disk_Image|disk images]] to computing instances. +func (r Virtual_Guest) GetBlockDevices() (resp []datatypes.Virtual_Guest_Block_Device, err error) { + err = r.Session.DoRequest("SoftLayer_Virtual_Guest", "getBlockDevices", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Virtual_Guest) GetBootOrder() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_Virtual_Guest", "getBootOrder", nil, &r.Options, &resp) + return +} + +// Gets the console access logs for a computing instance +func (r Virtual_Guest) GetConsoleAccessLog() (resp []datatypes.Network_Logging_Syslog, err error) { + err = r.Session.DoRequest("SoftLayer_Virtual_Guest", "getConsoleAccessLog", nil, &r.Options, &resp) + return +} + +// Retrieve A flag indicating a computing instance's console IP address is assigned. +func (r Virtual_Guest) GetConsoleIpAddressFlag() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Virtual_Guest", "getConsoleIpAddressFlag", nil, &r.Options, &resp) + return +} + +// Retrieve A record containing information about a computing instance's console IP and port number. +func (r Virtual_Guest) GetConsoleIpAddressRecord() (resp datatypes.Virtual_Guest_Network_Component_IpAddress, err error) { + err = r.Session.DoRequest("SoftLayer_Virtual_Guest", "getConsoleIpAddressRecord", nil, &r.Options, &resp) + return +} + +// Retrieve A continuous data protection software component object. +func (r Virtual_Guest) GetContinuousDataProtectionSoftwareComponent() (resp datatypes.Software_Component, err error) { + err = r.Session.DoRequest("SoftLayer_Virtual_Guest", "getContinuousDataProtectionSoftwareComponent", nil, &r.Options, &resp) + return +} + +// Retrieve A guest's control panel. +func (r Virtual_Guest) GetControlPanel() (resp datatypes.Software_Component, err error) { + err = r.Session.DoRequest("SoftLayer_Virtual_Guest", "getControlPanel", nil, &r.Options, &resp) + return +} + +// If the virtual server currently has an operating system that has a core capacity restriction, return the associated core-restricted operating system item price. Some operating systems (e.g., Red Hat Enterprise Linux) may be billed by the number of processor cores, so therefore require that a certain number of cores be present on the server. +func (r Virtual_Guest) GetCoreRestrictedOperatingSystemPrice() (resp datatypes.Product_Item_Price, err error) { + err = r.Session.DoRequest("SoftLayer_Virtual_Guest", "getCoreRestrictedOperatingSystemPrice", nil, &r.Options, &resp) + return +} + +// Use this method when needing the metric data for a single guest's CPUs. It will gather the correct input parameters based on the date ranges +func (r Virtual_Guest) GetCpuMetricDataByDate(startDateTime *datatypes.Time, endDateTime *datatypes.Time, cpuIndexes []int) (resp []datatypes.Metric_Tracking_Object_Data, err error) { + params := []interface{}{ + startDateTime, + endDateTime, + cpuIndexes, + } + err = r.Session.DoRequest("SoftLayer_Virtual_Guest", "getCpuMetricDataByDate", params, &r.Options, &resp) + return +} + +// Use this method when needing a cpu usage image for a single guest. It will gather the correct input parameters for the generic graphing utility automatically based on the snapshot specified. +func (r Virtual_Guest) GetCpuMetricImage(snapshotRange *string, dateSpecified *datatypes.Time) (resp datatypes.Container_Bandwidth_GraphOutputs, err error) { + params := []interface{}{ + snapshotRange, + dateSpecified, + } + err = r.Session.DoRequest("SoftLayer_Virtual_Guest", "getCpuMetricImage", params, &r.Options, &resp) + return +} + +// Use this method when needing a CPU usage image for a single guest. It will gather the correct input parameters for the generic graphing utility based on the date ranges +func (r Virtual_Guest) GetCpuMetricImageByDate(startDateTime *datatypes.Time, endDateTime *datatypes.Time, cpuIndexes []int) (resp datatypes.Container_Bandwidth_GraphOutputs, err error) { + params := []interface{}{ + startDateTime, + endDateTime, + cpuIndexes, + } + err = r.Session.DoRequest("SoftLayer_Virtual_Guest", "getCpuMetricImageByDate", params, &r.Options, &resp) + return +} + +// +// There are many options that may be provided while ordering a computing instance, this method can be used to determine what these options are. +// +// +// Detailed information on the return value can be found on the data type page for [[SoftLayer_Container_Virtual_Guest_Configuration (type)]]. +func (r Virtual_Guest) GetCreateObjectOptions() (resp datatypes.Container_Virtual_Guest_Configuration, err error) { + err = r.Session.DoRequest("SoftLayer_Virtual_Guest", "getCreateObjectOptions", nil, &r.Options, &resp) + return +} + +// Retrieve An object that provides commonly used bandwidth summary components for the current billing cycle. +func (r Virtual_Guest) GetCurrentBandwidthSummary() (resp datatypes.Metric_Tracking_Object_Bandwidth_Summary, err error) { + err = r.Session.DoRequest("SoftLayer_Virtual_Guest", "getCurrentBandwidthSummary", nil, &r.Options, &resp) + return +} + +// getUpgradeItemPrices() retrieves a list of all upgrades available to a CloudLayer Computing Instance. Upgradeable items include, but are not limited to, number of cores, amount of RAM, storage configuration, and network port speed. +func (r Virtual_Guest) GetCurrentBillingDetail() (resp []datatypes.Billing_Item, err error) { + err = r.Session.DoRequest("SoftLayer_Virtual_Guest", "getCurrentBillingDetail", nil, &r.Options, &resp) + return +} + +// Get the total billing price in US Dollars ($) for this instance. This includes all bandwidth used up to this point for this instance. +func (r Virtual_Guest) GetCurrentBillingTotal() (resp datatypes.Float64, err error) { + err = r.Session.DoRequest("SoftLayer_Virtual_Guest", "getCurrentBillingTotal", nil, &r.Options, &resp) + return +} + +// Retrieve bandwidth graph by date. +func (r Virtual_Guest) GetCustomBandwidthDataByDate(graphData *datatypes.Container_Graph) (resp datatypes.Container_Graph, err error) { + params := []interface{}{ + graphData, + } + err = r.Session.DoRequest("SoftLayer_Virtual_Guest", "getCustomBandwidthDataByDate", params, &r.Options, &resp) + return +} + +// Retrieve bandwidth graph by date. +func (r Virtual_Guest) GetCustomMetricDataByDate(graphData *datatypes.Container_Graph) (resp datatypes.Container_Graph, err error) { + params := []interface{}{ + graphData, + } + err = r.Session.DoRequest("SoftLayer_Virtual_Guest", "getCustomMetricDataByDate", params, &r.Options, &resp) + return +} + +// Retrieve The datacenter that a virtual guest resides in. +func (r Virtual_Guest) GetDatacenter() (resp datatypes.Location, err error) { + err = r.Session.DoRequest("SoftLayer_Virtual_Guest", "getDatacenter", nil, &r.Options, &resp) + return +} + +// Retrieve The dedicated host associated with this guest. +func (r Virtual_Guest) GetDedicatedHost() (resp datatypes.Virtual_DedicatedHost, err error) { + err = r.Session.DoRequest("SoftLayer_Virtual_Guest", "getDedicatedHost", nil, &r.Options, &resp) + return +} + +// Return a drive retention SoftLayer_Item_Price object for a guest. +func (r Virtual_Guest) GetDriveRetentionItemPrice() (resp datatypes.Product_Item_Price, err error) { + err = r.Session.DoRequest("SoftLayer_Virtual_Guest", "getDriveRetentionItemPrice", nil, &r.Options, &resp) + return +} + +// Retrieve A guest's associated EVault network storage service account. +func (r Virtual_Guest) GetEvaultNetworkStorage() (resp []datatypes.Network_Storage, err error) { + err = r.Session.DoRequest("SoftLayer_Virtual_Guest", "getEvaultNetworkStorage", nil, &r.Options, &resp) + return +} + +// Get the subnets associated with this CloudLayer computing instance that are protectable by a network component firewall. +func (r Virtual_Guest) GetFirewallProtectableSubnets() (resp []datatypes.Network_Subnet, err error) { + err = r.Session.DoRequest("SoftLayer_Virtual_Guest", "getFirewallProtectableSubnets", nil, &r.Options, &resp) + return +} + +// Retrieve A computing instance's hardware firewall services. +func (r Virtual_Guest) GetFirewallServiceComponent() (resp datatypes.Network_Component_Firewall, err error) { + err = r.Session.DoRequest("SoftLayer_Virtual_Guest", "getFirewallServiceComponent", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Virtual_Guest) GetFirstAvailableBlockDevicePosition() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_Virtual_Guest", "getFirstAvailableBlockDevicePosition", nil, &r.Options, &resp) + return +} + +// Retrieve A guest's frontend network components. +func (r Virtual_Guest) GetFrontendNetworkComponents() (resp []datatypes.Virtual_Guest_Network_Component, err error) { + err = r.Session.DoRequest("SoftLayer_Virtual_Guest", "getFrontendNetworkComponents", nil, &r.Options, &resp) + return +} + +// Retrieve A guest's frontend or public router. +func (r Virtual_Guest) GetFrontendRouters() (resp datatypes.Hardware, err error) { + err = r.Session.DoRequest("SoftLayer_Virtual_Guest", "getFrontendRouters", nil, &r.Options, &resp) + return +} + +// Retrieve A guest's universally unique identifier. +func (r Virtual_Guest) GetGlobalIdentifier() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_Virtual_Guest", "getGlobalIdentifier", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Virtual_Guest) GetGuestBootParameter() (resp datatypes.Virtual_Guest_Boot_Parameter, err error) { + err = r.Session.DoRequest("SoftLayer_Virtual_Guest", "getGuestBootParameter", nil, &r.Options, &resp) + return +} + +// Retrieve The virtual host on which a virtual guest resides (available only on private clouds). +func (r Virtual_Guest) GetHost() (resp datatypes.Virtual_Host, err error) { + err = r.Session.DoRequest("SoftLayer_Virtual_Guest", "getHost", nil, &r.Options, &resp) + return +} + +// Retrieve A host IPS software component object. +func (r Virtual_Guest) GetHostIpsSoftwareComponent() (resp datatypes.Software_Component, err error) { + err = r.Session.DoRequest("SoftLayer_Virtual_Guest", "getHostIpsSoftwareComponent", nil, &r.Options, &resp) + return +} + +// Retrieve Whether or not a computing instance is billed hourly instead of monthly. +func (r Virtual_Guest) GetHourlyBillingFlag() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Virtual_Guest", "getHourlyBillingFlag", nil, &r.Options, &resp) + return +} + +// Retrieve The total private inbound bandwidth for this computing instance for the current billing cycle. +func (r Virtual_Guest) GetInboundPrivateBandwidthUsage() (resp datatypes.Float64, err error) { + err = r.Session.DoRequest("SoftLayer_Virtual_Guest", "getInboundPrivateBandwidthUsage", nil, &r.Options, &resp) + return +} + +// Retrieve The total public inbound bandwidth for this computing instance for the current billing cycle. +func (r Virtual_Guest) GetInboundPublicBandwidthUsage() (resp datatypes.Float64, err error) { + err = r.Session.DoRequest("SoftLayer_Virtual_Guest", "getInboundPublicBandwidthUsage", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Virtual_Guest) GetInternalTagReferences() (resp []datatypes.Tag_Reference, err error) { + err = r.Session.DoRequest("SoftLayer_Virtual_Guest", "getInternalTagReferences", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Virtual_Guest) GetIsoBootImage() (resp datatypes.Virtual_Disk_Image, err error) { + err = r.Session.DoRequest("SoftLayer_Virtual_Guest", "getIsoBootImage", nil, &r.Options, &resp) + return +} + +// Return a collection of SoftLayer_Item_Price objects from a collection of SoftLayer_Software_Description +func (r Virtual_Guest) GetItemPricesFromSoftwareDescriptions(softwareDescriptions []datatypes.Software_Description, includeTranslationsFlag *bool, returnAllPricesFlag *bool) (resp []datatypes.Product_Item, err error) { + params := []interface{}{ + softwareDescriptions, + includeTranslationsFlag, + returnAllPricesFlag, + } + err = r.Session.DoRequest("SoftLayer_Virtual_Guest", "getItemPricesFromSoftwareDescriptions", params, &r.Options, &resp) + return +} + +// Retrieve The last known power state of a virtual guest in the event the guest is turned off outside of IMS or has gone offline. +func (r Virtual_Guest) GetLastKnownPowerState() (resp datatypes.Virtual_Guest_Power_State, err error) { + err = r.Session.DoRequest("SoftLayer_Virtual_Guest", "getLastKnownPowerState", nil, &r.Options, &resp) + return +} + +// Retrieve The last transaction that a cloud server's operating system was loaded. +func (r Virtual_Guest) GetLastOperatingSystemReload() (resp datatypes.Provisioning_Version1_Transaction, err error) { + err = r.Session.DoRequest("SoftLayer_Virtual_Guest", "getLastOperatingSystemReload", nil, &r.Options, &resp) + return +} + +// Retrieve The last transaction a cloud server had performed. +func (r Virtual_Guest) GetLastTransaction() (resp datatypes.Provisioning_Version1_Transaction, err error) { + err = r.Session.DoRequest("SoftLayer_Virtual_Guest", "getLastTransaction", nil, &r.Options, &resp) + return +} + +// Retrieve A virtual guest's latest network monitoring incident. +func (r Virtual_Guest) GetLatestNetworkMonitorIncident() (resp datatypes.Network_Monitor_Version1_Incident, err error) { + err = r.Session.DoRequest("SoftLayer_Virtual_Guest", "getLatestNetworkMonitorIncident", nil, &r.Options, &resp) + return +} + +// Retrieve A flag indicating that the virtual guest has at least one disk which is local to the host it runs on. This does not include a SWAP device. +func (r Virtual_Guest) GetLocalDiskFlag() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Virtual_Guest", "getLocalDiskFlag", nil, &r.Options, &resp) + return +} + +// Retrieve Where guest is located within SoftLayer's location hierarchy. +func (r Virtual_Guest) GetLocation() (resp datatypes.Location, err error) { + err = r.Session.DoRequest("SoftLayer_Virtual_Guest", "getLocation", nil, &r.Options, &resp) + return +} + +// Retrieve A flag indicating that the virtual guest is a managed resource. +func (r Virtual_Guest) GetManagedResourceFlag() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Virtual_Guest", "getManagedResourceFlag", nil, &r.Options, &resp) + return +} + +// Use this method when needing the metric data for memory for a single computing instance. +func (r Virtual_Guest) GetMemoryMetricDataByDate(startDateTime *datatypes.Time, endDateTime *datatypes.Time) (resp []datatypes.Metric_Tracking_Object_Data, err error) { + params := []interface{}{ + startDateTime, + endDateTime, + } + err = r.Session.DoRequest("SoftLayer_Virtual_Guest", "getMemoryMetricDataByDate", params, &r.Options, &resp) + return +} + +// Use this method when needing a memory usage image for a single guest. It will gather the correct input parameters for the generic graphing utility automatically based on the snapshot specified. +func (r Virtual_Guest) GetMemoryMetricImage(snapshotRange *string, dateSpecified *datatypes.Time) (resp datatypes.Container_Bandwidth_GraphOutputs, err error) { + params := []interface{}{ + snapshotRange, + dateSpecified, + } + err = r.Session.DoRequest("SoftLayer_Virtual_Guest", "getMemoryMetricImage", params, &r.Options, &resp) + return +} + +// Use this method when needing a image displaying the amount of memory used over time for a single computing instance. It will gather the correct input parameters for the generic graphing utility based on the date ranges +func (r Virtual_Guest) GetMemoryMetricImageByDate(startDateTime *datatypes.Time, endDateTime *datatypes.Time) (resp datatypes.Container_Bandwidth_GraphOutputs, err error) { + params := []interface{}{ + startDateTime, + endDateTime, + } + err = r.Session.DoRequest("SoftLayer_Virtual_Guest", "getMemoryMetricImageByDate", params, &r.Options, &resp) + return +} + +// Retrieve A guest's metric tracking object. +func (r Virtual_Guest) GetMetricTrackingObject() (resp datatypes.Metric_Tracking_Object, err error) { + err = r.Session.DoRequest("SoftLayer_Virtual_Guest", "getMetricTrackingObject", nil, &r.Options, &resp) + return +} + +// Retrieve The metric tracking object id for this guest. +func (r Virtual_Guest) GetMetricTrackingObjectId() (resp int, err error) { + err = r.Session.DoRequest("SoftLayer_Virtual_Guest", "getMetricTrackingObjectId", nil, &r.Options, &resp) + return +} + +// Returns open monitoring alarms for a given time period +func (r Virtual_Guest) GetMonitoringActiveAlarms(startDate *datatypes.Time, endDate *datatypes.Time) (resp []datatypes.Container_Monitoring_Alarm_History, err error) { + params := []interface{}{ + startDate, + endDate, + } + err = r.Session.DoRequest("SoftLayer_Virtual_Guest", "getMonitoringActiveAlarms", params, &r.Options, &resp) + return +} + +// Retrieve +func (r Virtual_Guest) GetMonitoringAgents() (resp []datatypes.Monitoring_Agent, err error) { + err = r.Session.DoRequest("SoftLayer_Virtual_Guest", "getMonitoringAgents", nil, &r.Options, &resp) + return +} + +// Returns closed monitoring alarms for a given time period +func (r Virtual_Guest) GetMonitoringClosedAlarms(startDate *datatypes.Time, endDate *datatypes.Time) (resp []datatypes.Container_Monitoring_Alarm_History, err error) { + params := []interface{}{ + startDate, + endDate, + } + err = r.Session.DoRequest("SoftLayer_Virtual_Guest", "getMonitoringClosedAlarms", params, &r.Options, &resp) + return +} + +// Retrieve +func (r Virtual_Guest) GetMonitoringRobot() (resp datatypes.Monitoring_Robot, err error) { + err = r.Session.DoRequest("SoftLayer_Virtual_Guest", "getMonitoringRobot", nil, &r.Options, &resp) + return +} + +// Retrieve A virtual guest's network monitoring services. +func (r Virtual_Guest) GetMonitoringServiceComponent() (resp datatypes.Network_Monitor_Version1_Query_Host_Stratum, err error) { + err = r.Session.DoRequest("SoftLayer_Virtual_Guest", "getMonitoringServiceComponent", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Virtual_Guest) GetMonitoringServiceEligibilityFlag() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Virtual_Guest", "getMonitoringServiceEligibilityFlag", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Virtual_Guest) GetMonitoringServiceFlag() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Virtual_Guest", "getMonitoringServiceFlag", nil, &r.Options, &resp) + return +} + +// Retrieve The monitoring notification objects for this guest. Each object links this guest instance to a user account that will be notified if monitoring on this guest object fails +func (r Virtual_Guest) GetMonitoringUserNotification() (resp []datatypes.User_Customer_Notification_Virtual_Guest, err error) { + err = r.Session.DoRequest("SoftLayer_Virtual_Guest", "getMonitoringUserNotification", nil, &r.Options, &resp) + return +} + +// Get the IP addresses associated with this CloudLayer computing instance that are protectable by a network component firewall. Note, this may not return all values for IPv6 subnets for this CloudLayer computing instance. Please use getFirewallProtectableSubnets to get all protectable subnets. +func (r Virtual_Guest) GetNetworkComponentFirewallProtectableIpAddresses() (resp []datatypes.Network_Subnet_IpAddress, err error) { + err = r.Session.DoRequest("SoftLayer_Virtual_Guest", "getNetworkComponentFirewallProtectableIpAddresses", nil, &r.Options, &resp) + return +} + +// Retrieve A guests's network components. +func (r Virtual_Guest) GetNetworkComponents() (resp []datatypes.Virtual_Guest_Network_Component, err error) { + err = r.Session.DoRequest("SoftLayer_Virtual_Guest", "getNetworkComponents", nil, &r.Options, &resp) + return +} + +// Retrieve All of a virtual guest's network monitoring incidents. +func (r Virtual_Guest) GetNetworkMonitorIncidents() (resp []datatypes.Network_Monitor_Version1_Incident, err error) { + err = r.Session.DoRequest("SoftLayer_Virtual_Guest", "getNetworkMonitorIncidents", nil, &r.Options, &resp) + return +} + +// Retrieve A guests's network monitors. +func (r Virtual_Guest) GetNetworkMonitors() (resp []datatypes.Network_Monitor_Version1_Query_Host, err error) { + err = r.Session.DoRequest("SoftLayer_Virtual_Guest", "getNetworkMonitors", nil, &r.Options, &resp) + return +} + +// Retrieve A guest's associated network storage accounts. +func (r Virtual_Guest) GetNetworkStorage() (resp []datatypes.Network_Storage, err error) { + err = r.Session.DoRequest("SoftLayer_Virtual_Guest", "getNetworkStorage", nil, &r.Options, &resp) + return +} + +// Retrieve The network Vlans that a guest's network components are associated with. +func (r Virtual_Guest) GetNetworkVlans() (resp []datatypes.Network_Vlan, err error) { + err = r.Session.DoRequest("SoftLayer_Virtual_Guest", "getNetworkVlans", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Virtual_Guest) GetObject() (resp datatypes.Virtual_Guest, err error) { + err = r.Session.DoRequest("SoftLayer_Virtual_Guest", "getObject", nil, &r.Options, &resp) + return +} + +// Retrieve An open ticket requesting cancellation of this server, if one exists. +func (r Virtual_Guest) GetOpenCancellationTicket() (resp datatypes.Ticket, err error) { + err = r.Session.DoRequest("SoftLayer_Virtual_Guest", "getOpenCancellationTicket", nil, &r.Options, &resp) + return +} + +// Retrieve A guest's operating system. +func (r Virtual_Guest) GetOperatingSystem() (resp datatypes.Software_Component_OperatingSystem, err error) { + err = r.Session.DoRequest("SoftLayer_Virtual_Guest", "getOperatingSystem", nil, &r.Options, &resp) + return +} + +// Retrieve A guest's operating system software description. +func (r Virtual_Guest) GetOperatingSystemReferenceCode() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_Virtual_Guest", "getOperatingSystemReferenceCode", nil, &r.Options, &resp) + return +} + +// Obtain an order container that is ready to be sent to the [[SoftLayer_Product_Order#placeOrder|SoftLayer_Product_Order::placeOrder]] method. This container will include all services that the selected computing instance has. If desired you may remove prices which were returned. +func (r Virtual_Guest) GetOrderTemplate(billingType *string, orderPrices []datatypes.Product_Item_Price) (resp datatypes.Container_Product_Order, err error) { + params := []interface{}{ + billingType, + orderPrices, + } + err = r.Session.DoRequest("SoftLayer_Virtual_Guest", "getOrderTemplate", params, &r.Options, &resp) + return +} + +// Retrieve The original package id provided with the order for a Cloud Computing Instance. +func (r Virtual_Guest) GetOrderedPackageId() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_Virtual_Guest", "getOrderedPackageId", nil, &r.Options, &resp) + return +} + +// Retrieve The total private outbound bandwidth for this computing instance for the current billing cycle. +func (r Virtual_Guest) GetOutboundPrivateBandwidthUsage() (resp datatypes.Float64, err error) { + err = r.Session.DoRequest("SoftLayer_Virtual_Guest", "getOutboundPrivateBandwidthUsage", nil, &r.Options, &resp) + return +} + +// Retrieve The total public outbound bandwidth for this computing instance for the current billing cycle. +func (r Virtual_Guest) GetOutboundPublicBandwidthUsage() (resp datatypes.Float64, err error) { + err = r.Session.DoRequest("SoftLayer_Virtual_Guest", "getOutboundPublicBandwidthUsage", nil, &r.Options, &resp) + return +} + +// Retrieve Whether the bandwidth usage for this computing instance for the current billing cycle exceeds the allocation. +func (r Virtual_Guest) GetOverBandwidthAllocationFlag() (resp int, err error) { + err = r.Session.DoRequest("SoftLayer_Virtual_Guest", "getOverBandwidthAllocationFlag", nil, &r.Options, &resp) + return +} + +// Retrieve When true this virtual guest must be migrated using SoftLayer_Virtual_Guest::migrate. +func (r Virtual_Guest) GetPendingMigrationFlag() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Virtual_Guest", "getPendingMigrationFlag", nil, &r.Options, &resp) + return +} + +// Retrieve The current power state of a virtual guest. +func (r Virtual_Guest) GetPowerState() (resp datatypes.Virtual_Guest_Power_State, err error) { + err = r.Session.DoRequest("SoftLayer_Virtual_Guest", "getPowerState", nil, &r.Options, &resp) + return +} + +// Retrieve A guest's primary private IP address. +func (r Virtual_Guest) GetPrimaryBackendIpAddress() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_Virtual_Guest", "getPrimaryBackendIpAddress", nil, &r.Options, &resp) + return +} + +// Retrieve A guest's primary backend network component. +func (r Virtual_Guest) GetPrimaryBackendNetworkComponent() (resp datatypes.Virtual_Guest_Network_Component, err error) { + err = r.Session.DoRequest("SoftLayer_Virtual_Guest", "getPrimaryBackendNetworkComponent", nil, &r.Options, &resp) + return +} + +// Retrieve The guest's primary public IP address. +func (r Virtual_Guest) GetPrimaryIpAddress() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_Virtual_Guest", "getPrimaryIpAddress", nil, &r.Options, &resp) + return +} + +// Retrieve A guest's primary public network component. +func (r Virtual_Guest) GetPrimaryNetworkComponent() (resp datatypes.Virtual_Guest_Network_Component, err error) { + err = r.Session.DoRequest("SoftLayer_Virtual_Guest", "getPrimaryNetworkComponent", nil, &r.Options, &resp) + return +} + +// Retrieve Whether the computing instance only has access to the private network. +func (r Virtual_Guest) GetPrivateNetworkOnlyFlag() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Virtual_Guest", "getPrivateNetworkOnlyFlag", nil, &r.Options, &resp) + return +} + +// Retrieve Whether the bandwidth usage for this computing instance for the current billing cycle is projected to exceed the allocation. +func (r Virtual_Guest) GetProjectedOverBandwidthAllocationFlag() (resp int, err error) { + err = r.Session.DoRequest("SoftLayer_Virtual_Guest", "getProjectedOverBandwidthAllocationFlag", nil, &r.Options, &resp) + return +} + +// Retrieve The projected public outbound bandwidth for this computing instance for the current billing cycle. +func (r Virtual_Guest) GetProjectedPublicBandwidthUsage() (resp datatypes.Float64, err error) { + err = r.Session.DoRequest("SoftLayer_Virtual_Guest", "getProjectedPublicBandwidthUsage", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Virtual_Guest) GetProvisionDate() (resp datatypes.Time, err error) { + err = r.Session.DoRequest("SoftLayer_Virtual_Guest", "getProvisionDate", nil, &r.Options, &resp) + return +} + +// Retrieve Recent events that impact this computing instance. +func (r Virtual_Guest) GetRecentEvents() (resp []datatypes.Notification_Occurrence_Event, err error) { + err = r.Session.DoRequest("SoftLayer_Virtual_Guest", "getRecentEvents", nil, &r.Options, &resp) + return +} + +// Recent metric data for a guest +func (r Virtual_Guest) GetRecentMetricData(time *uint) (resp []datatypes.Metric_Tracking_Object, err error) { + params := []interface{}{ + time, + } + err = r.Session.DoRequest("SoftLayer_Virtual_Guest", "getRecentMetricData", params, &r.Options, &resp) + return +} + +// Retrieve The regional group this guest is in. +func (r Virtual_Guest) GetRegionalGroup() (resp datatypes.Location_Group_Regional, err error) { + err = r.Session.DoRequest("SoftLayer_Virtual_Guest", "getRegionalGroup", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Virtual_Guest) GetRegionalInternetRegistry() (resp datatypes.Network_Regional_Internet_Registry, err error) { + err = r.Session.DoRequest("SoftLayer_Virtual_Guest", "getRegionalInternetRegistry", nil, &r.Options, &resp) + return +} + +// Returns open monitoring alarms generated by monitoring agents that reside in the SoftLayer monitoring cluster. +// +// A monitoring agent with "remoteMonitoringAgentFlag" indicates that it work from SoftLayer monitoring cluster. If a monitoring agent does not have the flag, it resides in your cloud instance. +func (r Virtual_Guest) GetRemoteMonitoringActiveAlarms(startDate *datatypes.Time, endDate *datatypes.Time) (resp []datatypes.Container_Monitoring_Alarm_History, err error) { + params := []interface{}{ + startDate, + endDate, + } + err = r.Session.DoRequest("SoftLayer_Virtual_Guest", "getRemoteMonitoringActiveAlarms", params, &r.Options, &resp) + return +} + +// Returns closed monitoring alarms generated by monitoring agents that reside in the SoftLayer monitoring cluster. +// +// A monitoring agent with "remoteMonitoringAgentFlag" indicates that it work from SoftLayer monitoring cluster. If a monitoring agent does not have the flag, it resides in your cloud instance. +func (r Virtual_Guest) GetRemoteMonitoringClosedAlarms(startDate *datatypes.Time, endDate *datatypes.Time) (resp []datatypes.Container_Monitoring_Alarm_History, err error) { + params := []interface{}{ + startDate, + endDate, + } + err = r.Session.DoRequest("SoftLayer_Virtual_Guest", "getRemoteMonitoringClosedAlarms", params, &r.Options, &resp) + return +} + +// Retrieve the reverse domain records associated with this server. +func (r Virtual_Guest) GetReverseDomainRecords() (resp []datatypes.Dns_Domain, err error) { + err = r.Session.DoRequest("SoftLayer_Virtual_Guest", "getReverseDomainRecords", nil, &r.Options, &resp) + return +} + +// Retrieve Collection of scale assets this guest corresponds to. +func (r Virtual_Guest) GetScaleAssets() (resp []datatypes.Scale_Asset, err error) { + err = r.Session.DoRequest("SoftLayer_Virtual_Guest", "getScaleAssets", nil, &r.Options, &resp) + return +} + +// Retrieve The scale member for this guest, if applicable. +func (r Virtual_Guest) GetScaleMember() (resp datatypes.Scale_Member_Virtual_Guest, err error) { + err = r.Session.DoRequest("SoftLayer_Virtual_Guest", "getScaleMember", nil, &r.Options, &resp) + return +} + +// Retrieve Whether or not this guest is a member of a scale group and was automatically created as part of a scale group action. +func (r Virtual_Guest) GetScaledFlag() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Virtual_Guest", "getScaledFlag", nil, &r.Options, &resp) + return +} + +// Retrieve A guest's vulnerability scan requests. +func (r Virtual_Guest) GetSecurityScanRequests() (resp []datatypes.Network_Security_Scanner_Request, err error) { + err = r.Session.DoRequest("SoftLayer_Virtual_Guest", "getSecurityScanRequests", nil, &r.Options, &resp) + return +} + +// Retrieve The server room that a guest is located at. There may be more than one server room for every data center. +func (r Virtual_Guest) GetServerRoom() (resp datatypes.Location, err error) { + err = r.Session.DoRequest("SoftLayer_Virtual_Guest", "getServerRoom", nil, &r.Options, &resp) + return +} + +// Retrieve A guest's installed software. +func (r Virtual_Guest) GetSoftwareComponents() (resp []datatypes.Software_Component, err error) { + err = r.Session.DoRequest("SoftLayer_Virtual_Guest", "getSoftwareComponents", nil, &r.Options, &resp) + return +} + +// Retrieve SSH keys to be installed on the server during provisioning or an OS reload. +func (r Virtual_Guest) GetSshKeys() (resp []datatypes.Security_Ssh_Key, err error) { + err = r.Session.DoRequest("SoftLayer_Virtual_Guest", "getSshKeys", nil, &r.Options, &resp) + return +} + +// Retrieve A computing instance's status. +func (r Virtual_Guest) GetStatus() (resp datatypes.Virtual_Guest_Status, err error) { + err = r.Session.DoRequest("SoftLayer_Virtual_Guest", "getStatus", nil, &r.Options, &resp) + return +} + +// Retrieve +func (r Virtual_Guest) GetTagReferences() (resp []datatypes.Tag_Reference, err error) { + err = r.Session.DoRequest("SoftLayer_Virtual_Guest", "getTagReferences", nil, &r.Options, &resp) + return +} + +// Retrieve The type of this virtual guest. +func (r Virtual_Guest) GetType() (resp datatypes.Virtual_Guest_Type, err error) { + err = r.Session.DoRequest("SoftLayer_Virtual_Guest", "getType", nil, &r.Options, &resp) + return +} + +// getUpgradeItemPrices() retrieves a list of all upgrades available to a CloudLayer Computing Instance. Upgradeable items include, but are not limited to, number of cores, amount of RAM, storage configuration, and network port speed. +// +// This method exclude downgrade item prices by default. You can set the "includeDowngradeItemPrices" parameter to true so that it can include downgrade item prices. +func (r Virtual_Guest) GetUpgradeItemPrices(includeDowngradeItemPrices *bool) (resp []datatypes.Product_Item_Price, err error) { + params := []interface{}{ + includeDowngradeItemPrices, + } + err = r.Session.DoRequest("SoftLayer_Virtual_Guest", "getUpgradeItemPrices", params, &r.Options, &resp) + return +} + +// Retrieve A computing instance's associated upgrade request object if any. +func (r Virtual_Guest) GetUpgradeRequest() (resp datatypes.Product_Upgrade_Request, err error) { + err = r.Session.DoRequest("SoftLayer_Virtual_Guest", "getUpgradeRequest", nil, &r.Options, &resp) + return +} + +// Retrieve A base64 encoded string containing custom user data for a Cloud Computing Instance order. +func (r Virtual_Guest) GetUserData() (resp []datatypes.Virtual_Guest_Attribute, err error) { + err = r.Session.DoRequest("SoftLayer_Virtual_Guest", "getUserData", nil, &r.Options, &resp) + return +} + +// Retrieve A list of users that have access to this computing instance. +func (r Virtual_Guest) GetUsers() (resp []datatypes.User_Customer, err error) { + err = r.Session.DoRequest("SoftLayer_Virtual_Guest", "getUsers", nil, &r.Options, &resp) + return +} + +// This method will return the list of block device template groups that are valid to the host. For instance, it will validate that the template groups returned are compatible with the size and number of disks on the host. +func (r Virtual_Guest) GetValidBlockDeviceTemplateGroups(visibility *string) (resp []datatypes.Virtual_Guest_Block_Device_Template_Group, err error) { + params := []interface{}{ + visibility, + } + err = r.Session.DoRequest("SoftLayer_Virtual_Guest", "getValidBlockDeviceTemplateGroups", params, &r.Options, &resp) + return +} + +// Retrieve The name of the bandwidth allotment that a hardware belongs too. +func (r Virtual_Guest) GetVirtualRack() (resp datatypes.Network_Bandwidth_Version1_Allotment, err error) { + err = r.Session.DoRequest("SoftLayer_Virtual_Guest", "getVirtualRack", nil, &r.Options, &resp) + return +} + +// Retrieve The id of the bandwidth allotment that a computing instance belongs too. +func (r Virtual_Guest) GetVirtualRackId() (resp int, err error) { + err = r.Session.DoRequest("SoftLayer_Virtual_Guest", "getVirtualRackId", nil, &r.Options, &resp) + return +} + +// Retrieve The name of the bandwidth allotment that a computing instance belongs too. +func (r Virtual_Guest) GetVirtualRackName() (resp string, err error) { + err = r.Session.DoRequest("SoftLayer_Virtual_Guest", "getVirtualRackName", nil, &r.Options, &resp) + return +} + +// Issues a ping command and returns the success (true) or failure (false) of the ping command. +func (r Virtual_Guest) IsBackendPingable() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Virtual_Guest", "isBackendPingable", nil, &r.Options, &resp) + return +} + +// Issues a ping command and returns the success (true) or failure (false) of the ping command. +func (r Virtual_Guest) IsPingable() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Virtual_Guest", "isPingable", nil, &r.Options, &resp) + return +} + +// Closes the public or private ports to isolate the instance before a destructive action. +func (r Virtual_Guest) IsolateInstanceForDestructiveAction() (err error) { + var resp datatypes.Void + err = r.Session.DoRequest("SoftLayer_Virtual_Guest", "isolateInstanceForDestructiveAction", nil, &r.Options, &resp) + return +} + +// Creates a transaction to migrate a virtual guest to a new host. NOTE: Will only migrate if SoftLayer_Virtual_Guest property pendingMigrationFlag = true +func (r Virtual_Guest) Migrate() (resp datatypes.Provisioning_Version1_Transaction, err error) { + err = r.Session.DoRequest("SoftLayer_Virtual_Guest", "migrate", nil, &r.Options, &resp) + return +} + +// Create a transaction to migrate an instance from one dedicated host to another dedicated host +func (r Virtual_Guest) MigrateDedicatedHost(destinationHostId *int) (err error) { + var resp datatypes.Void + params := []interface{}{ + destinationHostId, + } + err = r.Session.DoRequest("SoftLayer_Virtual_Guest", "migrateDedicatedHost", params, &r.Options, &resp) + return +} + +// no documentation yet +func (r Virtual_Guest) MountIsoImage(diskImageId *int) (resp datatypes.Provisioning_Version1_Transaction, err error) { + params := []interface{}{ + diskImageId, + } + err = r.Session.DoRequest("SoftLayer_Virtual_Guest", "mountIsoImage", params, &r.Options, &resp) + return +} + +// Pause a virtual guest +func (r Virtual_Guest) Pause() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Virtual_Guest", "pause", nil, &r.Options, &resp) + return +} + +// Power cycle a virtual guest +func (r Virtual_Guest) PowerCycle() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Virtual_Guest", "powerCycle", nil, &r.Options, &resp) + return +} + +// Power off a virtual guest +func (r Virtual_Guest) PowerOff() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Virtual_Guest", "powerOff", nil, &r.Options, &resp) + return +} + +// Power off a virtual guest +func (r Virtual_Guest) PowerOffSoft() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Virtual_Guest", "powerOffSoft", nil, &r.Options, &resp) + return +} + +// Power on a virtual guest +func (r Virtual_Guest) PowerOn() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Virtual_Guest", "powerOn", nil, &r.Options, &resp) + return +} + +// Power cycle a virtual guest +func (r Virtual_Guest) RebootDefault() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Virtual_Guest", "rebootDefault", nil, &r.Options, &resp) + return +} + +// Power cycle a guest. +func (r Virtual_Guest) RebootHard() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Virtual_Guest", "rebootHard", nil, &r.Options, &resp) + return +} + +// Attempt to complete a soft reboot of a guest by shutting down the operating system. +func (r Virtual_Guest) RebootSoft() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Virtual_Guest", "rebootSoft", nil, &r.Options, &resp) + return +} + +// Create a transaction to perform an OS reload +func (r Virtual_Guest) ReloadCurrentOperatingSystemConfiguration() (resp datatypes.Provisioning_Version1_Transaction, err error) { + err = r.Session.DoRequest("SoftLayer_Virtual_Guest", "reloadCurrentOperatingSystemConfiguration", nil, &r.Options, &resp) + return +} + +// Reloads current operating system configuration. +// +// This service has a confirmation protocol for proceeding with the reload. To proceed with the reload without confirmation, simply pass in 'FORCE' as the token parameter. To proceed with the reload with confirmation, simply call the service with no parameter. A token string will be returned by this service. The token will remain active for 10 minutes. Use this token as the parameter to confirm that a reload is to be performed for the server. +// +// As a precaution, we strongly recommend backing up all data before reloading the operating system. The reload will format the primary disk and will reconfigure the computing instance to the current specifications on record. +// +// If reloading from an image template, we recommend first getting the list of valid private block device template groups, by calling the getOperatingSystemReloadImages method. +func (r Virtual_Guest) ReloadOperatingSystem(token *string, config *datatypes.Container_Hardware_Server_Configuration) (resp string, err error) { + params := []interface{}{ + token, + config, + } + err = r.Session.DoRequest("SoftLayer_Virtual_Guest", "reloadOperatingSystem", params, &r.Options, &resp) + return +} + +// This method is used to remove access to a SoftLayer_Network_Storage volume that supports host- or network-level access control. +func (r Virtual_Guest) RemoveAccessToNetworkStorage(networkStorageTemplateObject *datatypes.Network_Storage) (resp bool, err error) { + params := []interface{}{ + networkStorageTemplateObject, + } + err = r.Session.DoRequest("SoftLayer_Virtual_Guest", "removeAccessToNetworkStorage", params, &r.Options, &resp) + return +} + +// This method is used to allow access to multiple SoftLayer_Network_Storage volumes that support host- or network-level access control. +func (r Virtual_Guest) RemoveAccessToNetworkStorageList(networkStorageTemplateObjects []datatypes.Network_Storage) (resp bool, err error) { + params := []interface{}{ + networkStorageTemplateObjects, + } + err = r.Session.DoRequest("SoftLayer_Virtual_Guest", "removeAccessToNetworkStorageList", params, &r.Options, &resp) + return +} + +// Resume a virtual guest +func (r Virtual_Guest) Resume() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Virtual_Guest", "resume", nil, &r.Options, &resp) + return +} + +// Sets the private network interface speed to the new speed. Speed values can only be 0 (Disconnect), 10, 100, or 1000. The new speed must be equal to or less than the max speed of the interface. +// +// It will take less than a minute to update the port speed. +func (r Virtual_Guest) SetPrivateNetworkInterfaceSpeed(newSpeed *int) (resp bool, err error) { + params := []interface{}{ + newSpeed, + } + err = r.Session.DoRequest("SoftLayer_Virtual_Guest", "setPrivateNetworkInterfaceSpeed", params, &r.Options, &resp) + return +} + +// Sets the public network interface speed to the new speed. Speed values can only be 0 (Disconnect), 10, 100, or 1000. The new speed must be equal to or less than the max speed of the interface. +// +// It will take less than a minute to update the port speed. +func (r Virtual_Guest) SetPublicNetworkInterfaceSpeed(newSpeed *int) (resp bool, err error) { + params := []interface{}{ + newSpeed, + } + err = r.Session.DoRequest("SoftLayer_Virtual_Guest", "setPublicNetworkInterfaceSpeed", params, &r.Options, &resp) + return +} + +// no documentation yet +func (r Virtual_Guest) SetTags(tags *string) (resp bool, err error) { + params := []interface{}{ + tags, + } + err = r.Session.DoRequest("SoftLayer_Virtual_Guest", "setTags", params, &r.Options, &resp) + return +} + +// Sets the data that will be written to the configuration drive. +func (r Virtual_Guest) SetUserMetadata(metadata []string) (resp bool, err error) { + params := []interface{}{ + metadata, + } + err = r.Session.DoRequest("SoftLayer_Virtual_Guest", "setUserMetadata", params, &r.Options, &resp) + return +} + +// Shuts down the private network port +func (r Virtual_Guest) ShutdownPrivatePort() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Virtual_Guest", "shutdownPrivatePort", nil, &r.Options, &resp) + return +} + +// Shuts down the public network port +func (r Virtual_Guest) ShutdownPublicPort() (resp bool, err error) { + err = r.Session.DoRequest("SoftLayer_Virtual_Guest", "shutdownPublicPort", nil, &r.Options, &resp) + return +} + +// no documentation yet +func (r Virtual_Guest) UnmountIsoImage() (resp datatypes.Provisioning_Version1_Transaction, err error) { + err = r.Session.DoRequest("SoftLayer_Virtual_Guest", "unmountIsoImage", nil, &r.Options, &resp) + return +} + +// Validate an image template for OS Reload +func (r Virtual_Guest) ValidateImageTemplate(imageTemplateId *int) (resp bool, err error) { + params := []interface{}{ + imageTemplateId, + } + err = r.Session.DoRequest("SoftLayer_Virtual_Guest", "validateImageTemplate", params, &r.Options, &resp) + return +} + +// Verify that a virtual server can go through the operating system reload process. It may be useful to call this method before attempting to actually reload the operating system just to verify that the reload will go smoothly. If the server configuration is not setup correctly or there is some other issue, an exception will be thrown indicating the error. If there were no issues, this will just return true. +func (r Virtual_Guest) VerifyReloadOperatingSystem(config *datatypes.Container_Hardware_Server_Configuration) (resp bool, err error) { + params := []interface{}{ + config, + } + err = r.Session.DoRequest("SoftLayer_Virtual_Guest", "verifyReloadOperatingSystem", params, &r.Options, &resp) + return +} + +// The virtual block device template group data type presents the structure in which a group of archived image templates will be presented. The structure consists of a parent template group which contain multiple child template group objects. Each child template group object represents the image template in a particular location. Unless editing/deleting a specific child template group object, it is best to use the parent object. +// +// A virtual block device template group, also known as an image template group, represents an image of a virtual guest instance. +type Virtual_Guest_Block_Device_Template_Group struct { + Session *session.Session + Options sl.Options +} + +// GetVirtualGuestBlockDeviceTemplateGroupService returns an instance of the Virtual_Guest_Block_Device_Template_Group SoftLayer service +func GetVirtualGuestBlockDeviceTemplateGroupService(sess *session.Session) Virtual_Guest_Block_Device_Template_Group { + return Virtual_Guest_Block_Device_Template_Group{Session: sess} +} + +func (r Virtual_Guest_Block_Device_Template_Group) Id(id int) Virtual_Guest_Block_Device_Template_Group { + r.Options.Id = &id + return r +} + +func (r Virtual_Guest_Block_Device_Template_Group) Mask(mask string) Virtual_Guest_Block_Device_Template_Group { + if !strings.HasPrefix(mask, "mask[") && (strings.Contains(mask, "[") || strings.Contains(mask, ",")) { + mask = fmt.Sprintf("mask[%s]", mask) + } + + r.Options.Mask = mask + return r +} + +func (r Virtual_Guest_Block_Device_Template_Group) Filter(filter string) Virtual_Guest_Block_Device_Template_Group { + r.Options.Filter = filter + return r +} + +func (r Virtual_Guest_Block_Device_Template_Group) Limit(limit int) Virtual_Guest_Block_Device_Template_Group { + r.Options.Limit = &limit + return r +} + +func (r Virtual_Guest_Block_Device_Template_Group) Offset(offset int) Virtual_Guest_Block_Device_Template_Group { + r.Options.Offset = &offset + return r +} + +// << 0 { + // parse the parameters + parameters, _ = json.Marshal( + map[string]interface{}{ + "parameters": args, + }) + } + + path := buildPath(service, method, options) + + resp, code, err := makeHTTPRequest( + sess, + path, + restMethod, + bytes.NewBuffer(parameters), + options) + + if err != nil { + return sl.Error{Wrapped: err} + } + + if code < 200 || code > 299 { + e := sl.Error{StatusCode: code} + + err = json.Unmarshal(resp, &e) + + // If unparseable, wrap the json error + if err != nil { + e.Wrapped = err + e.Message = err.Error() + } + + return e + } + + // Some APIs that normally return a collection, omit the []'s when the API returns a single value + returnType := reflect.TypeOf(pResult).String() + if strings.Index(returnType, "[]") == 1 && strings.Index(string(resp), "[") != 0 { + resp = []byte("[" + string(resp) + "]") + } + + // At this point, all that's left to do is parse the return value to the appropriate type, and return + // any parse errors (or nil if successful) + + err = nil + switch pResult.(type) { + case *[]uint8: + // exclude quotes + *pResult.(*[]uint8) = resp[1 : len(resp)-1] + case *datatypes.Void: + case *uint: + var val uint64 + val, err = strconv.ParseUint(string(resp), 0, 64) + if err == nil { + *pResult.(*uint) = uint(val) + } + case *bool: + *pResult.(*bool), err = strconv.ParseBool(string(resp)) + case *string: + str := string(resp) + strIdx := len(str) - 1 + if str == "null" { + str = "" + } else if str[0] == '"' && str[strIdx] == '"' { + rawStr := rawString{str} + err = json.Unmarshal([]byte(`{"val":`+str+`}`), &rawStr) + if err == nil { + str = rawStr.Val + } + } + *pResult.(*string) = str + default: + // Must be a json representation of one of the many softlayer datatypes + err = json.Unmarshal(resp, pResult) + } + + if err != nil { + err = sl.Error{Message: err.Error(), Wrapped: err} + } + + return err +} + +type rawString struct { + Val string +} + +func buildPath(service string, method string, options *sl.Options) string { + path := service + + if options.Id != nil { + path = path + "/" + strconv.Itoa(*options.Id) + } + + // omit the API method name if the method represents one of the basic REST methods + if method != "getObject" && method != "deleteObject" && method != "createObject" && + method != "createObjects" && method != "editObject" && method != "editObjects" { + path = path + "/" + method + } + + return path + ".json" +} + +func encodeQuery(opts *sl.Options) string { + query := new(url.URL).Query() + + if opts.Mask != "" { + query.Add("objectMask", opts.Mask) + } + + if opts.Filter != "" { + query.Add("objectFilter", opts.Filter) + } + + // resultLimit=, + // If offset unspecified, default to 0 + if opts.Limit != nil { + startOffset := 0 + if opts.Offset != nil { + startOffset = *opts.Offset + } + + query.Add("resultLimit", fmt.Sprintf("%d,%d", startOffset, *opts.Limit)) + } + + return query.Encode() +} + +func makeHTTPRequest(session *Session, path string, requestType string, requestBody *bytes.Buffer, options *sl.Options) ([]byte, int, error) { + log := Logger + client := http.DefaultClient + client.Timeout = DefaultTimeout + if session.Timeout != 0 { + client.Timeout = session.Timeout + } + + var url string + if session.Endpoint == "" { + url = url + DefaultEndpoint + } else { + url = url + session.Endpoint + } + url = fmt.Sprintf("%s/%s", strings.TrimRight(url, "/"), path) + req, err := http.NewRequest(requestType, url, requestBody) + if err != nil { + return nil, 0, err + } + + if session.APIKey != "" { + req.SetBasicAuth(session.UserName, session.APIKey) + } else if session.AuthToken != "" { + req.SetBasicAuth(fmt.Sprintf("%d", session.UserId), session.AuthToken) + } + + req.URL.RawQuery = encodeQuery(options) + + if session.Debug { + log.Println("[DEBUG] Request URL: ", requestType, req.URL) + log.Println("[DEBUG] Parameters: ", requestBody.String()) + } + + resp, err := client.Do(req) + if err != nil { + return nil, 520, err + } + + defer resp.Body.Close() + + responseBody, err := ioutil.ReadAll(resp.Body) + if err != nil { + return nil, resp.StatusCode, err + } + + if session.Debug { + log.Println("[DEBUG] Response: ", string(responseBody)) + } + return responseBody, resp.StatusCode, nil +} + +func httpMethod(name string, args []interface{}) string { + if name == "deleteObject" { + return "DELETE" + } else if name == "editObject" || name == "editObjects" { + return "PUT" + } else if name == "createObject" || name == "createObjects" || len(args) > 0 { + return "POST" + } + + return "GET" +} diff --git a/vendor/github.com/softlayer/softlayer-go/session/session.go b/vendor/github.com/softlayer/softlayer-go/session/session.go new file mode 100644 index 000000000..0f7e0917e --- /dev/null +++ b/vendor/github.com/softlayer/softlayer-go/session/session.go @@ -0,0 +1,234 @@ +/** + * Copyright 2016 IBM Corp. + * + * 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 session + +import ( + "fmt" + "log" + "os" + "os/user" + "strings" + "time" + + "github.com/softlayer/softlayer-go/config" + "github.com/softlayer/softlayer-go/sl" +) + +// Logger is the logger used by the SoftLayer session package. Can be overridden by the user. +var Logger *log.Logger + +func init() { + // initialize the logger used by the session package. + Logger = log.New(os.Stderr, "", log.LstdFlags) +} + +// DefaultEndpoint is the default endpoint for API calls, when no override +// is provided. +const DefaultEndpoint = "https://api.softlayer.com/rest/v3" + +// TransportHandler +type TransportHandler interface { + // DoRequest is the protocol-specific handler for making API requests. + // + // sess is a reference to the current session object, where authentication and + // endpoint information can be found. + // + // service and method are the SoftLayer service name and method name, exactly as they + // are documented at http://sldn.softlayer.com/reference/softlayerapi (i.e., with the + // 'SoftLayer_' prefix and properly cased. + // + // args is a slice of arguments required for the service method being invoked. The + // types of each argument varies. See the method definition in the services package + // for the expected type of each argument. + // + // options is an sl.Options struct, containing any mask, filter, or result limit values + // to be applied. + // + // pResult is a pointer to a variable to be populated with the result of the API call. + // DoRequest should ensure that the native API response (i.e., XML or JSON) is correctly + // unmarshaled into the result structure. + // + // A sl.Error is returned, and can be (with a type assertion) inspected for details of + // the error (http code, API error message, etc.), or simply handled as a generic error, + // (in which case no type assertion would be necessary) + DoRequest( + sess *Session, + service string, + method string, + args []interface{}, + options *sl.Options, + pResult interface{}) error +} + +const DefaultTimeout = time.Second * 120 + +// Session stores the information required for communication with the SoftLayer +// API +type Session struct { + // UserName is the name of the SoftLayer API user + UserName string + + // ApiKey is the secret for making API calls + APIKey string + + // Endpoint is the SoftLayer API endpoint to communicate with + Endpoint string + + // UserId is the user id for token-based authentication + UserId int + + // AuthToken is the token secret for token-based authentication + AuthToken string + + // Debug controls logging of request details (URI, parameters, etc.) + Debug bool + + // The handler whose DoRequest() function will be called for each API request. + // Handles the request and any response parsing specific to the desired protocol + // (e.g., REST). Set automatically for a new Session, based on the + // provided Endpoint. + TransportHandler TransportHandler + + // Timeout specifies a time limit for http requests made by this + // session. Requests that take longer that the specified timeout + // will result in an error. + Timeout time.Duration +} + +// New creates and returns a pointer to a new session object. It takes up to +// three parameters, all of which are optional. If specified, they will be +// interpreted in the following sequence: +// +// 1. UserName +// 2. Api Key +// 3. Endpoint +// 4. Timeout +// +// If one or more are omitted, New() will attempt to retrieve these values from +// the environment, and the ~/.softlayer config file, in that order. +func New(args ...interface{}) *Session { + keys := map[string]int{"username": 0, "api_key": 1, "endpoint_url": 2, "timeout": 3} + values := []string{"", "", "", ""} + + for i := 0; i < len(args); i++ { + values[i] = args[i].(string) + } + + // Default to the environment variables + + // Prioritize SL_USERNAME + envFallback("SL_USERNAME", &values[keys["username"]]) + envFallback("SOFTLAYER_USERNAME", &values[keys["username"]]) + + // Prioritize SL_API_KEY + envFallback("SL_API_KEY", &values[keys["api_key"]]) + envFallback("SOFTLAYER_API_KEY", &values[keys["api_key"]]) + + // Prioritize SL_ENDPOINT_URL + envFallback("SL_ENDPOINT_URL", &values[keys["endpoint_url"]]) + envFallback("SOFTLAYER_ENDPOINT_URL", &values[keys["endpoint_url"]]) + + envFallback("SL_TIMEOUT", &values[keys["timeout"]]) + envFallback("SOFTLAYER_TIMEOUT", &values[keys["timeout"]]) + + // Read ~/.softlayer for configuration + var homeDir string + u, err := user.Current() + if err != nil { + for _, name := range []string{"HOME", "USERPROFILE"} { // *nix, windows + if dir := os.Getenv(name); dir != "" { + homeDir = dir + break + } + } + } else { + homeDir = u.HomeDir + } + + if homeDir != "" { + configPath := fmt.Sprintf("%s/.softlayer", homeDir) + if _, err = os.Stat(configPath); !os.IsNotExist(err) { + // config file exists + file, err := config.LoadFile(configPath) + if err != nil { + log.Println(fmt.Sprintf("[WARN] session: Could not parse %s : %s", configPath, err)) + } else { + for k, v := range keys { + value, ok := file.Get("softlayer", k) + if ok && values[v] == "" { + values[v] = value + } + } + } + } + } else { + log.Println("[WARN] session: home dir could not be determined. Skipping read of ~/.softlayer.") + } + + endpointURL := values[keys["endpoint_url"]] + if endpointURL == "" { + endpointURL = DefaultEndpoint + } + + sess := &Session{ + UserName: values[keys["username"]], + APIKey: values[keys["api_key"]], + Endpoint: endpointURL, + } + + timeout := values[keys["timeout"]] + if timeout != "" { + timeoutDuration, err := time.ParseDuration(fmt.Sprintf("%ss", timeout)) + if err == nil { + sess.Timeout = timeoutDuration + } + } + + return sess +} + +// DoRequest hands off the processing to the assigned transport handler. It is +// normally called internally by the service objects, but is exported so that it can +// be invoked directly by client code in exceptional cases where direct control is +// needed over one of the parameters. +// +// For a description of parameters, see TransportHandler.DoRequest in this package +func (r *Session) DoRequest(service string, method string, args []interface{}, options *sl.Options, pResult interface{}) error { + if r.TransportHandler == nil { + r.TransportHandler = getDefaultTransport(r.Endpoint) + } + + return r.TransportHandler.DoRequest(r, service, method, args, options, pResult) +} + +func envFallback(keyName string, value *string) { + if *value == "" { + *value = os.Getenv(keyName) + } +} + +func getDefaultTransport(endpointURL string) TransportHandler { + var transportHandler TransportHandler + + if strings.Contains(endpointURL, "/xmlrpc/") { + transportHandler = &XmlRpcTransport{} + } else { + transportHandler = &RestTransport{} + } + + return transportHandler +} diff --git a/vendor/github.com/softlayer/softlayer-go/session/xmlrpc.go b/vendor/github.com/softlayer/softlayer-go/session/xmlrpc.go new file mode 100644 index 000000000..fa8305c20 --- /dev/null +++ b/vendor/github.com/softlayer/softlayer-go/session/xmlrpc.go @@ -0,0 +1,195 @@ +/** + * Copyright 2016 IBM Corp. + * + * 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 session + +import ( + "encoding/json" + "fmt" + "net/http" + "net/http/httputil" + "strings" + + "github.com/renier/xmlrpc" + "github.com/softlayer/softlayer-go/sl" +) + +// Debugging RoundTripper +type debugRoundTripper struct{} + +func (mrt debugRoundTripper) RoundTrip(request *http.Request) (*http.Response, error) { + log := Logger + log.Println("->>>Request:") + dumpedReq, _ := httputil.DumpRequestOut(request, true) + log.Println(string(dumpedReq)) + + response, err := http.DefaultTransport.RoundTrip(request) + if err != nil { + log.Println("Error:", err) + return response, err + } + + log.Println("\n\n<<<-Response:") + dumpedResp, _ := httputil.DumpResponse(response, true) + log.Println(string(dumpedResp)) + + return response, err +} + +// XML-RPC Transport +type XmlRpcTransport struct{} + +func (x *XmlRpcTransport) DoRequest( + sess *Session, + service string, + method string, + args []interface{}, + options *sl.Options, + pResult interface{}, +) error { + + serviceUrl := fmt.Sprintf("%s/%s", strings.TrimRight(sess.Endpoint, "/"), service) + + var roundTripper http.RoundTripper + if sess.Debug { + roundTripper = debugRoundTripper{} + } + + timeout := DefaultTimeout + if sess.Timeout != 0 { + timeout = sess.Timeout + } + + client, err := xmlrpc.NewClient(serviceUrl, roundTripper, timeout) + if err != nil { + return fmt.Errorf("Could not create an xmlrpc client for %s: %s", service, err) + } + + authenticate := map[string]interface{}{} + if sess.UserName != "" { + authenticate["username"] = sess.UserName + } + + if sess.APIKey != "" { + authenticate["apiKey"] = sess.APIKey + } + + if sess.UserId != 0 { + authenticate["userId"] = sess.UserId + authenticate["complexType"] = "PortalLoginToken" + } + + if sess.AuthToken != "" { + authenticate["authToken"] = sess.AuthToken + authenticate["complexType"] = "PortalLoginToken" + } + + headers := map[string]interface{}{} + if len(authenticate) > 0 { + headers["authenticate"] = authenticate + } + + if options.Id != nil { + headers[fmt.Sprintf("%sInitParameters", service)] = map[string]int{ + "id": *options.Id, + } + } + + mask := options.Mask + if mask != "" { + if !strings.HasPrefix(mask, "mask[") && !strings.Contains(mask, ";") && strings.Contains(mask, ",") { + mask = fmt.Sprintf("mask[%s]", mask) + headers["SoftLayer_ObjectMask"] = map[string]string{"mask": mask} + } else { + headers[fmt.Sprintf("%sObjectMask", service)] = + map[string]interface{}{"mask": genXMLMask(mask)} + } + } + + if options.Filter != "" { + // FIXME: This json unmarshaling presents a performance problem, + // since the filter builder marshals a data structure to json. + // This then undoes that step to pass it to the xmlrpc request. + // It would be better to get the umarshaled data structure + // from the filter builder, but that will require changes to the + // public API in Options. + objFilter := map[string]interface{}{} + err := json.Unmarshal([]byte(options.Filter), &objFilter) + if err != nil { + return fmt.Errorf("Error encoding object filter: %s", err) + } + headers[fmt.Sprintf("%sObjectFilter", service)] = objFilter + } + + if options.Limit != nil { + offset := 0 + if options.Offset != nil { + offset = *options.Offset + } + + headers["resultLimit"] = map[string]int{ + "limit": *options.Limit, + "offset": offset, + } + } + + // Add incoming arguments to xmlrpc parameter array + params := []interface{}{} + + if len(headers) > 0 { + params = append(params, map[string]interface{}{"headers": headers}) + } + + for _, arg := range args { + params = append(params, arg) + } + + err = client.Call(method, params, pResult) + if xmlRpcError, ok := err.(*xmlrpc.XmlRpcError); ok { + return sl.Error{ + StatusCode: xmlRpcError.HttpStatusCode, + Exception: xmlRpcError.Code.(string), + Message: xmlRpcError.Err, + } + } + + return err +} + +func genXMLMask(mask string) interface{} { + objectMask := map[string]interface{}{} + for _, item := range strings.Split(mask, ";") { + if !strings.Contains(item, ".") { + objectMask[item] = []string{} + continue + } + + level := objectMask + names := strings.Split(item, ".") + totalNames := len(names) + for i, name := range names { + if i == totalNames-1 { + level[name] = []string{} + continue + } + + level[name] = map[string]interface{}{} + level = level[name].(map[string]interface{}) + } + } + + return objectMask +} diff --git a/vendor/github.com/softlayer/softlayer-go/sl/errors.go b/vendor/github.com/softlayer/softlayer-go/sl/errors.go new file mode 100644 index 000000000..fe638ab62 --- /dev/null +++ b/vendor/github.com/softlayer/softlayer-go/sl/errors.go @@ -0,0 +1,49 @@ +/** + * Copyright 2016 IBM Corp. + * + * 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 sl + +import "fmt" + +// Error contains detailed information about an API error, which can be useful +// for debugging, or when finer error handling is required than just the mere +// presence or absence of an error. +// +// Error implements the error interface +type Error struct { + StatusCode int + Exception string `json:"code"` + Message string `json:"error"` + Wrapped error +} + +func (r Error) Error() string { + if r.Wrapped != nil { + return r.Wrapped.Error() + } + + var msg string + if r.Exception != "" { + msg = r.Exception + ": " + } + if r.Message != "" { + msg = msg + r.Message + " " + } + if r.StatusCode != 0 { + msg = fmt.Sprintf("%s(HTTP %d)", msg, r.StatusCode) + } + return msg +} diff --git a/vendor/github.com/softlayer/softlayer-go/sl/helpers.go b/vendor/github.com/softlayer/softlayer-go/sl/helpers.go new file mode 100644 index 000000000..6a3090672 --- /dev/null +++ b/vendor/github.com/softlayer/softlayer-go/sl/helpers.go @@ -0,0 +1,175 @@ +/** + * Copyright 2016 IBM Corp. + * + * 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 sl has convenience functions for returning pointers to values +package sl + +import ( + "reflect" + "strings" + "time" + + "github.com/softlayer/softlayer-go/datatypes" +) + +// Int returns a pointer to the int value provided +func Int(v int) *int { + return &v +} + +// Uint returns a pointer to the uint value provided +func Uint(v uint) *uint { + return &v +} + +// String returns a pointer to the string value provided +func String(v string) *string { + return &v +} + +// Bool returns a pointer to the bool value provided +func Bool(v bool) *bool { + return &v +} + +// Time converts the time.Time value provided to a datatypes.Time value, +// and returns a pointer to it +func Time(v time.Time) *datatypes.Time { + r := datatypes.Time{Time: v} + return &r +} + +// Float converts the float value provided to a datatypes.Float64 value, +// and returns a pointer to it +func Float(v float64) *datatypes.Float64 { + r := datatypes.Float64(v) + return &r +} + +// Convenience functions to simplify dereference of datatype properties + +// Get returns the value of p, either p itself, or, if p is a pointer, the +// value that p points to. d is an optional default value to be returned +// in the event that p is nil. If d is not specified, and p is nil, a +// type-appropriate zero-value is returned instead. +func Get(p interface{}, d ...interface{}) interface{} { + var ( + val interface{} + ok bool + ) + + if val, ok = GetOk(p); ok { + return val + } + + if len(d) > 0 { + return d[0] + } + + return val +} + +// GetOk returns the value of p, either p itself, or, if p is a pointer, the +// value that p points to. If p is nil, a type-appropriate zero-value is +// returned instead. If p is a value or non-nil pointer, the second return +// value will be true. Otherwise, it will be false. +func GetOk(p interface{}) (interface{}, bool) { + t := reflect.TypeOf(p) + + // if p is a non-pointer, just return it + if t.Kind() != reflect.Ptr { + return p, true + } + + // p is a pointer. If non-nil, return the value pointed to + v := reflect.Indirect(reflect.ValueOf(p)) + if v.IsValid() { + return v.Interface(), true + } + + // p is a nil pointer. Return the zero value for the pointed-to type + return reflect.Zero(t.Elem()).Interface(), false +} + +// Grab returns the value specified by the path given, +// starting from the struct s. +// If at any point in the path the lookup falls short +// (i.e. a field is not found), or if the last field in the path is nil +// itself, a type-appropriate zero-value is returned. +// This behavior can be overidden by providing a default value. +// +// This is useful for getting values our of deeply nested structures +// Example: val := sl.Grab(virtualGuest, "Datacenter.Name") +func Grab(s interface{}, path string, d ...interface{}) interface{} { + var ( + val interface{} + ok bool + ) + + if val, ok = GrabOk(s, path); ok { + return val + } + + if len(d) > 0 { + return d[0] + } + + return val +} + +// GrabOk returns the value specified by the path given, +// starting from the struct s. +// If at any point in the path the lookup falls short +// (i.e. a field is not found), or if the last field in the path is nil +// itself, a type-appropriate zero-value is returned. +// It returns a second value, a boolean, which will be false if it failed +// to lookup the value, including if the last field in the path was nil. +// +// This is useful for getting values our of deeply nested structures +// Example: val, ok := sl.GrabOk(virtualGuest, "Datacenter.Name") +func GrabOk(s interface{}, path string) (interface{}, bool) { + t := reflect.TypeOf(s) + if t.Kind() != reflect.Struct { + return nil, false + } + + dotIndex := strings.Index(path, ".") + if dotIndex == -1 { + dotIndex = len(path) + } + + fieldName := path[0:dotIndex] + val := reflect.ValueOf(s) + fieldVal := val.FieldByName(fieldName) + if fieldVal.Kind() == reflect.Ptr { + if fieldVal.IsNil() { + return reflect.Zero(fieldVal.Type().Elem()).Interface(), false + } + + fieldVal = reflect.Indirect(fieldVal) + } + + result, ok := GetOk(fieldVal.Interface()) + if !ok { + return result, ok + } + + if dotIndex == len(path) { + return result, ok + } + + return GrabOk(result, path[dotIndex+1:len(path)]) +} diff --git a/vendor/github.com/softlayer/softlayer-go/sl/options.go b/vendor/github.com/softlayer/softlayer-go/sl/options.go new file mode 100644 index 000000000..5d1dd0aaf --- /dev/null +++ b/vendor/github.com/softlayer/softlayer-go/sl/options.go @@ -0,0 +1,27 @@ +/** + * Copyright 2016 IBM Corp. + * + * 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 sl + +// Options contains the individual query parameters that can be applied to +// a request. +type Options struct { + Id *int + Mask string + Filter string + Limit *int + Offset *int +} diff --git a/vendor/github.com/softlayer/softlayer-go/sl/version.go b/vendor/github.com/softlayer/softlayer-go/sl/version.go new file mode 100644 index 000000000..8f36a8d09 --- /dev/null +++ b/vendor/github.com/softlayer/softlayer-go/sl/version.go @@ -0,0 +1,47 @@ +/** + * Copyright 2016 IBM Corp. + * + * 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. + */ + +/** + * AUTOMATICALLY GENERATED CODE - DO NOT MODIFY + */ + +package sl + +import "fmt" + +type VersionInfo struct { + Major int + Minor int + Patch int + Pre string +} + +var Version = VersionInfo{ + Major: 0, + Minor: 1, + Patch: 0, + Pre: "alpha", +} + +func (v VersionInfo) String() string { + result := fmt.Sprintf("v%d.%d.%d", v.Major, v.Minor, v.Patch) + + if v.Pre != "" { + result += fmt.Sprintf("-%s", v.Pre) + } + + return result +} diff --git a/vendor/golang.org/x/text/encoding/charmap/charmap.go b/vendor/golang.org/x/text/encoding/charmap/charmap.go new file mode 100644 index 000000000..e89ff0734 --- /dev/null +++ b/vendor/golang.org/x/text/encoding/charmap/charmap.go @@ -0,0 +1,249 @@ +// Copyright 2013 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:generate go run maketables.go + +// Package charmap provides simple character encodings such as IBM Code Page 437 +// and Windows 1252. +package charmap // import "golang.org/x/text/encoding/charmap" + +import ( + "unicode/utf8" + + "golang.org/x/text/encoding" + "golang.org/x/text/encoding/internal" + "golang.org/x/text/encoding/internal/identifier" + "golang.org/x/text/transform" +) + +// These encodings vary only in the way clients should interpret them. Their +// coded character set is identical and a single implementation can be shared. +var ( + // ISO8859_6E is the ISO 8859-6E encoding. + ISO8859_6E encoding.Encoding = &iso8859_6E + + // ISO8859_6I is the ISO 8859-6I encoding. + ISO8859_6I encoding.Encoding = &iso8859_6I + + // ISO8859_8E is the ISO 8859-8E encoding. + ISO8859_8E encoding.Encoding = &iso8859_8E + + // ISO8859_8I is the ISO 8859-8I encoding. + ISO8859_8I encoding.Encoding = &iso8859_8I + + iso8859_6E = internal.Encoding{ + Encoding: ISO8859_6, + Name: "ISO-8859-6E", + MIB: identifier.ISO88596E, + } + + iso8859_6I = internal.Encoding{ + Encoding: ISO8859_6, + Name: "ISO-8859-6I", + MIB: identifier.ISO88596I, + } + + iso8859_8E = internal.Encoding{ + Encoding: ISO8859_8, + Name: "ISO-8859-8E", + MIB: identifier.ISO88598E, + } + + iso8859_8I = internal.Encoding{ + Encoding: ISO8859_8, + Name: "ISO-8859-8I", + MIB: identifier.ISO88598I, + } +) + +// All is a list of all defined encodings in this package. +var All []encoding.Encoding = listAll + +// TODO: implement these encodings, in order of importance. +// ASCII, ISO8859_1: Rather common. Close to Windows 1252. +// ISO8859_9: Close to Windows 1254. + +// utf8Enc holds a rune's UTF-8 encoding in data[:len]. +type utf8Enc struct { + len uint8 + data [3]byte +} + +// Charmap is an 8-bit character set encoding. +type Charmap struct { + // name is the encoding's name. + name string + // mib is the encoding type of this encoder. + mib identifier.MIB + // asciiSuperset states whether the encoding is a superset of ASCII. + asciiSuperset bool + // low is the lower bound of the encoded byte for a non-ASCII rune. If + // Charmap.asciiSuperset is true then this will be 0x80, otherwise 0x00. + low uint8 + // replacement is the encoded replacement character. + replacement byte + // decode is the map from encoded byte to UTF-8. + decode [256]utf8Enc + // encoding is the map from runes to encoded bytes. Each entry is a + // uint32: the high 8 bits are the encoded byte and the low 24 bits are + // the rune. The table entries are sorted by ascending rune. + encode [256]uint32 +} + +// NewDecoder implements the encoding.Encoding interface. +func (m *Charmap) NewDecoder() *encoding.Decoder { + return &encoding.Decoder{Transformer: charmapDecoder{charmap: m}} +} + +// NewEncoder implements the encoding.Encoding interface. +func (m *Charmap) NewEncoder() *encoding.Encoder { + return &encoding.Encoder{Transformer: charmapEncoder{charmap: m}} +} + +// String returns the Charmap's name. +func (m *Charmap) String() string { + return m.name +} + +// ID implements an internal interface. +func (m *Charmap) ID() (mib identifier.MIB, other string) { + return m.mib, "" +} + +// charmapDecoder implements transform.Transformer by decoding to UTF-8. +type charmapDecoder struct { + transform.NopResetter + charmap *Charmap +} + +func (m charmapDecoder) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) { + for i, c := range src { + if m.charmap.asciiSuperset && c < utf8.RuneSelf { + if nDst >= len(dst) { + err = transform.ErrShortDst + break + } + dst[nDst] = c + nDst++ + nSrc = i + 1 + continue + } + + decode := &m.charmap.decode[c] + n := int(decode.len) + if nDst+n > len(dst) { + err = transform.ErrShortDst + break + } + // It's 15% faster to avoid calling copy for these tiny slices. + for j := 0; j < n; j++ { + dst[nDst] = decode.data[j] + nDst++ + } + nSrc = i + 1 + } + return nDst, nSrc, err +} + +// DecodeByte returns the Charmap's rune decoding of the byte b. +func (m *Charmap) DecodeByte(b byte) rune { + switch x := &m.decode[b]; x.len { + case 1: + return rune(x.data[0]) + case 2: + return rune(x.data[0]&0x1f)<<6 | rune(x.data[1]&0x3f) + default: + return rune(x.data[0]&0x0f)<<12 | rune(x.data[1]&0x3f)<<6 | rune(x.data[2]&0x3f) + } +} + +// charmapEncoder implements transform.Transformer by encoding from UTF-8. +type charmapEncoder struct { + transform.NopResetter + charmap *Charmap +} + +func (m charmapEncoder) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) { + r, size := rune(0), 0 +loop: + for nSrc < len(src) { + if nDst >= len(dst) { + err = transform.ErrShortDst + break + } + r = rune(src[nSrc]) + + // Decode a 1-byte rune. + if r < utf8.RuneSelf { + if m.charmap.asciiSuperset { + nSrc++ + dst[nDst] = uint8(r) + nDst++ + continue + } + size = 1 + + } else { + // Decode a multi-byte rune. + r, size = utf8.DecodeRune(src[nSrc:]) + if size == 1 { + // All valid runes of size 1 (those below utf8.RuneSelf) were + // handled above. We have invalid UTF-8 or we haven't seen the + // full character yet. + if !atEOF && !utf8.FullRune(src[nSrc:]) { + err = transform.ErrShortSrc + } else { + err = internal.RepertoireError(m.charmap.replacement) + } + break + } + } + + // Binary search in [low, high) for that rune in the m.charmap.encode table. + for low, high := int(m.charmap.low), 0x100; ; { + if low >= high { + err = internal.RepertoireError(m.charmap.replacement) + break loop + } + mid := (low + high) / 2 + got := m.charmap.encode[mid] + gotRune := rune(got & (1<<24 - 1)) + if gotRune < r { + low = mid + 1 + } else if gotRune > r { + high = mid + } else { + dst[nDst] = byte(got >> 24) + nDst++ + break + } + } + nSrc += size + } + return nDst, nSrc, err +} + +// EncodeRune returns the Charmap's byte encoding of the rune r. ok is whether +// r is in the Charmap's repertoire. If not, b is set to the Charmap's +// replacement byte. This is often the ASCII substitute character '\x1a'. +func (m *Charmap) EncodeRune(r rune) (b byte, ok bool) { + if r < utf8.RuneSelf && m.asciiSuperset { + return byte(r), true + } + for low, high := int(m.low), 0x100; ; { + if low >= high { + return m.replacement, false + } + mid := (low + high) / 2 + got := m.encode[mid] + gotRune := rune(got & (1<<24 - 1)) + if gotRune < r { + low = mid + 1 + } else if gotRune > r { + high = mid + } else { + return byte(got >> 24), true + } + } +} diff --git a/vendor/golang.org/x/text/encoding/charmap/maketables.go b/vendor/golang.org/x/text/encoding/charmap/maketables.go new file mode 100644 index 000000000..f7941701e --- /dev/null +++ b/vendor/golang.org/x/text/encoding/charmap/maketables.go @@ -0,0 +1,556 @@ +// Copyright 2013 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// +build ignore + +package main + +import ( + "bufio" + "fmt" + "log" + "net/http" + "sort" + "strings" + "unicode/utf8" + + "golang.org/x/text/encoding" + "golang.org/x/text/internal/gen" +) + +const ascii = "\x00\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f" + + "\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f" + + ` !"#$%&'()*+,-./0123456789:;<=>?` + + `@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_` + + "`abcdefghijklmnopqrstuvwxyz{|}~\u007f" + +var encodings = []struct { + name string + mib string + comment string + varName string + replacement byte + mapping string +}{ + { + "IBM Code Page 037", + "IBM037", + "", + "CodePage037", + 0x3f, + "http://source.icu-project.org/repos/icu/data/trunk/charset/data/ucm/glibc-IBM037-2.1.2.ucm", + }, + { + "IBM Code Page 437", + "PC8CodePage437", + "", + "CodePage437", + encoding.ASCIISub, + "http://source.icu-project.org/repos/icu/data/trunk/charset/data/ucm/glibc-IBM437-2.1.2.ucm", + }, + { + "IBM Code Page 850", + "PC850Multilingual", + "", + "CodePage850", + encoding.ASCIISub, + "http://source.icu-project.org/repos/icu/data/trunk/charset/data/ucm/glibc-IBM850-2.1.2.ucm", + }, + { + "IBM Code Page 852", + "PCp852", + "", + "CodePage852", + encoding.ASCIISub, + "http://source.icu-project.org/repos/icu/data/trunk/charset/data/ucm/glibc-IBM852-2.1.2.ucm", + }, + { + "IBM Code Page 855", + "IBM855", + "", + "CodePage855", + encoding.ASCIISub, + "http://source.icu-project.org/repos/icu/data/trunk/charset/data/ucm/glibc-IBM855-2.1.2.ucm", + }, + { + "Windows Code Page 858", // PC latin1 with Euro + "IBM00858", + "", + "CodePage858", + encoding.ASCIISub, + "http://source.icu-project.org/repos/icu/data/trunk/charset/data/ucm/windows-858-2000.ucm", + }, + { + "IBM Code Page 860", + "IBM860", + "", + "CodePage860", + encoding.ASCIISub, + "http://source.icu-project.org/repos/icu/data/trunk/charset/data/ucm/glibc-IBM860-2.1.2.ucm", + }, + { + "IBM Code Page 862", + "PC862LatinHebrew", + "", + "CodePage862", + encoding.ASCIISub, + "http://source.icu-project.org/repos/icu/data/trunk/charset/data/ucm/glibc-IBM862-2.1.2.ucm", + }, + { + "IBM Code Page 863", + "IBM863", + "", + "CodePage863", + encoding.ASCIISub, + "http://source.icu-project.org/repos/icu/data/trunk/charset/data/ucm/glibc-IBM863-2.1.2.ucm", + }, + { + "IBM Code Page 865", + "IBM865", + "", + "CodePage865", + encoding.ASCIISub, + "http://source.icu-project.org/repos/icu/data/trunk/charset/data/ucm/glibc-IBM865-2.1.2.ucm", + }, + { + "IBM Code Page 866", + "IBM866", + "", + "CodePage866", + encoding.ASCIISub, + "http://encoding.spec.whatwg.org/index-ibm866.txt", + }, + { + "IBM Code Page 1047", + "IBM1047", + "", + "CodePage1047", + 0x3f, + "http://source.icu-project.org/repos/icu/data/trunk/charset/data/ucm/glibc-IBM1047-2.1.2.ucm", + }, + { + "IBM Code Page 1140", + "IBM01140", + "", + "CodePage1140", + 0x3f, + "http://source.icu-project.org/repos/icu/data/trunk/charset/data/ucm/ibm-1140_P100-1997.ucm", + }, + { + "ISO 8859-1", + "ISOLatin1", + "", + "ISO8859_1", + encoding.ASCIISub, + "http://source.icu-project.org/repos/icu/data/trunk/charset/data/ucm/iso-8859_1-1998.ucm", + }, + { + "ISO 8859-2", + "ISOLatin2", + "", + "ISO8859_2", + encoding.ASCIISub, + "http://encoding.spec.whatwg.org/index-iso-8859-2.txt", + }, + { + "ISO 8859-3", + "ISOLatin3", + "", + "ISO8859_3", + encoding.ASCIISub, + "http://encoding.spec.whatwg.org/index-iso-8859-3.txt", + }, + { + "ISO 8859-4", + "ISOLatin4", + "", + "ISO8859_4", + encoding.ASCIISub, + "http://encoding.spec.whatwg.org/index-iso-8859-4.txt", + }, + { + "ISO 8859-5", + "ISOLatinCyrillic", + "", + "ISO8859_5", + encoding.ASCIISub, + "http://encoding.spec.whatwg.org/index-iso-8859-5.txt", + }, + { + "ISO 8859-6", + "ISOLatinArabic", + "", + "ISO8859_6,ISO8859_6E,ISO8859_6I", + encoding.ASCIISub, + "http://encoding.spec.whatwg.org/index-iso-8859-6.txt", + }, + { + "ISO 8859-7", + "ISOLatinGreek", + "", + "ISO8859_7", + encoding.ASCIISub, + "http://encoding.spec.whatwg.org/index-iso-8859-7.txt", + }, + { + "ISO 8859-8", + "ISOLatinHebrew", + "", + "ISO8859_8,ISO8859_8E,ISO8859_8I", + encoding.ASCIISub, + "http://encoding.spec.whatwg.org/index-iso-8859-8.txt", + }, + { + "ISO 8859-9", + "ISOLatin5", + "", + "ISO8859_9", + encoding.ASCIISub, + "http://source.icu-project.org/repos/icu/data/trunk/charset/data/ucm/iso-8859_9-1999.ucm", + }, + { + "ISO 8859-10", + "ISOLatin6", + "", + "ISO8859_10", + encoding.ASCIISub, + "http://encoding.spec.whatwg.org/index-iso-8859-10.txt", + }, + { + "ISO 8859-13", + "ISO885913", + "", + "ISO8859_13", + encoding.ASCIISub, + "http://encoding.spec.whatwg.org/index-iso-8859-13.txt", + }, + { + "ISO 8859-14", + "ISO885914", + "", + "ISO8859_14", + encoding.ASCIISub, + "http://encoding.spec.whatwg.org/index-iso-8859-14.txt", + }, + { + "ISO 8859-15", + "ISO885915", + "", + "ISO8859_15", + encoding.ASCIISub, + "http://encoding.spec.whatwg.org/index-iso-8859-15.txt", + }, + { + "ISO 8859-16", + "ISO885916", + "", + "ISO8859_16", + encoding.ASCIISub, + "http://encoding.spec.whatwg.org/index-iso-8859-16.txt", + }, + { + "KOI8-R", + "KOI8R", + "", + "KOI8R", + encoding.ASCIISub, + "http://encoding.spec.whatwg.org/index-koi8-r.txt", + }, + { + "KOI8-U", + "KOI8U", + "", + "KOI8U", + encoding.ASCIISub, + "http://encoding.spec.whatwg.org/index-koi8-u.txt", + }, + { + "Macintosh", + "Macintosh", + "", + "Macintosh", + encoding.ASCIISub, + "http://encoding.spec.whatwg.org/index-macintosh.txt", + }, + { + "Macintosh Cyrillic", + "MacintoshCyrillic", + "", + "MacintoshCyrillic", + encoding.ASCIISub, + "http://encoding.spec.whatwg.org/index-x-mac-cyrillic.txt", + }, + { + "Windows 874", + "Windows874", + "", + "Windows874", + encoding.ASCIISub, + "http://encoding.spec.whatwg.org/index-windows-874.txt", + }, + { + "Windows 1250", + "Windows1250", + "", + "Windows1250", + encoding.ASCIISub, + "http://encoding.spec.whatwg.org/index-windows-1250.txt", + }, + { + "Windows 1251", + "Windows1251", + "", + "Windows1251", + encoding.ASCIISub, + "http://encoding.spec.whatwg.org/index-windows-1251.txt", + }, + { + "Windows 1252", + "Windows1252", + "", + "Windows1252", + encoding.ASCIISub, + "http://encoding.spec.whatwg.org/index-windows-1252.txt", + }, + { + "Windows 1253", + "Windows1253", + "", + "Windows1253", + encoding.ASCIISub, + "http://encoding.spec.whatwg.org/index-windows-1253.txt", + }, + { + "Windows 1254", + "Windows1254", + "", + "Windows1254", + encoding.ASCIISub, + "http://encoding.spec.whatwg.org/index-windows-1254.txt", + }, + { + "Windows 1255", + "Windows1255", + "", + "Windows1255", + encoding.ASCIISub, + "http://encoding.spec.whatwg.org/index-windows-1255.txt", + }, + { + "Windows 1256", + "Windows1256", + "", + "Windows1256", + encoding.ASCIISub, + "http://encoding.spec.whatwg.org/index-windows-1256.txt", + }, + { + "Windows 1257", + "Windows1257", + "", + "Windows1257", + encoding.ASCIISub, + "http://encoding.spec.whatwg.org/index-windows-1257.txt", + }, + { + "Windows 1258", + "Windows1258", + "", + "Windows1258", + encoding.ASCIISub, + "http://encoding.spec.whatwg.org/index-windows-1258.txt", + }, + { + "X-User-Defined", + "XUserDefined", + "It is defined at http://encoding.spec.whatwg.org/#x-user-defined", + "XUserDefined", + encoding.ASCIISub, + ascii + + "\uf780\uf781\uf782\uf783\uf784\uf785\uf786\uf787" + + "\uf788\uf789\uf78a\uf78b\uf78c\uf78d\uf78e\uf78f" + + "\uf790\uf791\uf792\uf793\uf794\uf795\uf796\uf797" + + "\uf798\uf799\uf79a\uf79b\uf79c\uf79d\uf79e\uf79f" + + "\uf7a0\uf7a1\uf7a2\uf7a3\uf7a4\uf7a5\uf7a6\uf7a7" + + "\uf7a8\uf7a9\uf7aa\uf7ab\uf7ac\uf7ad\uf7ae\uf7af" + + "\uf7b0\uf7b1\uf7b2\uf7b3\uf7b4\uf7b5\uf7b6\uf7b7" + + "\uf7b8\uf7b9\uf7ba\uf7bb\uf7bc\uf7bd\uf7be\uf7bf" + + "\uf7c0\uf7c1\uf7c2\uf7c3\uf7c4\uf7c5\uf7c6\uf7c7" + + "\uf7c8\uf7c9\uf7ca\uf7cb\uf7cc\uf7cd\uf7ce\uf7cf" + + "\uf7d0\uf7d1\uf7d2\uf7d3\uf7d4\uf7d5\uf7d6\uf7d7" + + "\uf7d8\uf7d9\uf7da\uf7db\uf7dc\uf7dd\uf7de\uf7df" + + "\uf7e0\uf7e1\uf7e2\uf7e3\uf7e4\uf7e5\uf7e6\uf7e7" + + "\uf7e8\uf7e9\uf7ea\uf7eb\uf7ec\uf7ed\uf7ee\uf7ef" + + "\uf7f0\uf7f1\uf7f2\uf7f3\uf7f4\uf7f5\uf7f6\uf7f7" + + "\uf7f8\uf7f9\uf7fa\uf7fb\uf7fc\uf7fd\uf7fe\uf7ff", + }, +} + +func getWHATWG(url string) string { + res, err := http.Get(url) + if err != nil { + log.Fatalf("%q: Get: %v", url, err) + } + defer res.Body.Close() + + mapping := make([]rune, 128) + for i := range mapping { + mapping[i] = '\ufffd' + } + + scanner := bufio.NewScanner(res.Body) + for scanner.Scan() { + s := strings.TrimSpace(scanner.Text()) + if s == "" || s[0] == '#' { + continue + } + x, y := 0, 0 + if _, err := fmt.Sscanf(s, "%d\t0x%x", &x, &y); err != nil { + log.Fatalf("could not parse %q", s) + } + if x < 0 || 128 <= x { + log.Fatalf("code %d is out of range", x) + } + if 0x80 <= y && y < 0xa0 { + // We diverge from the WHATWG spec by mapping control characters + // in the range [0x80, 0xa0) to U+FFFD. + continue + } + mapping[x] = rune(y) + } + return ascii + string(mapping) +} + +func getUCM(url string) string { + res, err := http.Get(url) + if err != nil { + log.Fatalf("%q: Get: %v", url, err) + } + defer res.Body.Close() + + mapping := make([]rune, 256) + for i := range mapping { + mapping[i] = '\ufffd' + } + + charsFound := 0 + scanner := bufio.NewScanner(res.Body) + for scanner.Scan() { + s := strings.TrimSpace(scanner.Text()) + if s == "" || s[0] == '#' { + continue + } + var c byte + var r rune + if _, err := fmt.Sscanf(s, ` \x%x |0`, &r, &c); err != nil { + continue + } + mapping[c] = r + charsFound++ + } + + if charsFound < 200 { + log.Fatalf("%q: only %d characters found (wrong page format?)", url, charsFound) + } + + return string(mapping) +} + +func main() { + mibs := map[string]bool{} + all := []string{} + + w := gen.NewCodeWriter() + defer w.WriteGoFile("tables.go", "charmap") + + printf := func(s string, a ...interface{}) { fmt.Fprintf(w, s, a...) } + + printf("import (\n") + printf("\t\"golang.org/x/text/encoding\"\n") + printf("\t\"golang.org/x/text/encoding/internal/identifier\"\n") + printf(")\n\n") + for _, e := range encodings { + varNames := strings.Split(e.varName, ",") + all = append(all, varNames...) + varName := varNames[0] + switch { + case strings.HasPrefix(e.mapping, "http://encoding.spec.whatwg.org/"): + e.mapping = getWHATWG(e.mapping) + case strings.HasPrefix(e.mapping, "http://source.icu-project.org/repos/icu/data/trunk/charset/data/ucm/"): + e.mapping = getUCM(e.mapping) + } + + asciiSuperset, low := strings.HasPrefix(e.mapping, ascii), 0x00 + if asciiSuperset { + low = 0x80 + } + lvn := 1 + if strings.HasPrefix(varName, "ISO") || strings.HasPrefix(varName, "KOI") { + lvn = 3 + } + lowerVarName := strings.ToLower(varName[:lvn]) + varName[lvn:] + printf("// %s is the %s encoding.\n", varName, e.name) + if e.comment != "" { + printf("//\n// %s\n", e.comment) + } + printf("var %s *Charmap = &%s\n\nvar %s = Charmap{\nname: %q,\n", + varName, lowerVarName, lowerVarName, e.name) + if mibs[e.mib] { + log.Fatalf("MIB type %q declared multiple times.", e.mib) + } + printf("mib: identifier.%s,\n", e.mib) + printf("asciiSuperset: %t,\n", asciiSuperset) + printf("low: 0x%02x,\n", low) + printf("replacement: 0x%02x,\n", e.replacement) + + printf("decode: [256]utf8Enc{\n") + i, backMapping := 0, map[rune]byte{} + for _, c := range e.mapping { + if _, ok := backMapping[c]; !ok && c != utf8.RuneError { + backMapping[c] = byte(i) + } + var buf [8]byte + n := utf8.EncodeRune(buf[:], c) + if n > 3 { + panic(fmt.Sprintf("rune %q (%U) is too long", c, c)) + } + printf("{%d,[3]byte{0x%02x,0x%02x,0x%02x}},", n, buf[0], buf[1], buf[2]) + if i%2 == 1 { + printf("\n") + } + i++ + } + printf("},\n") + + printf("encode: [256]uint32{\n") + encode := make([]uint32, 0, 256) + for c, i := range backMapping { + encode = append(encode, uint32(i)<<24|uint32(c)) + } + sort.Sort(byRune(encode)) + for len(encode) < cap(encode) { + encode = append(encode, encode[len(encode)-1]) + } + for i, enc := range encode { + printf("0x%08x,", enc) + if i%8 == 7 { + printf("\n") + } + } + printf("},\n}\n") + + // Add an estimate of the size of a single Charmap{} struct value, which + // includes two 256 elem arrays of 4 bytes and some extra fields, which + // align to 3 uint64s on 64-bit architectures. + w.Size += 2*4*256 + 3*8 + } + // TODO: add proper line breaking. + printf("var listAll = []encoding.Encoding{\n%s,\n}\n\n", strings.Join(all, ",\n")) +} + +type byRune []uint32 + +func (b byRune) Len() int { return len(b) } +func (b byRune) Less(i, j int) bool { return b[i]&0xffffff < b[j]&0xffffff } +func (b byRune) Swap(i, j int) { b[i], b[j] = b[j], b[i] } diff --git a/vendor/golang.org/x/text/encoding/charmap/tables.go b/vendor/golang.org/x/text/encoding/charmap/tables.go new file mode 100644 index 000000000..cf7281e9e --- /dev/null +++ b/vendor/golang.org/x/text/encoding/charmap/tables.go @@ -0,0 +1,7410 @@ +// Code generated by running "go generate" in golang.org/x/text. DO NOT EDIT. + +package charmap + +import ( + "golang.org/x/text/encoding" + "golang.org/x/text/encoding/internal/identifier" +) + +// CodePage037 is the IBM Code Page 037 encoding. +var CodePage037 *Charmap = &codePage037 + +var codePage037 = Charmap{ + name: "IBM Code Page 037", + mib: identifier.IBM037, + asciiSuperset: false, + low: 0x00, + replacement: 0x3f, + decode: [256]utf8Enc{ + {1, [3]byte{0x00, 0x00, 0x00}}, {1, [3]byte{0x01, 0x00, 0x00}}, + {1, [3]byte{0x02, 0x00, 0x00}}, {1, [3]byte{0x03, 0x00, 0x00}}, + {2, [3]byte{0xc2, 0x9c, 0x00}}, {1, [3]byte{0x09, 0x00, 0x00}}, + {2, [3]byte{0xc2, 0x86, 0x00}}, {1, [3]byte{0x7f, 0x00, 0x00}}, + {2, [3]byte{0xc2, 0x97, 0x00}}, {2, [3]byte{0xc2, 0x8d, 0x00}}, + {2, [3]byte{0xc2, 0x8e, 0x00}}, {1, [3]byte{0x0b, 0x00, 0x00}}, + {1, [3]byte{0x0c, 0x00, 0x00}}, {1, [3]byte{0x0d, 0x00, 0x00}}, + {1, [3]byte{0x0e, 0x00, 0x00}}, {1, [3]byte{0x0f, 0x00, 0x00}}, + {1, [3]byte{0x10, 0x00, 0x00}}, {1, [3]byte{0x11, 0x00, 0x00}}, + {1, [3]byte{0x12, 0x00, 0x00}}, {1, [3]byte{0x13, 0x00, 0x00}}, + {2, [3]byte{0xc2, 0x9d, 0x00}}, {2, [3]byte{0xc2, 0x85, 0x00}}, + {1, [3]byte{0x08, 0x00, 0x00}}, {2, [3]byte{0xc2, 0x87, 0x00}}, + {1, [3]byte{0x18, 0x00, 0x00}}, {1, [3]byte{0x19, 0x00, 0x00}}, + {2, [3]byte{0xc2, 0x92, 0x00}}, {2, [3]byte{0xc2, 0x8f, 0x00}}, + {1, [3]byte{0x1c, 0x00, 0x00}}, {1, [3]byte{0x1d, 0x00, 0x00}}, + {1, [3]byte{0x1e, 0x00, 0x00}}, {1, [3]byte{0x1f, 0x00, 0x00}}, + {2, [3]byte{0xc2, 0x80, 0x00}}, {2, [3]byte{0xc2, 0x81, 0x00}}, + {2, [3]byte{0xc2, 0x82, 0x00}}, {2, [3]byte{0xc2, 0x83, 0x00}}, + {2, [3]byte{0xc2, 0x84, 0x00}}, {1, [3]byte{0x0a, 0x00, 0x00}}, + {1, [3]byte{0x17, 0x00, 0x00}}, {1, [3]byte{0x1b, 0x00, 0x00}}, + {2, [3]byte{0xc2, 0x88, 0x00}}, {2, [3]byte{0xc2, 0x89, 0x00}}, + {2, [3]byte{0xc2, 0x8a, 0x00}}, {2, [3]byte{0xc2, 0x8b, 0x00}}, + {2, [3]byte{0xc2, 0x8c, 0x00}}, {1, [3]byte{0x05, 0x00, 0x00}}, + {1, [3]byte{0x06, 0x00, 0x00}}, {1, [3]byte{0x07, 0x00, 0x00}}, + {2, [3]byte{0xc2, 0x90, 0x00}}, {2, [3]byte{0xc2, 0x91, 0x00}}, + {1, [3]byte{0x16, 0x00, 0x00}}, {2, [3]byte{0xc2, 0x93, 0x00}}, + {2, [3]byte{0xc2, 0x94, 0x00}}, {2, [3]byte{0xc2, 0x95, 0x00}}, + {2, [3]byte{0xc2, 0x96, 0x00}}, {1, [3]byte{0x04, 0x00, 0x00}}, + {2, [3]byte{0xc2, 0x98, 0x00}}, {2, [3]byte{0xc2, 0x99, 0x00}}, + {2, [3]byte{0xc2, 0x9a, 0x00}}, {2, [3]byte{0xc2, 0x9b, 0x00}}, + {1, [3]byte{0x14, 0x00, 0x00}}, {1, [3]byte{0x15, 0x00, 0x00}}, + {2, [3]byte{0xc2, 0x9e, 0x00}}, {1, [3]byte{0x1a, 0x00, 0x00}}, + {1, [3]byte{0x20, 0x00, 0x00}}, {2, [3]byte{0xc2, 0xa0, 0x00}}, + {2, [3]byte{0xc3, 0xa2, 0x00}}, {2, [3]byte{0xc3, 0xa4, 0x00}}, + {2, [3]byte{0xc3, 0xa0, 0x00}}, {2, [3]byte{0xc3, 0xa1, 0x00}}, + {2, [3]byte{0xc3, 0xa3, 0x00}}, {2, [3]byte{0xc3, 0xa5, 0x00}}, + {2, [3]byte{0xc3, 0xa7, 0x00}}, {2, [3]byte{0xc3, 0xb1, 0x00}}, + {2, [3]byte{0xc2, 0xa2, 0x00}}, {1, [3]byte{0x2e, 0x00, 0x00}}, + {1, [3]byte{0x3c, 0x00, 0x00}}, {1, [3]byte{0x28, 0x00, 0x00}}, + {1, [3]byte{0x2b, 0x00, 0x00}}, {1, [3]byte{0x7c, 0x00, 0x00}}, + {1, [3]byte{0x26, 0x00, 0x00}}, {2, [3]byte{0xc3, 0xa9, 0x00}}, + {2, [3]byte{0xc3, 0xaa, 0x00}}, {2, [3]byte{0xc3, 0xab, 0x00}}, + {2, [3]byte{0xc3, 0xa8, 0x00}}, {2, [3]byte{0xc3, 0xad, 0x00}}, + {2, [3]byte{0xc3, 0xae, 0x00}}, {2, [3]byte{0xc3, 0xaf, 0x00}}, + {2, [3]byte{0xc3, 0xac, 0x00}}, {2, [3]byte{0xc3, 0x9f, 0x00}}, + {1, [3]byte{0x21, 0x00, 0x00}}, {1, [3]byte{0x24, 0x00, 0x00}}, + {1, [3]byte{0x2a, 0x00, 0x00}}, {1, [3]byte{0x29, 0x00, 0x00}}, + {1, [3]byte{0x3b, 0x00, 0x00}}, {2, [3]byte{0xc2, 0xac, 0x00}}, + {1, [3]byte{0x2d, 0x00, 0x00}}, {1, [3]byte{0x2f, 0x00, 0x00}}, + {2, [3]byte{0xc3, 0x82, 0x00}}, {2, [3]byte{0xc3, 0x84, 0x00}}, + {2, [3]byte{0xc3, 0x80, 0x00}}, {2, [3]byte{0xc3, 0x81, 0x00}}, + {2, [3]byte{0xc3, 0x83, 0x00}}, {2, [3]byte{0xc3, 0x85, 0x00}}, + {2, [3]byte{0xc3, 0x87, 0x00}}, {2, [3]byte{0xc3, 0x91, 0x00}}, + {2, [3]byte{0xc2, 0xa6, 0x00}}, {1, [3]byte{0x2c, 0x00, 0x00}}, + {1, [3]byte{0x25, 0x00, 0x00}}, {1, [3]byte{0x5f, 0x00, 0x00}}, + {1, [3]byte{0x3e, 0x00, 0x00}}, {1, [3]byte{0x3f, 0x00, 0x00}}, + {2, [3]byte{0xc3, 0xb8, 0x00}}, {2, [3]byte{0xc3, 0x89, 0x00}}, + {2, [3]byte{0xc3, 0x8a, 0x00}}, {2, [3]byte{0xc3, 0x8b, 0x00}}, + {2, [3]byte{0xc3, 0x88, 0x00}}, {2, [3]byte{0xc3, 0x8d, 0x00}}, + {2, [3]byte{0xc3, 0x8e, 0x00}}, {2, [3]byte{0xc3, 0x8f, 0x00}}, + {2, [3]byte{0xc3, 0x8c, 0x00}}, {1, [3]byte{0x60, 0x00, 0x00}}, + {1, [3]byte{0x3a, 0x00, 0x00}}, {1, [3]byte{0x23, 0x00, 0x00}}, + {1, [3]byte{0x40, 0x00, 0x00}}, {1, [3]byte{0x27, 0x00, 0x00}}, + {1, [3]byte{0x3d, 0x00, 0x00}}, {1, [3]byte{0x22, 0x00, 0x00}}, + {2, [3]byte{0xc3, 0x98, 0x00}}, {1, [3]byte{0x61, 0x00, 0x00}}, + {1, [3]byte{0x62, 0x00, 0x00}}, {1, [3]byte{0x63, 0x00, 0x00}}, + {1, [3]byte{0x64, 0x00, 0x00}}, {1, [3]byte{0x65, 0x00, 0x00}}, + {1, [3]byte{0x66, 0x00, 0x00}}, {1, [3]byte{0x67, 0x00, 0x00}}, + {1, [3]byte{0x68, 0x00, 0x00}}, {1, [3]byte{0x69, 0x00, 0x00}}, + {2, [3]byte{0xc2, 0xab, 0x00}}, {2, [3]byte{0xc2, 0xbb, 0x00}}, + {2, [3]byte{0xc3, 0xb0, 0x00}}, {2, [3]byte{0xc3, 0xbd, 0x00}}, + {2, [3]byte{0xc3, 0xbe, 0x00}}, {2, [3]byte{0xc2, 0xb1, 0x00}}, + {2, [3]byte{0xc2, 0xb0, 0x00}}, {1, [3]byte{0x6a, 0x00, 0x00}}, + {1, [3]byte{0x6b, 0x00, 0x00}}, {1, [3]byte{0x6c, 0x00, 0x00}}, + {1, [3]byte{0x6d, 0x00, 0x00}}, {1, [3]byte{0x6e, 0x00, 0x00}}, + {1, [3]byte{0x6f, 0x00, 0x00}}, {1, [3]byte{0x70, 0x00, 0x00}}, + {1, [3]byte{0x71, 0x00, 0x00}}, {1, [3]byte{0x72, 0x00, 0x00}}, + {2, [3]byte{0xc2, 0xaa, 0x00}}, {2, [3]byte{0xc2, 0xba, 0x00}}, + {2, [3]byte{0xc3, 0xa6, 0x00}}, {2, [3]byte{0xc2, 0xb8, 0x00}}, + {2, [3]byte{0xc3, 0x86, 0x00}}, {2, [3]byte{0xc2, 0xa4, 0x00}}, + {2, [3]byte{0xc2, 0xb5, 0x00}}, {1, [3]byte{0x7e, 0x00, 0x00}}, + {1, [3]byte{0x73, 0x00, 0x00}}, {1, [3]byte{0x74, 0x00, 0x00}}, + {1, [3]byte{0x75, 0x00, 0x00}}, {1, [3]byte{0x76, 0x00, 0x00}}, + {1, [3]byte{0x77, 0x00, 0x00}}, {1, [3]byte{0x78, 0x00, 0x00}}, + {1, [3]byte{0x79, 0x00, 0x00}}, {1, [3]byte{0x7a, 0x00, 0x00}}, + {2, [3]byte{0xc2, 0xa1, 0x00}}, {2, [3]byte{0xc2, 0xbf, 0x00}}, + {2, [3]byte{0xc3, 0x90, 0x00}}, {2, [3]byte{0xc3, 0x9d, 0x00}}, + {2, [3]byte{0xc3, 0x9e, 0x00}}, {2, [3]byte{0xc2, 0xae, 0x00}}, + {1, [3]byte{0x5e, 0x00, 0x00}}, {2, [3]byte{0xc2, 0xa3, 0x00}}, + {2, [3]byte{0xc2, 0xa5, 0x00}}, {2, [3]byte{0xc2, 0xb7, 0x00}}, + {2, [3]byte{0xc2, 0xa9, 0x00}}, {2, [3]byte{0xc2, 0xa7, 0x00}}, + {2, [3]byte{0xc2, 0xb6, 0x00}}, {2, [3]byte{0xc2, 0xbc, 0x00}}, + {2, [3]byte{0xc2, 0xbd, 0x00}}, {2, [3]byte{0xc2, 0xbe, 0x00}}, + {1, [3]byte{0x5b, 0x00, 0x00}}, {1, [3]byte{0x5d, 0x00, 0x00}}, + {2, [3]byte{0xc2, 0xaf, 0x00}}, {2, [3]byte{0xc2, 0xa8, 0x00}}, + {2, [3]byte{0xc2, 0xb4, 0x00}}, {2, [3]byte{0xc3, 0x97, 0x00}}, + {1, [3]byte{0x7b, 0x00, 0x00}}, {1, [3]byte{0x41, 0x00, 0x00}}, + {1, [3]byte{0x42, 0x00, 0x00}}, {1, [3]byte{0x43, 0x00, 0x00}}, + {1, [3]byte{0x44, 0x00, 0x00}}, {1, [3]byte{0x45, 0x00, 0x00}}, + {1, [3]byte{0x46, 0x00, 0x00}}, {1, [3]byte{0x47, 0x00, 0x00}}, + {1, [3]byte{0x48, 0x00, 0x00}}, {1, [3]byte{0x49, 0x00, 0x00}}, + {2, [3]byte{0xc2, 0xad, 0x00}}, {2, [3]byte{0xc3, 0xb4, 0x00}}, + {2, [3]byte{0xc3, 0xb6, 0x00}}, {2, [3]byte{0xc3, 0xb2, 0x00}}, + {2, [3]byte{0xc3, 0xb3, 0x00}}, {2, [3]byte{0xc3, 0xb5, 0x00}}, + {1, [3]byte{0x7d, 0x00, 0x00}}, {1, [3]byte{0x4a, 0x00, 0x00}}, + {1, [3]byte{0x4b, 0x00, 0x00}}, {1, [3]byte{0x4c, 0x00, 0x00}}, + {1, [3]byte{0x4d, 0x00, 0x00}}, {1, [3]byte{0x4e, 0x00, 0x00}}, + {1, [3]byte{0x4f, 0x00, 0x00}}, {1, [3]byte{0x50, 0x00, 0x00}}, + {1, [3]byte{0x51, 0x00, 0x00}}, {1, [3]byte{0x52, 0x00, 0x00}}, + {2, [3]byte{0xc2, 0xb9, 0x00}}, {2, [3]byte{0xc3, 0xbb, 0x00}}, + {2, [3]byte{0xc3, 0xbc, 0x00}}, {2, [3]byte{0xc3, 0xb9, 0x00}}, + {2, [3]byte{0xc3, 0xba, 0x00}}, {2, [3]byte{0xc3, 0xbf, 0x00}}, + {1, [3]byte{0x5c, 0x00, 0x00}}, {2, [3]byte{0xc3, 0xb7, 0x00}}, + {1, [3]byte{0x53, 0x00, 0x00}}, {1, [3]byte{0x54, 0x00, 0x00}}, + {1, [3]byte{0x55, 0x00, 0x00}}, {1, [3]byte{0x56, 0x00, 0x00}}, + {1, [3]byte{0x57, 0x00, 0x00}}, {1, [3]byte{0x58, 0x00, 0x00}}, + {1, [3]byte{0x59, 0x00, 0x00}}, {1, [3]byte{0x5a, 0x00, 0x00}}, + {2, [3]byte{0xc2, 0xb2, 0x00}}, {2, [3]byte{0xc3, 0x94, 0x00}}, + {2, [3]byte{0xc3, 0x96, 0x00}}, {2, [3]byte{0xc3, 0x92, 0x00}}, + {2, [3]byte{0xc3, 0x93, 0x00}}, {2, [3]byte{0xc3, 0x95, 0x00}}, + {1, [3]byte{0x30, 0x00, 0x00}}, {1, [3]byte{0x31, 0x00, 0x00}}, + {1, [3]byte{0x32, 0x00, 0x00}}, {1, [3]byte{0x33, 0x00, 0x00}}, + {1, [3]byte{0x34, 0x00, 0x00}}, {1, [3]byte{0x35, 0x00, 0x00}}, + {1, [3]byte{0x36, 0x00, 0x00}}, {1, [3]byte{0x37, 0x00, 0x00}}, + {1, [3]byte{0x38, 0x00, 0x00}}, {1, [3]byte{0x39, 0x00, 0x00}}, + {2, [3]byte{0xc2, 0xb3, 0x00}}, {2, [3]byte{0xc3, 0x9b, 0x00}}, + {2, [3]byte{0xc3, 0x9c, 0x00}}, {2, [3]byte{0xc3, 0x99, 0x00}}, + {2, [3]byte{0xc3, 0x9a, 0x00}}, {2, [3]byte{0xc2, 0x9f, 0x00}}, + }, + encode: [256]uint32{ + 0x00000000, 0x01000001, 0x02000002, 0x03000003, 0x37000004, 0x2d000005, 0x2e000006, 0x2f000007, + 0x16000008, 0x05000009, 0x2500000a, 0x0b00000b, 0x0c00000c, 0x0d00000d, 0x0e00000e, 0x0f00000f, + 0x10000010, 0x11000011, 0x12000012, 0x13000013, 0x3c000014, 0x3d000015, 0x32000016, 0x26000017, + 0x18000018, 0x19000019, 0x3f00001a, 0x2700001b, 0x1c00001c, 0x1d00001d, 0x1e00001e, 0x1f00001f, + 0x40000020, 0x5a000021, 0x7f000022, 0x7b000023, 0x5b000024, 0x6c000025, 0x50000026, 0x7d000027, + 0x4d000028, 0x5d000029, 0x5c00002a, 0x4e00002b, 0x6b00002c, 0x6000002d, 0x4b00002e, 0x6100002f, + 0xf0000030, 0xf1000031, 0xf2000032, 0xf3000033, 0xf4000034, 0xf5000035, 0xf6000036, 0xf7000037, + 0xf8000038, 0xf9000039, 0x7a00003a, 0x5e00003b, 0x4c00003c, 0x7e00003d, 0x6e00003e, 0x6f00003f, + 0x7c000040, 0xc1000041, 0xc2000042, 0xc3000043, 0xc4000044, 0xc5000045, 0xc6000046, 0xc7000047, + 0xc8000048, 0xc9000049, 0xd100004a, 0xd200004b, 0xd300004c, 0xd400004d, 0xd500004e, 0xd600004f, + 0xd7000050, 0xd8000051, 0xd9000052, 0xe2000053, 0xe3000054, 0xe4000055, 0xe5000056, 0xe6000057, + 0xe7000058, 0xe8000059, 0xe900005a, 0xba00005b, 0xe000005c, 0xbb00005d, 0xb000005e, 0x6d00005f, + 0x79000060, 0x81000061, 0x82000062, 0x83000063, 0x84000064, 0x85000065, 0x86000066, 0x87000067, + 0x88000068, 0x89000069, 0x9100006a, 0x9200006b, 0x9300006c, 0x9400006d, 0x9500006e, 0x9600006f, + 0x97000070, 0x98000071, 0x99000072, 0xa2000073, 0xa3000074, 0xa4000075, 0xa5000076, 0xa6000077, + 0xa7000078, 0xa8000079, 0xa900007a, 0xc000007b, 0x4f00007c, 0xd000007d, 0xa100007e, 0x0700007f, + 0x20000080, 0x21000081, 0x22000082, 0x23000083, 0x24000084, 0x15000085, 0x06000086, 0x17000087, + 0x28000088, 0x29000089, 0x2a00008a, 0x2b00008b, 0x2c00008c, 0x0900008d, 0x0a00008e, 0x1b00008f, + 0x30000090, 0x31000091, 0x1a000092, 0x33000093, 0x34000094, 0x35000095, 0x36000096, 0x08000097, + 0x38000098, 0x39000099, 0x3a00009a, 0x3b00009b, 0x0400009c, 0x1400009d, 0x3e00009e, 0xff00009f, + 0x410000a0, 0xaa0000a1, 0x4a0000a2, 0xb10000a3, 0x9f0000a4, 0xb20000a5, 0x6a0000a6, 0xb50000a7, + 0xbd0000a8, 0xb40000a9, 0x9a0000aa, 0x8a0000ab, 0x5f0000ac, 0xca0000ad, 0xaf0000ae, 0xbc0000af, + 0x900000b0, 0x8f0000b1, 0xea0000b2, 0xfa0000b3, 0xbe0000b4, 0xa00000b5, 0xb60000b6, 0xb30000b7, + 0x9d0000b8, 0xda0000b9, 0x9b0000ba, 0x8b0000bb, 0xb70000bc, 0xb80000bd, 0xb90000be, 0xab0000bf, + 0x640000c0, 0x650000c1, 0x620000c2, 0x660000c3, 0x630000c4, 0x670000c5, 0x9e0000c6, 0x680000c7, + 0x740000c8, 0x710000c9, 0x720000ca, 0x730000cb, 0x780000cc, 0x750000cd, 0x760000ce, 0x770000cf, + 0xac0000d0, 0x690000d1, 0xed0000d2, 0xee0000d3, 0xeb0000d4, 0xef0000d5, 0xec0000d6, 0xbf0000d7, + 0x800000d8, 0xfd0000d9, 0xfe0000da, 0xfb0000db, 0xfc0000dc, 0xad0000dd, 0xae0000de, 0x590000df, + 0x440000e0, 0x450000e1, 0x420000e2, 0x460000e3, 0x430000e4, 0x470000e5, 0x9c0000e6, 0x480000e7, + 0x540000e8, 0x510000e9, 0x520000ea, 0x530000eb, 0x580000ec, 0x550000ed, 0x560000ee, 0x570000ef, + 0x8c0000f0, 0x490000f1, 0xcd0000f2, 0xce0000f3, 0xcb0000f4, 0xcf0000f5, 0xcc0000f6, 0xe10000f7, + 0x700000f8, 0xdd0000f9, 0xde0000fa, 0xdb0000fb, 0xdc0000fc, 0x8d0000fd, 0x8e0000fe, 0xdf0000ff, + }, +} + +// CodePage437 is the IBM Code Page 437 encoding. +var CodePage437 *Charmap = &codePage437 + +var codePage437 = Charmap{ + name: "IBM Code Page 437", + mib: identifier.PC8CodePage437, + asciiSuperset: true, + low: 0x80, + replacement: 0x1a, + decode: [256]utf8Enc{ + {1, [3]byte{0x00, 0x00, 0x00}}, {1, [3]byte{0x01, 0x00, 0x00}}, + {1, [3]byte{0x02, 0x00, 0x00}}, {1, [3]byte{0x03, 0x00, 0x00}}, + {1, [3]byte{0x04, 0x00, 0x00}}, {1, [3]byte{0x05, 0x00, 0x00}}, + {1, [3]byte{0x06, 0x00, 0x00}}, {1, [3]byte{0x07, 0x00, 0x00}}, + {1, [3]byte{0x08, 0x00, 0x00}}, {1, [3]byte{0x09, 0x00, 0x00}}, + {1, [3]byte{0x0a, 0x00, 0x00}}, {1, [3]byte{0x0b, 0x00, 0x00}}, + {1, [3]byte{0x0c, 0x00, 0x00}}, {1, [3]byte{0x0d, 0x00, 0x00}}, + {1, [3]byte{0x0e, 0x00, 0x00}}, {1, [3]byte{0x0f, 0x00, 0x00}}, + {1, [3]byte{0x10, 0x00, 0x00}}, {1, [3]byte{0x11, 0x00, 0x00}}, + {1, [3]byte{0x12, 0x00, 0x00}}, {1, [3]byte{0x13, 0x00, 0x00}}, + {1, [3]byte{0x14, 0x00, 0x00}}, {1, [3]byte{0x15, 0x00, 0x00}}, + {1, [3]byte{0x16, 0x00, 0x00}}, {1, [3]byte{0x17, 0x00, 0x00}}, + {1, [3]byte{0x18, 0x00, 0x00}}, {1, [3]byte{0x19, 0x00, 0x00}}, + {1, [3]byte{0x1a, 0x00, 0x00}}, {1, [3]byte{0x1b, 0x00, 0x00}}, + {1, [3]byte{0x1c, 0x00, 0x00}}, {1, [3]byte{0x1d, 0x00, 0x00}}, + {1, [3]byte{0x1e, 0x00, 0x00}}, {1, [3]byte{0x1f, 0x00, 0x00}}, + {1, [3]byte{0x20, 0x00, 0x00}}, {1, [3]byte{0x21, 0x00, 0x00}}, + {1, [3]byte{0x22, 0x00, 0x00}}, {1, [3]byte{0x23, 0x00, 0x00}}, + {1, [3]byte{0x24, 0x00, 0x00}}, {1, [3]byte{0x25, 0x00, 0x00}}, + {1, [3]byte{0x26, 0x00, 0x00}}, {1, [3]byte{0x27, 0x00, 0x00}}, + {1, [3]byte{0x28, 0x00, 0x00}}, {1, [3]byte{0x29, 0x00, 0x00}}, + {1, [3]byte{0x2a, 0x00, 0x00}}, {1, [3]byte{0x2b, 0x00, 0x00}}, + {1, [3]byte{0x2c, 0x00, 0x00}}, {1, [3]byte{0x2d, 0x00, 0x00}}, + {1, [3]byte{0x2e, 0x00, 0x00}}, {1, [3]byte{0x2f, 0x00, 0x00}}, + {1, [3]byte{0x30, 0x00, 0x00}}, {1, [3]byte{0x31, 0x00, 0x00}}, + {1, [3]byte{0x32, 0x00, 0x00}}, {1, [3]byte{0x33, 0x00, 0x00}}, + {1, [3]byte{0x34, 0x00, 0x00}}, {1, [3]byte{0x35, 0x00, 0x00}}, + {1, [3]byte{0x36, 0x00, 0x00}}, {1, [3]byte{0x37, 0x00, 0x00}}, + {1, [3]byte{0x38, 0x00, 0x00}}, {1, [3]byte{0x39, 0x00, 0x00}}, + {1, [3]byte{0x3a, 0x00, 0x00}}, {1, [3]byte{0x3b, 0x00, 0x00}}, + {1, [3]byte{0x3c, 0x00, 0x00}}, {1, [3]byte{0x3d, 0x00, 0x00}}, + {1, [3]byte{0x3e, 0x00, 0x00}}, {1, [3]byte{0x3f, 0x00, 0x00}}, + {1, [3]byte{0x40, 0x00, 0x00}}, {1, [3]byte{0x41, 0x00, 0x00}}, + {1, [3]byte{0x42, 0x00, 0x00}}, {1, [3]byte{0x43, 0x00, 0x00}}, + {1, [3]byte{0x44, 0x00, 0x00}}, {1, [3]byte{0x45, 0x00, 0x00}}, + {1, [3]byte{0x46, 0x00, 0x00}}, {1, [3]byte{0x47, 0x00, 0x00}}, + {1, [3]byte{0x48, 0x00, 0x00}}, {1, [3]byte{0x49, 0x00, 0x00}}, + {1, [3]byte{0x4a, 0x00, 0x00}}, {1, [3]byte{0x4b, 0x00, 0x00}}, + {1, [3]byte{0x4c, 0x00, 0x00}}, {1, [3]byte{0x4d, 0x00, 0x00}}, + {1, [3]byte{0x4e, 0x00, 0x00}}, {1, [3]byte{0x4f, 0x00, 0x00}}, + {1, [3]byte{0x50, 0x00, 0x00}}, {1, [3]byte{0x51, 0x00, 0x00}}, + {1, [3]byte{0x52, 0x00, 0x00}}, {1, [3]byte{0x53, 0x00, 0x00}}, + {1, [3]byte{0x54, 0x00, 0x00}}, {1, [3]byte{0x55, 0x00, 0x00}}, + {1, [3]byte{0x56, 0x00, 0x00}}, {1, [3]byte{0x57, 0x00, 0x00}}, + {1, [3]byte{0x58, 0x00, 0x00}}, {1, [3]byte{0x59, 0x00, 0x00}}, + {1, [3]byte{0x5a, 0x00, 0x00}}, {1, [3]byte{0x5b, 0x00, 0x00}}, + {1, [3]byte{0x5c, 0x00, 0x00}}, {1, [3]byte{0x5d, 0x00, 0x00}}, + {1, [3]byte{0x5e, 0x00, 0x00}}, {1, [3]byte{0x5f, 0x00, 0x00}}, + {1, [3]byte{0x60, 0x00, 0x00}}, {1, [3]byte{0x61, 0x00, 0x00}}, + {1, [3]byte{0x62, 0x00, 0x00}}, {1, [3]byte{0x63, 0x00, 0x00}}, + {1, [3]byte{0x64, 0x00, 0x00}}, {1, [3]byte{0x65, 0x00, 0x00}}, + {1, [3]byte{0x66, 0x00, 0x00}}, {1, [3]byte{0x67, 0x00, 0x00}}, + {1, [3]byte{0x68, 0x00, 0x00}}, {1, [3]byte{0x69, 0x00, 0x00}}, + {1, [3]byte{0x6a, 0x00, 0x00}}, {1, [3]byte{0x6b, 0x00, 0x00}}, + {1, [3]byte{0x6c, 0x00, 0x00}}, {1, [3]byte{0x6d, 0x00, 0x00}}, + {1, [3]byte{0x6e, 0x00, 0x00}}, {1, [3]byte{0x6f, 0x00, 0x00}}, + {1, [3]byte{0x70, 0x00, 0x00}}, {1, [3]byte{0x71, 0x00, 0x00}}, + {1, [3]byte{0x72, 0x00, 0x00}}, {1, [3]byte{0x73, 0x00, 0x00}}, + {1, [3]byte{0x74, 0x00, 0x00}}, {1, [3]byte{0x75, 0x00, 0x00}}, + {1, [3]byte{0x76, 0x00, 0x00}}, {1, [3]byte{0x77, 0x00, 0x00}}, + {1, [3]byte{0x78, 0x00, 0x00}}, {1, [3]byte{0x79, 0x00, 0x00}}, + {1, [3]byte{0x7a, 0x00, 0x00}}, {1, [3]byte{0x7b, 0x00, 0x00}}, + {1, [3]byte{0x7c, 0x00, 0x00}}, {1, [3]byte{0x7d, 0x00, 0x00}}, + {1, [3]byte{0x7e, 0x00, 0x00}}, {1, [3]byte{0x7f, 0x00, 0x00}}, + {2, [3]byte{0xc3, 0x87, 0x00}}, {2, [3]byte{0xc3, 0xbc, 0x00}}, + {2, [3]byte{0xc3, 0xa9, 0x00}}, {2, [3]byte{0xc3, 0xa2, 0x00}}, + {2, [3]byte{0xc3, 0xa4, 0x00}}, {2, [3]byte{0xc3, 0xa0, 0x00}}, + {2, [3]byte{0xc3, 0xa5, 0x00}}, {2, [3]byte{0xc3, 0xa7, 0x00}}, + {2, [3]byte{0xc3, 0xaa, 0x00}}, {2, [3]byte{0xc3, 0xab, 0x00}}, + {2, [3]byte{0xc3, 0xa8, 0x00}}, {2, [3]byte{0xc3, 0xaf, 0x00}}, + {2, [3]byte{0xc3, 0xae, 0x00}}, {2, [3]byte{0xc3, 0xac, 0x00}}, + {2, [3]byte{0xc3, 0x84, 0x00}}, {2, [3]byte{0xc3, 0x85, 0x00}}, + {2, [3]byte{0xc3, 0x89, 0x00}}, {2, [3]byte{0xc3, 0xa6, 0x00}}, + {2, [3]byte{0xc3, 0x86, 0x00}}, {2, [3]byte{0xc3, 0xb4, 0x00}}, + {2, [3]byte{0xc3, 0xb6, 0x00}}, {2, [3]byte{0xc3, 0xb2, 0x00}}, + {2, [3]byte{0xc3, 0xbb, 0x00}}, {2, [3]byte{0xc3, 0xb9, 0x00}}, + {2, [3]byte{0xc3, 0xbf, 0x00}}, {2, [3]byte{0xc3, 0x96, 0x00}}, + {2, [3]byte{0xc3, 0x9c, 0x00}}, {2, [3]byte{0xc2, 0xa2, 0x00}}, + {2, [3]byte{0xc2, 0xa3, 0x00}}, {2, [3]byte{0xc2, 0xa5, 0x00}}, + {3, [3]byte{0xe2, 0x82, 0xa7}}, {2, [3]byte{0xc6, 0x92, 0x00}}, + {2, [3]byte{0xc3, 0xa1, 0x00}}, {2, [3]byte{0xc3, 0xad, 0x00}}, + {2, [3]byte{0xc3, 0xb3, 0x00}}, {2, [3]byte{0xc3, 0xba, 0x00}}, + {2, [3]byte{0xc3, 0xb1, 0x00}}, {2, [3]byte{0xc3, 0x91, 0x00}}, + {2, [3]byte{0xc2, 0xaa, 0x00}}, {2, [3]byte{0xc2, 0xba, 0x00}}, + {2, [3]byte{0xc2, 0xbf, 0x00}}, {3, [3]byte{0xe2, 0x8c, 0x90}}, + {2, [3]byte{0xc2, 0xac, 0x00}}, {2, [3]byte{0xc2, 0xbd, 0x00}}, + {2, [3]byte{0xc2, 0xbc, 0x00}}, {2, [3]byte{0xc2, 0xa1, 0x00}}, + {2, [3]byte{0xc2, 0xab, 0x00}}, {2, [3]byte{0xc2, 0xbb, 0x00}}, + {3, [3]byte{0xe2, 0x96, 0x91}}, {3, [3]byte{0xe2, 0x96, 0x92}}, + {3, [3]byte{0xe2, 0x96, 0x93}}, {3, [3]byte{0xe2, 0x94, 0x82}}, + {3, [3]byte{0xe2, 0x94, 0xa4}}, {3, [3]byte{0xe2, 0x95, 0xa1}}, + {3, [3]byte{0xe2, 0x95, 0xa2}}, {3, [3]byte{0xe2, 0x95, 0x96}}, + {3, [3]byte{0xe2, 0x95, 0x95}}, {3, [3]byte{0xe2, 0x95, 0xa3}}, + {3, [3]byte{0xe2, 0x95, 0x91}}, {3, [3]byte{0xe2, 0x95, 0x97}}, + {3, [3]byte{0xe2, 0x95, 0x9d}}, {3, [3]byte{0xe2, 0x95, 0x9c}}, + {3, [3]byte{0xe2, 0x95, 0x9b}}, {3, [3]byte{0xe2, 0x94, 0x90}}, + {3, [3]byte{0xe2, 0x94, 0x94}}, {3, [3]byte{0xe2, 0x94, 0xb4}}, + {3, [3]byte{0xe2, 0x94, 0xac}}, {3, [3]byte{0xe2, 0x94, 0x9c}}, + {3, [3]byte{0xe2, 0x94, 0x80}}, {3, [3]byte{0xe2, 0x94, 0xbc}}, + {3, [3]byte{0xe2, 0x95, 0x9e}}, {3, [3]byte{0xe2, 0x95, 0x9f}}, + {3, [3]byte{0xe2, 0x95, 0x9a}}, {3, [3]byte{0xe2, 0x95, 0x94}}, + {3, [3]byte{0xe2, 0x95, 0xa9}}, {3, [3]byte{0xe2, 0x95, 0xa6}}, + {3, [3]byte{0xe2, 0x95, 0xa0}}, {3, [3]byte{0xe2, 0x95, 0x90}}, + {3, [3]byte{0xe2, 0x95, 0xac}}, {3, [3]byte{0xe2, 0x95, 0xa7}}, + {3, [3]byte{0xe2, 0x95, 0xa8}}, {3, [3]byte{0xe2, 0x95, 0xa4}}, + {3, [3]byte{0xe2, 0x95, 0xa5}}, {3, [3]byte{0xe2, 0x95, 0x99}}, + {3, [3]byte{0xe2, 0x95, 0x98}}, {3, [3]byte{0xe2, 0x95, 0x92}}, + {3, [3]byte{0xe2, 0x95, 0x93}}, {3, [3]byte{0xe2, 0x95, 0xab}}, + {3, [3]byte{0xe2, 0x95, 0xaa}}, {3, [3]byte{0xe2, 0x94, 0x98}}, + {3, [3]byte{0xe2, 0x94, 0x8c}}, {3, [3]byte{0xe2, 0x96, 0x88}}, + {3, [3]byte{0xe2, 0x96, 0x84}}, {3, [3]byte{0xe2, 0x96, 0x8c}}, + {3, [3]byte{0xe2, 0x96, 0x90}}, {3, [3]byte{0xe2, 0x96, 0x80}}, + {2, [3]byte{0xce, 0xb1, 0x00}}, {2, [3]byte{0xc3, 0x9f, 0x00}}, + {2, [3]byte{0xce, 0x93, 0x00}}, {2, [3]byte{0xcf, 0x80, 0x00}}, + {2, [3]byte{0xce, 0xa3, 0x00}}, {2, [3]byte{0xcf, 0x83, 0x00}}, + {2, [3]byte{0xc2, 0xb5, 0x00}}, {2, [3]byte{0xcf, 0x84, 0x00}}, + {2, [3]byte{0xce, 0xa6, 0x00}}, {2, [3]byte{0xce, 0x98, 0x00}}, + {2, [3]byte{0xce, 0xa9, 0x00}}, {2, [3]byte{0xce, 0xb4, 0x00}}, + {3, [3]byte{0xe2, 0x88, 0x9e}}, {2, [3]byte{0xcf, 0x86, 0x00}}, + {2, [3]byte{0xce, 0xb5, 0x00}}, {3, [3]byte{0xe2, 0x88, 0xa9}}, + {3, [3]byte{0xe2, 0x89, 0xa1}}, {2, [3]byte{0xc2, 0xb1, 0x00}}, + {3, [3]byte{0xe2, 0x89, 0xa5}}, {3, [3]byte{0xe2, 0x89, 0xa4}}, + {3, [3]byte{0xe2, 0x8c, 0xa0}}, {3, [3]byte{0xe2, 0x8c, 0xa1}}, + {2, [3]byte{0xc3, 0xb7, 0x00}}, {3, [3]byte{0xe2, 0x89, 0x88}}, + {2, [3]byte{0xc2, 0xb0, 0x00}}, {3, [3]byte{0xe2, 0x88, 0x99}}, + {2, [3]byte{0xc2, 0xb7, 0x00}}, {3, [3]byte{0xe2, 0x88, 0x9a}}, + {3, [3]byte{0xe2, 0x81, 0xbf}}, {2, [3]byte{0xc2, 0xb2, 0x00}}, + {3, [3]byte{0xe2, 0x96, 0xa0}}, {2, [3]byte{0xc2, 0xa0, 0x00}}, + }, + encode: [256]uint32{ + 0x00000000, 0x01000001, 0x02000002, 0x03000003, 0x04000004, 0x05000005, 0x06000006, 0x07000007, + 0x08000008, 0x09000009, 0x0a00000a, 0x0b00000b, 0x0c00000c, 0x0d00000d, 0x0e00000e, 0x0f00000f, + 0x10000010, 0x11000011, 0x12000012, 0x13000013, 0x14000014, 0x15000015, 0x16000016, 0x17000017, + 0x18000018, 0x19000019, 0x1a00001a, 0x1b00001b, 0x1c00001c, 0x1d00001d, 0x1e00001e, 0x1f00001f, + 0x20000020, 0x21000021, 0x22000022, 0x23000023, 0x24000024, 0x25000025, 0x26000026, 0x27000027, + 0x28000028, 0x29000029, 0x2a00002a, 0x2b00002b, 0x2c00002c, 0x2d00002d, 0x2e00002e, 0x2f00002f, + 0x30000030, 0x31000031, 0x32000032, 0x33000033, 0x34000034, 0x35000035, 0x36000036, 0x37000037, + 0x38000038, 0x39000039, 0x3a00003a, 0x3b00003b, 0x3c00003c, 0x3d00003d, 0x3e00003e, 0x3f00003f, + 0x40000040, 0x41000041, 0x42000042, 0x43000043, 0x44000044, 0x45000045, 0x46000046, 0x47000047, + 0x48000048, 0x49000049, 0x4a00004a, 0x4b00004b, 0x4c00004c, 0x4d00004d, 0x4e00004e, 0x4f00004f, + 0x50000050, 0x51000051, 0x52000052, 0x53000053, 0x54000054, 0x55000055, 0x56000056, 0x57000057, + 0x58000058, 0x59000059, 0x5a00005a, 0x5b00005b, 0x5c00005c, 0x5d00005d, 0x5e00005e, 0x5f00005f, + 0x60000060, 0x61000061, 0x62000062, 0x63000063, 0x64000064, 0x65000065, 0x66000066, 0x67000067, + 0x68000068, 0x69000069, 0x6a00006a, 0x6b00006b, 0x6c00006c, 0x6d00006d, 0x6e00006e, 0x6f00006f, + 0x70000070, 0x71000071, 0x72000072, 0x73000073, 0x74000074, 0x75000075, 0x76000076, 0x77000077, + 0x78000078, 0x79000079, 0x7a00007a, 0x7b00007b, 0x7c00007c, 0x7d00007d, 0x7e00007e, 0x7f00007f, + 0xff0000a0, 0xad0000a1, 0x9b0000a2, 0x9c0000a3, 0x9d0000a5, 0xa60000aa, 0xae0000ab, 0xaa0000ac, + 0xf80000b0, 0xf10000b1, 0xfd0000b2, 0xe60000b5, 0xfa0000b7, 0xa70000ba, 0xaf0000bb, 0xac0000bc, + 0xab0000bd, 0xa80000bf, 0x8e0000c4, 0x8f0000c5, 0x920000c6, 0x800000c7, 0x900000c9, 0xa50000d1, + 0x990000d6, 0x9a0000dc, 0xe10000df, 0x850000e0, 0xa00000e1, 0x830000e2, 0x840000e4, 0x860000e5, + 0x910000e6, 0x870000e7, 0x8a0000e8, 0x820000e9, 0x880000ea, 0x890000eb, 0x8d0000ec, 0xa10000ed, + 0x8c0000ee, 0x8b0000ef, 0xa40000f1, 0x950000f2, 0xa20000f3, 0x930000f4, 0x940000f6, 0xf60000f7, + 0x970000f9, 0xa30000fa, 0x960000fb, 0x810000fc, 0x980000ff, 0x9f000192, 0xe2000393, 0xe9000398, + 0xe40003a3, 0xe80003a6, 0xea0003a9, 0xe00003b1, 0xeb0003b4, 0xee0003b5, 0xe30003c0, 0xe50003c3, + 0xe70003c4, 0xed0003c6, 0xfc00207f, 0x9e0020a7, 0xf9002219, 0xfb00221a, 0xec00221e, 0xef002229, + 0xf7002248, 0xf0002261, 0xf3002264, 0xf2002265, 0xa9002310, 0xf4002320, 0xf5002321, 0xc4002500, + 0xb3002502, 0xda00250c, 0xbf002510, 0xc0002514, 0xd9002518, 0xc300251c, 0xb4002524, 0xc200252c, + 0xc1002534, 0xc500253c, 0xcd002550, 0xba002551, 0xd5002552, 0xd6002553, 0xc9002554, 0xb8002555, + 0xb7002556, 0xbb002557, 0xd4002558, 0xd3002559, 0xc800255a, 0xbe00255b, 0xbd00255c, 0xbc00255d, + 0xc600255e, 0xc700255f, 0xcc002560, 0xb5002561, 0xb6002562, 0xb9002563, 0xd1002564, 0xd2002565, + 0xcb002566, 0xcf002567, 0xd0002568, 0xca002569, 0xd800256a, 0xd700256b, 0xce00256c, 0xdf002580, + 0xdc002584, 0xdb002588, 0xdd00258c, 0xde002590, 0xb0002591, 0xb1002592, 0xb2002593, 0xfe0025a0, + }, +} + +// CodePage850 is the IBM Code Page 850 encoding. +var CodePage850 *Charmap = &codePage850 + +var codePage850 = Charmap{ + name: "IBM Code Page 850", + mib: identifier.PC850Multilingual, + asciiSuperset: true, + low: 0x80, + replacement: 0x1a, + decode: [256]utf8Enc{ + {1, [3]byte{0x00, 0x00, 0x00}}, {1, [3]byte{0x01, 0x00, 0x00}}, + {1, [3]byte{0x02, 0x00, 0x00}}, {1, [3]byte{0x03, 0x00, 0x00}}, + {1, [3]byte{0x04, 0x00, 0x00}}, {1, [3]byte{0x05, 0x00, 0x00}}, + {1, [3]byte{0x06, 0x00, 0x00}}, {1, [3]byte{0x07, 0x00, 0x00}}, + {1, [3]byte{0x08, 0x00, 0x00}}, {1, [3]byte{0x09, 0x00, 0x00}}, + {1, [3]byte{0x0a, 0x00, 0x00}}, {1, [3]byte{0x0b, 0x00, 0x00}}, + {1, [3]byte{0x0c, 0x00, 0x00}}, {1, [3]byte{0x0d, 0x00, 0x00}}, + {1, [3]byte{0x0e, 0x00, 0x00}}, {1, [3]byte{0x0f, 0x00, 0x00}}, + {1, [3]byte{0x10, 0x00, 0x00}}, {1, [3]byte{0x11, 0x00, 0x00}}, + {1, [3]byte{0x12, 0x00, 0x00}}, {1, [3]byte{0x13, 0x00, 0x00}}, + {1, [3]byte{0x14, 0x00, 0x00}}, {1, [3]byte{0x15, 0x00, 0x00}}, + {1, [3]byte{0x16, 0x00, 0x00}}, {1, [3]byte{0x17, 0x00, 0x00}}, + {1, [3]byte{0x18, 0x00, 0x00}}, {1, [3]byte{0x19, 0x00, 0x00}}, + {1, [3]byte{0x1a, 0x00, 0x00}}, {1, [3]byte{0x1b, 0x00, 0x00}}, + {1, [3]byte{0x1c, 0x00, 0x00}}, {1, [3]byte{0x1d, 0x00, 0x00}}, + {1, [3]byte{0x1e, 0x00, 0x00}}, {1, [3]byte{0x1f, 0x00, 0x00}}, + {1, [3]byte{0x20, 0x00, 0x00}}, {1, [3]byte{0x21, 0x00, 0x00}}, + {1, [3]byte{0x22, 0x00, 0x00}}, {1, [3]byte{0x23, 0x00, 0x00}}, + {1, [3]byte{0x24, 0x00, 0x00}}, {1, [3]byte{0x25, 0x00, 0x00}}, + {1, [3]byte{0x26, 0x00, 0x00}}, {1, [3]byte{0x27, 0x00, 0x00}}, + {1, [3]byte{0x28, 0x00, 0x00}}, {1, [3]byte{0x29, 0x00, 0x00}}, + {1, [3]byte{0x2a, 0x00, 0x00}}, {1, [3]byte{0x2b, 0x00, 0x00}}, + {1, [3]byte{0x2c, 0x00, 0x00}}, {1, [3]byte{0x2d, 0x00, 0x00}}, + {1, [3]byte{0x2e, 0x00, 0x00}}, {1, [3]byte{0x2f, 0x00, 0x00}}, + {1, [3]byte{0x30, 0x00, 0x00}}, {1, [3]byte{0x31, 0x00, 0x00}}, + {1, [3]byte{0x32, 0x00, 0x00}}, {1, [3]byte{0x33, 0x00, 0x00}}, + {1, [3]byte{0x34, 0x00, 0x00}}, {1, [3]byte{0x35, 0x00, 0x00}}, + {1, [3]byte{0x36, 0x00, 0x00}}, {1, [3]byte{0x37, 0x00, 0x00}}, + {1, [3]byte{0x38, 0x00, 0x00}}, {1, [3]byte{0x39, 0x00, 0x00}}, + {1, [3]byte{0x3a, 0x00, 0x00}}, {1, [3]byte{0x3b, 0x00, 0x00}}, + {1, [3]byte{0x3c, 0x00, 0x00}}, {1, [3]byte{0x3d, 0x00, 0x00}}, + {1, [3]byte{0x3e, 0x00, 0x00}}, {1, [3]byte{0x3f, 0x00, 0x00}}, + {1, [3]byte{0x40, 0x00, 0x00}}, {1, [3]byte{0x41, 0x00, 0x00}}, + {1, [3]byte{0x42, 0x00, 0x00}}, {1, [3]byte{0x43, 0x00, 0x00}}, + {1, [3]byte{0x44, 0x00, 0x00}}, {1, [3]byte{0x45, 0x00, 0x00}}, + {1, [3]byte{0x46, 0x00, 0x00}}, {1, [3]byte{0x47, 0x00, 0x00}}, + {1, [3]byte{0x48, 0x00, 0x00}}, {1, [3]byte{0x49, 0x00, 0x00}}, + {1, [3]byte{0x4a, 0x00, 0x00}}, {1, [3]byte{0x4b, 0x00, 0x00}}, + {1, [3]byte{0x4c, 0x00, 0x00}}, {1, [3]byte{0x4d, 0x00, 0x00}}, + {1, [3]byte{0x4e, 0x00, 0x00}}, {1, [3]byte{0x4f, 0x00, 0x00}}, + {1, [3]byte{0x50, 0x00, 0x00}}, {1, [3]byte{0x51, 0x00, 0x00}}, + {1, [3]byte{0x52, 0x00, 0x00}}, {1, [3]byte{0x53, 0x00, 0x00}}, + {1, [3]byte{0x54, 0x00, 0x00}}, {1, [3]byte{0x55, 0x00, 0x00}}, + {1, [3]byte{0x56, 0x00, 0x00}}, {1, [3]byte{0x57, 0x00, 0x00}}, + {1, [3]byte{0x58, 0x00, 0x00}}, {1, [3]byte{0x59, 0x00, 0x00}}, + {1, [3]byte{0x5a, 0x00, 0x00}}, {1, [3]byte{0x5b, 0x00, 0x00}}, + {1, [3]byte{0x5c, 0x00, 0x00}}, {1, [3]byte{0x5d, 0x00, 0x00}}, + {1, [3]byte{0x5e, 0x00, 0x00}}, {1, [3]byte{0x5f, 0x00, 0x00}}, + {1, [3]byte{0x60, 0x00, 0x00}}, {1, [3]byte{0x61, 0x00, 0x00}}, + {1, [3]byte{0x62, 0x00, 0x00}}, {1, [3]byte{0x63, 0x00, 0x00}}, + {1, [3]byte{0x64, 0x00, 0x00}}, {1, [3]byte{0x65, 0x00, 0x00}}, + {1, [3]byte{0x66, 0x00, 0x00}}, {1, [3]byte{0x67, 0x00, 0x00}}, + {1, [3]byte{0x68, 0x00, 0x00}}, {1, [3]byte{0x69, 0x00, 0x00}}, + {1, [3]byte{0x6a, 0x00, 0x00}}, {1, [3]byte{0x6b, 0x00, 0x00}}, + {1, [3]byte{0x6c, 0x00, 0x00}}, {1, [3]byte{0x6d, 0x00, 0x00}}, + {1, [3]byte{0x6e, 0x00, 0x00}}, {1, [3]byte{0x6f, 0x00, 0x00}}, + {1, [3]byte{0x70, 0x00, 0x00}}, {1, [3]byte{0x71, 0x00, 0x00}}, + {1, [3]byte{0x72, 0x00, 0x00}}, {1, [3]byte{0x73, 0x00, 0x00}}, + {1, [3]byte{0x74, 0x00, 0x00}}, {1, [3]byte{0x75, 0x00, 0x00}}, + {1, [3]byte{0x76, 0x00, 0x00}}, {1, [3]byte{0x77, 0x00, 0x00}}, + {1, [3]byte{0x78, 0x00, 0x00}}, {1, [3]byte{0x79, 0x00, 0x00}}, + {1, [3]byte{0x7a, 0x00, 0x00}}, {1, [3]byte{0x7b, 0x00, 0x00}}, + {1, [3]byte{0x7c, 0x00, 0x00}}, {1, [3]byte{0x7d, 0x00, 0x00}}, + {1, [3]byte{0x7e, 0x00, 0x00}}, {1, [3]byte{0x7f, 0x00, 0x00}}, + {2, [3]byte{0xc3, 0x87, 0x00}}, {2, [3]byte{0xc3, 0xbc, 0x00}}, + {2, [3]byte{0xc3, 0xa9, 0x00}}, {2, [3]byte{0xc3, 0xa2, 0x00}}, + {2, [3]byte{0xc3, 0xa4, 0x00}}, {2, [3]byte{0xc3, 0xa0, 0x00}}, + {2, [3]byte{0xc3, 0xa5, 0x00}}, {2, [3]byte{0xc3, 0xa7, 0x00}}, + {2, [3]byte{0xc3, 0xaa, 0x00}}, {2, [3]byte{0xc3, 0xab, 0x00}}, + {2, [3]byte{0xc3, 0xa8, 0x00}}, {2, [3]byte{0xc3, 0xaf, 0x00}}, + {2, [3]byte{0xc3, 0xae, 0x00}}, {2, [3]byte{0xc3, 0xac, 0x00}}, + {2, [3]byte{0xc3, 0x84, 0x00}}, {2, [3]byte{0xc3, 0x85, 0x00}}, + {2, [3]byte{0xc3, 0x89, 0x00}}, {2, [3]byte{0xc3, 0xa6, 0x00}}, + {2, [3]byte{0xc3, 0x86, 0x00}}, {2, [3]byte{0xc3, 0xb4, 0x00}}, + {2, [3]byte{0xc3, 0xb6, 0x00}}, {2, [3]byte{0xc3, 0xb2, 0x00}}, + {2, [3]byte{0xc3, 0xbb, 0x00}}, {2, [3]byte{0xc3, 0xb9, 0x00}}, + {2, [3]byte{0xc3, 0xbf, 0x00}}, {2, [3]byte{0xc3, 0x96, 0x00}}, + {2, [3]byte{0xc3, 0x9c, 0x00}}, {2, [3]byte{0xc3, 0xb8, 0x00}}, + {2, [3]byte{0xc2, 0xa3, 0x00}}, {2, [3]byte{0xc3, 0x98, 0x00}}, + {2, [3]byte{0xc3, 0x97, 0x00}}, {2, [3]byte{0xc6, 0x92, 0x00}}, + {2, [3]byte{0xc3, 0xa1, 0x00}}, {2, [3]byte{0xc3, 0xad, 0x00}}, + {2, [3]byte{0xc3, 0xb3, 0x00}}, {2, [3]byte{0xc3, 0xba, 0x00}}, + {2, [3]byte{0xc3, 0xb1, 0x00}}, {2, [3]byte{0xc3, 0x91, 0x00}}, + {2, [3]byte{0xc2, 0xaa, 0x00}}, {2, [3]byte{0xc2, 0xba, 0x00}}, + {2, [3]byte{0xc2, 0xbf, 0x00}}, {2, [3]byte{0xc2, 0xae, 0x00}}, + {2, [3]byte{0xc2, 0xac, 0x00}}, {2, [3]byte{0xc2, 0xbd, 0x00}}, + {2, [3]byte{0xc2, 0xbc, 0x00}}, {2, [3]byte{0xc2, 0xa1, 0x00}}, + {2, [3]byte{0xc2, 0xab, 0x00}}, {2, [3]byte{0xc2, 0xbb, 0x00}}, + {3, [3]byte{0xe2, 0x96, 0x91}}, {3, [3]byte{0xe2, 0x96, 0x92}}, + {3, [3]byte{0xe2, 0x96, 0x93}}, {3, [3]byte{0xe2, 0x94, 0x82}}, + {3, [3]byte{0xe2, 0x94, 0xa4}}, {2, [3]byte{0xc3, 0x81, 0x00}}, + {2, [3]byte{0xc3, 0x82, 0x00}}, {2, [3]byte{0xc3, 0x80, 0x00}}, + {2, [3]byte{0xc2, 0xa9, 0x00}}, {3, [3]byte{0xe2, 0x95, 0xa3}}, + {3, [3]byte{0xe2, 0x95, 0x91}}, {3, [3]byte{0xe2, 0x95, 0x97}}, + {3, [3]byte{0xe2, 0x95, 0x9d}}, {2, [3]byte{0xc2, 0xa2, 0x00}}, + {2, [3]byte{0xc2, 0xa5, 0x00}}, {3, [3]byte{0xe2, 0x94, 0x90}}, + {3, [3]byte{0xe2, 0x94, 0x94}}, {3, [3]byte{0xe2, 0x94, 0xb4}}, + {3, [3]byte{0xe2, 0x94, 0xac}}, {3, [3]byte{0xe2, 0x94, 0x9c}}, + {3, [3]byte{0xe2, 0x94, 0x80}}, {3, [3]byte{0xe2, 0x94, 0xbc}}, + {2, [3]byte{0xc3, 0xa3, 0x00}}, {2, [3]byte{0xc3, 0x83, 0x00}}, + {3, [3]byte{0xe2, 0x95, 0x9a}}, {3, [3]byte{0xe2, 0x95, 0x94}}, + {3, [3]byte{0xe2, 0x95, 0xa9}}, {3, [3]byte{0xe2, 0x95, 0xa6}}, + {3, [3]byte{0xe2, 0x95, 0xa0}}, {3, [3]byte{0xe2, 0x95, 0x90}}, + {3, [3]byte{0xe2, 0x95, 0xac}}, {2, [3]byte{0xc2, 0xa4, 0x00}}, + {2, [3]byte{0xc3, 0xb0, 0x00}}, {2, [3]byte{0xc3, 0x90, 0x00}}, + {2, [3]byte{0xc3, 0x8a, 0x00}}, {2, [3]byte{0xc3, 0x8b, 0x00}}, + {2, [3]byte{0xc3, 0x88, 0x00}}, {2, [3]byte{0xc4, 0xb1, 0x00}}, + {2, [3]byte{0xc3, 0x8d, 0x00}}, {2, [3]byte{0xc3, 0x8e, 0x00}}, + {2, [3]byte{0xc3, 0x8f, 0x00}}, {3, [3]byte{0xe2, 0x94, 0x98}}, + {3, [3]byte{0xe2, 0x94, 0x8c}}, {3, [3]byte{0xe2, 0x96, 0x88}}, + {3, [3]byte{0xe2, 0x96, 0x84}}, {2, [3]byte{0xc2, 0xa6, 0x00}}, + {2, [3]byte{0xc3, 0x8c, 0x00}}, {3, [3]byte{0xe2, 0x96, 0x80}}, + {2, [3]byte{0xc3, 0x93, 0x00}}, {2, [3]byte{0xc3, 0x9f, 0x00}}, + {2, [3]byte{0xc3, 0x94, 0x00}}, {2, [3]byte{0xc3, 0x92, 0x00}}, + {2, [3]byte{0xc3, 0xb5, 0x00}}, {2, [3]byte{0xc3, 0x95, 0x00}}, + {2, [3]byte{0xc2, 0xb5, 0x00}}, {2, [3]byte{0xc3, 0xbe, 0x00}}, + {2, [3]byte{0xc3, 0x9e, 0x00}}, {2, [3]byte{0xc3, 0x9a, 0x00}}, + {2, [3]byte{0xc3, 0x9b, 0x00}}, {2, [3]byte{0xc3, 0x99, 0x00}}, + {2, [3]byte{0xc3, 0xbd, 0x00}}, {2, [3]byte{0xc3, 0x9d, 0x00}}, + {2, [3]byte{0xc2, 0xaf, 0x00}}, {2, [3]byte{0xc2, 0xb4, 0x00}}, + {2, [3]byte{0xc2, 0xad, 0x00}}, {2, [3]byte{0xc2, 0xb1, 0x00}}, + {3, [3]byte{0xe2, 0x80, 0x97}}, {2, [3]byte{0xc2, 0xbe, 0x00}}, + {2, [3]byte{0xc2, 0xb6, 0x00}}, {2, [3]byte{0xc2, 0xa7, 0x00}}, + {2, [3]byte{0xc3, 0xb7, 0x00}}, {2, [3]byte{0xc2, 0xb8, 0x00}}, + {2, [3]byte{0xc2, 0xb0, 0x00}}, {2, [3]byte{0xc2, 0xa8, 0x00}}, + {2, [3]byte{0xc2, 0xb7, 0x00}}, {2, [3]byte{0xc2, 0xb9, 0x00}}, + {2, [3]byte{0xc2, 0xb3, 0x00}}, {2, [3]byte{0xc2, 0xb2, 0x00}}, + {3, [3]byte{0xe2, 0x96, 0xa0}}, {2, [3]byte{0xc2, 0xa0, 0x00}}, + }, + encode: [256]uint32{ + 0x00000000, 0x01000001, 0x02000002, 0x03000003, 0x04000004, 0x05000005, 0x06000006, 0x07000007, + 0x08000008, 0x09000009, 0x0a00000a, 0x0b00000b, 0x0c00000c, 0x0d00000d, 0x0e00000e, 0x0f00000f, + 0x10000010, 0x11000011, 0x12000012, 0x13000013, 0x14000014, 0x15000015, 0x16000016, 0x17000017, + 0x18000018, 0x19000019, 0x1a00001a, 0x1b00001b, 0x1c00001c, 0x1d00001d, 0x1e00001e, 0x1f00001f, + 0x20000020, 0x21000021, 0x22000022, 0x23000023, 0x24000024, 0x25000025, 0x26000026, 0x27000027, + 0x28000028, 0x29000029, 0x2a00002a, 0x2b00002b, 0x2c00002c, 0x2d00002d, 0x2e00002e, 0x2f00002f, + 0x30000030, 0x31000031, 0x32000032, 0x33000033, 0x34000034, 0x35000035, 0x36000036, 0x37000037, + 0x38000038, 0x39000039, 0x3a00003a, 0x3b00003b, 0x3c00003c, 0x3d00003d, 0x3e00003e, 0x3f00003f, + 0x40000040, 0x41000041, 0x42000042, 0x43000043, 0x44000044, 0x45000045, 0x46000046, 0x47000047, + 0x48000048, 0x49000049, 0x4a00004a, 0x4b00004b, 0x4c00004c, 0x4d00004d, 0x4e00004e, 0x4f00004f, + 0x50000050, 0x51000051, 0x52000052, 0x53000053, 0x54000054, 0x55000055, 0x56000056, 0x57000057, + 0x58000058, 0x59000059, 0x5a00005a, 0x5b00005b, 0x5c00005c, 0x5d00005d, 0x5e00005e, 0x5f00005f, + 0x60000060, 0x61000061, 0x62000062, 0x63000063, 0x64000064, 0x65000065, 0x66000066, 0x67000067, + 0x68000068, 0x69000069, 0x6a00006a, 0x6b00006b, 0x6c00006c, 0x6d00006d, 0x6e00006e, 0x6f00006f, + 0x70000070, 0x71000071, 0x72000072, 0x73000073, 0x74000074, 0x75000075, 0x76000076, 0x77000077, + 0x78000078, 0x79000079, 0x7a00007a, 0x7b00007b, 0x7c00007c, 0x7d00007d, 0x7e00007e, 0x7f00007f, + 0xff0000a0, 0xad0000a1, 0xbd0000a2, 0x9c0000a3, 0xcf0000a4, 0xbe0000a5, 0xdd0000a6, 0xf50000a7, + 0xf90000a8, 0xb80000a9, 0xa60000aa, 0xae0000ab, 0xaa0000ac, 0xf00000ad, 0xa90000ae, 0xee0000af, + 0xf80000b0, 0xf10000b1, 0xfd0000b2, 0xfc0000b3, 0xef0000b4, 0xe60000b5, 0xf40000b6, 0xfa0000b7, + 0xf70000b8, 0xfb0000b9, 0xa70000ba, 0xaf0000bb, 0xac0000bc, 0xab0000bd, 0xf30000be, 0xa80000bf, + 0xb70000c0, 0xb50000c1, 0xb60000c2, 0xc70000c3, 0x8e0000c4, 0x8f0000c5, 0x920000c6, 0x800000c7, + 0xd40000c8, 0x900000c9, 0xd20000ca, 0xd30000cb, 0xde0000cc, 0xd60000cd, 0xd70000ce, 0xd80000cf, + 0xd10000d0, 0xa50000d1, 0xe30000d2, 0xe00000d3, 0xe20000d4, 0xe50000d5, 0x990000d6, 0x9e0000d7, + 0x9d0000d8, 0xeb0000d9, 0xe90000da, 0xea0000db, 0x9a0000dc, 0xed0000dd, 0xe80000de, 0xe10000df, + 0x850000e0, 0xa00000e1, 0x830000e2, 0xc60000e3, 0x840000e4, 0x860000e5, 0x910000e6, 0x870000e7, + 0x8a0000e8, 0x820000e9, 0x880000ea, 0x890000eb, 0x8d0000ec, 0xa10000ed, 0x8c0000ee, 0x8b0000ef, + 0xd00000f0, 0xa40000f1, 0x950000f2, 0xa20000f3, 0x930000f4, 0xe40000f5, 0x940000f6, 0xf60000f7, + 0x9b0000f8, 0x970000f9, 0xa30000fa, 0x960000fb, 0x810000fc, 0xec0000fd, 0xe70000fe, 0x980000ff, + 0xd5000131, 0x9f000192, 0xf2002017, 0xc4002500, 0xb3002502, 0xda00250c, 0xbf002510, 0xc0002514, + 0xd9002518, 0xc300251c, 0xb4002524, 0xc200252c, 0xc1002534, 0xc500253c, 0xcd002550, 0xba002551, + 0xc9002554, 0xbb002557, 0xc800255a, 0xbc00255d, 0xcc002560, 0xb9002563, 0xcb002566, 0xca002569, + 0xce00256c, 0xdf002580, 0xdc002584, 0xdb002588, 0xb0002591, 0xb1002592, 0xb2002593, 0xfe0025a0, + }, +} + +// CodePage852 is the IBM Code Page 852 encoding. +var CodePage852 *Charmap = &codePage852 + +var codePage852 = Charmap{ + name: "IBM Code Page 852", + mib: identifier.PCp852, + asciiSuperset: true, + low: 0x80, + replacement: 0x1a, + decode: [256]utf8Enc{ + {1, [3]byte{0x00, 0x00, 0x00}}, {1, [3]byte{0x01, 0x00, 0x00}}, + {1, [3]byte{0x02, 0x00, 0x00}}, {1, [3]byte{0x03, 0x00, 0x00}}, + {1, [3]byte{0x04, 0x00, 0x00}}, {1, [3]byte{0x05, 0x00, 0x00}}, + {1, [3]byte{0x06, 0x00, 0x00}}, {1, [3]byte{0x07, 0x00, 0x00}}, + {1, [3]byte{0x08, 0x00, 0x00}}, {1, [3]byte{0x09, 0x00, 0x00}}, + {1, [3]byte{0x0a, 0x00, 0x00}}, {1, [3]byte{0x0b, 0x00, 0x00}}, + {1, [3]byte{0x0c, 0x00, 0x00}}, {1, [3]byte{0x0d, 0x00, 0x00}}, + {1, [3]byte{0x0e, 0x00, 0x00}}, {1, [3]byte{0x0f, 0x00, 0x00}}, + {1, [3]byte{0x10, 0x00, 0x00}}, {1, [3]byte{0x11, 0x00, 0x00}}, + {1, [3]byte{0x12, 0x00, 0x00}}, {1, [3]byte{0x13, 0x00, 0x00}}, + {1, [3]byte{0x14, 0x00, 0x00}}, {1, [3]byte{0x15, 0x00, 0x00}}, + {1, [3]byte{0x16, 0x00, 0x00}}, {1, [3]byte{0x17, 0x00, 0x00}}, + {1, [3]byte{0x18, 0x00, 0x00}}, {1, [3]byte{0x19, 0x00, 0x00}}, + {1, [3]byte{0x1a, 0x00, 0x00}}, {1, [3]byte{0x1b, 0x00, 0x00}}, + {1, [3]byte{0x1c, 0x00, 0x00}}, {1, [3]byte{0x1d, 0x00, 0x00}}, + {1, [3]byte{0x1e, 0x00, 0x00}}, {1, [3]byte{0x1f, 0x00, 0x00}}, + {1, [3]byte{0x20, 0x00, 0x00}}, {1, [3]byte{0x21, 0x00, 0x00}}, + {1, [3]byte{0x22, 0x00, 0x00}}, {1, [3]byte{0x23, 0x00, 0x00}}, + {1, [3]byte{0x24, 0x00, 0x00}}, {1, [3]byte{0x25, 0x00, 0x00}}, + {1, [3]byte{0x26, 0x00, 0x00}}, {1, [3]byte{0x27, 0x00, 0x00}}, + {1, [3]byte{0x28, 0x00, 0x00}}, {1, [3]byte{0x29, 0x00, 0x00}}, + {1, [3]byte{0x2a, 0x00, 0x00}}, {1, [3]byte{0x2b, 0x00, 0x00}}, + {1, [3]byte{0x2c, 0x00, 0x00}}, {1, [3]byte{0x2d, 0x00, 0x00}}, + {1, [3]byte{0x2e, 0x00, 0x00}}, {1, [3]byte{0x2f, 0x00, 0x00}}, + {1, [3]byte{0x30, 0x00, 0x00}}, {1, [3]byte{0x31, 0x00, 0x00}}, + {1, [3]byte{0x32, 0x00, 0x00}}, {1, [3]byte{0x33, 0x00, 0x00}}, + {1, [3]byte{0x34, 0x00, 0x00}}, {1, [3]byte{0x35, 0x00, 0x00}}, + {1, [3]byte{0x36, 0x00, 0x00}}, {1, [3]byte{0x37, 0x00, 0x00}}, + {1, [3]byte{0x38, 0x00, 0x00}}, {1, [3]byte{0x39, 0x00, 0x00}}, + {1, [3]byte{0x3a, 0x00, 0x00}}, {1, [3]byte{0x3b, 0x00, 0x00}}, + {1, [3]byte{0x3c, 0x00, 0x00}}, {1, [3]byte{0x3d, 0x00, 0x00}}, + {1, [3]byte{0x3e, 0x00, 0x00}}, {1, [3]byte{0x3f, 0x00, 0x00}}, + {1, [3]byte{0x40, 0x00, 0x00}}, {1, [3]byte{0x41, 0x00, 0x00}}, + {1, [3]byte{0x42, 0x00, 0x00}}, {1, [3]byte{0x43, 0x00, 0x00}}, + {1, [3]byte{0x44, 0x00, 0x00}}, {1, [3]byte{0x45, 0x00, 0x00}}, + {1, [3]byte{0x46, 0x00, 0x00}}, {1, [3]byte{0x47, 0x00, 0x00}}, + {1, [3]byte{0x48, 0x00, 0x00}}, {1, [3]byte{0x49, 0x00, 0x00}}, + {1, [3]byte{0x4a, 0x00, 0x00}}, {1, [3]byte{0x4b, 0x00, 0x00}}, + {1, [3]byte{0x4c, 0x00, 0x00}}, {1, [3]byte{0x4d, 0x00, 0x00}}, + {1, [3]byte{0x4e, 0x00, 0x00}}, {1, [3]byte{0x4f, 0x00, 0x00}}, + {1, [3]byte{0x50, 0x00, 0x00}}, {1, [3]byte{0x51, 0x00, 0x00}}, + {1, [3]byte{0x52, 0x00, 0x00}}, {1, [3]byte{0x53, 0x00, 0x00}}, + {1, [3]byte{0x54, 0x00, 0x00}}, {1, [3]byte{0x55, 0x00, 0x00}}, + {1, [3]byte{0x56, 0x00, 0x00}}, {1, [3]byte{0x57, 0x00, 0x00}}, + {1, [3]byte{0x58, 0x00, 0x00}}, {1, [3]byte{0x59, 0x00, 0x00}}, + {1, [3]byte{0x5a, 0x00, 0x00}}, {1, [3]byte{0x5b, 0x00, 0x00}}, + {1, [3]byte{0x5c, 0x00, 0x00}}, {1, [3]byte{0x5d, 0x00, 0x00}}, + {1, [3]byte{0x5e, 0x00, 0x00}}, {1, [3]byte{0x5f, 0x00, 0x00}}, + {1, [3]byte{0x60, 0x00, 0x00}}, {1, [3]byte{0x61, 0x00, 0x00}}, + {1, [3]byte{0x62, 0x00, 0x00}}, {1, [3]byte{0x63, 0x00, 0x00}}, + {1, [3]byte{0x64, 0x00, 0x00}}, {1, [3]byte{0x65, 0x00, 0x00}}, + {1, [3]byte{0x66, 0x00, 0x00}}, {1, [3]byte{0x67, 0x00, 0x00}}, + {1, [3]byte{0x68, 0x00, 0x00}}, {1, [3]byte{0x69, 0x00, 0x00}}, + {1, [3]byte{0x6a, 0x00, 0x00}}, {1, [3]byte{0x6b, 0x00, 0x00}}, + {1, [3]byte{0x6c, 0x00, 0x00}}, {1, [3]byte{0x6d, 0x00, 0x00}}, + {1, [3]byte{0x6e, 0x00, 0x00}}, {1, [3]byte{0x6f, 0x00, 0x00}}, + {1, [3]byte{0x70, 0x00, 0x00}}, {1, [3]byte{0x71, 0x00, 0x00}}, + {1, [3]byte{0x72, 0x00, 0x00}}, {1, [3]byte{0x73, 0x00, 0x00}}, + {1, [3]byte{0x74, 0x00, 0x00}}, {1, [3]byte{0x75, 0x00, 0x00}}, + {1, [3]byte{0x76, 0x00, 0x00}}, {1, [3]byte{0x77, 0x00, 0x00}}, + {1, [3]byte{0x78, 0x00, 0x00}}, {1, [3]byte{0x79, 0x00, 0x00}}, + {1, [3]byte{0x7a, 0x00, 0x00}}, {1, [3]byte{0x7b, 0x00, 0x00}}, + {1, [3]byte{0x7c, 0x00, 0x00}}, {1, [3]byte{0x7d, 0x00, 0x00}}, + {1, [3]byte{0x7e, 0x00, 0x00}}, {1, [3]byte{0x7f, 0x00, 0x00}}, + {2, [3]byte{0xc3, 0x87, 0x00}}, {2, [3]byte{0xc3, 0xbc, 0x00}}, + {2, [3]byte{0xc3, 0xa9, 0x00}}, {2, [3]byte{0xc3, 0xa2, 0x00}}, + {2, [3]byte{0xc3, 0xa4, 0x00}}, {2, [3]byte{0xc5, 0xaf, 0x00}}, + {2, [3]byte{0xc4, 0x87, 0x00}}, {2, [3]byte{0xc3, 0xa7, 0x00}}, + {2, [3]byte{0xc5, 0x82, 0x00}}, {2, [3]byte{0xc3, 0xab, 0x00}}, + {2, [3]byte{0xc5, 0x90, 0x00}}, {2, [3]byte{0xc5, 0x91, 0x00}}, + {2, [3]byte{0xc3, 0xae, 0x00}}, {2, [3]byte{0xc5, 0xb9, 0x00}}, + {2, [3]byte{0xc3, 0x84, 0x00}}, {2, [3]byte{0xc4, 0x86, 0x00}}, + {2, [3]byte{0xc3, 0x89, 0x00}}, {2, [3]byte{0xc4, 0xb9, 0x00}}, + {2, [3]byte{0xc4, 0xba, 0x00}}, {2, [3]byte{0xc3, 0xb4, 0x00}}, + {2, [3]byte{0xc3, 0xb6, 0x00}}, {2, [3]byte{0xc4, 0xbd, 0x00}}, + {2, [3]byte{0xc4, 0xbe, 0x00}}, {2, [3]byte{0xc5, 0x9a, 0x00}}, + {2, [3]byte{0xc5, 0x9b, 0x00}}, {2, [3]byte{0xc3, 0x96, 0x00}}, + {2, [3]byte{0xc3, 0x9c, 0x00}}, {2, [3]byte{0xc5, 0xa4, 0x00}}, + {2, [3]byte{0xc5, 0xa5, 0x00}}, {2, [3]byte{0xc5, 0x81, 0x00}}, + {2, [3]byte{0xc3, 0x97, 0x00}}, {2, [3]byte{0xc4, 0x8d, 0x00}}, + {2, [3]byte{0xc3, 0xa1, 0x00}}, {2, [3]byte{0xc3, 0xad, 0x00}}, + {2, [3]byte{0xc3, 0xb3, 0x00}}, {2, [3]byte{0xc3, 0xba, 0x00}}, + {2, [3]byte{0xc4, 0x84, 0x00}}, {2, [3]byte{0xc4, 0x85, 0x00}}, + {2, [3]byte{0xc5, 0xbd, 0x00}}, {2, [3]byte{0xc5, 0xbe, 0x00}}, + {2, [3]byte{0xc4, 0x98, 0x00}}, {2, [3]byte{0xc4, 0x99, 0x00}}, + {2, [3]byte{0xc2, 0xac, 0x00}}, {2, [3]byte{0xc5, 0xba, 0x00}}, + {2, [3]byte{0xc4, 0x8c, 0x00}}, {2, [3]byte{0xc5, 0x9f, 0x00}}, + {2, [3]byte{0xc2, 0xab, 0x00}}, {2, [3]byte{0xc2, 0xbb, 0x00}}, + {3, [3]byte{0xe2, 0x96, 0x91}}, {3, [3]byte{0xe2, 0x96, 0x92}}, + {3, [3]byte{0xe2, 0x96, 0x93}}, {3, [3]byte{0xe2, 0x94, 0x82}}, + {3, [3]byte{0xe2, 0x94, 0xa4}}, {2, [3]byte{0xc3, 0x81, 0x00}}, + {2, [3]byte{0xc3, 0x82, 0x00}}, {2, [3]byte{0xc4, 0x9a, 0x00}}, + {2, [3]byte{0xc5, 0x9e, 0x00}}, {3, [3]byte{0xe2, 0x95, 0xa3}}, + {3, [3]byte{0xe2, 0x95, 0x91}}, {3, [3]byte{0xe2, 0x95, 0x97}}, + {3, [3]byte{0xe2, 0x95, 0x9d}}, {2, [3]byte{0xc5, 0xbb, 0x00}}, + {2, [3]byte{0xc5, 0xbc, 0x00}}, {3, [3]byte{0xe2, 0x94, 0x90}}, + {3, [3]byte{0xe2, 0x94, 0x94}}, {3, [3]byte{0xe2, 0x94, 0xb4}}, + {3, [3]byte{0xe2, 0x94, 0xac}}, {3, [3]byte{0xe2, 0x94, 0x9c}}, + {3, [3]byte{0xe2, 0x94, 0x80}}, {3, [3]byte{0xe2, 0x94, 0xbc}}, + {2, [3]byte{0xc4, 0x82, 0x00}}, {2, [3]byte{0xc4, 0x83, 0x00}}, + {3, [3]byte{0xe2, 0x95, 0x9a}}, {3, [3]byte{0xe2, 0x95, 0x94}}, + {3, [3]byte{0xe2, 0x95, 0xa9}}, {3, [3]byte{0xe2, 0x95, 0xa6}}, + {3, [3]byte{0xe2, 0x95, 0xa0}}, {3, [3]byte{0xe2, 0x95, 0x90}}, + {3, [3]byte{0xe2, 0x95, 0xac}}, {2, [3]byte{0xc2, 0xa4, 0x00}}, + {2, [3]byte{0xc4, 0x91, 0x00}}, {2, [3]byte{0xc4, 0x90, 0x00}}, + {2, [3]byte{0xc4, 0x8e, 0x00}}, {2, [3]byte{0xc3, 0x8b, 0x00}}, + {2, [3]byte{0xc4, 0x8f, 0x00}}, {2, [3]byte{0xc5, 0x87, 0x00}}, + {2, [3]byte{0xc3, 0x8d, 0x00}}, {2, [3]byte{0xc3, 0x8e, 0x00}}, + {2, [3]byte{0xc4, 0x9b, 0x00}}, {3, [3]byte{0xe2, 0x94, 0x98}}, + {3, [3]byte{0xe2, 0x94, 0x8c}}, {3, [3]byte{0xe2, 0x96, 0x88}}, + {3, [3]byte{0xe2, 0x96, 0x84}}, {2, [3]byte{0xc5, 0xa2, 0x00}}, + {2, [3]byte{0xc5, 0xae, 0x00}}, {3, [3]byte{0xe2, 0x96, 0x80}}, + {2, [3]byte{0xc3, 0x93, 0x00}}, {2, [3]byte{0xc3, 0x9f, 0x00}}, + {2, [3]byte{0xc3, 0x94, 0x00}}, {2, [3]byte{0xc5, 0x83, 0x00}}, + {2, [3]byte{0xc5, 0x84, 0x00}}, {2, [3]byte{0xc5, 0x88, 0x00}}, + {2, [3]byte{0xc5, 0xa0, 0x00}}, {2, [3]byte{0xc5, 0xa1, 0x00}}, + {2, [3]byte{0xc5, 0x94, 0x00}}, {2, [3]byte{0xc3, 0x9a, 0x00}}, + {2, [3]byte{0xc5, 0x95, 0x00}}, {2, [3]byte{0xc5, 0xb0, 0x00}}, + {2, [3]byte{0xc3, 0xbd, 0x00}}, {2, [3]byte{0xc3, 0x9d, 0x00}}, + {2, [3]byte{0xc5, 0xa3, 0x00}}, {2, [3]byte{0xc2, 0xb4, 0x00}}, + {2, [3]byte{0xc2, 0xad, 0x00}}, {2, [3]byte{0xcb, 0x9d, 0x00}}, + {2, [3]byte{0xcb, 0x9b, 0x00}}, {2, [3]byte{0xcb, 0x87, 0x00}}, + {2, [3]byte{0xcb, 0x98, 0x00}}, {2, [3]byte{0xc2, 0xa7, 0x00}}, + {2, [3]byte{0xc3, 0xb7, 0x00}}, {2, [3]byte{0xc2, 0xb8, 0x00}}, + {2, [3]byte{0xc2, 0xb0, 0x00}}, {2, [3]byte{0xc2, 0xa8, 0x00}}, + {2, [3]byte{0xcb, 0x99, 0x00}}, {2, [3]byte{0xc5, 0xb1, 0x00}}, + {2, [3]byte{0xc5, 0x98, 0x00}}, {2, [3]byte{0xc5, 0x99, 0x00}}, + {3, [3]byte{0xe2, 0x96, 0xa0}}, {2, [3]byte{0xc2, 0xa0, 0x00}}, + }, + encode: [256]uint32{ + 0x00000000, 0x01000001, 0x02000002, 0x03000003, 0x04000004, 0x05000005, 0x06000006, 0x07000007, + 0x08000008, 0x09000009, 0x0a00000a, 0x0b00000b, 0x0c00000c, 0x0d00000d, 0x0e00000e, 0x0f00000f, + 0x10000010, 0x11000011, 0x12000012, 0x13000013, 0x14000014, 0x15000015, 0x16000016, 0x17000017, + 0x18000018, 0x19000019, 0x1a00001a, 0x1b00001b, 0x1c00001c, 0x1d00001d, 0x1e00001e, 0x1f00001f, + 0x20000020, 0x21000021, 0x22000022, 0x23000023, 0x24000024, 0x25000025, 0x26000026, 0x27000027, + 0x28000028, 0x29000029, 0x2a00002a, 0x2b00002b, 0x2c00002c, 0x2d00002d, 0x2e00002e, 0x2f00002f, + 0x30000030, 0x31000031, 0x32000032, 0x33000033, 0x34000034, 0x35000035, 0x36000036, 0x37000037, + 0x38000038, 0x39000039, 0x3a00003a, 0x3b00003b, 0x3c00003c, 0x3d00003d, 0x3e00003e, 0x3f00003f, + 0x40000040, 0x41000041, 0x42000042, 0x43000043, 0x44000044, 0x45000045, 0x46000046, 0x47000047, + 0x48000048, 0x49000049, 0x4a00004a, 0x4b00004b, 0x4c00004c, 0x4d00004d, 0x4e00004e, 0x4f00004f, + 0x50000050, 0x51000051, 0x52000052, 0x53000053, 0x54000054, 0x55000055, 0x56000056, 0x57000057, + 0x58000058, 0x59000059, 0x5a00005a, 0x5b00005b, 0x5c00005c, 0x5d00005d, 0x5e00005e, 0x5f00005f, + 0x60000060, 0x61000061, 0x62000062, 0x63000063, 0x64000064, 0x65000065, 0x66000066, 0x67000067, + 0x68000068, 0x69000069, 0x6a00006a, 0x6b00006b, 0x6c00006c, 0x6d00006d, 0x6e00006e, 0x6f00006f, + 0x70000070, 0x71000071, 0x72000072, 0x73000073, 0x74000074, 0x75000075, 0x76000076, 0x77000077, + 0x78000078, 0x79000079, 0x7a00007a, 0x7b00007b, 0x7c00007c, 0x7d00007d, 0x7e00007e, 0x7f00007f, + 0xff0000a0, 0xcf0000a4, 0xf50000a7, 0xf90000a8, 0xae0000ab, 0xaa0000ac, 0xf00000ad, 0xf80000b0, + 0xef0000b4, 0xf70000b8, 0xaf0000bb, 0xb50000c1, 0xb60000c2, 0x8e0000c4, 0x800000c7, 0x900000c9, + 0xd30000cb, 0xd60000cd, 0xd70000ce, 0xe00000d3, 0xe20000d4, 0x990000d6, 0x9e0000d7, 0xe90000da, + 0x9a0000dc, 0xed0000dd, 0xe10000df, 0xa00000e1, 0x830000e2, 0x840000e4, 0x870000e7, 0x820000e9, + 0x890000eb, 0xa10000ed, 0x8c0000ee, 0xa20000f3, 0x930000f4, 0x940000f6, 0xf60000f7, 0xa30000fa, + 0x810000fc, 0xec0000fd, 0xc6000102, 0xc7000103, 0xa4000104, 0xa5000105, 0x8f000106, 0x86000107, + 0xac00010c, 0x9f00010d, 0xd200010e, 0xd400010f, 0xd1000110, 0xd0000111, 0xa8000118, 0xa9000119, + 0xb700011a, 0xd800011b, 0x91000139, 0x9200013a, 0x9500013d, 0x9600013e, 0x9d000141, 0x88000142, + 0xe3000143, 0xe4000144, 0xd5000147, 0xe5000148, 0x8a000150, 0x8b000151, 0xe8000154, 0xea000155, + 0xfc000158, 0xfd000159, 0x9700015a, 0x9800015b, 0xb800015e, 0xad00015f, 0xe6000160, 0xe7000161, + 0xdd000162, 0xee000163, 0x9b000164, 0x9c000165, 0xde00016e, 0x8500016f, 0xeb000170, 0xfb000171, + 0x8d000179, 0xab00017a, 0xbd00017b, 0xbe00017c, 0xa600017d, 0xa700017e, 0xf30002c7, 0xf40002d8, + 0xfa0002d9, 0xf20002db, 0xf10002dd, 0xc4002500, 0xb3002502, 0xda00250c, 0xbf002510, 0xc0002514, + 0xd9002518, 0xc300251c, 0xb4002524, 0xc200252c, 0xc1002534, 0xc500253c, 0xcd002550, 0xba002551, + 0xc9002554, 0xbb002557, 0xc800255a, 0xbc00255d, 0xcc002560, 0xb9002563, 0xcb002566, 0xca002569, + 0xce00256c, 0xdf002580, 0xdc002584, 0xdb002588, 0xb0002591, 0xb1002592, 0xb2002593, 0xfe0025a0, + }, +} + +// CodePage855 is the IBM Code Page 855 encoding. +var CodePage855 *Charmap = &codePage855 + +var codePage855 = Charmap{ + name: "IBM Code Page 855", + mib: identifier.IBM855, + asciiSuperset: true, + low: 0x80, + replacement: 0x1a, + decode: [256]utf8Enc{ + {1, [3]byte{0x00, 0x00, 0x00}}, {1, [3]byte{0x01, 0x00, 0x00}}, + {1, [3]byte{0x02, 0x00, 0x00}}, {1, [3]byte{0x03, 0x00, 0x00}}, + {1, [3]byte{0x04, 0x00, 0x00}}, {1, [3]byte{0x05, 0x00, 0x00}}, + {1, [3]byte{0x06, 0x00, 0x00}}, {1, [3]byte{0x07, 0x00, 0x00}}, + {1, [3]byte{0x08, 0x00, 0x00}}, {1, [3]byte{0x09, 0x00, 0x00}}, + {1, [3]byte{0x0a, 0x00, 0x00}}, {1, [3]byte{0x0b, 0x00, 0x00}}, + {1, [3]byte{0x0c, 0x00, 0x00}}, {1, [3]byte{0x0d, 0x00, 0x00}}, + {1, [3]byte{0x0e, 0x00, 0x00}}, {1, [3]byte{0x0f, 0x00, 0x00}}, + {1, [3]byte{0x10, 0x00, 0x00}}, {1, [3]byte{0x11, 0x00, 0x00}}, + {1, [3]byte{0x12, 0x00, 0x00}}, {1, [3]byte{0x13, 0x00, 0x00}}, + {1, [3]byte{0x14, 0x00, 0x00}}, {1, [3]byte{0x15, 0x00, 0x00}}, + {1, [3]byte{0x16, 0x00, 0x00}}, {1, [3]byte{0x17, 0x00, 0x00}}, + {1, [3]byte{0x18, 0x00, 0x00}}, {1, [3]byte{0x19, 0x00, 0x00}}, + {1, [3]byte{0x1a, 0x00, 0x00}}, {1, [3]byte{0x1b, 0x00, 0x00}}, + {1, [3]byte{0x1c, 0x00, 0x00}}, {1, [3]byte{0x1d, 0x00, 0x00}}, + {1, [3]byte{0x1e, 0x00, 0x00}}, {1, [3]byte{0x1f, 0x00, 0x00}}, + {1, [3]byte{0x20, 0x00, 0x00}}, {1, [3]byte{0x21, 0x00, 0x00}}, + {1, [3]byte{0x22, 0x00, 0x00}}, {1, [3]byte{0x23, 0x00, 0x00}}, + {1, [3]byte{0x24, 0x00, 0x00}}, {1, [3]byte{0x25, 0x00, 0x00}}, + {1, [3]byte{0x26, 0x00, 0x00}}, {1, [3]byte{0x27, 0x00, 0x00}}, + {1, [3]byte{0x28, 0x00, 0x00}}, {1, [3]byte{0x29, 0x00, 0x00}}, + {1, [3]byte{0x2a, 0x00, 0x00}}, {1, [3]byte{0x2b, 0x00, 0x00}}, + {1, [3]byte{0x2c, 0x00, 0x00}}, {1, [3]byte{0x2d, 0x00, 0x00}}, + {1, [3]byte{0x2e, 0x00, 0x00}}, {1, [3]byte{0x2f, 0x00, 0x00}}, + {1, [3]byte{0x30, 0x00, 0x00}}, {1, [3]byte{0x31, 0x00, 0x00}}, + {1, [3]byte{0x32, 0x00, 0x00}}, {1, [3]byte{0x33, 0x00, 0x00}}, + {1, [3]byte{0x34, 0x00, 0x00}}, {1, [3]byte{0x35, 0x00, 0x00}}, + {1, [3]byte{0x36, 0x00, 0x00}}, {1, [3]byte{0x37, 0x00, 0x00}}, + {1, [3]byte{0x38, 0x00, 0x00}}, {1, [3]byte{0x39, 0x00, 0x00}}, + {1, [3]byte{0x3a, 0x00, 0x00}}, {1, [3]byte{0x3b, 0x00, 0x00}}, + {1, [3]byte{0x3c, 0x00, 0x00}}, {1, [3]byte{0x3d, 0x00, 0x00}}, + {1, [3]byte{0x3e, 0x00, 0x00}}, {1, [3]byte{0x3f, 0x00, 0x00}}, + {1, [3]byte{0x40, 0x00, 0x00}}, {1, [3]byte{0x41, 0x00, 0x00}}, + {1, [3]byte{0x42, 0x00, 0x00}}, {1, [3]byte{0x43, 0x00, 0x00}}, + {1, [3]byte{0x44, 0x00, 0x00}}, {1, [3]byte{0x45, 0x00, 0x00}}, + {1, [3]byte{0x46, 0x00, 0x00}}, {1, [3]byte{0x47, 0x00, 0x00}}, + {1, [3]byte{0x48, 0x00, 0x00}}, {1, [3]byte{0x49, 0x00, 0x00}}, + {1, [3]byte{0x4a, 0x00, 0x00}}, {1, [3]byte{0x4b, 0x00, 0x00}}, + {1, [3]byte{0x4c, 0x00, 0x00}}, {1, [3]byte{0x4d, 0x00, 0x00}}, + {1, [3]byte{0x4e, 0x00, 0x00}}, {1, [3]byte{0x4f, 0x00, 0x00}}, + {1, [3]byte{0x50, 0x00, 0x00}}, {1, [3]byte{0x51, 0x00, 0x00}}, + {1, [3]byte{0x52, 0x00, 0x00}}, {1, [3]byte{0x53, 0x00, 0x00}}, + {1, [3]byte{0x54, 0x00, 0x00}}, {1, [3]byte{0x55, 0x00, 0x00}}, + {1, [3]byte{0x56, 0x00, 0x00}}, {1, [3]byte{0x57, 0x00, 0x00}}, + {1, [3]byte{0x58, 0x00, 0x00}}, {1, [3]byte{0x59, 0x00, 0x00}}, + {1, [3]byte{0x5a, 0x00, 0x00}}, {1, [3]byte{0x5b, 0x00, 0x00}}, + {1, [3]byte{0x5c, 0x00, 0x00}}, {1, [3]byte{0x5d, 0x00, 0x00}}, + {1, [3]byte{0x5e, 0x00, 0x00}}, {1, [3]byte{0x5f, 0x00, 0x00}}, + {1, [3]byte{0x60, 0x00, 0x00}}, {1, [3]byte{0x61, 0x00, 0x00}}, + {1, [3]byte{0x62, 0x00, 0x00}}, {1, [3]byte{0x63, 0x00, 0x00}}, + {1, [3]byte{0x64, 0x00, 0x00}}, {1, [3]byte{0x65, 0x00, 0x00}}, + {1, [3]byte{0x66, 0x00, 0x00}}, {1, [3]byte{0x67, 0x00, 0x00}}, + {1, [3]byte{0x68, 0x00, 0x00}}, {1, [3]byte{0x69, 0x00, 0x00}}, + {1, [3]byte{0x6a, 0x00, 0x00}}, {1, [3]byte{0x6b, 0x00, 0x00}}, + {1, [3]byte{0x6c, 0x00, 0x00}}, {1, [3]byte{0x6d, 0x00, 0x00}}, + {1, [3]byte{0x6e, 0x00, 0x00}}, {1, [3]byte{0x6f, 0x00, 0x00}}, + {1, [3]byte{0x70, 0x00, 0x00}}, {1, [3]byte{0x71, 0x00, 0x00}}, + {1, [3]byte{0x72, 0x00, 0x00}}, {1, [3]byte{0x73, 0x00, 0x00}}, + {1, [3]byte{0x74, 0x00, 0x00}}, {1, [3]byte{0x75, 0x00, 0x00}}, + {1, [3]byte{0x76, 0x00, 0x00}}, {1, [3]byte{0x77, 0x00, 0x00}}, + {1, [3]byte{0x78, 0x00, 0x00}}, {1, [3]byte{0x79, 0x00, 0x00}}, + {1, [3]byte{0x7a, 0x00, 0x00}}, {1, [3]byte{0x7b, 0x00, 0x00}}, + {1, [3]byte{0x7c, 0x00, 0x00}}, {1, [3]byte{0x7d, 0x00, 0x00}}, + {1, [3]byte{0x7e, 0x00, 0x00}}, {1, [3]byte{0x7f, 0x00, 0x00}}, + {2, [3]byte{0xd1, 0x92, 0x00}}, {2, [3]byte{0xd0, 0x82, 0x00}}, + {2, [3]byte{0xd1, 0x93, 0x00}}, {2, [3]byte{0xd0, 0x83, 0x00}}, + {2, [3]byte{0xd1, 0x91, 0x00}}, {2, [3]byte{0xd0, 0x81, 0x00}}, + {2, [3]byte{0xd1, 0x94, 0x00}}, {2, [3]byte{0xd0, 0x84, 0x00}}, + {2, [3]byte{0xd1, 0x95, 0x00}}, {2, [3]byte{0xd0, 0x85, 0x00}}, + {2, [3]byte{0xd1, 0x96, 0x00}}, {2, [3]byte{0xd0, 0x86, 0x00}}, + {2, [3]byte{0xd1, 0x97, 0x00}}, {2, [3]byte{0xd0, 0x87, 0x00}}, + {2, [3]byte{0xd1, 0x98, 0x00}}, {2, [3]byte{0xd0, 0x88, 0x00}}, + {2, [3]byte{0xd1, 0x99, 0x00}}, {2, [3]byte{0xd0, 0x89, 0x00}}, + {2, [3]byte{0xd1, 0x9a, 0x00}}, {2, [3]byte{0xd0, 0x8a, 0x00}}, + {2, [3]byte{0xd1, 0x9b, 0x00}}, {2, [3]byte{0xd0, 0x8b, 0x00}}, + {2, [3]byte{0xd1, 0x9c, 0x00}}, {2, [3]byte{0xd0, 0x8c, 0x00}}, + {2, [3]byte{0xd1, 0x9e, 0x00}}, {2, [3]byte{0xd0, 0x8e, 0x00}}, + {2, [3]byte{0xd1, 0x9f, 0x00}}, {2, [3]byte{0xd0, 0x8f, 0x00}}, + {2, [3]byte{0xd1, 0x8e, 0x00}}, {2, [3]byte{0xd0, 0xae, 0x00}}, + {2, [3]byte{0xd1, 0x8a, 0x00}}, {2, [3]byte{0xd0, 0xaa, 0x00}}, + {2, [3]byte{0xd0, 0xb0, 0x00}}, {2, [3]byte{0xd0, 0x90, 0x00}}, + {2, [3]byte{0xd0, 0xb1, 0x00}}, {2, [3]byte{0xd0, 0x91, 0x00}}, + {2, [3]byte{0xd1, 0x86, 0x00}}, {2, [3]byte{0xd0, 0xa6, 0x00}}, + {2, [3]byte{0xd0, 0xb4, 0x00}}, {2, [3]byte{0xd0, 0x94, 0x00}}, + {2, [3]byte{0xd0, 0xb5, 0x00}}, {2, [3]byte{0xd0, 0x95, 0x00}}, + {2, [3]byte{0xd1, 0x84, 0x00}}, {2, [3]byte{0xd0, 0xa4, 0x00}}, + {2, [3]byte{0xd0, 0xb3, 0x00}}, {2, [3]byte{0xd0, 0x93, 0x00}}, + {2, [3]byte{0xc2, 0xab, 0x00}}, {2, [3]byte{0xc2, 0xbb, 0x00}}, + {3, [3]byte{0xe2, 0x96, 0x91}}, {3, [3]byte{0xe2, 0x96, 0x92}}, + {3, [3]byte{0xe2, 0x96, 0x93}}, {3, [3]byte{0xe2, 0x94, 0x82}}, + {3, [3]byte{0xe2, 0x94, 0xa4}}, {2, [3]byte{0xd1, 0x85, 0x00}}, + {2, [3]byte{0xd0, 0xa5, 0x00}}, {2, [3]byte{0xd0, 0xb8, 0x00}}, + {2, [3]byte{0xd0, 0x98, 0x00}}, {3, [3]byte{0xe2, 0x95, 0xa3}}, + {3, [3]byte{0xe2, 0x95, 0x91}}, {3, [3]byte{0xe2, 0x95, 0x97}}, + {3, [3]byte{0xe2, 0x95, 0x9d}}, {2, [3]byte{0xd0, 0xb9, 0x00}}, + {2, [3]byte{0xd0, 0x99, 0x00}}, {3, [3]byte{0xe2, 0x94, 0x90}}, + {3, [3]byte{0xe2, 0x94, 0x94}}, {3, [3]byte{0xe2, 0x94, 0xb4}}, + {3, [3]byte{0xe2, 0x94, 0xac}}, {3, [3]byte{0xe2, 0x94, 0x9c}}, + {3, [3]byte{0xe2, 0x94, 0x80}}, {3, [3]byte{0xe2, 0x94, 0xbc}}, + {2, [3]byte{0xd0, 0xba, 0x00}}, {2, [3]byte{0xd0, 0x9a, 0x00}}, + {3, [3]byte{0xe2, 0x95, 0x9a}}, {3, [3]byte{0xe2, 0x95, 0x94}}, + {3, [3]byte{0xe2, 0x95, 0xa9}}, {3, [3]byte{0xe2, 0x95, 0xa6}}, + {3, [3]byte{0xe2, 0x95, 0xa0}}, {3, [3]byte{0xe2, 0x95, 0x90}}, + {3, [3]byte{0xe2, 0x95, 0xac}}, {2, [3]byte{0xc2, 0xa4, 0x00}}, + {2, [3]byte{0xd0, 0xbb, 0x00}}, {2, [3]byte{0xd0, 0x9b, 0x00}}, + {2, [3]byte{0xd0, 0xbc, 0x00}}, {2, [3]byte{0xd0, 0x9c, 0x00}}, + {2, [3]byte{0xd0, 0xbd, 0x00}}, {2, [3]byte{0xd0, 0x9d, 0x00}}, + {2, [3]byte{0xd0, 0xbe, 0x00}}, {2, [3]byte{0xd0, 0x9e, 0x00}}, + {2, [3]byte{0xd0, 0xbf, 0x00}}, {3, [3]byte{0xe2, 0x94, 0x98}}, + {3, [3]byte{0xe2, 0x94, 0x8c}}, {3, [3]byte{0xe2, 0x96, 0x88}}, + {3, [3]byte{0xe2, 0x96, 0x84}}, {2, [3]byte{0xd0, 0x9f, 0x00}}, + {2, [3]byte{0xd1, 0x8f, 0x00}}, {3, [3]byte{0xe2, 0x96, 0x80}}, + {2, [3]byte{0xd0, 0xaf, 0x00}}, {2, [3]byte{0xd1, 0x80, 0x00}}, + {2, [3]byte{0xd0, 0xa0, 0x00}}, {2, [3]byte{0xd1, 0x81, 0x00}}, + {2, [3]byte{0xd0, 0xa1, 0x00}}, {2, [3]byte{0xd1, 0x82, 0x00}}, + {2, [3]byte{0xd0, 0xa2, 0x00}}, {2, [3]byte{0xd1, 0x83, 0x00}}, + {2, [3]byte{0xd0, 0xa3, 0x00}}, {2, [3]byte{0xd0, 0xb6, 0x00}}, + {2, [3]byte{0xd0, 0x96, 0x00}}, {2, [3]byte{0xd0, 0xb2, 0x00}}, + {2, [3]byte{0xd0, 0x92, 0x00}}, {2, [3]byte{0xd1, 0x8c, 0x00}}, + {2, [3]byte{0xd0, 0xac, 0x00}}, {3, [3]byte{0xe2, 0x84, 0x96}}, + {2, [3]byte{0xc2, 0xad, 0x00}}, {2, [3]byte{0xd1, 0x8b, 0x00}}, + {2, [3]byte{0xd0, 0xab, 0x00}}, {2, [3]byte{0xd0, 0xb7, 0x00}}, + {2, [3]byte{0xd0, 0x97, 0x00}}, {2, [3]byte{0xd1, 0x88, 0x00}}, + {2, [3]byte{0xd0, 0xa8, 0x00}}, {2, [3]byte{0xd1, 0x8d, 0x00}}, + {2, [3]byte{0xd0, 0xad, 0x00}}, {2, [3]byte{0xd1, 0x89, 0x00}}, + {2, [3]byte{0xd0, 0xa9, 0x00}}, {2, [3]byte{0xd1, 0x87, 0x00}}, + {2, [3]byte{0xd0, 0xa7, 0x00}}, {2, [3]byte{0xc2, 0xa7, 0x00}}, + {3, [3]byte{0xe2, 0x96, 0xa0}}, {2, [3]byte{0xc2, 0xa0, 0x00}}, + }, + encode: [256]uint32{ + 0x00000000, 0x01000001, 0x02000002, 0x03000003, 0x04000004, 0x05000005, 0x06000006, 0x07000007, + 0x08000008, 0x09000009, 0x0a00000a, 0x0b00000b, 0x0c00000c, 0x0d00000d, 0x0e00000e, 0x0f00000f, + 0x10000010, 0x11000011, 0x12000012, 0x13000013, 0x14000014, 0x15000015, 0x16000016, 0x17000017, + 0x18000018, 0x19000019, 0x1a00001a, 0x1b00001b, 0x1c00001c, 0x1d00001d, 0x1e00001e, 0x1f00001f, + 0x20000020, 0x21000021, 0x22000022, 0x23000023, 0x24000024, 0x25000025, 0x26000026, 0x27000027, + 0x28000028, 0x29000029, 0x2a00002a, 0x2b00002b, 0x2c00002c, 0x2d00002d, 0x2e00002e, 0x2f00002f, + 0x30000030, 0x31000031, 0x32000032, 0x33000033, 0x34000034, 0x35000035, 0x36000036, 0x37000037, + 0x38000038, 0x39000039, 0x3a00003a, 0x3b00003b, 0x3c00003c, 0x3d00003d, 0x3e00003e, 0x3f00003f, + 0x40000040, 0x41000041, 0x42000042, 0x43000043, 0x44000044, 0x45000045, 0x46000046, 0x47000047, + 0x48000048, 0x49000049, 0x4a00004a, 0x4b00004b, 0x4c00004c, 0x4d00004d, 0x4e00004e, 0x4f00004f, + 0x50000050, 0x51000051, 0x52000052, 0x53000053, 0x54000054, 0x55000055, 0x56000056, 0x57000057, + 0x58000058, 0x59000059, 0x5a00005a, 0x5b00005b, 0x5c00005c, 0x5d00005d, 0x5e00005e, 0x5f00005f, + 0x60000060, 0x61000061, 0x62000062, 0x63000063, 0x64000064, 0x65000065, 0x66000066, 0x67000067, + 0x68000068, 0x69000069, 0x6a00006a, 0x6b00006b, 0x6c00006c, 0x6d00006d, 0x6e00006e, 0x6f00006f, + 0x70000070, 0x71000071, 0x72000072, 0x73000073, 0x74000074, 0x75000075, 0x76000076, 0x77000077, + 0x78000078, 0x79000079, 0x7a00007a, 0x7b00007b, 0x7c00007c, 0x7d00007d, 0x7e00007e, 0x7f00007f, + 0xff0000a0, 0xcf0000a4, 0xfd0000a7, 0xae0000ab, 0xf00000ad, 0xaf0000bb, 0x85000401, 0x81000402, + 0x83000403, 0x87000404, 0x89000405, 0x8b000406, 0x8d000407, 0x8f000408, 0x91000409, 0x9300040a, + 0x9500040b, 0x9700040c, 0x9900040e, 0x9b00040f, 0xa1000410, 0xa3000411, 0xec000412, 0xad000413, + 0xa7000414, 0xa9000415, 0xea000416, 0xf4000417, 0xb8000418, 0xbe000419, 0xc700041a, 0xd100041b, + 0xd300041c, 0xd500041d, 0xd700041e, 0xdd00041f, 0xe2000420, 0xe4000421, 0xe6000422, 0xe8000423, + 0xab000424, 0xb6000425, 0xa5000426, 0xfc000427, 0xf6000428, 0xfa000429, 0x9f00042a, 0xf200042b, + 0xee00042c, 0xf800042d, 0x9d00042e, 0xe000042f, 0xa0000430, 0xa2000431, 0xeb000432, 0xac000433, + 0xa6000434, 0xa8000435, 0xe9000436, 0xf3000437, 0xb7000438, 0xbd000439, 0xc600043a, 0xd000043b, + 0xd200043c, 0xd400043d, 0xd600043e, 0xd800043f, 0xe1000440, 0xe3000441, 0xe5000442, 0xe7000443, + 0xaa000444, 0xb5000445, 0xa4000446, 0xfb000447, 0xf5000448, 0xf9000449, 0x9e00044a, 0xf100044b, + 0xed00044c, 0xf700044d, 0x9c00044e, 0xde00044f, 0x84000451, 0x80000452, 0x82000453, 0x86000454, + 0x88000455, 0x8a000456, 0x8c000457, 0x8e000458, 0x90000459, 0x9200045a, 0x9400045b, 0x9600045c, + 0x9800045e, 0x9a00045f, 0xef002116, 0xc4002500, 0xb3002502, 0xda00250c, 0xbf002510, 0xc0002514, + 0xd9002518, 0xc300251c, 0xb4002524, 0xc200252c, 0xc1002534, 0xc500253c, 0xcd002550, 0xba002551, + 0xc9002554, 0xbb002557, 0xc800255a, 0xbc00255d, 0xcc002560, 0xb9002563, 0xcb002566, 0xca002569, + 0xce00256c, 0xdf002580, 0xdc002584, 0xdb002588, 0xb0002591, 0xb1002592, 0xb2002593, 0xfe0025a0, + }, +} + +// CodePage858 is the Windows Code Page 858 encoding. +var CodePage858 *Charmap = &codePage858 + +var codePage858 = Charmap{ + name: "Windows Code Page 858", + mib: identifier.IBM00858, + asciiSuperset: true, + low: 0x80, + replacement: 0x1a, + decode: [256]utf8Enc{ + {1, [3]byte{0x00, 0x00, 0x00}}, {1, [3]byte{0x01, 0x00, 0x00}}, + {1, [3]byte{0x02, 0x00, 0x00}}, {1, [3]byte{0x03, 0x00, 0x00}}, + {1, [3]byte{0x04, 0x00, 0x00}}, {1, [3]byte{0x05, 0x00, 0x00}}, + {1, [3]byte{0x06, 0x00, 0x00}}, {1, [3]byte{0x07, 0x00, 0x00}}, + {1, [3]byte{0x08, 0x00, 0x00}}, {1, [3]byte{0x09, 0x00, 0x00}}, + {1, [3]byte{0x0a, 0x00, 0x00}}, {1, [3]byte{0x0b, 0x00, 0x00}}, + {1, [3]byte{0x0c, 0x00, 0x00}}, {1, [3]byte{0x0d, 0x00, 0x00}}, + {1, [3]byte{0x0e, 0x00, 0x00}}, {1, [3]byte{0x0f, 0x00, 0x00}}, + {1, [3]byte{0x10, 0x00, 0x00}}, {1, [3]byte{0x11, 0x00, 0x00}}, + {1, [3]byte{0x12, 0x00, 0x00}}, {1, [3]byte{0x13, 0x00, 0x00}}, + {1, [3]byte{0x14, 0x00, 0x00}}, {1, [3]byte{0x15, 0x00, 0x00}}, + {1, [3]byte{0x16, 0x00, 0x00}}, {1, [3]byte{0x17, 0x00, 0x00}}, + {1, [3]byte{0x18, 0x00, 0x00}}, {1, [3]byte{0x19, 0x00, 0x00}}, + {1, [3]byte{0x1a, 0x00, 0x00}}, {1, [3]byte{0x1b, 0x00, 0x00}}, + {1, [3]byte{0x1c, 0x00, 0x00}}, {1, [3]byte{0x1d, 0x00, 0x00}}, + {1, [3]byte{0x1e, 0x00, 0x00}}, {1, [3]byte{0x1f, 0x00, 0x00}}, + {1, [3]byte{0x20, 0x00, 0x00}}, {1, [3]byte{0x21, 0x00, 0x00}}, + {1, [3]byte{0x22, 0x00, 0x00}}, {1, [3]byte{0x23, 0x00, 0x00}}, + {1, [3]byte{0x24, 0x00, 0x00}}, {1, [3]byte{0x25, 0x00, 0x00}}, + {1, [3]byte{0x26, 0x00, 0x00}}, {1, [3]byte{0x27, 0x00, 0x00}}, + {1, [3]byte{0x28, 0x00, 0x00}}, {1, [3]byte{0x29, 0x00, 0x00}}, + {1, [3]byte{0x2a, 0x00, 0x00}}, {1, [3]byte{0x2b, 0x00, 0x00}}, + {1, [3]byte{0x2c, 0x00, 0x00}}, {1, [3]byte{0x2d, 0x00, 0x00}}, + {1, [3]byte{0x2e, 0x00, 0x00}}, {1, [3]byte{0x2f, 0x00, 0x00}}, + {1, [3]byte{0x30, 0x00, 0x00}}, {1, [3]byte{0x31, 0x00, 0x00}}, + {1, [3]byte{0x32, 0x00, 0x00}}, {1, [3]byte{0x33, 0x00, 0x00}}, + {1, [3]byte{0x34, 0x00, 0x00}}, {1, [3]byte{0x35, 0x00, 0x00}}, + {1, [3]byte{0x36, 0x00, 0x00}}, {1, [3]byte{0x37, 0x00, 0x00}}, + {1, [3]byte{0x38, 0x00, 0x00}}, {1, [3]byte{0x39, 0x00, 0x00}}, + {1, [3]byte{0x3a, 0x00, 0x00}}, {1, [3]byte{0x3b, 0x00, 0x00}}, + {1, [3]byte{0x3c, 0x00, 0x00}}, {1, [3]byte{0x3d, 0x00, 0x00}}, + {1, [3]byte{0x3e, 0x00, 0x00}}, {1, [3]byte{0x3f, 0x00, 0x00}}, + {1, [3]byte{0x40, 0x00, 0x00}}, {1, [3]byte{0x41, 0x00, 0x00}}, + {1, [3]byte{0x42, 0x00, 0x00}}, {1, [3]byte{0x43, 0x00, 0x00}}, + {1, [3]byte{0x44, 0x00, 0x00}}, {1, [3]byte{0x45, 0x00, 0x00}}, + {1, [3]byte{0x46, 0x00, 0x00}}, {1, [3]byte{0x47, 0x00, 0x00}}, + {1, [3]byte{0x48, 0x00, 0x00}}, {1, [3]byte{0x49, 0x00, 0x00}}, + {1, [3]byte{0x4a, 0x00, 0x00}}, {1, [3]byte{0x4b, 0x00, 0x00}}, + {1, [3]byte{0x4c, 0x00, 0x00}}, {1, [3]byte{0x4d, 0x00, 0x00}}, + {1, [3]byte{0x4e, 0x00, 0x00}}, {1, [3]byte{0x4f, 0x00, 0x00}}, + {1, [3]byte{0x50, 0x00, 0x00}}, {1, [3]byte{0x51, 0x00, 0x00}}, + {1, [3]byte{0x52, 0x00, 0x00}}, {1, [3]byte{0x53, 0x00, 0x00}}, + {1, [3]byte{0x54, 0x00, 0x00}}, {1, [3]byte{0x55, 0x00, 0x00}}, + {1, [3]byte{0x56, 0x00, 0x00}}, {1, [3]byte{0x57, 0x00, 0x00}}, + {1, [3]byte{0x58, 0x00, 0x00}}, {1, [3]byte{0x59, 0x00, 0x00}}, + {1, [3]byte{0x5a, 0x00, 0x00}}, {1, [3]byte{0x5b, 0x00, 0x00}}, + {1, [3]byte{0x5c, 0x00, 0x00}}, {1, [3]byte{0x5d, 0x00, 0x00}}, + {1, [3]byte{0x5e, 0x00, 0x00}}, {1, [3]byte{0x5f, 0x00, 0x00}}, + {1, [3]byte{0x60, 0x00, 0x00}}, {1, [3]byte{0x61, 0x00, 0x00}}, + {1, [3]byte{0x62, 0x00, 0x00}}, {1, [3]byte{0x63, 0x00, 0x00}}, + {1, [3]byte{0x64, 0x00, 0x00}}, {1, [3]byte{0x65, 0x00, 0x00}}, + {1, [3]byte{0x66, 0x00, 0x00}}, {1, [3]byte{0x67, 0x00, 0x00}}, + {1, [3]byte{0x68, 0x00, 0x00}}, {1, [3]byte{0x69, 0x00, 0x00}}, + {1, [3]byte{0x6a, 0x00, 0x00}}, {1, [3]byte{0x6b, 0x00, 0x00}}, + {1, [3]byte{0x6c, 0x00, 0x00}}, {1, [3]byte{0x6d, 0x00, 0x00}}, + {1, [3]byte{0x6e, 0x00, 0x00}}, {1, [3]byte{0x6f, 0x00, 0x00}}, + {1, [3]byte{0x70, 0x00, 0x00}}, {1, [3]byte{0x71, 0x00, 0x00}}, + {1, [3]byte{0x72, 0x00, 0x00}}, {1, [3]byte{0x73, 0x00, 0x00}}, + {1, [3]byte{0x74, 0x00, 0x00}}, {1, [3]byte{0x75, 0x00, 0x00}}, + {1, [3]byte{0x76, 0x00, 0x00}}, {1, [3]byte{0x77, 0x00, 0x00}}, + {1, [3]byte{0x78, 0x00, 0x00}}, {1, [3]byte{0x79, 0x00, 0x00}}, + {1, [3]byte{0x7a, 0x00, 0x00}}, {1, [3]byte{0x7b, 0x00, 0x00}}, + {1, [3]byte{0x7c, 0x00, 0x00}}, {1, [3]byte{0x7d, 0x00, 0x00}}, + {1, [3]byte{0x7e, 0x00, 0x00}}, {1, [3]byte{0x7f, 0x00, 0x00}}, + {2, [3]byte{0xc3, 0x87, 0x00}}, {2, [3]byte{0xc3, 0xbc, 0x00}}, + {2, [3]byte{0xc3, 0xa9, 0x00}}, {2, [3]byte{0xc3, 0xa2, 0x00}}, + {2, [3]byte{0xc3, 0xa4, 0x00}}, {2, [3]byte{0xc3, 0xa0, 0x00}}, + {2, [3]byte{0xc3, 0xa5, 0x00}}, {2, [3]byte{0xc3, 0xa7, 0x00}}, + {2, [3]byte{0xc3, 0xaa, 0x00}}, {2, [3]byte{0xc3, 0xab, 0x00}}, + {2, [3]byte{0xc3, 0xa8, 0x00}}, {2, [3]byte{0xc3, 0xaf, 0x00}}, + {2, [3]byte{0xc3, 0xae, 0x00}}, {2, [3]byte{0xc3, 0xac, 0x00}}, + {2, [3]byte{0xc3, 0x84, 0x00}}, {2, [3]byte{0xc3, 0x85, 0x00}}, + {2, [3]byte{0xc3, 0x89, 0x00}}, {2, [3]byte{0xc3, 0xa6, 0x00}}, + {2, [3]byte{0xc3, 0x86, 0x00}}, {2, [3]byte{0xc3, 0xb4, 0x00}}, + {2, [3]byte{0xc3, 0xb6, 0x00}}, {2, [3]byte{0xc3, 0xb2, 0x00}}, + {2, [3]byte{0xc3, 0xbb, 0x00}}, {2, [3]byte{0xc3, 0xb9, 0x00}}, + {2, [3]byte{0xc3, 0xbf, 0x00}}, {2, [3]byte{0xc3, 0x96, 0x00}}, + {2, [3]byte{0xc3, 0x9c, 0x00}}, {2, [3]byte{0xc3, 0xb8, 0x00}}, + {2, [3]byte{0xc2, 0xa3, 0x00}}, {2, [3]byte{0xc3, 0x98, 0x00}}, + {2, [3]byte{0xc3, 0x97, 0x00}}, {2, [3]byte{0xc6, 0x92, 0x00}}, + {2, [3]byte{0xc3, 0xa1, 0x00}}, {2, [3]byte{0xc3, 0xad, 0x00}}, + {2, [3]byte{0xc3, 0xb3, 0x00}}, {2, [3]byte{0xc3, 0xba, 0x00}}, + {2, [3]byte{0xc3, 0xb1, 0x00}}, {2, [3]byte{0xc3, 0x91, 0x00}}, + {2, [3]byte{0xc2, 0xaa, 0x00}}, {2, [3]byte{0xc2, 0xba, 0x00}}, + {2, [3]byte{0xc2, 0xbf, 0x00}}, {2, [3]byte{0xc2, 0xae, 0x00}}, + {2, [3]byte{0xc2, 0xac, 0x00}}, {2, [3]byte{0xc2, 0xbd, 0x00}}, + {2, [3]byte{0xc2, 0xbc, 0x00}}, {2, [3]byte{0xc2, 0xa1, 0x00}}, + {2, [3]byte{0xc2, 0xab, 0x00}}, {2, [3]byte{0xc2, 0xbb, 0x00}}, + {3, [3]byte{0xe2, 0x96, 0x91}}, {3, [3]byte{0xe2, 0x96, 0x92}}, + {3, [3]byte{0xe2, 0x96, 0x93}}, {3, [3]byte{0xe2, 0x94, 0x82}}, + {3, [3]byte{0xe2, 0x94, 0xa4}}, {2, [3]byte{0xc3, 0x81, 0x00}}, + {2, [3]byte{0xc3, 0x82, 0x00}}, {2, [3]byte{0xc3, 0x80, 0x00}}, + {2, [3]byte{0xc2, 0xa9, 0x00}}, {3, [3]byte{0xe2, 0x95, 0xa3}}, + {3, [3]byte{0xe2, 0x95, 0x91}}, {3, [3]byte{0xe2, 0x95, 0x97}}, + {3, [3]byte{0xe2, 0x95, 0x9d}}, {2, [3]byte{0xc2, 0xa2, 0x00}}, + {2, [3]byte{0xc2, 0xa5, 0x00}}, {3, [3]byte{0xe2, 0x94, 0x90}}, + {3, [3]byte{0xe2, 0x94, 0x94}}, {3, [3]byte{0xe2, 0x94, 0xb4}}, + {3, [3]byte{0xe2, 0x94, 0xac}}, {3, [3]byte{0xe2, 0x94, 0x9c}}, + {3, [3]byte{0xe2, 0x94, 0x80}}, {3, [3]byte{0xe2, 0x94, 0xbc}}, + {2, [3]byte{0xc3, 0xa3, 0x00}}, {2, [3]byte{0xc3, 0x83, 0x00}}, + {3, [3]byte{0xe2, 0x95, 0x9a}}, {3, [3]byte{0xe2, 0x95, 0x94}}, + {3, [3]byte{0xe2, 0x95, 0xa9}}, {3, [3]byte{0xe2, 0x95, 0xa6}}, + {3, [3]byte{0xe2, 0x95, 0xa0}}, {3, [3]byte{0xe2, 0x95, 0x90}}, + {3, [3]byte{0xe2, 0x95, 0xac}}, {2, [3]byte{0xc2, 0xa4, 0x00}}, + {2, [3]byte{0xc3, 0xb0, 0x00}}, {2, [3]byte{0xc3, 0x90, 0x00}}, + {2, [3]byte{0xc3, 0x8a, 0x00}}, {2, [3]byte{0xc3, 0x8b, 0x00}}, + {2, [3]byte{0xc3, 0x88, 0x00}}, {3, [3]byte{0xe2, 0x82, 0xac}}, + {2, [3]byte{0xc3, 0x8d, 0x00}}, {2, [3]byte{0xc3, 0x8e, 0x00}}, + {2, [3]byte{0xc3, 0x8f, 0x00}}, {3, [3]byte{0xe2, 0x94, 0x98}}, + {3, [3]byte{0xe2, 0x94, 0x8c}}, {3, [3]byte{0xe2, 0x96, 0x88}}, + {3, [3]byte{0xe2, 0x96, 0x84}}, {2, [3]byte{0xc2, 0xa6, 0x00}}, + {2, [3]byte{0xc3, 0x8c, 0x00}}, {3, [3]byte{0xe2, 0x96, 0x80}}, + {2, [3]byte{0xc3, 0x93, 0x00}}, {2, [3]byte{0xc3, 0x9f, 0x00}}, + {2, [3]byte{0xc3, 0x94, 0x00}}, {2, [3]byte{0xc3, 0x92, 0x00}}, + {2, [3]byte{0xc3, 0xb5, 0x00}}, {2, [3]byte{0xc3, 0x95, 0x00}}, + {2, [3]byte{0xc2, 0xb5, 0x00}}, {2, [3]byte{0xc3, 0xbe, 0x00}}, + {2, [3]byte{0xc3, 0x9e, 0x00}}, {2, [3]byte{0xc3, 0x9a, 0x00}}, + {2, [3]byte{0xc3, 0x9b, 0x00}}, {2, [3]byte{0xc3, 0x99, 0x00}}, + {2, [3]byte{0xc3, 0xbd, 0x00}}, {2, [3]byte{0xc3, 0x9d, 0x00}}, + {2, [3]byte{0xc2, 0xaf, 0x00}}, {2, [3]byte{0xc2, 0xb4, 0x00}}, + {2, [3]byte{0xc2, 0xad, 0x00}}, {2, [3]byte{0xc2, 0xb1, 0x00}}, + {3, [3]byte{0xe2, 0x80, 0x97}}, {2, [3]byte{0xc2, 0xbe, 0x00}}, + {2, [3]byte{0xc2, 0xb6, 0x00}}, {2, [3]byte{0xc2, 0xa7, 0x00}}, + {2, [3]byte{0xc3, 0xb7, 0x00}}, {2, [3]byte{0xc2, 0xb8, 0x00}}, + {2, [3]byte{0xc2, 0xb0, 0x00}}, {2, [3]byte{0xc2, 0xa8, 0x00}}, + {2, [3]byte{0xc2, 0xb7, 0x00}}, {2, [3]byte{0xc2, 0xb9, 0x00}}, + {2, [3]byte{0xc2, 0xb3, 0x00}}, {2, [3]byte{0xc2, 0xb2, 0x00}}, + {3, [3]byte{0xe2, 0x96, 0xa0}}, {2, [3]byte{0xc2, 0xa0, 0x00}}, + }, + encode: [256]uint32{ + 0x00000000, 0x01000001, 0x02000002, 0x03000003, 0x04000004, 0x05000005, 0x06000006, 0x07000007, + 0x08000008, 0x09000009, 0x0a00000a, 0x0b00000b, 0x0c00000c, 0x0d00000d, 0x0e00000e, 0x0f00000f, + 0x10000010, 0x11000011, 0x12000012, 0x13000013, 0x14000014, 0x15000015, 0x16000016, 0x17000017, + 0x18000018, 0x19000019, 0x1a00001a, 0x1b00001b, 0x1c00001c, 0x1d00001d, 0x1e00001e, 0x1f00001f, + 0x20000020, 0x21000021, 0x22000022, 0x23000023, 0x24000024, 0x25000025, 0x26000026, 0x27000027, + 0x28000028, 0x29000029, 0x2a00002a, 0x2b00002b, 0x2c00002c, 0x2d00002d, 0x2e00002e, 0x2f00002f, + 0x30000030, 0x31000031, 0x32000032, 0x33000033, 0x34000034, 0x35000035, 0x36000036, 0x37000037, + 0x38000038, 0x39000039, 0x3a00003a, 0x3b00003b, 0x3c00003c, 0x3d00003d, 0x3e00003e, 0x3f00003f, + 0x40000040, 0x41000041, 0x42000042, 0x43000043, 0x44000044, 0x45000045, 0x46000046, 0x47000047, + 0x48000048, 0x49000049, 0x4a00004a, 0x4b00004b, 0x4c00004c, 0x4d00004d, 0x4e00004e, 0x4f00004f, + 0x50000050, 0x51000051, 0x52000052, 0x53000053, 0x54000054, 0x55000055, 0x56000056, 0x57000057, + 0x58000058, 0x59000059, 0x5a00005a, 0x5b00005b, 0x5c00005c, 0x5d00005d, 0x5e00005e, 0x5f00005f, + 0x60000060, 0x61000061, 0x62000062, 0x63000063, 0x64000064, 0x65000065, 0x66000066, 0x67000067, + 0x68000068, 0x69000069, 0x6a00006a, 0x6b00006b, 0x6c00006c, 0x6d00006d, 0x6e00006e, 0x6f00006f, + 0x70000070, 0x71000071, 0x72000072, 0x73000073, 0x74000074, 0x75000075, 0x76000076, 0x77000077, + 0x78000078, 0x79000079, 0x7a00007a, 0x7b00007b, 0x7c00007c, 0x7d00007d, 0x7e00007e, 0x7f00007f, + 0xff0000a0, 0xad0000a1, 0xbd0000a2, 0x9c0000a3, 0xcf0000a4, 0xbe0000a5, 0xdd0000a6, 0xf50000a7, + 0xf90000a8, 0xb80000a9, 0xa60000aa, 0xae0000ab, 0xaa0000ac, 0xf00000ad, 0xa90000ae, 0xee0000af, + 0xf80000b0, 0xf10000b1, 0xfd0000b2, 0xfc0000b3, 0xef0000b4, 0xe60000b5, 0xf40000b6, 0xfa0000b7, + 0xf70000b8, 0xfb0000b9, 0xa70000ba, 0xaf0000bb, 0xac0000bc, 0xab0000bd, 0xf30000be, 0xa80000bf, + 0xb70000c0, 0xb50000c1, 0xb60000c2, 0xc70000c3, 0x8e0000c4, 0x8f0000c5, 0x920000c6, 0x800000c7, + 0xd40000c8, 0x900000c9, 0xd20000ca, 0xd30000cb, 0xde0000cc, 0xd60000cd, 0xd70000ce, 0xd80000cf, + 0xd10000d0, 0xa50000d1, 0xe30000d2, 0xe00000d3, 0xe20000d4, 0xe50000d5, 0x990000d6, 0x9e0000d7, + 0x9d0000d8, 0xeb0000d9, 0xe90000da, 0xea0000db, 0x9a0000dc, 0xed0000dd, 0xe80000de, 0xe10000df, + 0x850000e0, 0xa00000e1, 0x830000e2, 0xc60000e3, 0x840000e4, 0x860000e5, 0x910000e6, 0x870000e7, + 0x8a0000e8, 0x820000e9, 0x880000ea, 0x890000eb, 0x8d0000ec, 0xa10000ed, 0x8c0000ee, 0x8b0000ef, + 0xd00000f0, 0xa40000f1, 0x950000f2, 0xa20000f3, 0x930000f4, 0xe40000f5, 0x940000f6, 0xf60000f7, + 0x9b0000f8, 0x970000f9, 0xa30000fa, 0x960000fb, 0x810000fc, 0xec0000fd, 0xe70000fe, 0x980000ff, + 0x9f000192, 0xf2002017, 0xd50020ac, 0xc4002500, 0xb3002502, 0xda00250c, 0xbf002510, 0xc0002514, + 0xd9002518, 0xc300251c, 0xb4002524, 0xc200252c, 0xc1002534, 0xc500253c, 0xcd002550, 0xba002551, + 0xc9002554, 0xbb002557, 0xc800255a, 0xbc00255d, 0xcc002560, 0xb9002563, 0xcb002566, 0xca002569, + 0xce00256c, 0xdf002580, 0xdc002584, 0xdb002588, 0xb0002591, 0xb1002592, 0xb2002593, 0xfe0025a0, + }, +} + +// CodePage860 is the IBM Code Page 860 encoding. +var CodePage860 *Charmap = &codePage860 + +var codePage860 = Charmap{ + name: "IBM Code Page 860", + mib: identifier.IBM860, + asciiSuperset: true, + low: 0x80, + replacement: 0x1a, + decode: [256]utf8Enc{ + {1, [3]byte{0x00, 0x00, 0x00}}, {1, [3]byte{0x01, 0x00, 0x00}}, + {1, [3]byte{0x02, 0x00, 0x00}}, {1, [3]byte{0x03, 0x00, 0x00}}, + {1, [3]byte{0x04, 0x00, 0x00}}, {1, [3]byte{0x05, 0x00, 0x00}}, + {1, [3]byte{0x06, 0x00, 0x00}}, {1, [3]byte{0x07, 0x00, 0x00}}, + {1, [3]byte{0x08, 0x00, 0x00}}, {1, [3]byte{0x09, 0x00, 0x00}}, + {1, [3]byte{0x0a, 0x00, 0x00}}, {1, [3]byte{0x0b, 0x00, 0x00}}, + {1, [3]byte{0x0c, 0x00, 0x00}}, {1, [3]byte{0x0d, 0x00, 0x00}}, + {1, [3]byte{0x0e, 0x00, 0x00}}, {1, [3]byte{0x0f, 0x00, 0x00}}, + {1, [3]byte{0x10, 0x00, 0x00}}, {1, [3]byte{0x11, 0x00, 0x00}}, + {1, [3]byte{0x12, 0x00, 0x00}}, {1, [3]byte{0x13, 0x00, 0x00}}, + {1, [3]byte{0x14, 0x00, 0x00}}, {1, [3]byte{0x15, 0x00, 0x00}}, + {1, [3]byte{0x16, 0x00, 0x00}}, {1, [3]byte{0x17, 0x00, 0x00}}, + {1, [3]byte{0x18, 0x00, 0x00}}, {1, [3]byte{0x19, 0x00, 0x00}}, + {1, [3]byte{0x1a, 0x00, 0x00}}, {1, [3]byte{0x1b, 0x00, 0x00}}, + {1, [3]byte{0x1c, 0x00, 0x00}}, {1, [3]byte{0x1d, 0x00, 0x00}}, + {1, [3]byte{0x1e, 0x00, 0x00}}, {1, [3]byte{0x1f, 0x00, 0x00}}, + {1, [3]byte{0x20, 0x00, 0x00}}, {1, [3]byte{0x21, 0x00, 0x00}}, + {1, [3]byte{0x22, 0x00, 0x00}}, {1, [3]byte{0x23, 0x00, 0x00}}, + {1, [3]byte{0x24, 0x00, 0x00}}, {1, [3]byte{0x25, 0x00, 0x00}}, + {1, [3]byte{0x26, 0x00, 0x00}}, {1, [3]byte{0x27, 0x00, 0x00}}, + {1, [3]byte{0x28, 0x00, 0x00}}, {1, [3]byte{0x29, 0x00, 0x00}}, + {1, [3]byte{0x2a, 0x00, 0x00}}, {1, [3]byte{0x2b, 0x00, 0x00}}, + {1, [3]byte{0x2c, 0x00, 0x00}}, {1, [3]byte{0x2d, 0x00, 0x00}}, + {1, [3]byte{0x2e, 0x00, 0x00}}, {1, [3]byte{0x2f, 0x00, 0x00}}, + {1, [3]byte{0x30, 0x00, 0x00}}, {1, [3]byte{0x31, 0x00, 0x00}}, + {1, [3]byte{0x32, 0x00, 0x00}}, {1, [3]byte{0x33, 0x00, 0x00}}, + {1, [3]byte{0x34, 0x00, 0x00}}, {1, [3]byte{0x35, 0x00, 0x00}}, + {1, [3]byte{0x36, 0x00, 0x00}}, {1, [3]byte{0x37, 0x00, 0x00}}, + {1, [3]byte{0x38, 0x00, 0x00}}, {1, [3]byte{0x39, 0x00, 0x00}}, + {1, [3]byte{0x3a, 0x00, 0x00}}, {1, [3]byte{0x3b, 0x00, 0x00}}, + {1, [3]byte{0x3c, 0x00, 0x00}}, {1, [3]byte{0x3d, 0x00, 0x00}}, + {1, [3]byte{0x3e, 0x00, 0x00}}, {1, [3]byte{0x3f, 0x00, 0x00}}, + {1, [3]byte{0x40, 0x00, 0x00}}, {1, [3]byte{0x41, 0x00, 0x00}}, + {1, [3]byte{0x42, 0x00, 0x00}}, {1, [3]byte{0x43, 0x00, 0x00}}, + {1, [3]byte{0x44, 0x00, 0x00}}, {1, [3]byte{0x45, 0x00, 0x00}}, + {1, [3]byte{0x46, 0x00, 0x00}}, {1, [3]byte{0x47, 0x00, 0x00}}, + {1, [3]byte{0x48, 0x00, 0x00}}, {1, [3]byte{0x49, 0x00, 0x00}}, + {1, [3]byte{0x4a, 0x00, 0x00}}, {1, [3]byte{0x4b, 0x00, 0x00}}, + {1, [3]byte{0x4c, 0x00, 0x00}}, {1, [3]byte{0x4d, 0x00, 0x00}}, + {1, [3]byte{0x4e, 0x00, 0x00}}, {1, [3]byte{0x4f, 0x00, 0x00}}, + {1, [3]byte{0x50, 0x00, 0x00}}, {1, [3]byte{0x51, 0x00, 0x00}}, + {1, [3]byte{0x52, 0x00, 0x00}}, {1, [3]byte{0x53, 0x00, 0x00}}, + {1, [3]byte{0x54, 0x00, 0x00}}, {1, [3]byte{0x55, 0x00, 0x00}}, + {1, [3]byte{0x56, 0x00, 0x00}}, {1, [3]byte{0x57, 0x00, 0x00}}, + {1, [3]byte{0x58, 0x00, 0x00}}, {1, [3]byte{0x59, 0x00, 0x00}}, + {1, [3]byte{0x5a, 0x00, 0x00}}, {1, [3]byte{0x5b, 0x00, 0x00}}, + {1, [3]byte{0x5c, 0x00, 0x00}}, {1, [3]byte{0x5d, 0x00, 0x00}}, + {1, [3]byte{0x5e, 0x00, 0x00}}, {1, [3]byte{0x5f, 0x00, 0x00}}, + {1, [3]byte{0x60, 0x00, 0x00}}, {1, [3]byte{0x61, 0x00, 0x00}}, + {1, [3]byte{0x62, 0x00, 0x00}}, {1, [3]byte{0x63, 0x00, 0x00}}, + {1, [3]byte{0x64, 0x00, 0x00}}, {1, [3]byte{0x65, 0x00, 0x00}}, + {1, [3]byte{0x66, 0x00, 0x00}}, {1, [3]byte{0x67, 0x00, 0x00}}, + {1, [3]byte{0x68, 0x00, 0x00}}, {1, [3]byte{0x69, 0x00, 0x00}}, + {1, [3]byte{0x6a, 0x00, 0x00}}, {1, [3]byte{0x6b, 0x00, 0x00}}, + {1, [3]byte{0x6c, 0x00, 0x00}}, {1, [3]byte{0x6d, 0x00, 0x00}}, + {1, [3]byte{0x6e, 0x00, 0x00}}, {1, [3]byte{0x6f, 0x00, 0x00}}, + {1, [3]byte{0x70, 0x00, 0x00}}, {1, [3]byte{0x71, 0x00, 0x00}}, + {1, [3]byte{0x72, 0x00, 0x00}}, {1, [3]byte{0x73, 0x00, 0x00}}, + {1, [3]byte{0x74, 0x00, 0x00}}, {1, [3]byte{0x75, 0x00, 0x00}}, + {1, [3]byte{0x76, 0x00, 0x00}}, {1, [3]byte{0x77, 0x00, 0x00}}, + {1, [3]byte{0x78, 0x00, 0x00}}, {1, [3]byte{0x79, 0x00, 0x00}}, + {1, [3]byte{0x7a, 0x00, 0x00}}, {1, [3]byte{0x7b, 0x00, 0x00}}, + {1, [3]byte{0x7c, 0x00, 0x00}}, {1, [3]byte{0x7d, 0x00, 0x00}}, + {1, [3]byte{0x7e, 0x00, 0x00}}, {1, [3]byte{0x7f, 0x00, 0x00}}, + {2, [3]byte{0xc3, 0x87, 0x00}}, {2, [3]byte{0xc3, 0xbc, 0x00}}, + {2, [3]byte{0xc3, 0xa9, 0x00}}, {2, [3]byte{0xc3, 0xa2, 0x00}}, + {2, [3]byte{0xc3, 0xa3, 0x00}}, {2, [3]byte{0xc3, 0xa0, 0x00}}, + {2, [3]byte{0xc3, 0x81, 0x00}}, {2, [3]byte{0xc3, 0xa7, 0x00}}, + {2, [3]byte{0xc3, 0xaa, 0x00}}, {2, [3]byte{0xc3, 0x8a, 0x00}}, + {2, [3]byte{0xc3, 0xa8, 0x00}}, {2, [3]byte{0xc3, 0x8d, 0x00}}, + {2, [3]byte{0xc3, 0x94, 0x00}}, {2, [3]byte{0xc3, 0xac, 0x00}}, + {2, [3]byte{0xc3, 0x83, 0x00}}, {2, [3]byte{0xc3, 0x82, 0x00}}, + {2, [3]byte{0xc3, 0x89, 0x00}}, {2, [3]byte{0xc3, 0x80, 0x00}}, + {2, [3]byte{0xc3, 0x88, 0x00}}, {2, [3]byte{0xc3, 0xb4, 0x00}}, + {2, [3]byte{0xc3, 0xb5, 0x00}}, {2, [3]byte{0xc3, 0xb2, 0x00}}, + {2, [3]byte{0xc3, 0x9a, 0x00}}, {2, [3]byte{0xc3, 0xb9, 0x00}}, + {2, [3]byte{0xc3, 0x8c, 0x00}}, {2, [3]byte{0xc3, 0x95, 0x00}}, + {2, [3]byte{0xc3, 0x9c, 0x00}}, {2, [3]byte{0xc2, 0xa2, 0x00}}, + {2, [3]byte{0xc2, 0xa3, 0x00}}, {2, [3]byte{0xc3, 0x99, 0x00}}, + {3, [3]byte{0xe2, 0x82, 0xa7}}, {2, [3]byte{0xc3, 0x93, 0x00}}, + {2, [3]byte{0xc3, 0xa1, 0x00}}, {2, [3]byte{0xc3, 0xad, 0x00}}, + {2, [3]byte{0xc3, 0xb3, 0x00}}, {2, [3]byte{0xc3, 0xba, 0x00}}, + {2, [3]byte{0xc3, 0xb1, 0x00}}, {2, [3]byte{0xc3, 0x91, 0x00}}, + {2, [3]byte{0xc2, 0xaa, 0x00}}, {2, [3]byte{0xc2, 0xba, 0x00}}, + {2, [3]byte{0xc2, 0xbf, 0x00}}, {2, [3]byte{0xc3, 0x92, 0x00}}, + {2, [3]byte{0xc2, 0xac, 0x00}}, {2, [3]byte{0xc2, 0xbd, 0x00}}, + {2, [3]byte{0xc2, 0xbc, 0x00}}, {2, [3]byte{0xc2, 0xa1, 0x00}}, + {2, [3]byte{0xc2, 0xab, 0x00}}, {2, [3]byte{0xc2, 0xbb, 0x00}}, + {3, [3]byte{0xe2, 0x96, 0x91}}, {3, [3]byte{0xe2, 0x96, 0x92}}, + {3, [3]byte{0xe2, 0x96, 0x93}}, {3, [3]byte{0xe2, 0x94, 0x82}}, + {3, [3]byte{0xe2, 0x94, 0xa4}}, {3, [3]byte{0xe2, 0x95, 0xa1}}, + {3, [3]byte{0xe2, 0x95, 0xa2}}, {3, [3]byte{0xe2, 0x95, 0x96}}, + {3, [3]byte{0xe2, 0x95, 0x95}}, {3, [3]byte{0xe2, 0x95, 0xa3}}, + {3, [3]byte{0xe2, 0x95, 0x91}}, {3, [3]byte{0xe2, 0x95, 0x97}}, + {3, [3]byte{0xe2, 0x95, 0x9d}}, {3, [3]byte{0xe2, 0x95, 0x9c}}, + {3, [3]byte{0xe2, 0x95, 0x9b}}, {3, [3]byte{0xe2, 0x94, 0x90}}, + {3, [3]byte{0xe2, 0x94, 0x94}}, {3, [3]byte{0xe2, 0x94, 0xb4}}, + {3, [3]byte{0xe2, 0x94, 0xac}}, {3, [3]byte{0xe2, 0x94, 0x9c}}, + {3, [3]byte{0xe2, 0x94, 0x80}}, {3, [3]byte{0xe2, 0x94, 0xbc}}, + {3, [3]byte{0xe2, 0x95, 0x9e}}, {3, [3]byte{0xe2, 0x95, 0x9f}}, + {3, [3]byte{0xe2, 0x95, 0x9a}}, {3, [3]byte{0xe2, 0x95, 0x94}}, + {3, [3]byte{0xe2, 0x95, 0xa9}}, {3, [3]byte{0xe2, 0x95, 0xa6}}, + {3, [3]byte{0xe2, 0x95, 0xa0}}, {3, [3]byte{0xe2, 0x95, 0x90}}, + {3, [3]byte{0xe2, 0x95, 0xac}}, {3, [3]byte{0xe2, 0x95, 0xa7}}, + {3, [3]byte{0xe2, 0x95, 0xa8}}, {3, [3]byte{0xe2, 0x95, 0xa4}}, + {3, [3]byte{0xe2, 0x95, 0xa5}}, {3, [3]byte{0xe2, 0x95, 0x99}}, + {3, [3]byte{0xe2, 0x95, 0x98}}, {3, [3]byte{0xe2, 0x95, 0x92}}, + {3, [3]byte{0xe2, 0x95, 0x93}}, {3, [3]byte{0xe2, 0x95, 0xab}}, + {3, [3]byte{0xe2, 0x95, 0xaa}}, {3, [3]byte{0xe2, 0x94, 0x98}}, + {3, [3]byte{0xe2, 0x94, 0x8c}}, {3, [3]byte{0xe2, 0x96, 0x88}}, + {3, [3]byte{0xe2, 0x96, 0x84}}, {3, [3]byte{0xe2, 0x96, 0x8c}}, + {3, [3]byte{0xe2, 0x96, 0x90}}, {3, [3]byte{0xe2, 0x96, 0x80}}, + {2, [3]byte{0xce, 0xb1, 0x00}}, {2, [3]byte{0xc3, 0x9f, 0x00}}, + {2, [3]byte{0xce, 0x93, 0x00}}, {2, [3]byte{0xcf, 0x80, 0x00}}, + {2, [3]byte{0xce, 0xa3, 0x00}}, {2, [3]byte{0xcf, 0x83, 0x00}}, + {2, [3]byte{0xc2, 0xb5, 0x00}}, {2, [3]byte{0xcf, 0x84, 0x00}}, + {2, [3]byte{0xce, 0xa6, 0x00}}, {2, [3]byte{0xce, 0x98, 0x00}}, + {2, [3]byte{0xce, 0xa9, 0x00}}, {2, [3]byte{0xce, 0xb4, 0x00}}, + {3, [3]byte{0xe2, 0x88, 0x9e}}, {2, [3]byte{0xcf, 0x86, 0x00}}, + {2, [3]byte{0xce, 0xb5, 0x00}}, {3, [3]byte{0xe2, 0x88, 0xa9}}, + {3, [3]byte{0xe2, 0x89, 0xa1}}, {2, [3]byte{0xc2, 0xb1, 0x00}}, + {3, [3]byte{0xe2, 0x89, 0xa5}}, {3, [3]byte{0xe2, 0x89, 0xa4}}, + {3, [3]byte{0xe2, 0x8c, 0xa0}}, {3, [3]byte{0xe2, 0x8c, 0xa1}}, + {2, [3]byte{0xc3, 0xb7, 0x00}}, {3, [3]byte{0xe2, 0x89, 0x88}}, + {2, [3]byte{0xc2, 0xb0, 0x00}}, {3, [3]byte{0xe2, 0x88, 0x99}}, + {2, [3]byte{0xc2, 0xb7, 0x00}}, {3, [3]byte{0xe2, 0x88, 0x9a}}, + {3, [3]byte{0xe2, 0x81, 0xbf}}, {2, [3]byte{0xc2, 0xb2, 0x00}}, + {3, [3]byte{0xe2, 0x96, 0xa0}}, {2, [3]byte{0xc2, 0xa0, 0x00}}, + }, + encode: [256]uint32{ + 0x00000000, 0x01000001, 0x02000002, 0x03000003, 0x04000004, 0x05000005, 0x06000006, 0x07000007, + 0x08000008, 0x09000009, 0x0a00000a, 0x0b00000b, 0x0c00000c, 0x0d00000d, 0x0e00000e, 0x0f00000f, + 0x10000010, 0x11000011, 0x12000012, 0x13000013, 0x14000014, 0x15000015, 0x16000016, 0x17000017, + 0x18000018, 0x19000019, 0x1a00001a, 0x1b00001b, 0x1c00001c, 0x1d00001d, 0x1e00001e, 0x1f00001f, + 0x20000020, 0x21000021, 0x22000022, 0x23000023, 0x24000024, 0x25000025, 0x26000026, 0x27000027, + 0x28000028, 0x29000029, 0x2a00002a, 0x2b00002b, 0x2c00002c, 0x2d00002d, 0x2e00002e, 0x2f00002f, + 0x30000030, 0x31000031, 0x32000032, 0x33000033, 0x34000034, 0x35000035, 0x36000036, 0x37000037, + 0x38000038, 0x39000039, 0x3a00003a, 0x3b00003b, 0x3c00003c, 0x3d00003d, 0x3e00003e, 0x3f00003f, + 0x40000040, 0x41000041, 0x42000042, 0x43000043, 0x44000044, 0x45000045, 0x46000046, 0x47000047, + 0x48000048, 0x49000049, 0x4a00004a, 0x4b00004b, 0x4c00004c, 0x4d00004d, 0x4e00004e, 0x4f00004f, + 0x50000050, 0x51000051, 0x52000052, 0x53000053, 0x54000054, 0x55000055, 0x56000056, 0x57000057, + 0x58000058, 0x59000059, 0x5a00005a, 0x5b00005b, 0x5c00005c, 0x5d00005d, 0x5e00005e, 0x5f00005f, + 0x60000060, 0x61000061, 0x62000062, 0x63000063, 0x64000064, 0x65000065, 0x66000066, 0x67000067, + 0x68000068, 0x69000069, 0x6a00006a, 0x6b00006b, 0x6c00006c, 0x6d00006d, 0x6e00006e, 0x6f00006f, + 0x70000070, 0x71000071, 0x72000072, 0x73000073, 0x74000074, 0x75000075, 0x76000076, 0x77000077, + 0x78000078, 0x79000079, 0x7a00007a, 0x7b00007b, 0x7c00007c, 0x7d00007d, 0x7e00007e, 0x7f00007f, + 0xff0000a0, 0xad0000a1, 0x9b0000a2, 0x9c0000a3, 0xa60000aa, 0xae0000ab, 0xaa0000ac, 0xf80000b0, + 0xf10000b1, 0xfd0000b2, 0xe60000b5, 0xfa0000b7, 0xa70000ba, 0xaf0000bb, 0xac0000bc, 0xab0000bd, + 0xa80000bf, 0x910000c0, 0x860000c1, 0x8f0000c2, 0x8e0000c3, 0x800000c7, 0x920000c8, 0x900000c9, + 0x890000ca, 0x980000cc, 0x8b0000cd, 0xa50000d1, 0xa90000d2, 0x9f0000d3, 0x8c0000d4, 0x990000d5, + 0x9d0000d9, 0x960000da, 0x9a0000dc, 0xe10000df, 0x850000e0, 0xa00000e1, 0x830000e2, 0x840000e3, + 0x870000e7, 0x8a0000e8, 0x820000e9, 0x880000ea, 0x8d0000ec, 0xa10000ed, 0xa40000f1, 0x950000f2, + 0xa20000f3, 0x930000f4, 0x940000f5, 0xf60000f7, 0x970000f9, 0xa30000fa, 0x810000fc, 0xe2000393, + 0xe9000398, 0xe40003a3, 0xe80003a6, 0xea0003a9, 0xe00003b1, 0xeb0003b4, 0xee0003b5, 0xe30003c0, + 0xe50003c3, 0xe70003c4, 0xed0003c6, 0xfc00207f, 0x9e0020a7, 0xf9002219, 0xfb00221a, 0xec00221e, + 0xef002229, 0xf7002248, 0xf0002261, 0xf3002264, 0xf2002265, 0xf4002320, 0xf5002321, 0xc4002500, + 0xb3002502, 0xda00250c, 0xbf002510, 0xc0002514, 0xd9002518, 0xc300251c, 0xb4002524, 0xc200252c, + 0xc1002534, 0xc500253c, 0xcd002550, 0xba002551, 0xd5002552, 0xd6002553, 0xc9002554, 0xb8002555, + 0xb7002556, 0xbb002557, 0xd4002558, 0xd3002559, 0xc800255a, 0xbe00255b, 0xbd00255c, 0xbc00255d, + 0xc600255e, 0xc700255f, 0xcc002560, 0xb5002561, 0xb6002562, 0xb9002563, 0xd1002564, 0xd2002565, + 0xcb002566, 0xcf002567, 0xd0002568, 0xca002569, 0xd800256a, 0xd700256b, 0xce00256c, 0xdf002580, + 0xdc002584, 0xdb002588, 0xdd00258c, 0xde002590, 0xb0002591, 0xb1002592, 0xb2002593, 0xfe0025a0, + }, +} + +// CodePage862 is the IBM Code Page 862 encoding. +var CodePage862 *Charmap = &codePage862 + +var codePage862 = Charmap{ + name: "IBM Code Page 862", + mib: identifier.PC862LatinHebrew, + asciiSuperset: true, + low: 0x80, + replacement: 0x1a, + decode: [256]utf8Enc{ + {1, [3]byte{0x00, 0x00, 0x00}}, {1, [3]byte{0x01, 0x00, 0x00}}, + {1, [3]byte{0x02, 0x00, 0x00}}, {1, [3]byte{0x03, 0x00, 0x00}}, + {1, [3]byte{0x04, 0x00, 0x00}}, {1, [3]byte{0x05, 0x00, 0x00}}, + {1, [3]byte{0x06, 0x00, 0x00}}, {1, [3]byte{0x07, 0x00, 0x00}}, + {1, [3]byte{0x08, 0x00, 0x00}}, {1, [3]byte{0x09, 0x00, 0x00}}, + {1, [3]byte{0x0a, 0x00, 0x00}}, {1, [3]byte{0x0b, 0x00, 0x00}}, + {1, [3]byte{0x0c, 0x00, 0x00}}, {1, [3]byte{0x0d, 0x00, 0x00}}, + {1, [3]byte{0x0e, 0x00, 0x00}}, {1, [3]byte{0x0f, 0x00, 0x00}}, + {1, [3]byte{0x10, 0x00, 0x00}}, {1, [3]byte{0x11, 0x00, 0x00}}, + {1, [3]byte{0x12, 0x00, 0x00}}, {1, [3]byte{0x13, 0x00, 0x00}}, + {1, [3]byte{0x14, 0x00, 0x00}}, {1, [3]byte{0x15, 0x00, 0x00}}, + {1, [3]byte{0x16, 0x00, 0x00}}, {1, [3]byte{0x17, 0x00, 0x00}}, + {1, [3]byte{0x18, 0x00, 0x00}}, {1, [3]byte{0x19, 0x00, 0x00}}, + {1, [3]byte{0x1a, 0x00, 0x00}}, {1, [3]byte{0x1b, 0x00, 0x00}}, + {1, [3]byte{0x1c, 0x00, 0x00}}, {1, [3]byte{0x1d, 0x00, 0x00}}, + {1, [3]byte{0x1e, 0x00, 0x00}}, {1, [3]byte{0x1f, 0x00, 0x00}}, + {1, [3]byte{0x20, 0x00, 0x00}}, {1, [3]byte{0x21, 0x00, 0x00}}, + {1, [3]byte{0x22, 0x00, 0x00}}, {1, [3]byte{0x23, 0x00, 0x00}}, + {1, [3]byte{0x24, 0x00, 0x00}}, {1, [3]byte{0x25, 0x00, 0x00}}, + {1, [3]byte{0x26, 0x00, 0x00}}, {1, [3]byte{0x27, 0x00, 0x00}}, + {1, [3]byte{0x28, 0x00, 0x00}}, {1, [3]byte{0x29, 0x00, 0x00}}, + {1, [3]byte{0x2a, 0x00, 0x00}}, {1, [3]byte{0x2b, 0x00, 0x00}}, + {1, [3]byte{0x2c, 0x00, 0x00}}, {1, [3]byte{0x2d, 0x00, 0x00}}, + {1, [3]byte{0x2e, 0x00, 0x00}}, {1, [3]byte{0x2f, 0x00, 0x00}}, + {1, [3]byte{0x30, 0x00, 0x00}}, {1, [3]byte{0x31, 0x00, 0x00}}, + {1, [3]byte{0x32, 0x00, 0x00}}, {1, [3]byte{0x33, 0x00, 0x00}}, + {1, [3]byte{0x34, 0x00, 0x00}}, {1, [3]byte{0x35, 0x00, 0x00}}, + {1, [3]byte{0x36, 0x00, 0x00}}, {1, [3]byte{0x37, 0x00, 0x00}}, + {1, [3]byte{0x38, 0x00, 0x00}}, {1, [3]byte{0x39, 0x00, 0x00}}, + {1, [3]byte{0x3a, 0x00, 0x00}}, {1, [3]byte{0x3b, 0x00, 0x00}}, + {1, [3]byte{0x3c, 0x00, 0x00}}, {1, [3]byte{0x3d, 0x00, 0x00}}, + {1, [3]byte{0x3e, 0x00, 0x00}}, {1, [3]byte{0x3f, 0x00, 0x00}}, + {1, [3]byte{0x40, 0x00, 0x00}}, {1, [3]byte{0x41, 0x00, 0x00}}, + {1, [3]byte{0x42, 0x00, 0x00}}, {1, [3]byte{0x43, 0x00, 0x00}}, + {1, [3]byte{0x44, 0x00, 0x00}}, {1, [3]byte{0x45, 0x00, 0x00}}, + {1, [3]byte{0x46, 0x00, 0x00}}, {1, [3]byte{0x47, 0x00, 0x00}}, + {1, [3]byte{0x48, 0x00, 0x00}}, {1, [3]byte{0x49, 0x00, 0x00}}, + {1, [3]byte{0x4a, 0x00, 0x00}}, {1, [3]byte{0x4b, 0x00, 0x00}}, + {1, [3]byte{0x4c, 0x00, 0x00}}, {1, [3]byte{0x4d, 0x00, 0x00}}, + {1, [3]byte{0x4e, 0x00, 0x00}}, {1, [3]byte{0x4f, 0x00, 0x00}}, + {1, [3]byte{0x50, 0x00, 0x00}}, {1, [3]byte{0x51, 0x00, 0x00}}, + {1, [3]byte{0x52, 0x00, 0x00}}, {1, [3]byte{0x53, 0x00, 0x00}}, + {1, [3]byte{0x54, 0x00, 0x00}}, {1, [3]byte{0x55, 0x00, 0x00}}, + {1, [3]byte{0x56, 0x00, 0x00}}, {1, [3]byte{0x57, 0x00, 0x00}}, + {1, [3]byte{0x58, 0x00, 0x00}}, {1, [3]byte{0x59, 0x00, 0x00}}, + {1, [3]byte{0x5a, 0x00, 0x00}}, {1, [3]byte{0x5b, 0x00, 0x00}}, + {1, [3]byte{0x5c, 0x00, 0x00}}, {1, [3]byte{0x5d, 0x00, 0x00}}, + {1, [3]byte{0x5e, 0x00, 0x00}}, {1, [3]byte{0x5f, 0x00, 0x00}}, + {1, [3]byte{0x60, 0x00, 0x00}}, {1, [3]byte{0x61, 0x00, 0x00}}, + {1, [3]byte{0x62, 0x00, 0x00}}, {1, [3]byte{0x63, 0x00, 0x00}}, + {1, [3]byte{0x64, 0x00, 0x00}}, {1, [3]byte{0x65, 0x00, 0x00}}, + {1, [3]byte{0x66, 0x00, 0x00}}, {1, [3]byte{0x67, 0x00, 0x00}}, + {1, [3]byte{0x68, 0x00, 0x00}}, {1, [3]byte{0x69, 0x00, 0x00}}, + {1, [3]byte{0x6a, 0x00, 0x00}}, {1, [3]byte{0x6b, 0x00, 0x00}}, + {1, [3]byte{0x6c, 0x00, 0x00}}, {1, [3]byte{0x6d, 0x00, 0x00}}, + {1, [3]byte{0x6e, 0x00, 0x00}}, {1, [3]byte{0x6f, 0x00, 0x00}}, + {1, [3]byte{0x70, 0x00, 0x00}}, {1, [3]byte{0x71, 0x00, 0x00}}, + {1, [3]byte{0x72, 0x00, 0x00}}, {1, [3]byte{0x73, 0x00, 0x00}}, + {1, [3]byte{0x74, 0x00, 0x00}}, {1, [3]byte{0x75, 0x00, 0x00}}, + {1, [3]byte{0x76, 0x00, 0x00}}, {1, [3]byte{0x77, 0x00, 0x00}}, + {1, [3]byte{0x78, 0x00, 0x00}}, {1, [3]byte{0x79, 0x00, 0x00}}, + {1, [3]byte{0x7a, 0x00, 0x00}}, {1, [3]byte{0x7b, 0x00, 0x00}}, + {1, [3]byte{0x7c, 0x00, 0x00}}, {1, [3]byte{0x7d, 0x00, 0x00}}, + {1, [3]byte{0x7e, 0x00, 0x00}}, {1, [3]byte{0x7f, 0x00, 0x00}}, + {2, [3]byte{0xd7, 0x90, 0x00}}, {2, [3]byte{0xd7, 0x91, 0x00}}, + {2, [3]byte{0xd7, 0x92, 0x00}}, {2, [3]byte{0xd7, 0x93, 0x00}}, + {2, [3]byte{0xd7, 0x94, 0x00}}, {2, [3]byte{0xd7, 0x95, 0x00}}, + {2, [3]byte{0xd7, 0x96, 0x00}}, {2, [3]byte{0xd7, 0x97, 0x00}}, + {2, [3]byte{0xd7, 0x98, 0x00}}, {2, [3]byte{0xd7, 0x99, 0x00}}, + {2, [3]byte{0xd7, 0x9a, 0x00}}, {2, [3]byte{0xd7, 0x9b, 0x00}}, + {2, [3]byte{0xd7, 0x9c, 0x00}}, {2, [3]byte{0xd7, 0x9d, 0x00}}, + {2, [3]byte{0xd7, 0x9e, 0x00}}, {2, [3]byte{0xd7, 0x9f, 0x00}}, + {2, [3]byte{0xd7, 0xa0, 0x00}}, {2, [3]byte{0xd7, 0xa1, 0x00}}, + {2, [3]byte{0xd7, 0xa2, 0x00}}, {2, [3]byte{0xd7, 0xa3, 0x00}}, + {2, [3]byte{0xd7, 0xa4, 0x00}}, {2, [3]byte{0xd7, 0xa5, 0x00}}, + {2, [3]byte{0xd7, 0xa6, 0x00}}, {2, [3]byte{0xd7, 0xa7, 0x00}}, + {2, [3]byte{0xd7, 0xa8, 0x00}}, {2, [3]byte{0xd7, 0xa9, 0x00}}, + {2, [3]byte{0xd7, 0xaa, 0x00}}, {2, [3]byte{0xc2, 0xa2, 0x00}}, + {2, [3]byte{0xc2, 0xa3, 0x00}}, {2, [3]byte{0xc2, 0xa5, 0x00}}, + {3, [3]byte{0xe2, 0x82, 0xa7}}, {2, [3]byte{0xc6, 0x92, 0x00}}, + {2, [3]byte{0xc3, 0xa1, 0x00}}, {2, [3]byte{0xc3, 0xad, 0x00}}, + {2, [3]byte{0xc3, 0xb3, 0x00}}, {2, [3]byte{0xc3, 0xba, 0x00}}, + {2, [3]byte{0xc3, 0xb1, 0x00}}, {2, [3]byte{0xc3, 0x91, 0x00}}, + {2, [3]byte{0xc2, 0xaa, 0x00}}, {2, [3]byte{0xc2, 0xba, 0x00}}, + {2, [3]byte{0xc2, 0xbf, 0x00}}, {3, [3]byte{0xe2, 0x8c, 0x90}}, + {2, [3]byte{0xc2, 0xac, 0x00}}, {2, [3]byte{0xc2, 0xbd, 0x00}}, + {2, [3]byte{0xc2, 0xbc, 0x00}}, {2, [3]byte{0xc2, 0xa1, 0x00}}, + {2, [3]byte{0xc2, 0xab, 0x00}}, {2, [3]byte{0xc2, 0xbb, 0x00}}, + {3, [3]byte{0xe2, 0x96, 0x91}}, {3, [3]byte{0xe2, 0x96, 0x92}}, + {3, [3]byte{0xe2, 0x96, 0x93}}, {3, [3]byte{0xe2, 0x94, 0x82}}, + {3, [3]byte{0xe2, 0x94, 0xa4}}, {3, [3]byte{0xe2, 0x95, 0xa1}}, + {3, [3]byte{0xe2, 0x95, 0xa2}}, {3, [3]byte{0xe2, 0x95, 0x96}}, + {3, [3]byte{0xe2, 0x95, 0x95}}, {3, [3]byte{0xe2, 0x95, 0xa3}}, + {3, [3]byte{0xe2, 0x95, 0x91}}, {3, [3]byte{0xe2, 0x95, 0x97}}, + {3, [3]byte{0xe2, 0x95, 0x9d}}, {3, [3]byte{0xe2, 0x95, 0x9c}}, + {3, [3]byte{0xe2, 0x95, 0x9b}}, {3, [3]byte{0xe2, 0x94, 0x90}}, + {3, [3]byte{0xe2, 0x94, 0x94}}, {3, [3]byte{0xe2, 0x94, 0xb4}}, + {3, [3]byte{0xe2, 0x94, 0xac}}, {3, [3]byte{0xe2, 0x94, 0x9c}}, + {3, [3]byte{0xe2, 0x94, 0x80}}, {3, [3]byte{0xe2, 0x94, 0xbc}}, + {3, [3]byte{0xe2, 0x95, 0x9e}}, {3, [3]byte{0xe2, 0x95, 0x9f}}, + {3, [3]byte{0xe2, 0x95, 0x9a}}, {3, [3]byte{0xe2, 0x95, 0x94}}, + {3, [3]byte{0xe2, 0x95, 0xa9}}, {3, [3]byte{0xe2, 0x95, 0xa6}}, + {3, [3]byte{0xe2, 0x95, 0xa0}}, {3, [3]byte{0xe2, 0x95, 0x90}}, + {3, [3]byte{0xe2, 0x95, 0xac}}, {3, [3]byte{0xe2, 0x95, 0xa7}}, + {3, [3]byte{0xe2, 0x95, 0xa8}}, {3, [3]byte{0xe2, 0x95, 0xa4}}, + {3, [3]byte{0xe2, 0x95, 0xa5}}, {3, [3]byte{0xe2, 0x95, 0x99}}, + {3, [3]byte{0xe2, 0x95, 0x98}}, {3, [3]byte{0xe2, 0x95, 0x92}}, + {3, [3]byte{0xe2, 0x95, 0x93}}, {3, [3]byte{0xe2, 0x95, 0xab}}, + {3, [3]byte{0xe2, 0x95, 0xaa}}, {3, [3]byte{0xe2, 0x94, 0x98}}, + {3, [3]byte{0xe2, 0x94, 0x8c}}, {3, [3]byte{0xe2, 0x96, 0x88}}, + {3, [3]byte{0xe2, 0x96, 0x84}}, {3, [3]byte{0xe2, 0x96, 0x8c}}, + {3, [3]byte{0xe2, 0x96, 0x90}}, {3, [3]byte{0xe2, 0x96, 0x80}}, + {2, [3]byte{0xce, 0xb1, 0x00}}, {2, [3]byte{0xc3, 0x9f, 0x00}}, + {2, [3]byte{0xce, 0x93, 0x00}}, {2, [3]byte{0xcf, 0x80, 0x00}}, + {2, [3]byte{0xce, 0xa3, 0x00}}, {2, [3]byte{0xcf, 0x83, 0x00}}, + {2, [3]byte{0xc2, 0xb5, 0x00}}, {2, [3]byte{0xcf, 0x84, 0x00}}, + {2, [3]byte{0xce, 0xa6, 0x00}}, {2, [3]byte{0xce, 0x98, 0x00}}, + {2, [3]byte{0xce, 0xa9, 0x00}}, {2, [3]byte{0xce, 0xb4, 0x00}}, + {3, [3]byte{0xe2, 0x88, 0x9e}}, {2, [3]byte{0xcf, 0x86, 0x00}}, + {2, [3]byte{0xce, 0xb5, 0x00}}, {3, [3]byte{0xe2, 0x88, 0xa9}}, + {3, [3]byte{0xe2, 0x89, 0xa1}}, {2, [3]byte{0xc2, 0xb1, 0x00}}, + {3, [3]byte{0xe2, 0x89, 0xa5}}, {3, [3]byte{0xe2, 0x89, 0xa4}}, + {3, [3]byte{0xe2, 0x8c, 0xa0}}, {3, [3]byte{0xe2, 0x8c, 0xa1}}, + {2, [3]byte{0xc3, 0xb7, 0x00}}, {3, [3]byte{0xe2, 0x89, 0x88}}, + {2, [3]byte{0xc2, 0xb0, 0x00}}, {3, [3]byte{0xe2, 0x88, 0x99}}, + {2, [3]byte{0xc2, 0xb7, 0x00}}, {3, [3]byte{0xe2, 0x88, 0x9a}}, + {3, [3]byte{0xe2, 0x81, 0xbf}}, {2, [3]byte{0xc2, 0xb2, 0x00}}, + {3, [3]byte{0xe2, 0x96, 0xa0}}, {2, [3]byte{0xc2, 0xa0, 0x00}}, + }, + encode: [256]uint32{ + 0x00000000, 0x01000001, 0x02000002, 0x03000003, 0x04000004, 0x05000005, 0x06000006, 0x07000007, + 0x08000008, 0x09000009, 0x0a00000a, 0x0b00000b, 0x0c00000c, 0x0d00000d, 0x0e00000e, 0x0f00000f, + 0x10000010, 0x11000011, 0x12000012, 0x13000013, 0x14000014, 0x15000015, 0x16000016, 0x17000017, + 0x18000018, 0x19000019, 0x1a00001a, 0x1b00001b, 0x1c00001c, 0x1d00001d, 0x1e00001e, 0x1f00001f, + 0x20000020, 0x21000021, 0x22000022, 0x23000023, 0x24000024, 0x25000025, 0x26000026, 0x27000027, + 0x28000028, 0x29000029, 0x2a00002a, 0x2b00002b, 0x2c00002c, 0x2d00002d, 0x2e00002e, 0x2f00002f, + 0x30000030, 0x31000031, 0x32000032, 0x33000033, 0x34000034, 0x35000035, 0x36000036, 0x37000037, + 0x38000038, 0x39000039, 0x3a00003a, 0x3b00003b, 0x3c00003c, 0x3d00003d, 0x3e00003e, 0x3f00003f, + 0x40000040, 0x41000041, 0x42000042, 0x43000043, 0x44000044, 0x45000045, 0x46000046, 0x47000047, + 0x48000048, 0x49000049, 0x4a00004a, 0x4b00004b, 0x4c00004c, 0x4d00004d, 0x4e00004e, 0x4f00004f, + 0x50000050, 0x51000051, 0x52000052, 0x53000053, 0x54000054, 0x55000055, 0x56000056, 0x57000057, + 0x58000058, 0x59000059, 0x5a00005a, 0x5b00005b, 0x5c00005c, 0x5d00005d, 0x5e00005e, 0x5f00005f, + 0x60000060, 0x61000061, 0x62000062, 0x63000063, 0x64000064, 0x65000065, 0x66000066, 0x67000067, + 0x68000068, 0x69000069, 0x6a00006a, 0x6b00006b, 0x6c00006c, 0x6d00006d, 0x6e00006e, 0x6f00006f, + 0x70000070, 0x71000071, 0x72000072, 0x73000073, 0x74000074, 0x75000075, 0x76000076, 0x77000077, + 0x78000078, 0x79000079, 0x7a00007a, 0x7b00007b, 0x7c00007c, 0x7d00007d, 0x7e00007e, 0x7f00007f, + 0xff0000a0, 0xad0000a1, 0x9b0000a2, 0x9c0000a3, 0x9d0000a5, 0xa60000aa, 0xae0000ab, 0xaa0000ac, + 0xf80000b0, 0xf10000b1, 0xfd0000b2, 0xe60000b5, 0xfa0000b7, 0xa70000ba, 0xaf0000bb, 0xac0000bc, + 0xab0000bd, 0xa80000bf, 0xa50000d1, 0xe10000df, 0xa00000e1, 0xa10000ed, 0xa40000f1, 0xa20000f3, + 0xf60000f7, 0xa30000fa, 0x9f000192, 0xe2000393, 0xe9000398, 0xe40003a3, 0xe80003a6, 0xea0003a9, + 0xe00003b1, 0xeb0003b4, 0xee0003b5, 0xe30003c0, 0xe50003c3, 0xe70003c4, 0xed0003c6, 0x800005d0, + 0x810005d1, 0x820005d2, 0x830005d3, 0x840005d4, 0x850005d5, 0x860005d6, 0x870005d7, 0x880005d8, + 0x890005d9, 0x8a0005da, 0x8b0005db, 0x8c0005dc, 0x8d0005dd, 0x8e0005de, 0x8f0005df, 0x900005e0, + 0x910005e1, 0x920005e2, 0x930005e3, 0x940005e4, 0x950005e5, 0x960005e6, 0x970005e7, 0x980005e8, + 0x990005e9, 0x9a0005ea, 0xfc00207f, 0x9e0020a7, 0xf9002219, 0xfb00221a, 0xec00221e, 0xef002229, + 0xf7002248, 0xf0002261, 0xf3002264, 0xf2002265, 0xa9002310, 0xf4002320, 0xf5002321, 0xc4002500, + 0xb3002502, 0xda00250c, 0xbf002510, 0xc0002514, 0xd9002518, 0xc300251c, 0xb4002524, 0xc200252c, + 0xc1002534, 0xc500253c, 0xcd002550, 0xba002551, 0xd5002552, 0xd6002553, 0xc9002554, 0xb8002555, + 0xb7002556, 0xbb002557, 0xd4002558, 0xd3002559, 0xc800255a, 0xbe00255b, 0xbd00255c, 0xbc00255d, + 0xc600255e, 0xc700255f, 0xcc002560, 0xb5002561, 0xb6002562, 0xb9002563, 0xd1002564, 0xd2002565, + 0xcb002566, 0xcf002567, 0xd0002568, 0xca002569, 0xd800256a, 0xd700256b, 0xce00256c, 0xdf002580, + 0xdc002584, 0xdb002588, 0xdd00258c, 0xde002590, 0xb0002591, 0xb1002592, 0xb2002593, 0xfe0025a0, + }, +} + +// CodePage863 is the IBM Code Page 863 encoding. +var CodePage863 *Charmap = &codePage863 + +var codePage863 = Charmap{ + name: "IBM Code Page 863", + mib: identifier.IBM863, + asciiSuperset: true, + low: 0x80, + replacement: 0x1a, + decode: [256]utf8Enc{ + {1, [3]byte{0x00, 0x00, 0x00}}, {1, [3]byte{0x01, 0x00, 0x00}}, + {1, [3]byte{0x02, 0x00, 0x00}}, {1, [3]byte{0x03, 0x00, 0x00}}, + {1, [3]byte{0x04, 0x00, 0x00}}, {1, [3]byte{0x05, 0x00, 0x00}}, + {1, [3]byte{0x06, 0x00, 0x00}}, {1, [3]byte{0x07, 0x00, 0x00}}, + {1, [3]byte{0x08, 0x00, 0x00}}, {1, [3]byte{0x09, 0x00, 0x00}}, + {1, [3]byte{0x0a, 0x00, 0x00}}, {1, [3]byte{0x0b, 0x00, 0x00}}, + {1, [3]byte{0x0c, 0x00, 0x00}}, {1, [3]byte{0x0d, 0x00, 0x00}}, + {1, [3]byte{0x0e, 0x00, 0x00}}, {1, [3]byte{0x0f, 0x00, 0x00}}, + {1, [3]byte{0x10, 0x00, 0x00}}, {1, [3]byte{0x11, 0x00, 0x00}}, + {1, [3]byte{0x12, 0x00, 0x00}}, {1, [3]byte{0x13, 0x00, 0x00}}, + {1, [3]byte{0x14, 0x00, 0x00}}, {1, [3]byte{0x15, 0x00, 0x00}}, + {1, [3]byte{0x16, 0x00, 0x00}}, {1, [3]byte{0x17, 0x00, 0x00}}, + {1, [3]byte{0x18, 0x00, 0x00}}, {1, [3]byte{0x19, 0x00, 0x00}}, + {1, [3]byte{0x1a, 0x00, 0x00}}, {1, [3]byte{0x1b, 0x00, 0x00}}, + {1, [3]byte{0x1c, 0x00, 0x00}}, {1, [3]byte{0x1d, 0x00, 0x00}}, + {1, [3]byte{0x1e, 0x00, 0x00}}, {1, [3]byte{0x1f, 0x00, 0x00}}, + {1, [3]byte{0x20, 0x00, 0x00}}, {1, [3]byte{0x21, 0x00, 0x00}}, + {1, [3]byte{0x22, 0x00, 0x00}}, {1, [3]byte{0x23, 0x00, 0x00}}, + {1, [3]byte{0x24, 0x00, 0x00}}, {1, [3]byte{0x25, 0x00, 0x00}}, + {1, [3]byte{0x26, 0x00, 0x00}}, {1, [3]byte{0x27, 0x00, 0x00}}, + {1, [3]byte{0x28, 0x00, 0x00}}, {1, [3]byte{0x29, 0x00, 0x00}}, + {1, [3]byte{0x2a, 0x00, 0x00}}, {1, [3]byte{0x2b, 0x00, 0x00}}, + {1, [3]byte{0x2c, 0x00, 0x00}}, {1, [3]byte{0x2d, 0x00, 0x00}}, + {1, [3]byte{0x2e, 0x00, 0x00}}, {1, [3]byte{0x2f, 0x00, 0x00}}, + {1, [3]byte{0x30, 0x00, 0x00}}, {1, [3]byte{0x31, 0x00, 0x00}}, + {1, [3]byte{0x32, 0x00, 0x00}}, {1, [3]byte{0x33, 0x00, 0x00}}, + {1, [3]byte{0x34, 0x00, 0x00}}, {1, [3]byte{0x35, 0x00, 0x00}}, + {1, [3]byte{0x36, 0x00, 0x00}}, {1, [3]byte{0x37, 0x00, 0x00}}, + {1, [3]byte{0x38, 0x00, 0x00}}, {1, [3]byte{0x39, 0x00, 0x00}}, + {1, [3]byte{0x3a, 0x00, 0x00}}, {1, [3]byte{0x3b, 0x00, 0x00}}, + {1, [3]byte{0x3c, 0x00, 0x00}}, {1, [3]byte{0x3d, 0x00, 0x00}}, + {1, [3]byte{0x3e, 0x00, 0x00}}, {1, [3]byte{0x3f, 0x00, 0x00}}, + {1, [3]byte{0x40, 0x00, 0x00}}, {1, [3]byte{0x41, 0x00, 0x00}}, + {1, [3]byte{0x42, 0x00, 0x00}}, {1, [3]byte{0x43, 0x00, 0x00}}, + {1, [3]byte{0x44, 0x00, 0x00}}, {1, [3]byte{0x45, 0x00, 0x00}}, + {1, [3]byte{0x46, 0x00, 0x00}}, {1, [3]byte{0x47, 0x00, 0x00}}, + {1, [3]byte{0x48, 0x00, 0x00}}, {1, [3]byte{0x49, 0x00, 0x00}}, + {1, [3]byte{0x4a, 0x00, 0x00}}, {1, [3]byte{0x4b, 0x00, 0x00}}, + {1, [3]byte{0x4c, 0x00, 0x00}}, {1, [3]byte{0x4d, 0x00, 0x00}}, + {1, [3]byte{0x4e, 0x00, 0x00}}, {1, [3]byte{0x4f, 0x00, 0x00}}, + {1, [3]byte{0x50, 0x00, 0x00}}, {1, [3]byte{0x51, 0x00, 0x00}}, + {1, [3]byte{0x52, 0x00, 0x00}}, {1, [3]byte{0x53, 0x00, 0x00}}, + {1, [3]byte{0x54, 0x00, 0x00}}, {1, [3]byte{0x55, 0x00, 0x00}}, + {1, [3]byte{0x56, 0x00, 0x00}}, {1, [3]byte{0x57, 0x00, 0x00}}, + {1, [3]byte{0x58, 0x00, 0x00}}, {1, [3]byte{0x59, 0x00, 0x00}}, + {1, [3]byte{0x5a, 0x00, 0x00}}, {1, [3]byte{0x5b, 0x00, 0x00}}, + {1, [3]byte{0x5c, 0x00, 0x00}}, {1, [3]byte{0x5d, 0x00, 0x00}}, + {1, [3]byte{0x5e, 0x00, 0x00}}, {1, [3]byte{0x5f, 0x00, 0x00}}, + {1, [3]byte{0x60, 0x00, 0x00}}, {1, [3]byte{0x61, 0x00, 0x00}}, + {1, [3]byte{0x62, 0x00, 0x00}}, {1, [3]byte{0x63, 0x00, 0x00}}, + {1, [3]byte{0x64, 0x00, 0x00}}, {1, [3]byte{0x65, 0x00, 0x00}}, + {1, [3]byte{0x66, 0x00, 0x00}}, {1, [3]byte{0x67, 0x00, 0x00}}, + {1, [3]byte{0x68, 0x00, 0x00}}, {1, [3]byte{0x69, 0x00, 0x00}}, + {1, [3]byte{0x6a, 0x00, 0x00}}, {1, [3]byte{0x6b, 0x00, 0x00}}, + {1, [3]byte{0x6c, 0x00, 0x00}}, {1, [3]byte{0x6d, 0x00, 0x00}}, + {1, [3]byte{0x6e, 0x00, 0x00}}, {1, [3]byte{0x6f, 0x00, 0x00}}, + {1, [3]byte{0x70, 0x00, 0x00}}, {1, [3]byte{0x71, 0x00, 0x00}}, + {1, [3]byte{0x72, 0x00, 0x00}}, {1, [3]byte{0x73, 0x00, 0x00}}, + {1, [3]byte{0x74, 0x00, 0x00}}, {1, [3]byte{0x75, 0x00, 0x00}}, + {1, [3]byte{0x76, 0x00, 0x00}}, {1, [3]byte{0x77, 0x00, 0x00}}, + {1, [3]byte{0x78, 0x00, 0x00}}, {1, [3]byte{0x79, 0x00, 0x00}}, + {1, [3]byte{0x7a, 0x00, 0x00}}, {1, [3]byte{0x7b, 0x00, 0x00}}, + {1, [3]byte{0x7c, 0x00, 0x00}}, {1, [3]byte{0x7d, 0x00, 0x00}}, + {1, [3]byte{0x7e, 0x00, 0x00}}, {1, [3]byte{0x7f, 0x00, 0x00}}, + {2, [3]byte{0xc3, 0x87, 0x00}}, {2, [3]byte{0xc3, 0xbc, 0x00}}, + {2, [3]byte{0xc3, 0xa9, 0x00}}, {2, [3]byte{0xc3, 0xa2, 0x00}}, + {2, [3]byte{0xc3, 0x82, 0x00}}, {2, [3]byte{0xc3, 0xa0, 0x00}}, + {2, [3]byte{0xc2, 0xb6, 0x00}}, {2, [3]byte{0xc3, 0xa7, 0x00}}, + {2, [3]byte{0xc3, 0xaa, 0x00}}, {2, [3]byte{0xc3, 0xab, 0x00}}, + {2, [3]byte{0xc3, 0xa8, 0x00}}, {2, [3]byte{0xc3, 0xaf, 0x00}}, + {2, [3]byte{0xc3, 0xae, 0x00}}, {3, [3]byte{0xe2, 0x80, 0x97}}, + {2, [3]byte{0xc3, 0x80, 0x00}}, {2, [3]byte{0xc2, 0xa7, 0x00}}, + {2, [3]byte{0xc3, 0x89, 0x00}}, {2, [3]byte{0xc3, 0x88, 0x00}}, + {2, [3]byte{0xc3, 0x8a, 0x00}}, {2, [3]byte{0xc3, 0xb4, 0x00}}, + {2, [3]byte{0xc3, 0x8b, 0x00}}, {2, [3]byte{0xc3, 0x8f, 0x00}}, + {2, [3]byte{0xc3, 0xbb, 0x00}}, {2, [3]byte{0xc3, 0xb9, 0x00}}, + {2, [3]byte{0xc2, 0xa4, 0x00}}, {2, [3]byte{0xc3, 0x94, 0x00}}, + {2, [3]byte{0xc3, 0x9c, 0x00}}, {2, [3]byte{0xc2, 0xa2, 0x00}}, + {2, [3]byte{0xc2, 0xa3, 0x00}}, {2, [3]byte{0xc3, 0x99, 0x00}}, + {2, [3]byte{0xc3, 0x9b, 0x00}}, {2, [3]byte{0xc6, 0x92, 0x00}}, + {2, [3]byte{0xc2, 0xa6, 0x00}}, {2, [3]byte{0xc2, 0xb4, 0x00}}, + {2, [3]byte{0xc3, 0xb3, 0x00}}, {2, [3]byte{0xc3, 0xba, 0x00}}, + {2, [3]byte{0xc2, 0xa8, 0x00}}, {2, [3]byte{0xc2, 0xb8, 0x00}}, + {2, [3]byte{0xc2, 0xb3, 0x00}}, {2, [3]byte{0xc2, 0xaf, 0x00}}, + {2, [3]byte{0xc3, 0x8e, 0x00}}, {3, [3]byte{0xe2, 0x8c, 0x90}}, + {2, [3]byte{0xc2, 0xac, 0x00}}, {2, [3]byte{0xc2, 0xbd, 0x00}}, + {2, [3]byte{0xc2, 0xbc, 0x00}}, {2, [3]byte{0xc2, 0xbe, 0x00}}, + {2, [3]byte{0xc2, 0xab, 0x00}}, {2, [3]byte{0xc2, 0xbb, 0x00}}, + {3, [3]byte{0xe2, 0x96, 0x91}}, {3, [3]byte{0xe2, 0x96, 0x92}}, + {3, [3]byte{0xe2, 0x96, 0x93}}, {3, [3]byte{0xe2, 0x94, 0x82}}, + {3, [3]byte{0xe2, 0x94, 0xa4}}, {3, [3]byte{0xe2, 0x95, 0xa1}}, + {3, [3]byte{0xe2, 0x95, 0xa2}}, {3, [3]byte{0xe2, 0x95, 0x96}}, + {3, [3]byte{0xe2, 0x95, 0x95}}, {3, [3]byte{0xe2, 0x95, 0xa3}}, + {3, [3]byte{0xe2, 0x95, 0x91}}, {3, [3]byte{0xe2, 0x95, 0x97}}, + {3, [3]byte{0xe2, 0x95, 0x9d}}, {3, [3]byte{0xe2, 0x95, 0x9c}}, + {3, [3]byte{0xe2, 0x95, 0x9b}}, {3, [3]byte{0xe2, 0x94, 0x90}}, + {3, [3]byte{0xe2, 0x94, 0x94}}, {3, [3]byte{0xe2, 0x94, 0xb4}}, + {3, [3]byte{0xe2, 0x94, 0xac}}, {3, [3]byte{0xe2, 0x94, 0x9c}}, + {3, [3]byte{0xe2, 0x94, 0x80}}, {3, [3]byte{0xe2, 0x94, 0xbc}}, + {3, [3]byte{0xe2, 0x95, 0x9e}}, {3, [3]byte{0xe2, 0x95, 0x9f}}, + {3, [3]byte{0xe2, 0x95, 0x9a}}, {3, [3]byte{0xe2, 0x95, 0x94}}, + {3, [3]byte{0xe2, 0x95, 0xa9}}, {3, [3]byte{0xe2, 0x95, 0xa6}}, + {3, [3]byte{0xe2, 0x95, 0xa0}}, {3, [3]byte{0xe2, 0x95, 0x90}}, + {3, [3]byte{0xe2, 0x95, 0xac}}, {3, [3]byte{0xe2, 0x95, 0xa7}}, + {3, [3]byte{0xe2, 0x95, 0xa8}}, {3, [3]byte{0xe2, 0x95, 0xa4}}, + {3, [3]byte{0xe2, 0x95, 0xa5}}, {3, [3]byte{0xe2, 0x95, 0x99}}, + {3, [3]byte{0xe2, 0x95, 0x98}}, {3, [3]byte{0xe2, 0x95, 0x92}}, + {3, [3]byte{0xe2, 0x95, 0x93}}, {3, [3]byte{0xe2, 0x95, 0xab}}, + {3, [3]byte{0xe2, 0x95, 0xaa}}, {3, [3]byte{0xe2, 0x94, 0x98}}, + {3, [3]byte{0xe2, 0x94, 0x8c}}, {3, [3]byte{0xe2, 0x96, 0x88}}, + {3, [3]byte{0xe2, 0x96, 0x84}}, {3, [3]byte{0xe2, 0x96, 0x8c}}, + {3, [3]byte{0xe2, 0x96, 0x90}}, {3, [3]byte{0xe2, 0x96, 0x80}}, + {2, [3]byte{0xce, 0xb1, 0x00}}, {2, [3]byte{0xc3, 0x9f, 0x00}}, + {2, [3]byte{0xce, 0x93, 0x00}}, {2, [3]byte{0xcf, 0x80, 0x00}}, + {2, [3]byte{0xce, 0xa3, 0x00}}, {2, [3]byte{0xcf, 0x83, 0x00}}, + {2, [3]byte{0xc2, 0xb5, 0x00}}, {2, [3]byte{0xcf, 0x84, 0x00}}, + {2, [3]byte{0xce, 0xa6, 0x00}}, {2, [3]byte{0xce, 0x98, 0x00}}, + {2, [3]byte{0xce, 0xa9, 0x00}}, {2, [3]byte{0xce, 0xb4, 0x00}}, + {3, [3]byte{0xe2, 0x88, 0x9e}}, {2, [3]byte{0xcf, 0x86, 0x00}}, + {2, [3]byte{0xce, 0xb5, 0x00}}, {3, [3]byte{0xe2, 0x88, 0xa9}}, + {3, [3]byte{0xe2, 0x89, 0xa1}}, {2, [3]byte{0xc2, 0xb1, 0x00}}, + {3, [3]byte{0xe2, 0x89, 0xa5}}, {3, [3]byte{0xe2, 0x89, 0xa4}}, + {3, [3]byte{0xe2, 0x8c, 0xa0}}, {3, [3]byte{0xe2, 0x8c, 0xa1}}, + {2, [3]byte{0xc3, 0xb7, 0x00}}, {3, [3]byte{0xe2, 0x89, 0x88}}, + {2, [3]byte{0xc2, 0xb0, 0x00}}, {3, [3]byte{0xe2, 0x88, 0x99}}, + {2, [3]byte{0xc2, 0xb7, 0x00}}, {3, [3]byte{0xe2, 0x88, 0x9a}}, + {3, [3]byte{0xe2, 0x81, 0xbf}}, {2, [3]byte{0xc2, 0xb2, 0x00}}, + {3, [3]byte{0xe2, 0x96, 0xa0}}, {2, [3]byte{0xc2, 0xa0, 0x00}}, + }, + encode: [256]uint32{ + 0x00000000, 0x01000001, 0x02000002, 0x03000003, 0x04000004, 0x05000005, 0x06000006, 0x07000007, + 0x08000008, 0x09000009, 0x0a00000a, 0x0b00000b, 0x0c00000c, 0x0d00000d, 0x0e00000e, 0x0f00000f, + 0x10000010, 0x11000011, 0x12000012, 0x13000013, 0x14000014, 0x15000015, 0x16000016, 0x17000017, + 0x18000018, 0x19000019, 0x1a00001a, 0x1b00001b, 0x1c00001c, 0x1d00001d, 0x1e00001e, 0x1f00001f, + 0x20000020, 0x21000021, 0x22000022, 0x23000023, 0x24000024, 0x25000025, 0x26000026, 0x27000027, + 0x28000028, 0x29000029, 0x2a00002a, 0x2b00002b, 0x2c00002c, 0x2d00002d, 0x2e00002e, 0x2f00002f, + 0x30000030, 0x31000031, 0x32000032, 0x33000033, 0x34000034, 0x35000035, 0x36000036, 0x37000037, + 0x38000038, 0x39000039, 0x3a00003a, 0x3b00003b, 0x3c00003c, 0x3d00003d, 0x3e00003e, 0x3f00003f, + 0x40000040, 0x41000041, 0x42000042, 0x43000043, 0x44000044, 0x45000045, 0x46000046, 0x47000047, + 0x48000048, 0x49000049, 0x4a00004a, 0x4b00004b, 0x4c00004c, 0x4d00004d, 0x4e00004e, 0x4f00004f, + 0x50000050, 0x51000051, 0x52000052, 0x53000053, 0x54000054, 0x55000055, 0x56000056, 0x57000057, + 0x58000058, 0x59000059, 0x5a00005a, 0x5b00005b, 0x5c00005c, 0x5d00005d, 0x5e00005e, 0x5f00005f, + 0x60000060, 0x61000061, 0x62000062, 0x63000063, 0x64000064, 0x65000065, 0x66000066, 0x67000067, + 0x68000068, 0x69000069, 0x6a00006a, 0x6b00006b, 0x6c00006c, 0x6d00006d, 0x6e00006e, 0x6f00006f, + 0x70000070, 0x71000071, 0x72000072, 0x73000073, 0x74000074, 0x75000075, 0x76000076, 0x77000077, + 0x78000078, 0x79000079, 0x7a00007a, 0x7b00007b, 0x7c00007c, 0x7d00007d, 0x7e00007e, 0x7f00007f, + 0xff0000a0, 0x9b0000a2, 0x9c0000a3, 0x980000a4, 0xa00000a6, 0x8f0000a7, 0xa40000a8, 0xae0000ab, + 0xaa0000ac, 0xa70000af, 0xf80000b0, 0xf10000b1, 0xfd0000b2, 0xa60000b3, 0xa10000b4, 0xe60000b5, + 0x860000b6, 0xfa0000b7, 0xa50000b8, 0xaf0000bb, 0xac0000bc, 0xab0000bd, 0xad0000be, 0x8e0000c0, + 0x840000c2, 0x800000c7, 0x910000c8, 0x900000c9, 0x920000ca, 0x940000cb, 0xa80000ce, 0x950000cf, + 0x990000d4, 0x9d0000d9, 0x9e0000db, 0x9a0000dc, 0xe10000df, 0x850000e0, 0x830000e2, 0x870000e7, + 0x8a0000e8, 0x820000e9, 0x880000ea, 0x890000eb, 0x8c0000ee, 0x8b0000ef, 0xa20000f3, 0x930000f4, + 0xf60000f7, 0x970000f9, 0xa30000fa, 0x960000fb, 0x810000fc, 0x9f000192, 0xe2000393, 0xe9000398, + 0xe40003a3, 0xe80003a6, 0xea0003a9, 0xe00003b1, 0xeb0003b4, 0xee0003b5, 0xe30003c0, 0xe50003c3, + 0xe70003c4, 0xed0003c6, 0x8d002017, 0xfc00207f, 0xf9002219, 0xfb00221a, 0xec00221e, 0xef002229, + 0xf7002248, 0xf0002261, 0xf3002264, 0xf2002265, 0xa9002310, 0xf4002320, 0xf5002321, 0xc4002500, + 0xb3002502, 0xda00250c, 0xbf002510, 0xc0002514, 0xd9002518, 0xc300251c, 0xb4002524, 0xc200252c, + 0xc1002534, 0xc500253c, 0xcd002550, 0xba002551, 0xd5002552, 0xd6002553, 0xc9002554, 0xb8002555, + 0xb7002556, 0xbb002557, 0xd4002558, 0xd3002559, 0xc800255a, 0xbe00255b, 0xbd00255c, 0xbc00255d, + 0xc600255e, 0xc700255f, 0xcc002560, 0xb5002561, 0xb6002562, 0xb9002563, 0xd1002564, 0xd2002565, + 0xcb002566, 0xcf002567, 0xd0002568, 0xca002569, 0xd800256a, 0xd700256b, 0xce00256c, 0xdf002580, + 0xdc002584, 0xdb002588, 0xdd00258c, 0xde002590, 0xb0002591, 0xb1002592, 0xb2002593, 0xfe0025a0, + }, +} + +// CodePage865 is the IBM Code Page 865 encoding. +var CodePage865 *Charmap = &codePage865 + +var codePage865 = Charmap{ + name: "IBM Code Page 865", + mib: identifier.IBM865, + asciiSuperset: true, + low: 0x80, + replacement: 0x1a, + decode: [256]utf8Enc{ + {1, [3]byte{0x00, 0x00, 0x00}}, {1, [3]byte{0x01, 0x00, 0x00}}, + {1, [3]byte{0x02, 0x00, 0x00}}, {1, [3]byte{0x03, 0x00, 0x00}}, + {1, [3]byte{0x04, 0x00, 0x00}}, {1, [3]byte{0x05, 0x00, 0x00}}, + {1, [3]byte{0x06, 0x00, 0x00}}, {1, [3]byte{0x07, 0x00, 0x00}}, + {1, [3]byte{0x08, 0x00, 0x00}}, {1, [3]byte{0x09, 0x00, 0x00}}, + {1, [3]byte{0x0a, 0x00, 0x00}}, {1, [3]byte{0x0b, 0x00, 0x00}}, + {1, [3]byte{0x0c, 0x00, 0x00}}, {1, [3]byte{0x0d, 0x00, 0x00}}, + {1, [3]byte{0x0e, 0x00, 0x00}}, {1, [3]byte{0x0f, 0x00, 0x00}}, + {1, [3]byte{0x10, 0x00, 0x00}}, {1, [3]byte{0x11, 0x00, 0x00}}, + {1, [3]byte{0x12, 0x00, 0x00}}, {1, [3]byte{0x13, 0x00, 0x00}}, + {1, [3]byte{0x14, 0x00, 0x00}}, {1, [3]byte{0x15, 0x00, 0x00}}, + {1, [3]byte{0x16, 0x00, 0x00}}, {1, [3]byte{0x17, 0x00, 0x00}}, + {1, [3]byte{0x18, 0x00, 0x00}}, {1, [3]byte{0x19, 0x00, 0x00}}, + {1, [3]byte{0x1a, 0x00, 0x00}}, {1, [3]byte{0x1b, 0x00, 0x00}}, + {1, [3]byte{0x1c, 0x00, 0x00}}, {1, [3]byte{0x1d, 0x00, 0x00}}, + {1, [3]byte{0x1e, 0x00, 0x00}}, {1, [3]byte{0x1f, 0x00, 0x00}}, + {1, [3]byte{0x20, 0x00, 0x00}}, {1, [3]byte{0x21, 0x00, 0x00}}, + {1, [3]byte{0x22, 0x00, 0x00}}, {1, [3]byte{0x23, 0x00, 0x00}}, + {1, [3]byte{0x24, 0x00, 0x00}}, {1, [3]byte{0x25, 0x00, 0x00}}, + {1, [3]byte{0x26, 0x00, 0x00}}, {1, [3]byte{0x27, 0x00, 0x00}}, + {1, [3]byte{0x28, 0x00, 0x00}}, {1, [3]byte{0x29, 0x00, 0x00}}, + {1, [3]byte{0x2a, 0x00, 0x00}}, {1, [3]byte{0x2b, 0x00, 0x00}}, + {1, [3]byte{0x2c, 0x00, 0x00}}, {1, [3]byte{0x2d, 0x00, 0x00}}, + {1, [3]byte{0x2e, 0x00, 0x00}}, {1, [3]byte{0x2f, 0x00, 0x00}}, + {1, [3]byte{0x30, 0x00, 0x00}}, {1, [3]byte{0x31, 0x00, 0x00}}, + {1, [3]byte{0x32, 0x00, 0x00}}, {1, [3]byte{0x33, 0x00, 0x00}}, + {1, [3]byte{0x34, 0x00, 0x00}}, {1, [3]byte{0x35, 0x00, 0x00}}, + {1, [3]byte{0x36, 0x00, 0x00}}, {1, [3]byte{0x37, 0x00, 0x00}}, + {1, [3]byte{0x38, 0x00, 0x00}}, {1, [3]byte{0x39, 0x00, 0x00}}, + {1, [3]byte{0x3a, 0x00, 0x00}}, {1, [3]byte{0x3b, 0x00, 0x00}}, + {1, [3]byte{0x3c, 0x00, 0x00}}, {1, [3]byte{0x3d, 0x00, 0x00}}, + {1, [3]byte{0x3e, 0x00, 0x00}}, {1, [3]byte{0x3f, 0x00, 0x00}}, + {1, [3]byte{0x40, 0x00, 0x00}}, {1, [3]byte{0x41, 0x00, 0x00}}, + {1, [3]byte{0x42, 0x00, 0x00}}, {1, [3]byte{0x43, 0x00, 0x00}}, + {1, [3]byte{0x44, 0x00, 0x00}}, {1, [3]byte{0x45, 0x00, 0x00}}, + {1, [3]byte{0x46, 0x00, 0x00}}, {1, [3]byte{0x47, 0x00, 0x00}}, + {1, [3]byte{0x48, 0x00, 0x00}}, {1, [3]byte{0x49, 0x00, 0x00}}, + {1, [3]byte{0x4a, 0x00, 0x00}}, {1, [3]byte{0x4b, 0x00, 0x00}}, + {1, [3]byte{0x4c, 0x00, 0x00}}, {1, [3]byte{0x4d, 0x00, 0x00}}, + {1, [3]byte{0x4e, 0x00, 0x00}}, {1, [3]byte{0x4f, 0x00, 0x00}}, + {1, [3]byte{0x50, 0x00, 0x00}}, {1, [3]byte{0x51, 0x00, 0x00}}, + {1, [3]byte{0x52, 0x00, 0x00}}, {1, [3]byte{0x53, 0x00, 0x00}}, + {1, [3]byte{0x54, 0x00, 0x00}}, {1, [3]byte{0x55, 0x00, 0x00}}, + {1, [3]byte{0x56, 0x00, 0x00}}, {1, [3]byte{0x57, 0x00, 0x00}}, + {1, [3]byte{0x58, 0x00, 0x00}}, {1, [3]byte{0x59, 0x00, 0x00}}, + {1, [3]byte{0x5a, 0x00, 0x00}}, {1, [3]byte{0x5b, 0x00, 0x00}}, + {1, [3]byte{0x5c, 0x00, 0x00}}, {1, [3]byte{0x5d, 0x00, 0x00}}, + {1, [3]byte{0x5e, 0x00, 0x00}}, {1, [3]byte{0x5f, 0x00, 0x00}}, + {1, [3]byte{0x60, 0x00, 0x00}}, {1, [3]byte{0x61, 0x00, 0x00}}, + {1, [3]byte{0x62, 0x00, 0x00}}, {1, [3]byte{0x63, 0x00, 0x00}}, + {1, [3]byte{0x64, 0x00, 0x00}}, {1, [3]byte{0x65, 0x00, 0x00}}, + {1, [3]byte{0x66, 0x00, 0x00}}, {1, [3]byte{0x67, 0x00, 0x00}}, + {1, [3]byte{0x68, 0x00, 0x00}}, {1, [3]byte{0x69, 0x00, 0x00}}, + {1, [3]byte{0x6a, 0x00, 0x00}}, {1, [3]byte{0x6b, 0x00, 0x00}}, + {1, [3]byte{0x6c, 0x00, 0x00}}, {1, [3]byte{0x6d, 0x00, 0x00}}, + {1, [3]byte{0x6e, 0x00, 0x00}}, {1, [3]byte{0x6f, 0x00, 0x00}}, + {1, [3]byte{0x70, 0x00, 0x00}}, {1, [3]byte{0x71, 0x00, 0x00}}, + {1, [3]byte{0x72, 0x00, 0x00}}, {1, [3]byte{0x73, 0x00, 0x00}}, + {1, [3]byte{0x74, 0x00, 0x00}}, {1, [3]byte{0x75, 0x00, 0x00}}, + {1, [3]byte{0x76, 0x00, 0x00}}, {1, [3]byte{0x77, 0x00, 0x00}}, + {1, [3]byte{0x78, 0x00, 0x00}}, {1, [3]byte{0x79, 0x00, 0x00}}, + {1, [3]byte{0x7a, 0x00, 0x00}}, {1, [3]byte{0x7b, 0x00, 0x00}}, + {1, [3]byte{0x7c, 0x00, 0x00}}, {1, [3]byte{0x7d, 0x00, 0x00}}, + {1, [3]byte{0x7e, 0x00, 0x00}}, {1, [3]byte{0x7f, 0x00, 0x00}}, + {2, [3]byte{0xc3, 0x87, 0x00}}, {2, [3]byte{0xc3, 0xbc, 0x00}}, + {2, [3]byte{0xc3, 0xa9, 0x00}}, {2, [3]byte{0xc3, 0xa2, 0x00}}, + {2, [3]byte{0xc3, 0xa4, 0x00}}, {2, [3]byte{0xc3, 0xa0, 0x00}}, + {2, [3]byte{0xc3, 0xa5, 0x00}}, {2, [3]byte{0xc3, 0xa7, 0x00}}, + {2, [3]byte{0xc3, 0xaa, 0x00}}, {2, [3]byte{0xc3, 0xab, 0x00}}, + {2, [3]byte{0xc3, 0xa8, 0x00}}, {2, [3]byte{0xc3, 0xaf, 0x00}}, + {2, [3]byte{0xc3, 0xae, 0x00}}, {2, [3]byte{0xc3, 0xac, 0x00}}, + {2, [3]byte{0xc3, 0x84, 0x00}}, {2, [3]byte{0xc3, 0x85, 0x00}}, + {2, [3]byte{0xc3, 0x89, 0x00}}, {2, [3]byte{0xc3, 0xa6, 0x00}}, + {2, [3]byte{0xc3, 0x86, 0x00}}, {2, [3]byte{0xc3, 0xb4, 0x00}}, + {2, [3]byte{0xc3, 0xb6, 0x00}}, {2, [3]byte{0xc3, 0xb2, 0x00}}, + {2, [3]byte{0xc3, 0xbb, 0x00}}, {2, [3]byte{0xc3, 0xb9, 0x00}}, + {2, [3]byte{0xc3, 0xbf, 0x00}}, {2, [3]byte{0xc3, 0x96, 0x00}}, + {2, [3]byte{0xc3, 0x9c, 0x00}}, {2, [3]byte{0xc3, 0xb8, 0x00}}, + {2, [3]byte{0xc2, 0xa3, 0x00}}, {2, [3]byte{0xc3, 0x98, 0x00}}, + {3, [3]byte{0xe2, 0x82, 0xa7}}, {2, [3]byte{0xc6, 0x92, 0x00}}, + {2, [3]byte{0xc3, 0xa1, 0x00}}, {2, [3]byte{0xc3, 0xad, 0x00}}, + {2, [3]byte{0xc3, 0xb3, 0x00}}, {2, [3]byte{0xc3, 0xba, 0x00}}, + {2, [3]byte{0xc3, 0xb1, 0x00}}, {2, [3]byte{0xc3, 0x91, 0x00}}, + {2, [3]byte{0xc2, 0xaa, 0x00}}, {2, [3]byte{0xc2, 0xba, 0x00}}, + {2, [3]byte{0xc2, 0xbf, 0x00}}, {3, [3]byte{0xe2, 0x8c, 0x90}}, + {2, [3]byte{0xc2, 0xac, 0x00}}, {2, [3]byte{0xc2, 0xbd, 0x00}}, + {2, [3]byte{0xc2, 0xbc, 0x00}}, {2, [3]byte{0xc2, 0xa1, 0x00}}, + {2, [3]byte{0xc2, 0xab, 0x00}}, {2, [3]byte{0xc2, 0xa4, 0x00}}, + {3, [3]byte{0xe2, 0x96, 0x91}}, {3, [3]byte{0xe2, 0x96, 0x92}}, + {3, [3]byte{0xe2, 0x96, 0x93}}, {3, [3]byte{0xe2, 0x94, 0x82}}, + {3, [3]byte{0xe2, 0x94, 0xa4}}, {3, [3]byte{0xe2, 0x95, 0xa1}}, + {3, [3]byte{0xe2, 0x95, 0xa2}}, {3, [3]byte{0xe2, 0x95, 0x96}}, + {3, [3]byte{0xe2, 0x95, 0x95}}, {3, [3]byte{0xe2, 0x95, 0xa3}}, + {3, [3]byte{0xe2, 0x95, 0x91}}, {3, [3]byte{0xe2, 0x95, 0x97}}, + {3, [3]byte{0xe2, 0x95, 0x9d}}, {3, [3]byte{0xe2, 0x95, 0x9c}}, + {3, [3]byte{0xe2, 0x95, 0x9b}}, {3, [3]byte{0xe2, 0x94, 0x90}}, + {3, [3]byte{0xe2, 0x94, 0x94}}, {3, [3]byte{0xe2, 0x94, 0xb4}}, + {3, [3]byte{0xe2, 0x94, 0xac}}, {3, [3]byte{0xe2, 0x94, 0x9c}}, + {3, [3]byte{0xe2, 0x94, 0x80}}, {3, [3]byte{0xe2, 0x94, 0xbc}}, + {3, [3]byte{0xe2, 0x95, 0x9e}}, {3, [3]byte{0xe2, 0x95, 0x9f}}, + {3, [3]byte{0xe2, 0x95, 0x9a}}, {3, [3]byte{0xe2, 0x95, 0x94}}, + {3, [3]byte{0xe2, 0x95, 0xa9}}, {3, [3]byte{0xe2, 0x95, 0xa6}}, + {3, [3]byte{0xe2, 0x95, 0xa0}}, {3, [3]byte{0xe2, 0x95, 0x90}}, + {3, [3]byte{0xe2, 0x95, 0xac}}, {3, [3]byte{0xe2, 0x95, 0xa7}}, + {3, [3]byte{0xe2, 0x95, 0xa8}}, {3, [3]byte{0xe2, 0x95, 0xa4}}, + {3, [3]byte{0xe2, 0x95, 0xa5}}, {3, [3]byte{0xe2, 0x95, 0x99}}, + {3, [3]byte{0xe2, 0x95, 0x98}}, {3, [3]byte{0xe2, 0x95, 0x92}}, + {3, [3]byte{0xe2, 0x95, 0x93}}, {3, [3]byte{0xe2, 0x95, 0xab}}, + {3, [3]byte{0xe2, 0x95, 0xaa}}, {3, [3]byte{0xe2, 0x94, 0x98}}, + {3, [3]byte{0xe2, 0x94, 0x8c}}, {3, [3]byte{0xe2, 0x96, 0x88}}, + {3, [3]byte{0xe2, 0x96, 0x84}}, {3, [3]byte{0xe2, 0x96, 0x8c}}, + {3, [3]byte{0xe2, 0x96, 0x90}}, {3, [3]byte{0xe2, 0x96, 0x80}}, + {2, [3]byte{0xce, 0xb1, 0x00}}, {2, [3]byte{0xc3, 0x9f, 0x00}}, + {2, [3]byte{0xce, 0x93, 0x00}}, {2, [3]byte{0xcf, 0x80, 0x00}}, + {2, [3]byte{0xce, 0xa3, 0x00}}, {2, [3]byte{0xcf, 0x83, 0x00}}, + {2, [3]byte{0xc2, 0xb5, 0x00}}, {2, [3]byte{0xcf, 0x84, 0x00}}, + {2, [3]byte{0xce, 0xa6, 0x00}}, {2, [3]byte{0xce, 0x98, 0x00}}, + {2, [3]byte{0xce, 0xa9, 0x00}}, {2, [3]byte{0xce, 0xb4, 0x00}}, + {3, [3]byte{0xe2, 0x88, 0x9e}}, {2, [3]byte{0xcf, 0x86, 0x00}}, + {2, [3]byte{0xce, 0xb5, 0x00}}, {3, [3]byte{0xe2, 0x88, 0xa9}}, + {3, [3]byte{0xe2, 0x89, 0xa1}}, {2, [3]byte{0xc2, 0xb1, 0x00}}, + {3, [3]byte{0xe2, 0x89, 0xa5}}, {3, [3]byte{0xe2, 0x89, 0xa4}}, + {3, [3]byte{0xe2, 0x8c, 0xa0}}, {3, [3]byte{0xe2, 0x8c, 0xa1}}, + {2, [3]byte{0xc3, 0xb7, 0x00}}, {3, [3]byte{0xe2, 0x89, 0x88}}, + {2, [3]byte{0xc2, 0xb0, 0x00}}, {3, [3]byte{0xe2, 0x88, 0x99}}, + {2, [3]byte{0xc2, 0xb7, 0x00}}, {3, [3]byte{0xe2, 0x88, 0x9a}}, + {3, [3]byte{0xe2, 0x81, 0xbf}}, {2, [3]byte{0xc2, 0xb2, 0x00}}, + {3, [3]byte{0xe2, 0x96, 0xa0}}, {2, [3]byte{0xc2, 0xa0, 0x00}}, + }, + encode: [256]uint32{ + 0x00000000, 0x01000001, 0x02000002, 0x03000003, 0x04000004, 0x05000005, 0x06000006, 0x07000007, + 0x08000008, 0x09000009, 0x0a00000a, 0x0b00000b, 0x0c00000c, 0x0d00000d, 0x0e00000e, 0x0f00000f, + 0x10000010, 0x11000011, 0x12000012, 0x13000013, 0x14000014, 0x15000015, 0x16000016, 0x17000017, + 0x18000018, 0x19000019, 0x1a00001a, 0x1b00001b, 0x1c00001c, 0x1d00001d, 0x1e00001e, 0x1f00001f, + 0x20000020, 0x21000021, 0x22000022, 0x23000023, 0x24000024, 0x25000025, 0x26000026, 0x27000027, + 0x28000028, 0x29000029, 0x2a00002a, 0x2b00002b, 0x2c00002c, 0x2d00002d, 0x2e00002e, 0x2f00002f, + 0x30000030, 0x31000031, 0x32000032, 0x33000033, 0x34000034, 0x35000035, 0x36000036, 0x37000037, + 0x38000038, 0x39000039, 0x3a00003a, 0x3b00003b, 0x3c00003c, 0x3d00003d, 0x3e00003e, 0x3f00003f, + 0x40000040, 0x41000041, 0x42000042, 0x43000043, 0x44000044, 0x45000045, 0x46000046, 0x47000047, + 0x48000048, 0x49000049, 0x4a00004a, 0x4b00004b, 0x4c00004c, 0x4d00004d, 0x4e00004e, 0x4f00004f, + 0x50000050, 0x51000051, 0x52000052, 0x53000053, 0x54000054, 0x55000055, 0x56000056, 0x57000057, + 0x58000058, 0x59000059, 0x5a00005a, 0x5b00005b, 0x5c00005c, 0x5d00005d, 0x5e00005e, 0x5f00005f, + 0x60000060, 0x61000061, 0x62000062, 0x63000063, 0x64000064, 0x65000065, 0x66000066, 0x67000067, + 0x68000068, 0x69000069, 0x6a00006a, 0x6b00006b, 0x6c00006c, 0x6d00006d, 0x6e00006e, 0x6f00006f, + 0x70000070, 0x71000071, 0x72000072, 0x73000073, 0x74000074, 0x75000075, 0x76000076, 0x77000077, + 0x78000078, 0x79000079, 0x7a00007a, 0x7b00007b, 0x7c00007c, 0x7d00007d, 0x7e00007e, 0x7f00007f, + 0xff0000a0, 0xad0000a1, 0x9c0000a3, 0xaf0000a4, 0xa60000aa, 0xae0000ab, 0xaa0000ac, 0xf80000b0, + 0xf10000b1, 0xfd0000b2, 0xe60000b5, 0xfa0000b7, 0xa70000ba, 0xac0000bc, 0xab0000bd, 0xa80000bf, + 0x8e0000c4, 0x8f0000c5, 0x920000c6, 0x800000c7, 0x900000c9, 0xa50000d1, 0x990000d6, 0x9d0000d8, + 0x9a0000dc, 0xe10000df, 0x850000e0, 0xa00000e1, 0x830000e2, 0x840000e4, 0x860000e5, 0x910000e6, + 0x870000e7, 0x8a0000e8, 0x820000e9, 0x880000ea, 0x890000eb, 0x8d0000ec, 0xa10000ed, 0x8c0000ee, + 0x8b0000ef, 0xa40000f1, 0x950000f2, 0xa20000f3, 0x930000f4, 0x940000f6, 0xf60000f7, 0x9b0000f8, + 0x970000f9, 0xa30000fa, 0x960000fb, 0x810000fc, 0x980000ff, 0x9f000192, 0xe2000393, 0xe9000398, + 0xe40003a3, 0xe80003a6, 0xea0003a9, 0xe00003b1, 0xeb0003b4, 0xee0003b5, 0xe30003c0, 0xe50003c3, + 0xe70003c4, 0xed0003c6, 0xfc00207f, 0x9e0020a7, 0xf9002219, 0xfb00221a, 0xec00221e, 0xef002229, + 0xf7002248, 0xf0002261, 0xf3002264, 0xf2002265, 0xa9002310, 0xf4002320, 0xf5002321, 0xc4002500, + 0xb3002502, 0xda00250c, 0xbf002510, 0xc0002514, 0xd9002518, 0xc300251c, 0xb4002524, 0xc200252c, + 0xc1002534, 0xc500253c, 0xcd002550, 0xba002551, 0xd5002552, 0xd6002553, 0xc9002554, 0xb8002555, + 0xb7002556, 0xbb002557, 0xd4002558, 0xd3002559, 0xc800255a, 0xbe00255b, 0xbd00255c, 0xbc00255d, + 0xc600255e, 0xc700255f, 0xcc002560, 0xb5002561, 0xb6002562, 0xb9002563, 0xd1002564, 0xd2002565, + 0xcb002566, 0xcf002567, 0xd0002568, 0xca002569, 0xd800256a, 0xd700256b, 0xce00256c, 0xdf002580, + 0xdc002584, 0xdb002588, 0xdd00258c, 0xde002590, 0xb0002591, 0xb1002592, 0xb2002593, 0xfe0025a0, + }, +} + +// CodePage866 is the IBM Code Page 866 encoding. +var CodePage866 *Charmap = &codePage866 + +var codePage866 = Charmap{ + name: "IBM Code Page 866", + mib: identifier.IBM866, + asciiSuperset: true, + low: 0x80, + replacement: 0x1a, + decode: [256]utf8Enc{ + {1, [3]byte{0x00, 0x00, 0x00}}, {1, [3]byte{0x01, 0x00, 0x00}}, + {1, [3]byte{0x02, 0x00, 0x00}}, {1, [3]byte{0x03, 0x00, 0x00}}, + {1, [3]byte{0x04, 0x00, 0x00}}, {1, [3]byte{0x05, 0x00, 0x00}}, + {1, [3]byte{0x06, 0x00, 0x00}}, {1, [3]byte{0x07, 0x00, 0x00}}, + {1, [3]byte{0x08, 0x00, 0x00}}, {1, [3]byte{0x09, 0x00, 0x00}}, + {1, [3]byte{0x0a, 0x00, 0x00}}, {1, [3]byte{0x0b, 0x00, 0x00}}, + {1, [3]byte{0x0c, 0x00, 0x00}}, {1, [3]byte{0x0d, 0x00, 0x00}}, + {1, [3]byte{0x0e, 0x00, 0x00}}, {1, [3]byte{0x0f, 0x00, 0x00}}, + {1, [3]byte{0x10, 0x00, 0x00}}, {1, [3]byte{0x11, 0x00, 0x00}}, + {1, [3]byte{0x12, 0x00, 0x00}}, {1, [3]byte{0x13, 0x00, 0x00}}, + {1, [3]byte{0x14, 0x00, 0x00}}, {1, [3]byte{0x15, 0x00, 0x00}}, + {1, [3]byte{0x16, 0x00, 0x00}}, {1, [3]byte{0x17, 0x00, 0x00}}, + {1, [3]byte{0x18, 0x00, 0x00}}, {1, [3]byte{0x19, 0x00, 0x00}}, + {1, [3]byte{0x1a, 0x00, 0x00}}, {1, [3]byte{0x1b, 0x00, 0x00}}, + {1, [3]byte{0x1c, 0x00, 0x00}}, {1, [3]byte{0x1d, 0x00, 0x00}}, + {1, [3]byte{0x1e, 0x00, 0x00}}, {1, [3]byte{0x1f, 0x00, 0x00}}, + {1, [3]byte{0x20, 0x00, 0x00}}, {1, [3]byte{0x21, 0x00, 0x00}}, + {1, [3]byte{0x22, 0x00, 0x00}}, {1, [3]byte{0x23, 0x00, 0x00}}, + {1, [3]byte{0x24, 0x00, 0x00}}, {1, [3]byte{0x25, 0x00, 0x00}}, + {1, [3]byte{0x26, 0x00, 0x00}}, {1, [3]byte{0x27, 0x00, 0x00}}, + {1, [3]byte{0x28, 0x00, 0x00}}, {1, [3]byte{0x29, 0x00, 0x00}}, + {1, [3]byte{0x2a, 0x00, 0x00}}, {1, [3]byte{0x2b, 0x00, 0x00}}, + {1, [3]byte{0x2c, 0x00, 0x00}}, {1, [3]byte{0x2d, 0x00, 0x00}}, + {1, [3]byte{0x2e, 0x00, 0x00}}, {1, [3]byte{0x2f, 0x00, 0x00}}, + {1, [3]byte{0x30, 0x00, 0x00}}, {1, [3]byte{0x31, 0x00, 0x00}}, + {1, [3]byte{0x32, 0x00, 0x00}}, {1, [3]byte{0x33, 0x00, 0x00}}, + {1, [3]byte{0x34, 0x00, 0x00}}, {1, [3]byte{0x35, 0x00, 0x00}}, + {1, [3]byte{0x36, 0x00, 0x00}}, {1, [3]byte{0x37, 0x00, 0x00}}, + {1, [3]byte{0x38, 0x00, 0x00}}, {1, [3]byte{0x39, 0x00, 0x00}}, + {1, [3]byte{0x3a, 0x00, 0x00}}, {1, [3]byte{0x3b, 0x00, 0x00}}, + {1, [3]byte{0x3c, 0x00, 0x00}}, {1, [3]byte{0x3d, 0x00, 0x00}}, + {1, [3]byte{0x3e, 0x00, 0x00}}, {1, [3]byte{0x3f, 0x00, 0x00}}, + {1, [3]byte{0x40, 0x00, 0x00}}, {1, [3]byte{0x41, 0x00, 0x00}}, + {1, [3]byte{0x42, 0x00, 0x00}}, {1, [3]byte{0x43, 0x00, 0x00}}, + {1, [3]byte{0x44, 0x00, 0x00}}, {1, [3]byte{0x45, 0x00, 0x00}}, + {1, [3]byte{0x46, 0x00, 0x00}}, {1, [3]byte{0x47, 0x00, 0x00}}, + {1, [3]byte{0x48, 0x00, 0x00}}, {1, [3]byte{0x49, 0x00, 0x00}}, + {1, [3]byte{0x4a, 0x00, 0x00}}, {1, [3]byte{0x4b, 0x00, 0x00}}, + {1, [3]byte{0x4c, 0x00, 0x00}}, {1, [3]byte{0x4d, 0x00, 0x00}}, + {1, [3]byte{0x4e, 0x00, 0x00}}, {1, [3]byte{0x4f, 0x00, 0x00}}, + {1, [3]byte{0x50, 0x00, 0x00}}, {1, [3]byte{0x51, 0x00, 0x00}}, + {1, [3]byte{0x52, 0x00, 0x00}}, {1, [3]byte{0x53, 0x00, 0x00}}, + {1, [3]byte{0x54, 0x00, 0x00}}, {1, [3]byte{0x55, 0x00, 0x00}}, + {1, [3]byte{0x56, 0x00, 0x00}}, {1, [3]byte{0x57, 0x00, 0x00}}, + {1, [3]byte{0x58, 0x00, 0x00}}, {1, [3]byte{0x59, 0x00, 0x00}}, + {1, [3]byte{0x5a, 0x00, 0x00}}, {1, [3]byte{0x5b, 0x00, 0x00}}, + {1, [3]byte{0x5c, 0x00, 0x00}}, {1, [3]byte{0x5d, 0x00, 0x00}}, + {1, [3]byte{0x5e, 0x00, 0x00}}, {1, [3]byte{0x5f, 0x00, 0x00}}, + {1, [3]byte{0x60, 0x00, 0x00}}, {1, [3]byte{0x61, 0x00, 0x00}}, + {1, [3]byte{0x62, 0x00, 0x00}}, {1, [3]byte{0x63, 0x00, 0x00}}, + {1, [3]byte{0x64, 0x00, 0x00}}, {1, [3]byte{0x65, 0x00, 0x00}}, + {1, [3]byte{0x66, 0x00, 0x00}}, {1, [3]byte{0x67, 0x00, 0x00}}, + {1, [3]byte{0x68, 0x00, 0x00}}, {1, [3]byte{0x69, 0x00, 0x00}}, + {1, [3]byte{0x6a, 0x00, 0x00}}, {1, [3]byte{0x6b, 0x00, 0x00}}, + {1, [3]byte{0x6c, 0x00, 0x00}}, {1, [3]byte{0x6d, 0x00, 0x00}}, + {1, [3]byte{0x6e, 0x00, 0x00}}, {1, [3]byte{0x6f, 0x00, 0x00}}, + {1, [3]byte{0x70, 0x00, 0x00}}, {1, [3]byte{0x71, 0x00, 0x00}}, + {1, [3]byte{0x72, 0x00, 0x00}}, {1, [3]byte{0x73, 0x00, 0x00}}, + {1, [3]byte{0x74, 0x00, 0x00}}, {1, [3]byte{0x75, 0x00, 0x00}}, + {1, [3]byte{0x76, 0x00, 0x00}}, {1, [3]byte{0x77, 0x00, 0x00}}, + {1, [3]byte{0x78, 0x00, 0x00}}, {1, [3]byte{0x79, 0x00, 0x00}}, + {1, [3]byte{0x7a, 0x00, 0x00}}, {1, [3]byte{0x7b, 0x00, 0x00}}, + {1, [3]byte{0x7c, 0x00, 0x00}}, {1, [3]byte{0x7d, 0x00, 0x00}}, + {1, [3]byte{0x7e, 0x00, 0x00}}, {1, [3]byte{0x7f, 0x00, 0x00}}, + {2, [3]byte{0xd0, 0x90, 0x00}}, {2, [3]byte{0xd0, 0x91, 0x00}}, + {2, [3]byte{0xd0, 0x92, 0x00}}, {2, [3]byte{0xd0, 0x93, 0x00}}, + {2, [3]byte{0xd0, 0x94, 0x00}}, {2, [3]byte{0xd0, 0x95, 0x00}}, + {2, [3]byte{0xd0, 0x96, 0x00}}, {2, [3]byte{0xd0, 0x97, 0x00}}, + {2, [3]byte{0xd0, 0x98, 0x00}}, {2, [3]byte{0xd0, 0x99, 0x00}}, + {2, [3]byte{0xd0, 0x9a, 0x00}}, {2, [3]byte{0xd0, 0x9b, 0x00}}, + {2, [3]byte{0xd0, 0x9c, 0x00}}, {2, [3]byte{0xd0, 0x9d, 0x00}}, + {2, [3]byte{0xd0, 0x9e, 0x00}}, {2, [3]byte{0xd0, 0x9f, 0x00}}, + {2, [3]byte{0xd0, 0xa0, 0x00}}, {2, [3]byte{0xd0, 0xa1, 0x00}}, + {2, [3]byte{0xd0, 0xa2, 0x00}}, {2, [3]byte{0xd0, 0xa3, 0x00}}, + {2, [3]byte{0xd0, 0xa4, 0x00}}, {2, [3]byte{0xd0, 0xa5, 0x00}}, + {2, [3]byte{0xd0, 0xa6, 0x00}}, {2, [3]byte{0xd0, 0xa7, 0x00}}, + {2, [3]byte{0xd0, 0xa8, 0x00}}, {2, [3]byte{0xd0, 0xa9, 0x00}}, + {2, [3]byte{0xd0, 0xaa, 0x00}}, {2, [3]byte{0xd0, 0xab, 0x00}}, + {2, [3]byte{0xd0, 0xac, 0x00}}, {2, [3]byte{0xd0, 0xad, 0x00}}, + {2, [3]byte{0xd0, 0xae, 0x00}}, {2, [3]byte{0xd0, 0xaf, 0x00}}, + {2, [3]byte{0xd0, 0xb0, 0x00}}, {2, [3]byte{0xd0, 0xb1, 0x00}}, + {2, [3]byte{0xd0, 0xb2, 0x00}}, {2, [3]byte{0xd0, 0xb3, 0x00}}, + {2, [3]byte{0xd0, 0xb4, 0x00}}, {2, [3]byte{0xd0, 0xb5, 0x00}}, + {2, [3]byte{0xd0, 0xb6, 0x00}}, {2, [3]byte{0xd0, 0xb7, 0x00}}, + {2, [3]byte{0xd0, 0xb8, 0x00}}, {2, [3]byte{0xd0, 0xb9, 0x00}}, + {2, [3]byte{0xd0, 0xba, 0x00}}, {2, [3]byte{0xd0, 0xbb, 0x00}}, + {2, [3]byte{0xd0, 0xbc, 0x00}}, {2, [3]byte{0xd0, 0xbd, 0x00}}, + {2, [3]byte{0xd0, 0xbe, 0x00}}, {2, [3]byte{0xd0, 0xbf, 0x00}}, + {3, [3]byte{0xe2, 0x96, 0x91}}, {3, [3]byte{0xe2, 0x96, 0x92}}, + {3, [3]byte{0xe2, 0x96, 0x93}}, {3, [3]byte{0xe2, 0x94, 0x82}}, + {3, [3]byte{0xe2, 0x94, 0xa4}}, {3, [3]byte{0xe2, 0x95, 0xa1}}, + {3, [3]byte{0xe2, 0x95, 0xa2}}, {3, [3]byte{0xe2, 0x95, 0x96}}, + {3, [3]byte{0xe2, 0x95, 0x95}}, {3, [3]byte{0xe2, 0x95, 0xa3}}, + {3, [3]byte{0xe2, 0x95, 0x91}}, {3, [3]byte{0xe2, 0x95, 0x97}}, + {3, [3]byte{0xe2, 0x95, 0x9d}}, {3, [3]byte{0xe2, 0x95, 0x9c}}, + {3, [3]byte{0xe2, 0x95, 0x9b}}, {3, [3]byte{0xe2, 0x94, 0x90}}, + {3, [3]byte{0xe2, 0x94, 0x94}}, {3, [3]byte{0xe2, 0x94, 0xb4}}, + {3, [3]byte{0xe2, 0x94, 0xac}}, {3, [3]byte{0xe2, 0x94, 0x9c}}, + {3, [3]byte{0xe2, 0x94, 0x80}}, {3, [3]byte{0xe2, 0x94, 0xbc}}, + {3, [3]byte{0xe2, 0x95, 0x9e}}, {3, [3]byte{0xe2, 0x95, 0x9f}}, + {3, [3]byte{0xe2, 0x95, 0x9a}}, {3, [3]byte{0xe2, 0x95, 0x94}}, + {3, [3]byte{0xe2, 0x95, 0xa9}}, {3, [3]byte{0xe2, 0x95, 0xa6}}, + {3, [3]byte{0xe2, 0x95, 0xa0}}, {3, [3]byte{0xe2, 0x95, 0x90}}, + {3, [3]byte{0xe2, 0x95, 0xac}}, {3, [3]byte{0xe2, 0x95, 0xa7}}, + {3, [3]byte{0xe2, 0x95, 0xa8}}, {3, [3]byte{0xe2, 0x95, 0xa4}}, + {3, [3]byte{0xe2, 0x95, 0xa5}}, {3, [3]byte{0xe2, 0x95, 0x99}}, + {3, [3]byte{0xe2, 0x95, 0x98}}, {3, [3]byte{0xe2, 0x95, 0x92}}, + {3, [3]byte{0xe2, 0x95, 0x93}}, {3, [3]byte{0xe2, 0x95, 0xab}}, + {3, [3]byte{0xe2, 0x95, 0xaa}}, {3, [3]byte{0xe2, 0x94, 0x98}}, + {3, [3]byte{0xe2, 0x94, 0x8c}}, {3, [3]byte{0xe2, 0x96, 0x88}}, + {3, [3]byte{0xe2, 0x96, 0x84}}, {3, [3]byte{0xe2, 0x96, 0x8c}}, + {3, [3]byte{0xe2, 0x96, 0x90}}, {3, [3]byte{0xe2, 0x96, 0x80}}, + {2, [3]byte{0xd1, 0x80, 0x00}}, {2, [3]byte{0xd1, 0x81, 0x00}}, + {2, [3]byte{0xd1, 0x82, 0x00}}, {2, [3]byte{0xd1, 0x83, 0x00}}, + {2, [3]byte{0xd1, 0x84, 0x00}}, {2, [3]byte{0xd1, 0x85, 0x00}}, + {2, [3]byte{0xd1, 0x86, 0x00}}, {2, [3]byte{0xd1, 0x87, 0x00}}, + {2, [3]byte{0xd1, 0x88, 0x00}}, {2, [3]byte{0xd1, 0x89, 0x00}}, + {2, [3]byte{0xd1, 0x8a, 0x00}}, {2, [3]byte{0xd1, 0x8b, 0x00}}, + {2, [3]byte{0xd1, 0x8c, 0x00}}, {2, [3]byte{0xd1, 0x8d, 0x00}}, + {2, [3]byte{0xd1, 0x8e, 0x00}}, {2, [3]byte{0xd1, 0x8f, 0x00}}, + {2, [3]byte{0xd0, 0x81, 0x00}}, {2, [3]byte{0xd1, 0x91, 0x00}}, + {2, [3]byte{0xd0, 0x84, 0x00}}, {2, [3]byte{0xd1, 0x94, 0x00}}, + {2, [3]byte{0xd0, 0x87, 0x00}}, {2, [3]byte{0xd1, 0x97, 0x00}}, + {2, [3]byte{0xd0, 0x8e, 0x00}}, {2, [3]byte{0xd1, 0x9e, 0x00}}, + {2, [3]byte{0xc2, 0xb0, 0x00}}, {3, [3]byte{0xe2, 0x88, 0x99}}, + {2, [3]byte{0xc2, 0xb7, 0x00}}, {3, [3]byte{0xe2, 0x88, 0x9a}}, + {3, [3]byte{0xe2, 0x84, 0x96}}, {2, [3]byte{0xc2, 0xa4, 0x00}}, + {3, [3]byte{0xe2, 0x96, 0xa0}}, {2, [3]byte{0xc2, 0xa0, 0x00}}, + }, + encode: [256]uint32{ + 0x00000000, 0x01000001, 0x02000002, 0x03000003, 0x04000004, 0x05000005, 0x06000006, 0x07000007, + 0x08000008, 0x09000009, 0x0a00000a, 0x0b00000b, 0x0c00000c, 0x0d00000d, 0x0e00000e, 0x0f00000f, + 0x10000010, 0x11000011, 0x12000012, 0x13000013, 0x14000014, 0x15000015, 0x16000016, 0x17000017, + 0x18000018, 0x19000019, 0x1a00001a, 0x1b00001b, 0x1c00001c, 0x1d00001d, 0x1e00001e, 0x1f00001f, + 0x20000020, 0x21000021, 0x22000022, 0x23000023, 0x24000024, 0x25000025, 0x26000026, 0x27000027, + 0x28000028, 0x29000029, 0x2a00002a, 0x2b00002b, 0x2c00002c, 0x2d00002d, 0x2e00002e, 0x2f00002f, + 0x30000030, 0x31000031, 0x32000032, 0x33000033, 0x34000034, 0x35000035, 0x36000036, 0x37000037, + 0x38000038, 0x39000039, 0x3a00003a, 0x3b00003b, 0x3c00003c, 0x3d00003d, 0x3e00003e, 0x3f00003f, + 0x40000040, 0x41000041, 0x42000042, 0x43000043, 0x44000044, 0x45000045, 0x46000046, 0x47000047, + 0x48000048, 0x49000049, 0x4a00004a, 0x4b00004b, 0x4c00004c, 0x4d00004d, 0x4e00004e, 0x4f00004f, + 0x50000050, 0x51000051, 0x52000052, 0x53000053, 0x54000054, 0x55000055, 0x56000056, 0x57000057, + 0x58000058, 0x59000059, 0x5a00005a, 0x5b00005b, 0x5c00005c, 0x5d00005d, 0x5e00005e, 0x5f00005f, + 0x60000060, 0x61000061, 0x62000062, 0x63000063, 0x64000064, 0x65000065, 0x66000066, 0x67000067, + 0x68000068, 0x69000069, 0x6a00006a, 0x6b00006b, 0x6c00006c, 0x6d00006d, 0x6e00006e, 0x6f00006f, + 0x70000070, 0x71000071, 0x72000072, 0x73000073, 0x74000074, 0x75000075, 0x76000076, 0x77000077, + 0x78000078, 0x79000079, 0x7a00007a, 0x7b00007b, 0x7c00007c, 0x7d00007d, 0x7e00007e, 0x7f00007f, + 0xff0000a0, 0xfd0000a4, 0xf80000b0, 0xfa0000b7, 0xf0000401, 0xf2000404, 0xf4000407, 0xf600040e, + 0x80000410, 0x81000411, 0x82000412, 0x83000413, 0x84000414, 0x85000415, 0x86000416, 0x87000417, + 0x88000418, 0x89000419, 0x8a00041a, 0x8b00041b, 0x8c00041c, 0x8d00041d, 0x8e00041e, 0x8f00041f, + 0x90000420, 0x91000421, 0x92000422, 0x93000423, 0x94000424, 0x95000425, 0x96000426, 0x97000427, + 0x98000428, 0x99000429, 0x9a00042a, 0x9b00042b, 0x9c00042c, 0x9d00042d, 0x9e00042e, 0x9f00042f, + 0xa0000430, 0xa1000431, 0xa2000432, 0xa3000433, 0xa4000434, 0xa5000435, 0xa6000436, 0xa7000437, + 0xa8000438, 0xa9000439, 0xaa00043a, 0xab00043b, 0xac00043c, 0xad00043d, 0xae00043e, 0xaf00043f, + 0xe0000440, 0xe1000441, 0xe2000442, 0xe3000443, 0xe4000444, 0xe5000445, 0xe6000446, 0xe7000447, + 0xe8000448, 0xe9000449, 0xea00044a, 0xeb00044b, 0xec00044c, 0xed00044d, 0xee00044e, 0xef00044f, + 0xf1000451, 0xf3000454, 0xf5000457, 0xf700045e, 0xfc002116, 0xf9002219, 0xfb00221a, 0xc4002500, + 0xb3002502, 0xda00250c, 0xbf002510, 0xc0002514, 0xd9002518, 0xc300251c, 0xb4002524, 0xc200252c, + 0xc1002534, 0xc500253c, 0xcd002550, 0xba002551, 0xd5002552, 0xd6002553, 0xc9002554, 0xb8002555, + 0xb7002556, 0xbb002557, 0xd4002558, 0xd3002559, 0xc800255a, 0xbe00255b, 0xbd00255c, 0xbc00255d, + 0xc600255e, 0xc700255f, 0xcc002560, 0xb5002561, 0xb6002562, 0xb9002563, 0xd1002564, 0xd2002565, + 0xcb002566, 0xcf002567, 0xd0002568, 0xca002569, 0xd800256a, 0xd700256b, 0xce00256c, 0xdf002580, + 0xdc002584, 0xdb002588, 0xdd00258c, 0xde002590, 0xb0002591, 0xb1002592, 0xb2002593, 0xfe0025a0, + }, +} + +// CodePage1047 is the IBM Code Page 1047 encoding. +var CodePage1047 *Charmap = &codePage1047 + +var codePage1047 = Charmap{ + name: "IBM Code Page 1047", + mib: identifier.IBM1047, + asciiSuperset: false, + low: 0x00, + replacement: 0x3f, + decode: [256]utf8Enc{ + {1, [3]byte{0x00, 0x00, 0x00}}, {1, [3]byte{0x01, 0x00, 0x00}}, + {1, [3]byte{0x02, 0x00, 0x00}}, {1, [3]byte{0x03, 0x00, 0x00}}, + {2, [3]byte{0xc2, 0x9c, 0x00}}, {1, [3]byte{0x09, 0x00, 0x00}}, + {2, [3]byte{0xc2, 0x86, 0x00}}, {1, [3]byte{0x7f, 0x00, 0x00}}, + {2, [3]byte{0xc2, 0x97, 0x00}}, {2, [3]byte{0xc2, 0x8d, 0x00}}, + {2, [3]byte{0xc2, 0x8e, 0x00}}, {1, [3]byte{0x0b, 0x00, 0x00}}, + {1, [3]byte{0x0c, 0x00, 0x00}}, {1, [3]byte{0x0d, 0x00, 0x00}}, + {1, [3]byte{0x0e, 0x00, 0x00}}, {1, [3]byte{0x0f, 0x00, 0x00}}, + {1, [3]byte{0x10, 0x00, 0x00}}, {1, [3]byte{0x11, 0x00, 0x00}}, + {1, [3]byte{0x12, 0x00, 0x00}}, {1, [3]byte{0x13, 0x00, 0x00}}, + {2, [3]byte{0xc2, 0x9d, 0x00}}, {2, [3]byte{0xc2, 0x85, 0x00}}, + {1, [3]byte{0x08, 0x00, 0x00}}, {2, [3]byte{0xc2, 0x87, 0x00}}, + {1, [3]byte{0x18, 0x00, 0x00}}, {1, [3]byte{0x19, 0x00, 0x00}}, + {2, [3]byte{0xc2, 0x92, 0x00}}, {2, [3]byte{0xc2, 0x8f, 0x00}}, + {1, [3]byte{0x1c, 0x00, 0x00}}, {1, [3]byte{0x1d, 0x00, 0x00}}, + {1, [3]byte{0x1e, 0x00, 0x00}}, {1, [3]byte{0x1f, 0x00, 0x00}}, + {2, [3]byte{0xc2, 0x80, 0x00}}, {2, [3]byte{0xc2, 0x81, 0x00}}, + {2, [3]byte{0xc2, 0x82, 0x00}}, {2, [3]byte{0xc2, 0x83, 0x00}}, + {2, [3]byte{0xc2, 0x84, 0x00}}, {1, [3]byte{0x0a, 0x00, 0x00}}, + {1, [3]byte{0x17, 0x00, 0x00}}, {1, [3]byte{0x1b, 0x00, 0x00}}, + {2, [3]byte{0xc2, 0x88, 0x00}}, {2, [3]byte{0xc2, 0x89, 0x00}}, + {2, [3]byte{0xc2, 0x8a, 0x00}}, {2, [3]byte{0xc2, 0x8b, 0x00}}, + {2, [3]byte{0xc2, 0x8c, 0x00}}, {1, [3]byte{0x05, 0x00, 0x00}}, + {1, [3]byte{0x06, 0x00, 0x00}}, {1, [3]byte{0x07, 0x00, 0x00}}, + {2, [3]byte{0xc2, 0x90, 0x00}}, {2, [3]byte{0xc2, 0x91, 0x00}}, + {1, [3]byte{0x16, 0x00, 0x00}}, {2, [3]byte{0xc2, 0x93, 0x00}}, + {2, [3]byte{0xc2, 0x94, 0x00}}, {2, [3]byte{0xc2, 0x95, 0x00}}, + {2, [3]byte{0xc2, 0x96, 0x00}}, {1, [3]byte{0x04, 0x00, 0x00}}, + {2, [3]byte{0xc2, 0x98, 0x00}}, {2, [3]byte{0xc2, 0x99, 0x00}}, + {2, [3]byte{0xc2, 0x9a, 0x00}}, {2, [3]byte{0xc2, 0x9b, 0x00}}, + {1, [3]byte{0x14, 0x00, 0x00}}, {1, [3]byte{0x15, 0x00, 0x00}}, + {2, [3]byte{0xc2, 0x9e, 0x00}}, {1, [3]byte{0x1a, 0x00, 0x00}}, + {1, [3]byte{0x20, 0x00, 0x00}}, {2, [3]byte{0xc2, 0xa0, 0x00}}, + {2, [3]byte{0xc3, 0xa2, 0x00}}, {2, [3]byte{0xc3, 0xa4, 0x00}}, + {2, [3]byte{0xc3, 0xa0, 0x00}}, {2, [3]byte{0xc3, 0xa1, 0x00}}, + {2, [3]byte{0xc3, 0xa3, 0x00}}, {2, [3]byte{0xc3, 0xa5, 0x00}}, + {2, [3]byte{0xc3, 0xa7, 0x00}}, {2, [3]byte{0xc3, 0xb1, 0x00}}, + {2, [3]byte{0xc2, 0xa2, 0x00}}, {1, [3]byte{0x2e, 0x00, 0x00}}, + {1, [3]byte{0x3c, 0x00, 0x00}}, {1, [3]byte{0x28, 0x00, 0x00}}, + {1, [3]byte{0x2b, 0x00, 0x00}}, {1, [3]byte{0x7c, 0x00, 0x00}}, + {1, [3]byte{0x26, 0x00, 0x00}}, {2, [3]byte{0xc3, 0xa9, 0x00}}, + {2, [3]byte{0xc3, 0xaa, 0x00}}, {2, [3]byte{0xc3, 0xab, 0x00}}, + {2, [3]byte{0xc3, 0xa8, 0x00}}, {2, [3]byte{0xc3, 0xad, 0x00}}, + {2, [3]byte{0xc3, 0xae, 0x00}}, {2, [3]byte{0xc3, 0xaf, 0x00}}, + {2, [3]byte{0xc3, 0xac, 0x00}}, {2, [3]byte{0xc3, 0x9f, 0x00}}, + {1, [3]byte{0x21, 0x00, 0x00}}, {1, [3]byte{0x24, 0x00, 0x00}}, + {1, [3]byte{0x2a, 0x00, 0x00}}, {1, [3]byte{0x29, 0x00, 0x00}}, + {1, [3]byte{0x3b, 0x00, 0x00}}, {1, [3]byte{0x5e, 0x00, 0x00}}, + {1, [3]byte{0x2d, 0x00, 0x00}}, {1, [3]byte{0x2f, 0x00, 0x00}}, + {2, [3]byte{0xc3, 0x82, 0x00}}, {2, [3]byte{0xc3, 0x84, 0x00}}, + {2, [3]byte{0xc3, 0x80, 0x00}}, {2, [3]byte{0xc3, 0x81, 0x00}}, + {2, [3]byte{0xc3, 0x83, 0x00}}, {2, [3]byte{0xc3, 0x85, 0x00}}, + {2, [3]byte{0xc3, 0x87, 0x00}}, {2, [3]byte{0xc3, 0x91, 0x00}}, + {2, [3]byte{0xc2, 0xa6, 0x00}}, {1, [3]byte{0x2c, 0x00, 0x00}}, + {1, [3]byte{0x25, 0x00, 0x00}}, {1, [3]byte{0x5f, 0x00, 0x00}}, + {1, [3]byte{0x3e, 0x00, 0x00}}, {1, [3]byte{0x3f, 0x00, 0x00}}, + {2, [3]byte{0xc3, 0xb8, 0x00}}, {2, [3]byte{0xc3, 0x89, 0x00}}, + {2, [3]byte{0xc3, 0x8a, 0x00}}, {2, [3]byte{0xc3, 0x8b, 0x00}}, + {2, [3]byte{0xc3, 0x88, 0x00}}, {2, [3]byte{0xc3, 0x8d, 0x00}}, + {2, [3]byte{0xc3, 0x8e, 0x00}}, {2, [3]byte{0xc3, 0x8f, 0x00}}, + {2, [3]byte{0xc3, 0x8c, 0x00}}, {1, [3]byte{0x60, 0x00, 0x00}}, + {1, [3]byte{0x3a, 0x00, 0x00}}, {1, [3]byte{0x23, 0x00, 0x00}}, + {1, [3]byte{0x40, 0x00, 0x00}}, {1, [3]byte{0x27, 0x00, 0x00}}, + {1, [3]byte{0x3d, 0x00, 0x00}}, {1, [3]byte{0x22, 0x00, 0x00}}, + {2, [3]byte{0xc3, 0x98, 0x00}}, {1, [3]byte{0x61, 0x00, 0x00}}, + {1, [3]byte{0x62, 0x00, 0x00}}, {1, [3]byte{0x63, 0x00, 0x00}}, + {1, [3]byte{0x64, 0x00, 0x00}}, {1, [3]byte{0x65, 0x00, 0x00}}, + {1, [3]byte{0x66, 0x00, 0x00}}, {1, [3]byte{0x67, 0x00, 0x00}}, + {1, [3]byte{0x68, 0x00, 0x00}}, {1, [3]byte{0x69, 0x00, 0x00}}, + {2, [3]byte{0xc2, 0xab, 0x00}}, {2, [3]byte{0xc2, 0xbb, 0x00}}, + {2, [3]byte{0xc3, 0xb0, 0x00}}, {2, [3]byte{0xc3, 0xbd, 0x00}}, + {2, [3]byte{0xc3, 0xbe, 0x00}}, {2, [3]byte{0xc2, 0xb1, 0x00}}, + {2, [3]byte{0xc2, 0xb0, 0x00}}, {1, [3]byte{0x6a, 0x00, 0x00}}, + {1, [3]byte{0x6b, 0x00, 0x00}}, {1, [3]byte{0x6c, 0x00, 0x00}}, + {1, [3]byte{0x6d, 0x00, 0x00}}, {1, [3]byte{0x6e, 0x00, 0x00}}, + {1, [3]byte{0x6f, 0x00, 0x00}}, {1, [3]byte{0x70, 0x00, 0x00}}, + {1, [3]byte{0x71, 0x00, 0x00}}, {1, [3]byte{0x72, 0x00, 0x00}}, + {2, [3]byte{0xc2, 0xaa, 0x00}}, {2, [3]byte{0xc2, 0xba, 0x00}}, + {2, [3]byte{0xc3, 0xa6, 0x00}}, {2, [3]byte{0xc2, 0xb8, 0x00}}, + {2, [3]byte{0xc3, 0x86, 0x00}}, {2, [3]byte{0xc2, 0xa4, 0x00}}, + {2, [3]byte{0xc2, 0xb5, 0x00}}, {1, [3]byte{0x7e, 0x00, 0x00}}, + {1, [3]byte{0x73, 0x00, 0x00}}, {1, [3]byte{0x74, 0x00, 0x00}}, + {1, [3]byte{0x75, 0x00, 0x00}}, {1, [3]byte{0x76, 0x00, 0x00}}, + {1, [3]byte{0x77, 0x00, 0x00}}, {1, [3]byte{0x78, 0x00, 0x00}}, + {1, [3]byte{0x79, 0x00, 0x00}}, {1, [3]byte{0x7a, 0x00, 0x00}}, + {2, [3]byte{0xc2, 0xa1, 0x00}}, {2, [3]byte{0xc2, 0xbf, 0x00}}, + {2, [3]byte{0xc3, 0x90, 0x00}}, {1, [3]byte{0x5b, 0x00, 0x00}}, + {2, [3]byte{0xc3, 0x9e, 0x00}}, {2, [3]byte{0xc2, 0xae, 0x00}}, + {2, [3]byte{0xc2, 0xac, 0x00}}, {2, [3]byte{0xc2, 0xa3, 0x00}}, + {2, [3]byte{0xc2, 0xa5, 0x00}}, {2, [3]byte{0xc2, 0xb7, 0x00}}, + {2, [3]byte{0xc2, 0xa9, 0x00}}, {2, [3]byte{0xc2, 0xa7, 0x00}}, + {2, [3]byte{0xc2, 0xb6, 0x00}}, {2, [3]byte{0xc2, 0xbc, 0x00}}, + {2, [3]byte{0xc2, 0xbd, 0x00}}, {2, [3]byte{0xc2, 0xbe, 0x00}}, + {2, [3]byte{0xc3, 0x9d, 0x00}}, {2, [3]byte{0xc2, 0xa8, 0x00}}, + {2, [3]byte{0xc2, 0xaf, 0x00}}, {1, [3]byte{0x5d, 0x00, 0x00}}, + {2, [3]byte{0xc2, 0xb4, 0x00}}, {2, [3]byte{0xc3, 0x97, 0x00}}, + {1, [3]byte{0x7b, 0x00, 0x00}}, {1, [3]byte{0x41, 0x00, 0x00}}, + {1, [3]byte{0x42, 0x00, 0x00}}, {1, [3]byte{0x43, 0x00, 0x00}}, + {1, [3]byte{0x44, 0x00, 0x00}}, {1, [3]byte{0x45, 0x00, 0x00}}, + {1, [3]byte{0x46, 0x00, 0x00}}, {1, [3]byte{0x47, 0x00, 0x00}}, + {1, [3]byte{0x48, 0x00, 0x00}}, {1, [3]byte{0x49, 0x00, 0x00}}, + {2, [3]byte{0xc2, 0xad, 0x00}}, {2, [3]byte{0xc3, 0xb4, 0x00}}, + {2, [3]byte{0xc3, 0xb6, 0x00}}, {2, [3]byte{0xc3, 0xb2, 0x00}}, + {2, [3]byte{0xc3, 0xb3, 0x00}}, {2, [3]byte{0xc3, 0xb5, 0x00}}, + {1, [3]byte{0x7d, 0x00, 0x00}}, {1, [3]byte{0x4a, 0x00, 0x00}}, + {1, [3]byte{0x4b, 0x00, 0x00}}, {1, [3]byte{0x4c, 0x00, 0x00}}, + {1, [3]byte{0x4d, 0x00, 0x00}}, {1, [3]byte{0x4e, 0x00, 0x00}}, + {1, [3]byte{0x4f, 0x00, 0x00}}, {1, [3]byte{0x50, 0x00, 0x00}}, + {1, [3]byte{0x51, 0x00, 0x00}}, {1, [3]byte{0x52, 0x00, 0x00}}, + {2, [3]byte{0xc2, 0xb9, 0x00}}, {2, [3]byte{0xc3, 0xbb, 0x00}}, + {2, [3]byte{0xc3, 0xbc, 0x00}}, {2, [3]byte{0xc3, 0xb9, 0x00}}, + {2, [3]byte{0xc3, 0xba, 0x00}}, {2, [3]byte{0xc3, 0xbf, 0x00}}, + {1, [3]byte{0x5c, 0x00, 0x00}}, {2, [3]byte{0xc3, 0xb7, 0x00}}, + {1, [3]byte{0x53, 0x00, 0x00}}, {1, [3]byte{0x54, 0x00, 0x00}}, + {1, [3]byte{0x55, 0x00, 0x00}}, {1, [3]byte{0x56, 0x00, 0x00}}, + {1, [3]byte{0x57, 0x00, 0x00}}, {1, [3]byte{0x58, 0x00, 0x00}}, + {1, [3]byte{0x59, 0x00, 0x00}}, {1, [3]byte{0x5a, 0x00, 0x00}}, + {2, [3]byte{0xc2, 0xb2, 0x00}}, {2, [3]byte{0xc3, 0x94, 0x00}}, + {2, [3]byte{0xc3, 0x96, 0x00}}, {2, [3]byte{0xc3, 0x92, 0x00}}, + {2, [3]byte{0xc3, 0x93, 0x00}}, {2, [3]byte{0xc3, 0x95, 0x00}}, + {1, [3]byte{0x30, 0x00, 0x00}}, {1, [3]byte{0x31, 0x00, 0x00}}, + {1, [3]byte{0x32, 0x00, 0x00}}, {1, [3]byte{0x33, 0x00, 0x00}}, + {1, [3]byte{0x34, 0x00, 0x00}}, {1, [3]byte{0x35, 0x00, 0x00}}, + {1, [3]byte{0x36, 0x00, 0x00}}, {1, [3]byte{0x37, 0x00, 0x00}}, + {1, [3]byte{0x38, 0x00, 0x00}}, {1, [3]byte{0x39, 0x00, 0x00}}, + {2, [3]byte{0xc2, 0xb3, 0x00}}, {2, [3]byte{0xc3, 0x9b, 0x00}}, + {2, [3]byte{0xc3, 0x9c, 0x00}}, {2, [3]byte{0xc3, 0x99, 0x00}}, + {2, [3]byte{0xc3, 0x9a, 0x00}}, {2, [3]byte{0xc2, 0x9f, 0x00}}, + }, + encode: [256]uint32{ + 0x00000000, 0x01000001, 0x02000002, 0x03000003, 0x37000004, 0x2d000005, 0x2e000006, 0x2f000007, + 0x16000008, 0x05000009, 0x2500000a, 0x0b00000b, 0x0c00000c, 0x0d00000d, 0x0e00000e, 0x0f00000f, + 0x10000010, 0x11000011, 0x12000012, 0x13000013, 0x3c000014, 0x3d000015, 0x32000016, 0x26000017, + 0x18000018, 0x19000019, 0x3f00001a, 0x2700001b, 0x1c00001c, 0x1d00001d, 0x1e00001e, 0x1f00001f, + 0x40000020, 0x5a000021, 0x7f000022, 0x7b000023, 0x5b000024, 0x6c000025, 0x50000026, 0x7d000027, + 0x4d000028, 0x5d000029, 0x5c00002a, 0x4e00002b, 0x6b00002c, 0x6000002d, 0x4b00002e, 0x6100002f, + 0xf0000030, 0xf1000031, 0xf2000032, 0xf3000033, 0xf4000034, 0xf5000035, 0xf6000036, 0xf7000037, + 0xf8000038, 0xf9000039, 0x7a00003a, 0x5e00003b, 0x4c00003c, 0x7e00003d, 0x6e00003e, 0x6f00003f, + 0x7c000040, 0xc1000041, 0xc2000042, 0xc3000043, 0xc4000044, 0xc5000045, 0xc6000046, 0xc7000047, + 0xc8000048, 0xc9000049, 0xd100004a, 0xd200004b, 0xd300004c, 0xd400004d, 0xd500004e, 0xd600004f, + 0xd7000050, 0xd8000051, 0xd9000052, 0xe2000053, 0xe3000054, 0xe4000055, 0xe5000056, 0xe6000057, + 0xe7000058, 0xe8000059, 0xe900005a, 0xad00005b, 0xe000005c, 0xbd00005d, 0x5f00005e, 0x6d00005f, + 0x79000060, 0x81000061, 0x82000062, 0x83000063, 0x84000064, 0x85000065, 0x86000066, 0x87000067, + 0x88000068, 0x89000069, 0x9100006a, 0x9200006b, 0x9300006c, 0x9400006d, 0x9500006e, 0x9600006f, + 0x97000070, 0x98000071, 0x99000072, 0xa2000073, 0xa3000074, 0xa4000075, 0xa5000076, 0xa6000077, + 0xa7000078, 0xa8000079, 0xa900007a, 0xc000007b, 0x4f00007c, 0xd000007d, 0xa100007e, 0x0700007f, + 0x20000080, 0x21000081, 0x22000082, 0x23000083, 0x24000084, 0x15000085, 0x06000086, 0x17000087, + 0x28000088, 0x29000089, 0x2a00008a, 0x2b00008b, 0x2c00008c, 0x0900008d, 0x0a00008e, 0x1b00008f, + 0x30000090, 0x31000091, 0x1a000092, 0x33000093, 0x34000094, 0x35000095, 0x36000096, 0x08000097, + 0x38000098, 0x39000099, 0x3a00009a, 0x3b00009b, 0x0400009c, 0x1400009d, 0x3e00009e, 0xff00009f, + 0x410000a0, 0xaa0000a1, 0x4a0000a2, 0xb10000a3, 0x9f0000a4, 0xb20000a5, 0x6a0000a6, 0xb50000a7, + 0xbb0000a8, 0xb40000a9, 0x9a0000aa, 0x8a0000ab, 0xb00000ac, 0xca0000ad, 0xaf0000ae, 0xbc0000af, + 0x900000b0, 0x8f0000b1, 0xea0000b2, 0xfa0000b3, 0xbe0000b4, 0xa00000b5, 0xb60000b6, 0xb30000b7, + 0x9d0000b8, 0xda0000b9, 0x9b0000ba, 0x8b0000bb, 0xb70000bc, 0xb80000bd, 0xb90000be, 0xab0000bf, + 0x640000c0, 0x650000c1, 0x620000c2, 0x660000c3, 0x630000c4, 0x670000c5, 0x9e0000c6, 0x680000c7, + 0x740000c8, 0x710000c9, 0x720000ca, 0x730000cb, 0x780000cc, 0x750000cd, 0x760000ce, 0x770000cf, + 0xac0000d0, 0x690000d1, 0xed0000d2, 0xee0000d3, 0xeb0000d4, 0xef0000d5, 0xec0000d6, 0xbf0000d7, + 0x800000d8, 0xfd0000d9, 0xfe0000da, 0xfb0000db, 0xfc0000dc, 0xba0000dd, 0xae0000de, 0x590000df, + 0x440000e0, 0x450000e1, 0x420000e2, 0x460000e3, 0x430000e4, 0x470000e5, 0x9c0000e6, 0x480000e7, + 0x540000e8, 0x510000e9, 0x520000ea, 0x530000eb, 0x580000ec, 0x550000ed, 0x560000ee, 0x570000ef, + 0x8c0000f0, 0x490000f1, 0xcd0000f2, 0xce0000f3, 0xcb0000f4, 0xcf0000f5, 0xcc0000f6, 0xe10000f7, + 0x700000f8, 0xdd0000f9, 0xde0000fa, 0xdb0000fb, 0xdc0000fc, 0x8d0000fd, 0x8e0000fe, 0xdf0000ff, + }, +} + +// CodePage1140 is the IBM Code Page 1140 encoding. +var CodePage1140 *Charmap = &codePage1140 + +var codePage1140 = Charmap{ + name: "IBM Code Page 1140", + mib: identifier.IBM01140, + asciiSuperset: false, + low: 0x00, + replacement: 0x3f, + decode: [256]utf8Enc{ + {1, [3]byte{0x00, 0x00, 0x00}}, {1, [3]byte{0x01, 0x00, 0x00}}, + {1, [3]byte{0x02, 0x00, 0x00}}, {1, [3]byte{0x03, 0x00, 0x00}}, + {2, [3]byte{0xc2, 0x9c, 0x00}}, {1, [3]byte{0x09, 0x00, 0x00}}, + {2, [3]byte{0xc2, 0x86, 0x00}}, {1, [3]byte{0x7f, 0x00, 0x00}}, + {2, [3]byte{0xc2, 0x97, 0x00}}, {2, [3]byte{0xc2, 0x8d, 0x00}}, + {2, [3]byte{0xc2, 0x8e, 0x00}}, {1, [3]byte{0x0b, 0x00, 0x00}}, + {1, [3]byte{0x0c, 0x00, 0x00}}, {1, [3]byte{0x0d, 0x00, 0x00}}, + {1, [3]byte{0x0e, 0x00, 0x00}}, {1, [3]byte{0x0f, 0x00, 0x00}}, + {1, [3]byte{0x10, 0x00, 0x00}}, {1, [3]byte{0x11, 0x00, 0x00}}, + {1, [3]byte{0x12, 0x00, 0x00}}, {1, [3]byte{0x13, 0x00, 0x00}}, + {2, [3]byte{0xc2, 0x9d, 0x00}}, {2, [3]byte{0xc2, 0x85, 0x00}}, + {1, [3]byte{0x08, 0x00, 0x00}}, {2, [3]byte{0xc2, 0x87, 0x00}}, + {1, [3]byte{0x18, 0x00, 0x00}}, {1, [3]byte{0x19, 0x00, 0x00}}, + {2, [3]byte{0xc2, 0x92, 0x00}}, {2, [3]byte{0xc2, 0x8f, 0x00}}, + {1, [3]byte{0x1c, 0x00, 0x00}}, {1, [3]byte{0x1d, 0x00, 0x00}}, + {1, [3]byte{0x1e, 0x00, 0x00}}, {1, [3]byte{0x1f, 0x00, 0x00}}, + {2, [3]byte{0xc2, 0x80, 0x00}}, {2, [3]byte{0xc2, 0x81, 0x00}}, + {2, [3]byte{0xc2, 0x82, 0x00}}, {2, [3]byte{0xc2, 0x83, 0x00}}, + {2, [3]byte{0xc2, 0x84, 0x00}}, {1, [3]byte{0x0a, 0x00, 0x00}}, + {1, [3]byte{0x17, 0x00, 0x00}}, {1, [3]byte{0x1b, 0x00, 0x00}}, + {2, [3]byte{0xc2, 0x88, 0x00}}, {2, [3]byte{0xc2, 0x89, 0x00}}, + {2, [3]byte{0xc2, 0x8a, 0x00}}, {2, [3]byte{0xc2, 0x8b, 0x00}}, + {2, [3]byte{0xc2, 0x8c, 0x00}}, {1, [3]byte{0x05, 0x00, 0x00}}, + {1, [3]byte{0x06, 0x00, 0x00}}, {1, [3]byte{0x07, 0x00, 0x00}}, + {2, [3]byte{0xc2, 0x90, 0x00}}, {2, [3]byte{0xc2, 0x91, 0x00}}, + {1, [3]byte{0x16, 0x00, 0x00}}, {2, [3]byte{0xc2, 0x93, 0x00}}, + {2, [3]byte{0xc2, 0x94, 0x00}}, {2, [3]byte{0xc2, 0x95, 0x00}}, + {2, [3]byte{0xc2, 0x96, 0x00}}, {1, [3]byte{0x04, 0x00, 0x00}}, + {2, [3]byte{0xc2, 0x98, 0x00}}, {2, [3]byte{0xc2, 0x99, 0x00}}, + {2, [3]byte{0xc2, 0x9a, 0x00}}, {2, [3]byte{0xc2, 0x9b, 0x00}}, + {1, [3]byte{0x14, 0x00, 0x00}}, {1, [3]byte{0x15, 0x00, 0x00}}, + {2, [3]byte{0xc2, 0x9e, 0x00}}, {1, [3]byte{0x1a, 0x00, 0x00}}, + {1, [3]byte{0x20, 0x00, 0x00}}, {2, [3]byte{0xc2, 0xa0, 0x00}}, + {2, [3]byte{0xc3, 0xa2, 0x00}}, {2, [3]byte{0xc3, 0xa4, 0x00}}, + {2, [3]byte{0xc3, 0xa0, 0x00}}, {2, [3]byte{0xc3, 0xa1, 0x00}}, + {2, [3]byte{0xc3, 0xa3, 0x00}}, {2, [3]byte{0xc3, 0xa5, 0x00}}, + {2, [3]byte{0xc3, 0xa7, 0x00}}, {2, [3]byte{0xc3, 0xb1, 0x00}}, + {2, [3]byte{0xc2, 0xa2, 0x00}}, {1, [3]byte{0x2e, 0x00, 0x00}}, + {1, [3]byte{0x3c, 0x00, 0x00}}, {1, [3]byte{0x28, 0x00, 0x00}}, + {1, [3]byte{0x2b, 0x00, 0x00}}, {1, [3]byte{0x7c, 0x00, 0x00}}, + {1, [3]byte{0x26, 0x00, 0x00}}, {2, [3]byte{0xc3, 0xa9, 0x00}}, + {2, [3]byte{0xc3, 0xaa, 0x00}}, {2, [3]byte{0xc3, 0xab, 0x00}}, + {2, [3]byte{0xc3, 0xa8, 0x00}}, {2, [3]byte{0xc3, 0xad, 0x00}}, + {2, [3]byte{0xc3, 0xae, 0x00}}, {2, [3]byte{0xc3, 0xaf, 0x00}}, + {2, [3]byte{0xc3, 0xac, 0x00}}, {2, [3]byte{0xc3, 0x9f, 0x00}}, + {1, [3]byte{0x21, 0x00, 0x00}}, {1, [3]byte{0x24, 0x00, 0x00}}, + {1, [3]byte{0x2a, 0x00, 0x00}}, {1, [3]byte{0x29, 0x00, 0x00}}, + {1, [3]byte{0x3b, 0x00, 0x00}}, {2, [3]byte{0xc2, 0xac, 0x00}}, + {1, [3]byte{0x2d, 0x00, 0x00}}, {1, [3]byte{0x2f, 0x00, 0x00}}, + {2, [3]byte{0xc3, 0x82, 0x00}}, {2, [3]byte{0xc3, 0x84, 0x00}}, + {2, [3]byte{0xc3, 0x80, 0x00}}, {2, [3]byte{0xc3, 0x81, 0x00}}, + {2, [3]byte{0xc3, 0x83, 0x00}}, {2, [3]byte{0xc3, 0x85, 0x00}}, + {2, [3]byte{0xc3, 0x87, 0x00}}, {2, [3]byte{0xc3, 0x91, 0x00}}, + {2, [3]byte{0xc2, 0xa6, 0x00}}, {1, [3]byte{0x2c, 0x00, 0x00}}, + {1, [3]byte{0x25, 0x00, 0x00}}, {1, [3]byte{0x5f, 0x00, 0x00}}, + {1, [3]byte{0x3e, 0x00, 0x00}}, {1, [3]byte{0x3f, 0x00, 0x00}}, + {2, [3]byte{0xc3, 0xb8, 0x00}}, {2, [3]byte{0xc3, 0x89, 0x00}}, + {2, [3]byte{0xc3, 0x8a, 0x00}}, {2, [3]byte{0xc3, 0x8b, 0x00}}, + {2, [3]byte{0xc3, 0x88, 0x00}}, {2, [3]byte{0xc3, 0x8d, 0x00}}, + {2, [3]byte{0xc3, 0x8e, 0x00}}, {2, [3]byte{0xc3, 0x8f, 0x00}}, + {2, [3]byte{0xc3, 0x8c, 0x00}}, {1, [3]byte{0x60, 0x00, 0x00}}, + {1, [3]byte{0x3a, 0x00, 0x00}}, {1, [3]byte{0x23, 0x00, 0x00}}, + {1, [3]byte{0x40, 0x00, 0x00}}, {1, [3]byte{0x27, 0x00, 0x00}}, + {1, [3]byte{0x3d, 0x00, 0x00}}, {1, [3]byte{0x22, 0x00, 0x00}}, + {2, [3]byte{0xc3, 0x98, 0x00}}, {1, [3]byte{0x61, 0x00, 0x00}}, + {1, [3]byte{0x62, 0x00, 0x00}}, {1, [3]byte{0x63, 0x00, 0x00}}, + {1, [3]byte{0x64, 0x00, 0x00}}, {1, [3]byte{0x65, 0x00, 0x00}}, + {1, [3]byte{0x66, 0x00, 0x00}}, {1, [3]byte{0x67, 0x00, 0x00}}, + {1, [3]byte{0x68, 0x00, 0x00}}, {1, [3]byte{0x69, 0x00, 0x00}}, + {2, [3]byte{0xc2, 0xab, 0x00}}, {2, [3]byte{0xc2, 0xbb, 0x00}}, + {2, [3]byte{0xc3, 0xb0, 0x00}}, {2, [3]byte{0xc3, 0xbd, 0x00}}, + {2, [3]byte{0xc3, 0xbe, 0x00}}, {2, [3]byte{0xc2, 0xb1, 0x00}}, + {2, [3]byte{0xc2, 0xb0, 0x00}}, {1, [3]byte{0x6a, 0x00, 0x00}}, + {1, [3]byte{0x6b, 0x00, 0x00}}, {1, [3]byte{0x6c, 0x00, 0x00}}, + {1, [3]byte{0x6d, 0x00, 0x00}}, {1, [3]byte{0x6e, 0x00, 0x00}}, + {1, [3]byte{0x6f, 0x00, 0x00}}, {1, [3]byte{0x70, 0x00, 0x00}}, + {1, [3]byte{0x71, 0x00, 0x00}}, {1, [3]byte{0x72, 0x00, 0x00}}, + {2, [3]byte{0xc2, 0xaa, 0x00}}, {2, [3]byte{0xc2, 0xba, 0x00}}, + {2, [3]byte{0xc3, 0xa6, 0x00}}, {2, [3]byte{0xc2, 0xb8, 0x00}}, + {2, [3]byte{0xc3, 0x86, 0x00}}, {3, [3]byte{0xe2, 0x82, 0xac}}, + {2, [3]byte{0xc2, 0xb5, 0x00}}, {1, [3]byte{0x7e, 0x00, 0x00}}, + {1, [3]byte{0x73, 0x00, 0x00}}, {1, [3]byte{0x74, 0x00, 0x00}}, + {1, [3]byte{0x75, 0x00, 0x00}}, {1, [3]byte{0x76, 0x00, 0x00}}, + {1, [3]byte{0x77, 0x00, 0x00}}, {1, [3]byte{0x78, 0x00, 0x00}}, + {1, [3]byte{0x79, 0x00, 0x00}}, {1, [3]byte{0x7a, 0x00, 0x00}}, + {2, [3]byte{0xc2, 0xa1, 0x00}}, {2, [3]byte{0xc2, 0xbf, 0x00}}, + {2, [3]byte{0xc3, 0x90, 0x00}}, {2, [3]byte{0xc3, 0x9d, 0x00}}, + {2, [3]byte{0xc3, 0x9e, 0x00}}, {2, [3]byte{0xc2, 0xae, 0x00}}, + {1, [3]byte{0x5e, 0x00, 0x00}}, {2, [3]byte{0xc2, 0xa3, 0x00}}, + {2, [3]byte{0xc2, 0xa5, 0x00}}, {2, [3]byte{0xc2, 0xb7, 0x00}}, + {2, [3]byte{0xc2, 0xa9, 0x00}}, {2, [3]byte{0xc2, 0xa7, 0x00}}, + {2, [3]byte{0xc2, 0xb6, 0x00}}, {2, [3]byte{0xc2, 0xbc, 0x00}}, + {2, [3]byte{0xc2, 0xbd, 0x00}}, {2, [3]byte{0xc2, 0xbe, 0x00}}, + {1, [3]byte{0x5b, 0x00, 0x00}}, {1, [3]byte{0x5d, 0x00, 0x00}}, + {2, [3]byte{0xc2, 0xaf, 0x00}}, {2, [3]byte{0xc2, 0xa8, 0x00}}, + {2, [3]byte{0xc2, 0xb4, 0x00}}, {2, [3]byte{0xc3, 0x97, 0x00}}, + {1, [3]byte{0x7b, 0x00, 0x00}}, {1, [3]byte{0x41, 0x00, 0x00}}, + {1, [3]byte{0x42, 0x00, 0x00}}, {1, [3]byte{0x43, 0x00, 0x00}}, + {1, [3]byte{0x44, 0x00, 0x00}}, {1, [3]byte{0x45, 0x00, 0x00}}, + {1, [3]byte{0x46, 0x00, 0x00}}, {1, [3]byte{0x47, 0x00, 0x00}}, + {1, [3]byte{0x48, 0x00, 0x00}}, {1, [3]byte{0x49, 0x00, 0x00}}, + {2, [3]byte{0xc2, 0xad, 0x00}}, {2, [3]byte{0xc3, 0xb4, 0x00}}, + {2, [3]byte{0xc3, 0xb6, 0x00}}, {2, [3]byte{0xc3, 0xb2, 0x00}}, + {2, [3]byte{0xc3, 0xb3, 0x00}}, {2, [3]byte{0xc3, 0xb5, 0x00}}, + {1, [3]byte{0x7d, 0x00, 0x00}}, {1, [3]byte{0x4a, 0x00, 0x00}}, + {1, [3]byte{0x4b, 0x00, 0x00}}, {1, [3]byte{0x4c, 0x00, 0x00}}, + {1, [3]byte{0x4d, 0x00, 0x00}}, {1, [3]byte{0x4e, 0x00, 0x00}}, + {1, [3]byte{0x4f, 0x00, 0x00}}, {1, [3]byte{0x50, 0x00, 0x00}}, + {1, [3]byte{0x51, 0x00, 0x00}}, {1, [3]byte{0x52, 0x00, 0x00}}, + {2, [3]byte{0xc2, 0xb9, 0x00}}, {2, [3]byte{0xc3, 0xbb, 0x00}}, + {2, [3]byte{0xc3, 0xbc, 0x00}}, {2, [3]byte{0xc3, 0xb9, 0x00}}, + {2, [3]byte{0xc3, 0xba, 0x00}}, {2, [3]byte{0xc3, 0xbf, 0x00}}, + {1, [3]byte{0x5c, 0x00, 0x00}}, {2, [3]byte{0xc3, 0xb7, 0x00}}, + {1, [3]byte{0x53, 0x00, 0x00}}, {1, [3]byte{0x54, 0x00, 0x00}}, + {1, [3]byte{0x55, 0x00, 0x00}}, {1, [3]byte{0x56, 0x00, 0x00}}, + {1, [3]byte{0x57, 0x00, 0x00}}, {1, [3]byte{0x58, 0x00, 0x00}}, + {1, [3]byte{0x59, 0x00, 0x00}}, {1, [3]byte{0x5a, 0x00, 0x00}}, + {2, [3]byte{0xc2, 0xb2, 0x00}}, {2, [3]byte{0xc3, 0x94, 0x00}}, + {2, [3]byte{0xc3, 0x96, 0x00}}, {2, [3]byte{0xc3, 0x92, 0x00}}, + {2, [3]byte{0xc3, 0x93, 0x00}}, {2, [3]byte{0xc3, 0x95, 0x00}}, + {1, [3]byte{0x30, 0x00, 0x00}}, {1, [3]byte{0x31, 0x00, 0x00}}, + {1, [3]byte{0x32, 0x00, 0x00}}, {1, [3]byte{0x33, 0x00, 0x00}}, + {1, [3]byte{0x34, 0x00, 0x00}}, {1, [3]byte{0x35, 0x00, 0x00}}, + {1, [3]byte{0x36, 0x00, 0x00}}, {1, [3]byte{0x37, 0x00, 0x00}}, + {1, [3]byte{0x38, 0x00, 0x00}}, {1, [3]byte{0x39, 0x00, 0x00}}, + {2, [3]byte{0xc2, 0xb3, 0x00}}, {2, [3]byte{0xc3, 0x9b, 0x00}}, + {2, [3]byte{0xc3, 0x9c, 0x00}}, {2, [3]byte{0xc3, 0x99, 0x00}}, + {2, [3]byte{0xc3, 0x9a, 0x00}}, {2, [3]byte{0xc2, 0x9f, 0x00}}, + }, + encode: [256]uint32{ + 0x00000000, 0x01000001, 0x02000002, 0x03000003, 0x37000004, 0x2d000005, 0x2e000006, 0x2f000007, + 0x16000008, 0x05000009, 0x2500000a, 0x0b00000b, 0x0c00000c, 0x0d00000d, 0x0e00000e, 0x0f00000f, + 0x10000010, 0x11000011, 0x12000012, 0x13000013, 0x3c000014, 0x3d000015, 0x32000016, 0x26000017, + 0x18000018, 0x19000019, 0x3f00001a, 0x2700001b, 0x1c00001c, 0x1d00001d, 0x1e00001e, 0x1f00001f, + 0x40000020, 0x5a000021, 0x7f000022, 0x7b000023, 0x5b000024, 0x6c000025, 0x50000026, 0x7d000027, + 0x4d000028, 0x5d000029, 0x5c00002a, 0x4e00002b, 0x6b00002c, 0x6000002d, 0x4b00002e, 0x6100002f, + 0xf0000030, 0xf1000031, 0xf2000032, 0xf3000033, 0xf4000034, 0xf5000035, 0xf6000036, 0xf7000037, + 0xf8000038, 0xf9000039, 0x7a00003a, 0x5e00003b, 0x4c00003c, 0x7e00003d, 0x6e00003e, 0x6f00003f, + 0x7c000040, 0xc1000041, 0xc2000042, 0xc3000043, 0xc4000044, 0xc5000045, 0xc6000046, 0xc7000047, + 0xc8000048, 0xc9000049, 0xd100004a, 0xd200004b, 0xd300004c, 0xd400004d, 0xd500004e, 0xd600004f, + 0xd7000050, 0xd8000051, 0xd9000052, 0xe2000053, 0xe3000054, 0xe4000055, 0xe5000056, 0xe6000057, + 0xe7000058, 0xe8000059, 0xe900005a, 0xba00005b, 0xe000005c, 0xbb00005d, 0xb000005e, 0x6d00005f, + 0x79000060, 0x81000061, 0x82000062, 0x83000063, 0x84000064, 0x85000065, 0x86000066, 0x87000067, + 0x88000068, 0x89000069, 0x9100006a, 0x9200006b, 0x9300006c, 0x9400006d, 0x9500006e, 0x9600006f, + 0x97000070, 0x98000071, 0x99000072, 0xa2000073, 0xa3000074, 0xa4000075, 0xa5000076, 0xa6000077, + 0xa7000078, 0xa8000079, 0xa900007a, 0xc000007b, 0x4f00007c, 0xd000007d, 0xa100007e, 0x0700007f, + 0x20000080, 0x21000081, 0x22000082, 0x23000083, 0x24000084, 0x15000085, 0x06000086, 0x17000087, + 0x28000088, 0x29000089, 0x2a00008a, 0x2b00008b, 0x2c00008c, 0x0900008d, 0x0a00008e, 0x1b00008f, + 0x30000090, 0x31000091, 0x1a000092, 0x33000093, 0x34000094, 0x35000095, 0x36000096, 0x08000097, + 0x38000098, 0x39000099, 0x3a00009a, 0x3b00009b, 0x0400009c, 0x1400009d, 0x3e00009e, 0xff00009f, + 0x410000a0, 0xaa0000a1, 0x4a0000a2, 0xb10000a3, 0xb20000a5, 0x6a0000a6, 0xb50000a7, 0xbd0000a8, + 0xb40000a9, 0x9a0000aa, 0x8a0000ab, 0x5f0000ac, 0xca0000ad, 0xaf0000ae, 0xbc0000af, 0x900000b0, + 0x8f0000b1, 0xea0000b2, 0xfa0000b3, 0xbe0000b4, 0xa00000b5, 0xb60000b6, 0xb30000b7, 0x9d0000b8, + 0xda0000b9, 0x9b0000ba, 0x8b0000bb, 0xb70000bc, 0xb80000bd, 0xb90000be, 0xab0000bf, 0x640000c0, + 0x650000c1, 0x620000c2, 0x660000c3, 0x630000c4, 0x670000c5, 0x9e0000c6, 0x680000c7, 0x740000c8, + 0x710000c9, 0x720000ca, 0x730000cb, 0x780000cc, 0x750000cd, 0x760000ce, 0x770000cf, 0xac0000d0, + 0x690000d1, 0xed0000d2, 0xee0000d3, 0xeb0000d4, 0xef0000d5, 0xec0000d6, 0xbf0000d7, 0x800000d8, + 0xfd0000d9, 0xfe0000da, 0xfb0000db, 0xfc0000dc, 0xad0000dd, 0xae0000de, 0x590000df, 0x440000e0, + 0x450000e1, 0x420000e2, 0x460000e3, 0x430000e4, 0x470000e5, 0x9c0000e6, 0x480000e7, 0x540000e8, + 0x510000e9, 0x520000ea, 0x530000eb, 0x580000ec, 0x550000ed, 0x560000ee, 0x570000ef, 0x8c0000f0, + 0x490000f1, 0xcd0000f2, 0xce0000f3, 0xcb0000f4, 0xcf0000f5, 0xcc0000f6, 0xe10000f7, 0x700000f8, + 0xdd0000f9, 0xde0000fa, 0xdb0000fb, 0xdc0000fc, 0x8d0000fd, 0x8e0000fe, 0xdf0000ff, 0x9f0020ac, + }, +} + +// ISO8859_1 is the ISO 8859-1 encoding. +var ISO8859_1 *Charmap = &iso8859_1 + +var iso8859_1 = Charmap{ + name: "ISO 8859-1", + mib: identifier.ISOLatin1, + asciiSuperset: true, + low: 0x80, + replacement: 0x1a, + decode: [256]utf8Enc{ + {1, [3]byte{0x00, 0x00, 0x00}}, {1, [3]byte{0x01, 0x00, 0x00}}, + {1, [3]byte{0x02, 0x00, 0x00}}, {1, [3]byte{0x03, 0x00, 0x00}}, + {1, [3]byte{0x04, 0x00, 0x00}}, {1, [3]byte{0x05, 0x00, 0x00}}, + {1, [3]byte{0x06, 0x00, 0x00}}, {1, [3]byte{0x07, 0x00, 0x00}}, + {1, [3]byte{0x08, 0x00, 0x00}}, {1, [3]byte{0x09, 0x00, 0x00}}, + {1, [3]byte{0x0a, 0x00, 0x00}}, {1, [3]byte{0x0b, 0x00, 0x00}}, + {1, [3]byte{0x0c, 0x00, 0x00}}, {1, [3]byte{0x0d, 0x00, 0x00}}, + {1, [3]byte{0x0e, 0x00, 0x00}}, {1, [3]byte{0x0f, 0x00, 0x00}}, + {1, [3]byte{0x10, 0x00, 0x00}}, {1, [3]byte{0x11, 0x00, 0x00}}, + {1, [3]byte{0x12, 0x00, 0x00}}, {1, [3]byte{0x13, 0x00, 0x00}}, + {1, [3]byte{0x14, 0x00, 0x00}}, {1, [3]byte{0x15, 0x00, 0x00}}, + {1, [3]byte{0x16, 0x00, 0x00}}, {1, [3]byte{0x17, 0x00, 0x00}}, + {1, [3]byte{0x18, 0x00, 0x00}}, {1, [3]byte{0x19, 0x00, 0x00}}, + {1, [3]byte{0x1a, 0x00, 0x00}}, {1, [3]byte{0x1b, 0x00, 0x00}}, + {1, [3]byte{0x1c, 0x00, 0x00}}, {1, [3]byte{0x1d, 0x00, 0x00}}, + {1, [3]byte{0x1e, 0x00, 0x00}}, {1, [3]byte{0x1f, 0x00, 0x00}}, + {1, [3]byte{0x20, 0x00, 0x00}}, {1, [3]byte{0x21, 0x00, 0x00}}, + {1, [3]byte{0x22, 0x00, 0x00}}, {1, [3]byte{0x23, 0x00, 0x00}}, + {1, [3]byte{0x24, 0x00, 0x00}}, {1, [3]byte{0x25, 0x00, 0x00}}, + {1, [3]byte{0x26, 0x00, 0x00}}, {1, [3]byte{0x27, 0x00, 0x00}}, + {1, [3]byte{0x28, 0x00, 0x00}}, {1, [3]byte{0x29, 0x00, 0x00}}, + {1, [3]byte{0x2a, 0x00, 0x00}}, {1, [3]byte{0x2b, 0x00, 0x00}}, + {1, [3]byte{0x2c, 0x00, 0x00}}, {1, [3]byte{0x2d, 0x00, 0x00}}, + {1, [3]byte{0x2e, 0x00, 0x00}}, {1, [3]byte{0x2f, 0x00, 0x00}}, + {1, [3]byte{0x30, 0x00, 0x00}}, {1, [3]byte{0x31, 0x00, 0x00}}, + {1, [3]byte{0x32, 0x00, 0x00}}, {1, [3]byte{0x33, 0x00, 0x00}}, + {1, [3]byte{0x34, 0x00, 0x00}}, {1, [3]byte{0x35, 0x00, 0x00}}, + {1, [3]byte{0x36, 0x00, 0x00}}, {1, [3]byte{0x37, 0x00, 0x00}}, + {1, [3]byte{0x38, 0x00, 0x00}}, {1, [3]byte{0x39, 0x00, 0x00}}, + {1, [3]byte{0x3a, 0x00, 0x00}}, {1, [3]byte{0x3b, 0x00, 0x00}}, + {1, [3]byte{0x3c, 0x00, 0x00}}, {1, [3]byte{0x3d, 0x00, 0x00}}, + {1, [3]byte{0x3e, 0x00, 0x00}}, {1, [3]byte{0x3f, 0x00, 0x00}}, + {1, [3]byte{0x40, 0x00, 0x00}}, {1, [3]byte{0x41, 0x00, 0x00}}, + {1, [3]byte{0x42, 0x00, 0x00}}, {1, [3]byte{0x43, 0x00, 0x00}}, + {1, [3]byte{0x44, 0x00, 0x00}}, {1, [3]byte{0x45, 0x00, 0x00}}, + {1, [3]byte{0x46, 0x00, 0x00}}, {1, [3]byte{0x47, 0x00, 0x00}}, + {1, [3]byte{0x48, 0x00, 0x00}}, {1, [3]byte{0x49, 0x00, 0x00}}, + {1, [3]byte{0x4a, 0x00, 0x00}}, {1, [3]byte{0x4b, 0x00, 0x00}}, + {1, [3]byte{0x4c, 0x00, 0x00}}, {1, [3]byte{0x4d, 0x00, 0x00}}, + {1, [3]byte{0x4e, 0x00, 0x00}}, {1, [3]byte{0x4f, 0x00, 0x00}}, + {1, [3]byte{0x50, 0x00, 0x00}}, {1, [3]byte{0x51, 0x00, 0x00}}, + {1, [3]byte{0x52, 0x00, 0x00}}, {1, [3]byte{0x53, 0x00, 0x00}}, + {1, [3]byte{0x54, 0x00, 0x00}}, {1, [3]byte{0x55, 0x00, 0x00}}, + {1, [3]byte{0x56, 0x00, 0x00}}, {1, [3]byte{0x57, 0x00, 0x00}}, + {1, [3]byte{0x58, 0x00, 0x00}}, {1, [3]byte{0x59, 0x00, 0x00}}, + {1, [3]byte{0x5a, 0x00, 0x00}}, {1, [3]byte{0x5b, 0x00, 0x00}}, + {1, [3]byte{0x5c, 0x00, 0x00}}, {1, [3]byte{0x5d, 0x00, 0x00}}, + {1, [3]byte{0x5e, 0x00, 0x00}}, {1, [3]byte{0x5f, 0x00, 0x00}}, + {1, [3]byte{0x60, 0x00, 0x00}}, {1, [3]byte{0x61, 0x00, 0x00}}, + {1, [3]byte{0x62, 0x00, 0x00}}, {1, [3]byte{0x63, 0x00, 0x00}}, + {1, [3]byte{0x64, 0x00, 0x00}}, {1, [3]byte{0x65, 0x00, 0x00}}, + {1, [3]byte{0x66, 0x00, 0x00}}, {1, [3]byte{0x67, 0x00, 0x00}}, + {1, [3]byte{0x68, 0x00, 0x00}}, {1, [3]byte{0x69, 0x00, 0x00}}, + {1, [3]byte{0x6a, 0x00, 0x00}}, {1, [3]byte{0x6b, 0x00, 0x00}}, + {1, [3]byte{0x6c, 0x00, 0x00}}, {1, [3]byte{0x6d, 0x00, 0x00}}, + {1, [3]byte{0x6e, 0x00, 0x00}}, {1, [3]byte{0x6f, 0x00, 0x00}}, + {1, [3]byte{0x70, 0x00, 0x00}}, {1, [3]byte{0x71, 0x00, 0x00}}, + {1, [3]byte{0x72, 0x00, 0x00}}, {1, [3]byte{0x73, 0x00, 0x00}}, + {1, [3]byte{0x74, 0x00, 0x00}}, {1, [3]byte{0x75, 0x00, 0x00}}, + {1, [3]byte{0x76, 0x00, 0x00}}, {1, [3]byte{0x77, 0x00, 0x00}}, + {1, [3]byte{0x78, 0x00, 0x00}}, {1, [3]byte{0x79, 0x00, 0x00}}, + {1, [3]byte{0x7a, 0x00, 0x00}}, {1, [3]byte{0x7b, 0x00, 0x00}}, + {1, [3]byte{0x7c, 0x00, 0x00}}, {1, [3]byte{0x7d, 0x00, 0x00}}, + {1, [3]byte{0x7e, 0x00, 0x00}}, {1, [3]byte{0x7f, 0x00, 0x00}}, + {2, [3]byte{0xc2, 0x80, 0x00}}, {2, [3]byte{0xc2, 0x81, 0x00}}, + {2, [3]byte{0xc2, 0x82, 0x00}}, {2, [3]byte{0xc2, 0x83, 0x00}}, + {2, [3]byte{0xc2, 0x84, 0x00}}, {2, [3]byte{0xc2, 0x85, 0x00}}, + {2, [3]byte{0xc2, 0x86, 0x00}}, {2, [3]byte{0xc2, 0x87, 0x00}}, + {2, [3]byte{0xc2, 0x88, 0x00}}, {2, [3]byte{0xc2, 0x89, 0x00}}, + {2, [3]byte{0xc2, 0x8a, 0x00}}, {2, [3]byte{0xc2, 0x8b, 0x00}}, + {2, [3]byte{0xc2, 0x8c, 0x00}}, {2, [3]byte{0xc2, 0x8d, 0x00}}, + {2, [3]byte{0xc2, 0x8e, 0x00}}, {2, [3]byte{0xc2, 0x8f, 0x00}}, + {2, [3]byte{0xc2, 0x90, 0x00}}, {2, [3]byte{0xc2, 0x91, 0x00}}, + {2, [3]byte{0xc2, 0x92, 0x00}}, {2, [3]byte{0xc2, 0x93, 0x00}}, + {2, [3]byte{0xc2, 0x94, 0x00}}, {2, [3]byte{0xc2, 0x95, 0x00}}, + {2, [3]byte{0xc2, 0x96, 0x00}}, {2, [3]byte{0xc2, 0x97, 0x00}}, + {2, [3]byte{0xc2, 0x98, 0x00}}, {2, [3]byte{0xc2, 0x99, 0x00}}, + {2, [3]byte{0xc2, 0x9a, 0x00}}, {2, [3]byte{0xc2, 0x9b, 0x00}}, + {2, [3]byte{0xc2, 0x9c, 0x00}}, {2, [3]byte{0xc2, 0x9d, 0x00}}, + {2, [3]byte{0xc2, 0x9e, 0x00}}, {2, [3]byte{0xc2, 0x9f, 0x00}}, + {2, [3]byte{0xc2, 0xa0, 0x00}}, {2, [3]byte{0xc2, 0xa1, 0x00}}, + {2, [3]byte{0xc2, 0xa2, 0x00}}, {2, [3]byte{0xc2, 0xa3, 0x00}}, + {2, [3]byte{0xc2, 0xa4, 0x00}}, {2, [3]byte{0xc2, 0xa5, 0x00}}, + {2, [3]byte{0xc2, 0xa6, 0x00}}, {2, [3]byte{0xc2, 0xa7, 0x00}}, + {2, [3]byte{0xc2, 0xa8, 0x00}}, {2, [3]byte{0xc2, 0xa9, 0x00}}, + {2, [3]byte{0xc2, 0xaa, 0x00}}, {2, [3]byte{0xc2, 0xab, 0x00}}, + {2, [3]byte{0xc2, 0xac, 0x00}}, {2, [3]byte{0xc2, 0xad, 0x00}}, + {2, [3]byte{0xc2, 0xae, 0x00}}, {2, [3]byte{0xc2, 0xaf, 0x00}}, + {2, [3]byte{0xc2, 0xb0, 0x00}}, {2, [3]byte{0xc2, 0xb1, 0x00}}, + {2, [3]byte{0xc2, 0xb2, 0x00}}, {2, [3]byte{0xc2, 0xb3, 0x00}}, + {2, [3]byte{0xc2, 0xb4, 0x00}}, {2, [3]byte{0xc2, 0xb5, 0x00}}, + {2, [3]byte{0xc2, 0xb6, 0x00}}, {2, [3]byte{0xc2, 0xb7, 0x00}}, + {2, [3]byte{0xc2, 0xb8, 0x00}}, {2, [3]byte{0xc2, 0xb9, 0x00}}, + {2, [3]byte{0xc2, 0xba, 0x00}}, {2, [3]byte{0xc2, 0xbb, 0x00}}, + {2, [3]byte{0xc2, 0xbc, 0x00}}, {2, [3]byte{0xc2, 0xbd, 0x00}}, + {2, [3]byte{0xc2, 0xbe, 0x00}}, {2, [3]byte{0xc2, 0xbf, 0x00}}, + {2, [3]byte{0xc3, 0x80, 0x00}}, {2, [3]byte{0xc3, 0x81, 0x00}}, + {2, [3]byte{0xc3, 0x82, 0x00}}, {2, [3]byte{0xc3, 0x83, 0x00}}, + {2, [3]byte{0xc3, 0x84, 0x00}}, {2, [3]byte{0xc3, 0x85, 0x00}}, + {2, [3]byte{0xc3, 0x86, 0x00}}, {2, [3]byte{0xc3, 0x87, 0x00}}, + {2, [3]byte{0xc3, 0x88, 0x00}}, {2, [3]byte{0xc3, 0x89, 0x00}}, + {2, [3]byte{0xc3, 0x8a, 0x00}}, {2, [3]byte{0xc3, 0x8b, 0x00}}, + {2, [3]byte{0xc3, 0x8c, 0x00}}, {2, [3]byte{0xc3, 0x8d, 0x00}}, + {2, [3]byte{0xc3, 0x8e, 0x00}}, {2, [3]byte{0xc3, 0x8f, 0x00}}, + {2, [3]byte{0xc3, 0x90, 0x00}}, {2, [3]byte{0xc3, 0x91, 0x00}}, + {2, [3]byte{0xc3, 0x92, 0x00}}, {2, [3]byte{0xc3, 0x93, 0x00}}, + {2, [3]byte{0xc3, 0x94, 0x00}}, {2, [3]byte{0xc3, 0x95, 0x00}}, + {2, [3]byte{0xc3, 0x96, 0x00}}, {2, [3]byte{0xc3, 0x97, 0x00}}, + {2, [3]byte{0xc3, 0x98, 0x00}}, {2, [3]byte{0xc3, 0x99, 0x00}}, + {2, [3]byte{0xc3, 0x9a, 0x00}}, {2, [3]byte{0xc3, 0x9b, 0x00}}, + {2, [3]byte{0xc3, 0x9c, 0x00}}, {2, [3]byte{0xc3, 0x9d, 0x00}}, + {2, [3]byte{0xc3, 0x9e, 0x00}}, {2, [3]byte{0xc3, 0x9f, 0x00}}, + {2, [3]byte{0xc3, 0xa0, 0x00}}, {2, [3]byte{0xc3, 0xa1, 0x00}}, + {2, [3]byte{0xc3, 0xa2, 0x00}}, {2, [3]byte{0xc3, 0xa3, 0x00}}, + {2, [3]byte{0xc3, 0xa4, 0x00}}, {2, [3]byte{0xc3, 0xa5, 0x00}}, + {2, [3]byte{0xc3, 0xa6, 0x00}}, {2, [3]byte{0xc3, 0xa7, 0x00}}, + {2, [3]byte{0xc3, 0xa8, 0x00}}, {2, [3]byte{0xc3, 0xa9, 0x00}}, + {2, [3]byte{0xc3, 0xaa, 0x00}}, {2, [3]byte{0xc3, 0xab, 0x00}}, + {2, [3]byte{0xc3, 0xac, 0x00}}, {2, [3]byte{0xc3, 0xad, 0x00}}, + {2, [3]byte{0xc3, 0xae, 0x00}}, {2, [3]byte{0xc3, 0xaf, 0x00}}, + {2, [3]byte{0xc3, 0xb0, 0x00}}, {2, [3]byte{0xc3, 0xb1, 0x00}}, + {2, [3]byte{0xc3, 0xb2, 0x00}}, {2, [3]byte{0xc3, 0xb3, 0x00}}, + {2, [3]byte{0xc3, 0xb4, 0x00}}, {2, [3]byte{0xc3, 0xb5, 0x00}}, + {2, [3]byte{0xc3, 0xb6, 0x00}}, {2, [3]byte{0xc3, 0xb7, 0x00}}, + {2, [3]byte{0xc3, 0xb8, 0x00}}, {2, [3]byte{0xc3, 0xb9, 0x00}}, + {2, [3]byte{0xc3, 0xba, 0x00}}, {2, [3]byte{0xc3, 0xbb, 0x00}}, + {2, [3]byte{0xc3, 0xbc, 0x00}}, {2, [3]byte{0xc3, 0xbd, 0x00}}, + {2, [3]byte{0xc3, 0xbe, 0x00}}, {2, [3]byte{0xc3, 0xbf, 0x00}}, + }, + encode: [256]uint32{ + 0x00000000, 0x01000001, 0x02000002, 0x03000003, 0x04000004, 0x05000005, 0x06000006, 0x07000007, + 0x08000008, 0x09000009, 0x0a00000a, 0x0b00000b, 0x0c00000c, 0x0d00000d, 0x0e00000e, 0x0f00000f, + 0x10000010, 0x11000011, 0x12000012, 0x13000013, 0x14000014, 0x15000015, 0x16000016, 0x17000017, + 0x18000018, 0x19000019, 0x1a00001a, 0x1b00001b, 0x1c00001c, 0x1d00001d, 0x1e00001e, 0x1f00001f, + 0x20000020, 0x21000021, 0x22000022, 0x23000023, 0x24000024, 0x25000025, 0x26000026, 0x27000027, + 0x28000028, 0x29000029, 0x2a00002a, 0x2b00002b, 0x2c00002c, 0x2d00002d, 0x2e00002e, 0x2f00002f, + 0x30000030, 0x31000031, 0x32000032, 0x33000033, 0x34000034, 0x35000035, 0x36000036, 0x37000037, + 0x38000038, 0x39000039, 0x3a00003a, 0x3b00003b, 0x3c00003c, 0x3d00003d, 0x3e00003e, 0x3f00003f, + 0x40000040, 0x41000041, 0x42000042, 0x43000043, 0x44000044, 0x45000045, 0x46000046, 0x47000047, + 0x48000048, 0x49000049, 0x4a00004a, 0x4b00004b, 0x4c00004c, 0x4d00004d, 0x4e00004e, 0x4f00004f, + 0x50000050, 0x51000051, 0x52000052, 0x53000053, 0x54000054, 0x55000055, 0x56000056, 0x57000057, + 0x58000058, 0x59000059, 0x5a00005a, 0x5b00005b, 0x5c00005c, 0x5d00005d, 0x5e00005e, 0x5f00005f, + 0x60000060, 0x61000061, 0x62000062, 0x63000063, 0x64000064, 0x65000065, 0x66000066, 0x67000067, + 0x68000068, 0x69000069, 0x6a00006a, 0x6b00006b, 0x6c00006c, 0x6d00006d, 0x6e00006e, 0x6f00006f, + 0x70000070, 0x71000071, 0x72000072, 0x73000073, 0x74000074, 0x75000075, 0x76000076, 0x77000077, + 0x78000078, 0x79000079, 0x7a00007a, 0x7b00007b, 0x7c00007c, 0x7d00007d, 0x7e00007e, 0x7f00007f, + 0x80000080, 0x81000081, 0x82000082, 0x83000083, 0x84000084, 0x85000085, 0x86000086, 0x87000087, + 0x88000088, 0x89000089, 0x8a00008a, 0x8b00008b, 0x8c00008c, 0x8d00008d, 0x8e00008e, 0x8f00008f, + 0x90000090, 0x91000091, 0x92000092, 0x93000093, 0x94000094, 0x95000095, 0x96000096, 0x97000097, + 0x98000098, 0x99000099, 0x9a00009a, 0x9b00009b, 0x9c00009c, 0x9d00009d, 0x9e00009e, 0x9f00009f, + 0xa00000a0, 0xa10000a1, 0xa20000a2, 0xa30000a3, 0xa40000a4, 0xa50000a5, 0xa60000a6, 0xa70000a7, + 0xa80000a8, 0xa90000a9, 0xaa0000aa, 0xab0000ab, 0xac0000ac, 0xad0000ad, 0xae0000ae, 0xaf0000af, + 0xb00000b0, 0xb10000b1, 0xb20000b2, 0xb30000b3, 0xb40000b4, 0xb50000b5, 0xb60000b6, 0xb70000b7, + 0xb80000b8, 0xb90000b9, 0xba0000ba, 0xbb0000bb, 0xbc0000bc, 0xbd0000bd, 0xbe0000be, 0xbf0000bf, + 0xc00000c0, 0xc10000c1, 0xc20000c2, 0xc30000c3, 0xc40000c4, 0xc50000c5, 0xc60000c6, 0xc70000c7, + 0xc80000c8, 0xc90000c9, 0xca0000ca, 0xcb0000cb, 0xcc0000cc, 0xcd0000cd, 0xce0000ce, 0xcf0000cf, + 0xd00000d0, 0xd10000d1, 0xd20000d2, 0xd30000d3, 0xd40000d4, 0xd50000d5, 0xd60000d6, 0xd70000d7, + 0xd80000d8, 0xd90000d9, 0xda0000da, 0xdb0000db, 0xdc0000dc, 0xdd0000dd, 0xde0000de, 0xdf0000df, + 0xe00000e0, 0xe10000e1, 0xe20000e2, 0xe30000e3, 0xe40000e4, 0xe50000e5, 0xe60000e6, 0xe70000e7, + 0xe80000e8, 0xe90000e9, 0xea0000ea, 0xeb0000eb, 0xec0000ec, 0xed0000ed, 0xee0000ee, 0xef0000ef, + 0xf00000f0, 0xf10000f1, 0xf20000f2, 0xf30000f3, 0xf40000f4, 0xf50000f5, 0xf60000f6, 0xf70000f7, + 0xf80000f8, 0xf90000f9, 0xfa0000fa, 0xfb0000fb, 0xfc0000fc, 0xfd0000fd, 0xfe0000fe, 0xff0000ff, + }, +} + +// ISO8859_2 is the ISO 8859-2 encoding. +var ISO8859_2 *Charmap = &iso8859_2 + +var iso8859_2 = Charmap{ + name: "ISO 8859-2", + mib: identifier.ISOLatin2, + asciiSuperset: true, + low: 0x80, + replacement: 0x1a, + decode: [256]utf8Enc{ + {1, [3]byte{0x00, 0x00, 0x00}}, {1, [3]byte{0x01, 0x00, 0x00}}, + {1, [3]byte{0x02, 0x00, 0x00}}, {1, [3]byte{0x03, 0x00, 0x00}}, + {1, [3]byte{0x04, 0x00, 0x00}}, {1, [3]byte{0x05, 0x00, 0x00}}, + {1, [3]byte{0x06, 0x00, 0x00}}, {1, [3]byte{0x07, 0x00, 0x00}}, + {1, [3]byte{0x08, 0x00, 0x00}}, {1, [3]byte{0x09, 0x00, 0x00}}, + {1, [3]byte{0x0a, 0x00, 0x00}}, {1, [3]byte{0x0b, 0x00, 0x00}}, + {1, [3]byte{0x0c, 0x00, 0x00}}, {1, [3]byte{0x0d, 0x00, 0x00}}, + {1, [3]byte{0x0e, 0x00, 0x00}}, {1, [3]byte{0x0f, 0x00, 0x00}}, + {1, [3]byte{0x10, 0x00, 0x00}}, {1, [3]byte{0x11, 0x00, 0x00}}, + {1, [3]byte{0x12, 0x00, 0x00}}, {1, [3]byte{0x13, 0x00, 0x00}}, + {1, [3]byte{0x14, 0x00, 0x00}}, {1, [3]byte{0x15, 0x00, 0x00}}, + {1, [3]byte{0x16, 0x00, 0x00}}, {1, [3]byte{0x17, 0x00, 0x00}}, + {1, [3]byte{0x18, 0x00, 0x00}}, {1, [3]byte{0x19, 0x00, 0x00}}, + {1, [3]byte{0x1a, 0x00, 0x00}}, {1, [3]byte{0x1b, 0x00, 0x00}}, + {1, [3]byte{0x1c, 0x00, 0x00}}, {1, [3]byte{0x1d, 0x00, 0x00}}, + {1, [3]byte{0x1e, 0x00, 0x00}}, {1, [3]byte{0x1f, 0x00, 0x00}}, + {1, [3]byte{0x20, 0x00, 0x00}}, {1, [3]byte{0x21, 0x00, 0x00}}, + {1, [3]byte{0x22, 0x00, 0x00}}, {1, [3]byte{0x23, 0x00, 0x00}}, + {1, [3]byte{0x24, 0x00, 0x00}}, {1, [3]byte{0x25, 0x00, 0x00}}, + {1, [3]byte{0x26, 0x00, 0x00}}, {1, [3]byte{0x27, 0x00, 0x00}}, + {1, [3]byte{0x28, 0x00, 0x00}}, {1, [3]byte{0x29, 0x00, 0x00}}, + {1, [3]byte{0x2a, 0x00, 0x00}}, {1, [3]byte{0x2b, 0x00, 0x00}}, + {1, [3]byte{0x2c, 0x00, 0x00}}, {1, [3]byte{0x2d, 0x00, 0x00}}, + {1, [3]byte{0x2e, 0x00, 0x00}}, {1, [3]byte{0x2f, 0x00, 0x00}}, + {1, [3]byte{0x30, 0x00, 0x00}}, {1, [3]byte{0x31, 0x00, 0x00}}, + {1, [3]byte{0x32, 0x00, 0x00}}, {1, [3]byte{0x33, 0x00, 0x00}}, + {1, [3]byte{0x34, 0x00, 0x00}}, {1, [3]byte{0x35, 0x00, 0x00}}, + {1, [3]byte{0x36, 0x00, 0x00}}, {1, [3]byte{0x37, 0x00, 0x00}}, + {1, [3]byte{0x38, 0x00, 0x00}}, {1, [3]byte{0x39, 0x00, 0x00}}, + {1, [3]byte{0x3a, 0x00, 0x00}}, {1, [3]byte{0x3b, 0x00, 0x00}}, + {1, [3]byte{0x3c, 0x00, 0x00}}, {1, [3]byte{0x3d, 0x00, 0x00}}, + {1, [3]byte{0x3e, 0x00, 0x00}}, {1, [3]byte{0x3f, 0x00, 0x00}}, + {1, [3]byte{0x40, 0x00, 0x00}}, {1, [3]byte{0x41, 0x00, 0x00}}, + {1, [3]byte{0x42, 0x00, 0x00}}, {1, [3]byte{0x43, 0x00, 0x00}}, + {1, [3]byte{0x44, 0x00, 0x00}}, {1, [3]byte{0x45, 0x00, 0x00}}, + {1, [3]byte{0x46, 0x00, 0x00}}, {1, [3]byte{0x47, 0x00, 0x00}}, + {1, [3]byte{0x48, 0x00, 0x00}}, {1, [3]byte{0x49, 0x00, 0x00}}, + {1, [3]byte{0x4a, 0x00, 0x00}}, {1, [3]byte{0x4b, 0x00, 0x00}}, + {1, [3]byte{0x4c, 0x00, 0x00}}, {1, [3]byte{0x4d, 0x00, 0x00}}, + {1, [3]byte{0x4e, 0x00, 0x00}}, {1, [3]byte{0x4f, 0x00, 0x00}}, + {1, [3]byte{0x50, 0x00, 0x00}}, {1, [3]byte{0x51, 0x00, 0x00}}, + {1, [3]byte{0x52, 0x00, 0x00}}, {1, [3]byte{0x53, 0x00, 0x00}}, + {1, [3]byte{0x54, 0x00, 0x00}}, {1, [3]byte{0x55, 0x00, 0x00}}, + {1, [3]byte{0x56, 0x00, 0x00}}, {1, [3]byte{0x57, 0x00, 0x00}}, + {1, [3]byte{0x58, 0x00, 0x00}}, {1, [3]byte{0x59, 0x00, 0x00}}, + {1, [3]byte{0x5a, 0x00, 0x00}}, {1, [3]byte{0x5b, 0x00, 0x00}}, + {1, [3]byte{0x5c, 0x00, 0x00}}, {1, [3]byte{0x5d, 0x00, 0x00}}, + {1, [3]byte{0x5e, 0x00, 0x00}}, {1, [3]byte{0x5f, 0x00, 0x00}}, + {1, [3]byte{0x60, 0x00, 0x00}}, {1, [3]byte{0x61, 0x00, 0x00}}, + {1, [3]byte{0x62, 0x00, 0x00}}, {1, [3]byte{0x63, 0x00, 0x00}}, + {1, [3]byte{0x64, 0x00, 0x00}}, {1, [3]byte{0x65, 0x00, 0x00}}, + {1, [3]byte{0x66, 0x00, 0x00}}, {1, [3]byte{0x67, 0x00, 0x00}}, + {1, [3]byte{0x68, 0x00, 0x00}}, {1, [3]byte{0x69, 0x00, 0x00}}, + {1, [3]byte{0x6a, 0x00, 0x00}}, {1, [3]byte{0x6b, 0x00, 0x00}}, + {1, [3]byte{0x6c, 0x00, 0x00}}, {1, [3]byte{0x6d, 0x00, 0x00}}, + {1, [3]byte{0x6e, 0x00, 0x00}}, {1, [3]byte{0x6f, 0x00, 0x00}}, + {1, [3]byte{0x70, 0x00, 0x00}}, {1, [3]byte{0x71, 0x00, 0x00}}, + {1, [3]byte{0x72, 0x00, 0x00}}, {1, [3]byte{0x73, 0x00, 0x00}}, + {1, [3]byte{0x74, 0x00, 0x00}}, {1, [3]byte{0x75, 0x00, 0x00}}, + {1, [3]byte{0x76, 0x00, 0x00}}, {1, [3]byte{0x77, 0x00, 0x00}}, + {1, [3]byte{0x78, 0x00, 0x00}}, {1, [3]byte{0x79, 0x00, 0x00}}, + {1, [3]byte{0x7a, 0x00, 0x00}}, {1, [3]byte{0x7b, 0x00, 0x00}}, + {1, [3]byte{0x7c, 0x00, 0x00}}, {1, [3]byte{0x7d, 0x00, 0x00}}, + {1, [3]byte{0x7e, 0x00, 0x00}}, {1, [3]byte{0x7f, 0x00, 0x00}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {2, [3]byte{0xc2, 0xa0, 0x00}}, {2, [3]byte{0xc4, 0x84, 0x00}}, + {2, [3]byte{0xcb, 0x98, 0x00}}, {2, [3]byte{0xc5, 0x81, 0x00}}, + {2, [3]byte{0xc2, 0xa4, 0x00}}, {2, [3]byte{0xc4, 0xbd, 0x00}}, + {2, [3]byte{0xc5, 0x9a, 0x00}}, {2, [3]byte{0xc2, 0xa7, 0x00}}, + {2, [3]byte{0xc2, 0xa8, 0x00}}, {2, [3]byte{0xc5, 0xa0, 0x00}}, + {2, [3]byte{0xc5, 0x9e, 0x00}}, {2, [3]byte{0xc5, 0xa4, 0x00}}, + {2, [3]byte{0xc5, 0xb9, 0x00}}, {2, [3]byte{0xc2, 0xad, 0x00}}, + {2, [3]byte{0xc5, 0xbd, 0x00}}, {2, [3]byte{0xc5, 0xbb, 0x00}}, + {2, [3]byte{0xc2, 0xb0, 0x00}}, {2, [3]byte{0xc4, 0x85, 0x00}}, + {2, [3]byte{0xcb, 0x9b, 0x00}}, {2, [3]byte{0xc5, 0x82, 0x00}}, + {2, [3]byte{0xc2, 0xb4, 0x00}}, {2, [3]byte{0xc4, 0xbe, 0x00}}, + {2, [3]byte{0xc5, 0x9b, 0x00}}, {2, [3]byte{0xcb, 0x87, 0x00}}, + {2, [3]byte{0xc2, 0xb8, 0x00}}, {2, [3]byte{0xc5, 0xa1, 0x00}}, + {2, [3]byte{0xc5, 0x9f, 0x00}}, {2, [3]byte{0xc5, 0xa5, 0x00}}, + {2, [3]byte{0xc5, 0xba, 0x00}}, {2, [3]byte{0xcb, 0x9d, 0x00}}, + {2, [3]byte{0xc5, 0xbe, 0x00}}, {2, [3]byte{0xc5, 0xbc, 0x00}}, + {2, [3]byte{0xc5, 0x94, 0x00}}, {2, [3]byte{0xc3, 0x81, 0x00}}, + {2, [3]byte{0xc3, 0x82, 0x00}}, {2, [3]byte{0xc4, 0x82, 0x00}}, + {2, [3]byte{0xc3, 0x84, 0x00}}, {2, [3]byte{0xc4, 0xb9, 0x00}}, + {2, [3]byte{0xc4, 0x86, 0x00}}, {2, [3]byte{0xc3, 0x87, 0x00}}, + {2, [3]byte{0xc4, 0x8c, 0x00}}, {2, [3]byte{0xc3, 0x89, 0x00}}, + {2, [3]byte{0xc4, 0x98, 0x00}}, {2, [3]byte{0xc3, 0x8b, 0x00}}, + {2, [3]byte{0xc4, 0x9a, 0x00}}, {2, [3]byte{0xc3, 0x8d, 0x00}}, + {2, [3]byte{0xc3, 0x8e, 0x00}}, {2, [3]byte{0xc4, 0x8e, 0x00}}, + {2, [3]byte{0xc4, 0x90, 0x00}}, {2, [3]byte{0xc5, 0x83, 0x00}}, + {2, [3]byte{0xc5, 0x87, 0x00}}, {2, [3]byte{0xc3, 0x93, 0x00}}, + {2, [3]byte{0xc3, 0x94, 0x00}}, {2, [3]byte{0xc5, 0x90, 0x00}}, + {2, [3]byte{0xc3, 0x96, 0x00}}, {2, [3]byte{0xc3, 0x97, 0x00}}, + {2, [3]byte{0xc5, 0x98, 0x00}}, {2, [3]byte{0xc5, 0xae, 0x00}}, + {2, [3]byte{0xc3, 0x9a, 0x00}}, {2, [3]byte{0xc5, 0xb0, 0x00}}, + {2, [3]byte{0xc3, 0x9c, 0x00}}, {2, [3]byte{0xc3, 0x9d, 0x00}}, + {2, [3]byte{0xc5, 0xa2, 0x00}}, {2, [3]byte{0xc3, 0x9f, 0x00}}, + {2, [3]byte{0xc5, 0x95, 0x00}}, {2, [3]byte{0xc3, 0xa1, 0x00}}, + {2, [3]byte{0xc3, 0xa2, 0x00}}, {2, [3]byte{0xc4, 0x83, 0x00}}, + {2, [3]byte{0xc3, 0xa4, 0x00}}, {2, [3]byte{0xc4, 0xba, 0x00}}, + {2, [3]byte{0xc4, 0x87, 0x00}}, {2, [3]byte{0xc3, 0xa7, 0x00}}, + {2, [3]byte{0xc4, 0x8d, 0x00}}, {2, [3]byte{0xc3, 0xa9, 0x00}}, + {2, [3]byte{0xc4, 0x99, 0x00}}, {2, [3]byte{0xc3, 0xab, 0x00}}, + {2, [3]byte{0xc4, 0x9b, 0x00}}, {2, [3]byte{0xc3, 0xad, 0x00}}, + {2, [3]byte{0xc3, 0xae, 0x00}}, {2, [3]byte{0xc4, 0x8f, 0x00}}, + {2, [3]byte{0xc4, 0x91, 0x00}}, {2, [3]byte{0xc5, 0x84, 0x00}}, + {2, [3]byte{0xc5, 0x88, 0x00}}, {2, [3]byte{0xc3, 0xb3, 0x00}}, + {2, [3]byte{0xc3, 0xb4, 0x00}}, {2, [3]byte{0xc5, 0x91, 0x00}}, + {2, [3]byte{0xc3, 0xb6, 0x00}}, {2, [3]byte{0xc3, 0xb7, 0x00}}, + {2, [3]byte{0xc5, 0x99, 0x00}}, {2, [3]byte{0xc5, 0xaf, 0x00}}, + {2, [3]byte{0xc3, 0xba, 0x00}}, {2, [3]byte{0xc5, 0xb1, 0x00}}, + {2, [3]byte{0xc3, 0xbc, 0x00}}, {2, [3]byte{0xc3, 0xbd, 0x00}}, + {2, [3]byte{0xc5, 0xa3, 0x00}}, {2, [3]byte{0xcb, 0x99, 0x00}}, + }, + encode: [256]uint32{ + 0x00000000, 0x01000001, 0x02000002, 0x03000003, 0x04000004, 0x05000005, 0x06000006, 0x07000007, + 0x08000008, 0x09000009, 0x0a00000a, 0x0b00000b, 0x0c00000c, 0x0d00000d, 0x0e00000e, 0x0f00000f, + 0x10000010, 0x11000011, 0x12000012, 0x13000013, 0x14000014, 0x15000015, 0x16000016, 0x17000017, + 0x18000018, 0x19000019, 0x1a00001a, 0x1b00001b, 0x1c00001c, 0x1d00001d, 0x1e00001e, 0x1f00001f, + 0x20000020, 0x21000021, 0x22000022, 0x23000023, 0x24000024, 0x25000025, 0x26000026, 0x27000027, + 0x28000028, 0x29000029, 0x2a00002a, 0x2b00002b, 0x2c00002c, 0x2d00002d, 0x2e00002e, 0x2f00002f, + 0x30000030, 0x31000031, 0x32000032, 0x33000033, 0x34000034, 0x35000035, 0x36000036, 0x37000037, + 0x38000038, 0x39000039, 0x3a00003a, 0x3b00003b, 0x3c00003c, 0x3d00003d, 0x3e00003e, 0x3f00003f, + 0x40000040, 0x41000041, 0x42000042, 0x43000043, 0x44000044, 0x45000045, 0x46000046, 0x47000047, + 0x48000048, 0x49000049, 0x4a00004a, 0x4b00004b, 0x4c00004c, 0x4d00004d, 0x4e00004e, 0x4f00004f, + 0x50000050, 0x51000051, 0x52000052, 0x53000053, 0x54000054, 0x55000055, 0x56000056, 0x57000057, + 0x58000058, 0x59000059, 0x5a00005a, 0x5b00005b, 0x5c00005c, 0x5d00005d, 0x5e00005e, 0x5f00005f, + 0x60000060, 0x61000061, 0x62000062, 0x63000063, 0x64000064, 0x65000065, 0x66000066, 0x67000067, + 0x68000068, 0x69000069, 0x6a00006a, 0x6b00006b, 0x6c00006c, 0x6d00006d, 0x6e00006e, 0x6f00006f, + 0x70000070, 0x71000071, 0x72000072, 0x73000073, 0x74000074, 0x75000075, 0x76000076, 0x77000077, + 0x78000078, 0x79000079, 0x7a00007a, 0x7b00007b, 0x7c00007c, 0x7d00007d, 0x7e00007e, 0x7f00007f, + 0xa00000a0, 0xa40000a4, 0xa70000a7, 0xa80000a8, 0xad0000ad, 0xb00000b0, 0xb40000b4, 0xb80000b8, + 0xc10000c1, 0xc20000c2, 0xc40000c4, 0xc70000c7, 0xc90000c9, 0xcb0000cb, 0xcd0000cd, 0xce0000ce, + 0xd30000d3, 0xd40000d4, 0xd60000d6, 0xd70000d7, 0xda0000da, 0xdc0000dc, 0xdd0000dd, 0xdf0000df, + 0xe10000e1, 0xe20000e2, 0xe40000e4, 0xe70000e7, 0xe90000e9, 0xeb0000eb, 0xed0000ed, 0xee0000ee, + 0xf30000f3, 0xf40000f4, 0xf60000f6, 0xf70000f7, 0xfa0000fa, 0xfc0000fc, 0xfd0000fd, 0xc3000102, + 0xe3000103, 0xa1000104, 0xb1000105, 0xc6000106, 0xe6000107, 0xc800010c, 0xe800010d, 0xcf00010e, + 0xef00010f, 0xd0000110, 0xf0000111, 0xca000118, 0xea000119, 0xcc00011a, 0xec00011b, 0xc5000139, + 0xe500013a, 0xa500013d, 0xb500013e, 0xa3000141, 0xb3000142, 0xd1000143, 0xf1000144, 0xd2000147, + 0xf2000148, 0xd5000150, 0xf5000151, 0xc0000154, 0xe0000155, 0xd8000158, 0xf8000159, 0xa600015a, + 0xb600015b, 0xaa00015e, 0xba00015f, 0xa9000160, 0xb9000161, 0xde000162, 0xfe000163, 0xab000164, + 0xbb000165, 0xd900016e, 0xf900016f, 0xdb000170, 0xfb000171, 0xac000179, 0xbc00017a, 0xaf00017b, + 0xbf00017c, 0xae00017d, 0xbe00017e, 0xb70002c7, 0xa20002d8, 0xff0002d9, 0xb20002db, 0xbd0002dd, + 0xbd0002dd, 0xbd0002dd, 0xbd0002dd, 0xbd0002dd, 0xbd0002dd, 0xbd0002dd, 0xbd0002dd, 0xbd0002dd, + 0xbd0002dd, 0xbd0002dd, 0xbd0002dd, 0xbd0002dd, 0xbd0002dd, 0xbd0002dd, 0xbd0002dd, 0xbd0002dd, + 0xbd0002dd, 0xbd0002dd, 0xbd0002dd, 0xbd0002dd, 0xbd0002dd, 0xbd0002dd, 0xbd0002dd, 0xbd0002dd, + 0xbd0002dd, 0xbd0002dd, 0xbd0002dd, 0xbd0002dd, 0xbd0002dd, 0xbd0002dd, 0xbd0002dd, 0xbd0002dd, + }, +} + +// ISO8859_3 is the ISO 8859-3 encoding. +var ISO8859_3 *Charmap = &iso8859_3 + +var iso8859_3 = Charmap{ + name: "ISO 8859-3", + mib: identifier.ISOLatin3, + asciiSuperset: true, + low: 0x80, + replacement: 0x1a, + decode: [256]utf8Enc{ + {1, [3]byte{0x00, 0x00, 0x00}}, {1, [3]byte{0x01, 0x00, 0x00}}, + {1, [3]byte{0x02, 0x00, 0x00}}, {1, [3]byte{0x03, 0x00, 0x00}}, + {1, [3]byte{0x04, 0x00, 0x00}}, {1, [3]byte{0x05, 0x00, 0x00}}, + {1, [3]byte{0x06, 0x00, 0x00}}, {1, [3]byte{0x07, 0x00, 0x00}}, + {1, [3]byte{0x08, 0x00, 0x00}}, {1, [3]byte{0x09, 0x00, 0x00}}, + {1, [3]byte{0x0a, 0x00, 0x00}}, {1, [3]byte{0x0b, 0x00, 0x00}}, + {1, [3]byte{0x0c, 0x00, 0x00}}, {1, [3]byte{0x0d, 0x00, 0x00}}, + {1, [3]byte{0x0e, 0x00, 0x00}}, {1, [3]byte{0x0f, 0x00, 0x00}}, + {1, [3]byte{0x10, 0x00, 0x00}}, {1, [3]byte{0x11, 0x00, 0x00}}, + {1, [3]byte{0x12, 0x00, 0x00}}, {1, [3]byte{0x13, 0x00, 0x00}}, + {1, [3]byte{0x14, 0x00, 0x00}}, {1, [3]byte{0x15, 0x00, 0x00}}, + {1, [3]byte{0x16, 0x00, 0x00}}, {1, [3]byte{0x17, 0x00, 0x00}}, + {1, [3]byte{0x18, 0x00, 0x00}}, {1, [3]byte{0x19, 0x00, 0x00}}, + {1, [3]byte{0x1a, 0x00, 0x00}}, {1, [3]byte{0x1b, 0x00, 0x00}}, + {1, [3]byte{0x1c, 0x00, 0x00}}, {1, [3]byte{0x1d, 0x00, 0x00}}, + {1, [3]byte{0x1e, 0x00, 0x00}}, {1, [3]byte{0x1f, 0x00, 0x00}}, + {1, [3]byte{0x20, 0x00, 0x00}}, {1, [3]byte{0x21, 0x00, 0x00}}, + {1, [3]byte{0x22, 0x00, 0x00}}, {1, [3]byte{0x23, 0x00, 0x00}}, + {1, [3]byte{0x24, 0x00, 0x00}}, {1, [3]byte{0x25, 0x00, 0x00}}, + {1, [3]byte{0x26, 0x00, 0x00}}, {1, [3]byte{0x27, 0x00, 0x00}}, + {1, [3]byte{0x28, 0x00, 0x00}}, {1, [3]byte{0x29, 0x00, 0x00}}, + {1, [3]byte{0x2a, 0x00, 0x00}}, {1, [3]byte{0x2b, 0x00, 0x00}}, + {1, [3]byte{0x2c, 0x00, 0x00}}, {1, [3]byte{0x2d, 0x00, 0x00}}, + {1, [3]byte{0x2e, 0x00, 0x00}}, {1, [3]byte{0x2f, 0x00, 0x00}}, + {1, [3]byte{0x30, 0x00, 0x00}}, {1, [3]byte{0x31, 0x00, 0x00}}, + {1, [3]byte{0x32, 0x00, 0x00}}, {1, [3]byte{0x33, 0x00, 0x00}}, + {1, [3]byte{0x34, 0x00, 0x00}}, {1, [3]byte{0x35, 0x00, 0x00}}, + {1, [3]byte{0x36, 0x00, 0x00}}, {1, [3]byte{0x37, 0x00, 0x00}}, + {1, [3]byte{0x38, 0x00, 0x00}}, {1, [3]byte{0x39, 0x00, 0x00}}, + {1, [3]byte{0x3a, 0x00, 0x00}}, {1, [3]byte{0x3b, 0x00, 0x00}}, + {1, [3]byte{0x3c, 0x00, 0x00}}, {1, [3]byte{0x3d, 0x00, 0x00}}, + {1, [3]byte{0x3e, 0x00, 0x00}}, {1, [3]byte{0x3f, 0x00, 0x00}}, + {1, [3]byte{0x40, 0x00, 0x00}}, {1, [3]byte{0x41, 0x00, 0x00}}, + {1, [3]byte{0x42, 0x00, 0x00}}, {1, [3]byte{0x43, 0x00, 0x00}}, + {1, [3]byte{0x44, 0x00, 0x00}}, {1, [3]byte{0x45, 0x00, 0x00}}, + {1, [3]byte{0x46, 0x00, 0x00}}, {1, [3]byte{0x47, 0x00, 0x00}}, + {1, [3]byte{0x48, 0x00, 0x00}}, {1, [3]byte{0x49, 0x00, 0x00}}, + {1, [3]byte{0x4a, 0x00, 0x00}}, {1, [3]byte{0x4b, 0x00, 0x00}}, + {1, [3]byte{0x4c, 0x00, 0x00}}, {1, [3]byte{0x4d, 0x00, 0x00}}, + {1, [3]byte{0x4e, 0x00, 0x00}}, {1, [3]byte{0x4f, 0x00, 0x00}}, + {1, [3]byte{0x50, 0x00, 0x00}}, {1, [3]byte{0x51, 0x00, 0x00}}, + {1, [3]byte{0x52, 0x00, 0x00}}, {1, [3]byte{0x53, 0x00, 0x00}}, + {1, [3]byte{0x54, 0x00, 0x00}}, {1, [3]byte{0x55, 0x00, 0x00}}, + {1, [3]byte{0x56, 0x00, 0x00}}, {1, [3]byte{0x57, 0x00, 0x00}}, + {1, [3]byte{0x58, 0x00, 0x00}}, {1, [3]byte{0x59, 0x00, 0x00}}, + {1, [3]byte{0x5a, 0x00, 0x00}}, {1, [3]byte{0x5b, 0x00, 0x00}}, + {1, [3]byte{0x5c, 0x00, 0x00}}, {1, [3]byte{0x5d, 0x00, 0x00}}, + {1, [3]byte{0x5e, 0x00, 0x00}}, {1, [3]byte{0x5f, 0x00, 0x00}}, + {1, [3]byte{0x60, 0x00, 0x00}}, {1, [3]byte{0x61, 0x00, 0x00}}, + {1, [3]byte{0x62, 0x00, 0x00}}, {1, [3]byte{0x63, 0x00, 0x00}}, + {1, [3]byte{0x64, 0x00, 0x00}}, {1, [3]byte{0x65, 0x00, 0x00}}, + {1, [3]byte{0x66, 0x00, 0x00}}, {1, [3]byte{0x67, 0x00, 0x00}}, + {1, [3]byte{0x68, 0x00, 0x00}}, {1, [3]byte{0x69, 0x00, 0x00}}, + {1, [3]byte{0x6a, 0x00, 0x00}}, {1, [3]byte{0x6b, 0x00, 0x00}}, + {1, [3]byte{0x6c, 0x00, 0x00}}, {1, [3]byte{0x6d, 0x00, 0x00}}, + {1, [3]byte{0x6e, 0x00, 0x00}}, {1, [3]byte{0x6f, 0x00, 0x00}}, + {1, [3]byte{0x70, 0x00, 0x00}}, {1, [3]byte{0x71, 0x00, 0x00}}, + {1, [3]byte{0x72, 0x00, 0x00}}, {1, [3]byte{0x73, 0x00, 0x00}}, + {1, [3]byte{0x74, 0x00, 0x00}}, {1, [3]byte{0x75, 0x00, 0x00}}, + {1, [3]byte{0x76, 0x00, 0x00}}, {1, [3]byte{0x77, 0x00, 0x00}}, + {1, [3]byte{0x78, 0x00, 0x00}}, {1, [3]byte{0x79, 0x00, 0x00}}, + {1, [3]byte{0x7a, 0x00, 0x00}}, {1, [3]byte{0x7b, 0x00, 0x00}}, + {1, [3]byte{0x7c, 0x00, 0x00}}, {1, [3]byte{0x7d, 0x00, 0x00}}, + {1, [3]byte{0x7e, 0x00, 0x00}}, {1, [3]byte{0x7f, 0x00, 0x00}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {2, [3]byte{0xc2, 0xa0, 0x00}}, {2, [3]byte{0xc4, 0xa6, 0x00}}, + {2, [3]byte{0xcb, 0x98, 0x00}}, {2, [3]byte{0xc2, 0xa3, 0x00}}, + {2, [3]byte{0xc2, 0xa4, 0x00}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {2, [3]byte{0xc4, 0xa4, 0x00}}, {2, [3]byte{0xc2, 0xa7, 0x00}}, + {2, [3]byte{0xc2, 0xa8, 0x00}}, {2, [3]byte{0xc4, 0xb0, 0x00}}, + {2, [3]byte{0xc5, 0x9e, 0x00}}, {2, [3]byte{0xc4, 0x9e, 0x00}}, + {2, [3]byte{0xc4, 0xb4, 0x00}}, {2, [3]byte{0xc2, 0xad, 0x00}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {2, [3]byte{0xc5, 0xbb, 0x00}}, + {2, [3]byte{0xc2, 0xb0, 0x00}}, {2, [3]byte{0xc4, 0xa7, 0x00}}, + {2, [3]byte{0xc2, 0xb2, 0x00}}, {2, [3]byte{0xc2, 0xb3, 0x00}}, + {2, [3]byte{0xc2, 0xb4, 0x00}}, {2, [3]byte{0xc2, 0xb5, 0x00}}, + {2, [3]byte{0xc4, 0xa5, 0x00}}, {2, [3]byte{0xc2, 0xb7, 0x00}}, + {2, [3]byte{0xc2, 0xb8, 0x00}}, {2, [3]byte{0xc4, 0xb1, 0x00}}, + {2, [3]byte{0xc5, 0x9f, 0x00}}, {2, [3]byte{0xc4, 0x9f, 0x00}}, + {2, [3]byte{0xc4, 0xb5, 0x00}}, {2, [3]byte{0xc2, 0xbd, 0x00}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {2, [3]byte{0xc5, 0xbc, 0x00}}, + {2, [3]byte{0xc3, 0x80, 0x00}}, {2, [3]byte{0xc3, 0x81, 0x00}}, + {2, [3]byte{0xc3, 0x82, 0x00}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {2, [3]byte{0xc3, 0x84, 0x00}}, {2, [3]byte{0xc4, 0x8a, 0x00}}, + {2, [3]byte{0xc4, 0x88, 0x00}}, {2, [3]byte{0xc3, 0x87, 0x00}}, + {2, [3]byte{0xc3, 0x88, 0x00}}, {2, [3]byte{0xc3, 0x89, 0x00}}, + {2, [3]byte{0xc3, 0x8a, 0x00}}, {2, [3]byte{0xc3, 0x8b, 0x00}}, + {2, [3]byte{0xc3, 0x8c, 0x00}}, {2, [3]byte{0xc3, 0x8d, 0x00}}, + {2, [3]byte{0xc3, 0x8e, 0x00}}, {2, [3]byte{0xc3, 0x8f, 0x00}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {2, [3]byte{0xc3, 0x91, 0x00}}, + {2, [3]byte{0xc3, 0x92, 0x00}}, {2, [3]byte{0xc3, 0x93, 0x00}}, + {2, [3]byte{0xc3, 0x94, 0x00}}, {2, [3]byte{0xc4, 0xa0, 0x00}}, + {2, [3]byte{0xc3, 0x96, 0x00}}, {2, [3]byte{0xc3, 0x97, 0x00}}, + {2, [3]byte{0xc4, 0x9c, 0x00}}, {2, [3]byte{0xc3, 0x99, 0x00}}, + {2, [3]byte{0xc3, 0x9a, 0x00}}, {2, [3]byte{0xc3, 0x9b, 0x00}}, + {2, [3]byte{0xc3, 0x9c, 0x00}}, {2, [3]byte{0xc5, 0xac, 0x00}}, + {2, [3]byte{0xc5, 0x9c, 0x00}}, {2, [3]byte{0xc3, 0x9f, 0x00}}, + {2, [3]byte{0xc3, 0xa0, 0x00}}, {2, [3]byte{0xc3, 0xa1, 0x00}}, + {2, [3]byte{0xc3, 0xa2, 0x00}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {2, [3]byte{0xc3, 0xa4, 0x00}}, {2, [3]byte{0xc4, 0x8b, 0x00}}, + {2, [3]byte{0xc4, 0x89, 0x00}}, {2, [3]byte{0xc3, 0xa7, 0x00}}, + {2, [3]byte{0xc3, 0xa8, 0x00}}, {2, [3]byte{0xc3, 0xa9, 0x00}}, + {2, [3]byte{0xc3, 0xaa, 0x00}}, {2, [3]byte{0xc3, 0xab, 0x00}}, + {2, [3]byte{0xc3, 0xac, 0x00}}, {2, [3]byte{0xc3, 0xad, 0x00}}, + {2, [3]byte{0xc3, 0xae, 0x00}}, {2, [3]byte{0xc3, 0xaf, 0x00}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {2, [3]byte{0xc3, 0xb1, 0x00}}, + {2, [3]byte{0xc3, 0xb2, 0x00}}, {2, [3]byte{0xc3, 0xb3, 0x00}}, + {2, [3]byte{0xc3, 0xb4, 0x00}}, {2, [3]byte{0xc4, 0xa1, 0x00}}, + {2, [3]byte{0xc3, 0xb6, 0x00}}, {2, [3]byte{0xc3, 0xb7, 0x00}}, + {2, [3]byte{0xc4, 0x9d, 0x00}}, {2, [3]byte{0xc3, 0xb9, 0x00}}, + {2, [3]byte{0xc3, 0xba, 0x00}}, {2, [3]byte{0xc3, 0xbb, 0x00}}, + {2, [3]byte{0xc3, 0xbc, 0x00}}, {2, [3]byte{0xc5, 0xad, 0x00}}, + {2, [3]byte{0xc5, 0x9d, 0x00}}, {2, [3]byte{0xcb, 0x99, 0x00}}, + }, + encode: [256]uint32{ + 0x00000000, 0x01000001, 0x02000002, 0x03000003, 0x04000004, 0x05000005, 0x06000006, 0x07000007, + 0x08000008, 0x09000009, 0x0a00000a, 0x0b00000b, 0x0c00000c, 0x0d00000d, 0x0e00000e, 0x0f00000f, + 0x10000010, 0x11000011, 0x12000012, 0x13000013, 0x14000014, 0x15000015, 0x16000016, 0x17000017, + 0x18000018, 0x19000019, 0x1a00001a, 0x1b00001b, 0x1c00001c, 0x1d00001d, 0x1e00001e, 0x1f00001f, + 0x20000020, 0x21000021, 0x22000022, 0x23000023, 0x24000024, 0x25000025, 0x26000026, 0x27000027, + 0x28000028, 0x29000029, 0x2a00002a, 0x2b00002b, 0x2c00002c, 0x2d00002d, 0x2e00002e, 0x2f00002f, + 0x30000030, 0x31000031, 0x32000032, 0x33000033, 0x34000034, 0x35000035, 0x36000036, 0x37000037, + 0x38000038, 0x39000039, 0x3a00003a, 0x3b00003b, 0x3c00003c, 0x3d00003d, 0x3e00003e, 0x3f00003f, + 0x40000040, 0x41000041, 0x42000042, 0x43000043, 0x44000044, 0x45000045, 0x46000046, 0x47000047, + 0x48000048, 0x49000049, 0x4a00004a, 0x4b00004b, 0x4c00004c, 0x4d00004d, 0x4e00004e, 0x4f00004f, + 0x50000050, 0x51000051, 0x52000052, 0x53000053, 0x54000054, 0x55000055, 0x56000056, 0x57000057, + 0x58000058, 0x59000059, 0x5a00005a, 0x5b00005b, 0x5c00005c, 0x5d00005d, 0x5e00005e, 0x5f00005f, + 0x60000060, 0x61000061, 0x62000062, 0x63000063, 0x64000064, 0x65000065, 0x66000066, 0x67000067, + 0x68000068, 0x69000069, 0x6a00006a, 0x6b00006b, 0x6c00006c, 0x6d00006d, 0x6e00006e, 0x6f00006f, + 0x70000070, 0x71000071, 0x72000072, 0x73000073, 0x74000074, 0x75000075, 0x76000076, 0x77000077, + 0x78000078, 0x79000079, 0x7a00007a, 0x7b00007b, 0x7c00007c, 0x7d00007d, 0x7e00007e, 0x7f00007f, + 0xa00000a0, 0xa30000a3, 0xa40000a4, 0xa70000a7, 0xa80000a8, 0xad0000ad, 0xb00000b0, 0xb20000b2, + 0xb30000b3, 0xb40000b4, 0xb50000b5, 0xb70000b7, 0xb80000b8, 0xbd0000bd, 0xc00000c0, 0xc10000c1, + 0xc20000c2, 0xc40000c4, 0xc70000c7, 0xc80000c8, 0xc90000c9, 0xca0000ca, 0xcb0000cb, 0xcc0000cc, + 0xcd0000cd, 0xce0000ce, 0xcf0000cf, 0xd10000d1, 0xd20000d2, 0xd30000d3, 0xd40000d4, 0xd60000d6, + 0xd70000d7, 0xd90000d9, 0xda0000da, 0xdb0000db, 0xdc0000dc, 0xdf0000df, 0xe00000e0, 0xe10000e1, + 0xe20000e2, 0xe40000e4, 0xe70000e7, 0xe80000e8, 0xe90000e9, 0xea0000ea, 0xeb0000eb, 0xec0000ec, + 0xed0000ed, 0xee0000ee, 0xef0000ef, 0xf10000f1, 0xf20000f2, 0xf30000f3, 0xf40000f4, 0xf60000f6, + 0xf70000f7, 0xf90000f9, 0xfa0000fa, 0xfb0000fb, 0xfc0000fc, 0xc6000108, 0xe6000109, 0xc500010a, + 0xe500010b, 0xd800011c, 0xf800011d, 0xab00011e, 0xbb00011f, 0xd5000120, 0xf5000121, 0xa6000124, + 0xb6000125, 0xa1000126, 0xb1000127, 0xa9000130, 0xb9000131, 0xac000134, 0xbc000135, 0xde00015c, + 0xfe00015d, 0xaa00015e, 0xba00015f, 0xdd00016c, 0xfd00016d, 0xaf00017b, 0xbf00017c, 0xa20002d8, + 0xff0002d9, 0xff0002d9, 0xff0002d9, 0xff0002d9, 0xff0002d9, 0xff0002d9, 0xff0002d9, 0xff0002d9, + 0xff0002d9, 0xff0002d9, 0xff0002d9, 0xff0002d9, 0xff0002d9, 0xff0002d9, 0xff0002d9, 0xff0002d9, + 0xff0002d9, 0xff0002d9, 0xff0002d9, 0xff0002d9, 0xff0002d9, 0xff0002d9, 0xff0002d9, 0xff0002d9, + 0xff0002d9, 0xff0002d9, 0xff0002d9, 0xff0002d9, 0xff0002d9, 0xff0002d9, 0xff0002d9, 0xff0002d9, + 0xff0002d9, 0xff0002d9, 0xff0002d9, 0xff0002d9, 0xff0002d9, 0xff0002d9, 0xff0002d9, 0xff0002d9, + }, +} + +// ISO8859_4 is the ISO 8859-4 encoding. +var ISO8859_4 *Charmap = &iso8859_4 + +var iso8859_4 = Charmap{ + name: "ISO 8859-4", + mib: identifier.ISOLatin4, + asciiSuperset: true, + low: 0x80, + replacement: 0x1a, + decode: [256]utf8Enc{ + {1, [3]byte{0x00, 0x00, 0x00}}, {1, [3]byte{0x01, 0x00, 0x00}}, + {1, [3]byte{0x02, 0x00, 0x00}}, {1, [3]byte{0x03, 0x00, 0x00}}, + {1, [3]byte{0x04, 0x00, 0x00}}, {1, [3]byte{0x05, 0x00, 0x00}}, + {1, [3]byte{0x06, 0x00, 0x00}}, {1, [3]byte{0x07, 0x00, 0x00}}, + {1, [3]byte{0x08, 0x00, 0x00}}, {1, [3]byte{0x09, 0x00, 0x00}}, + {1, [3]byte{0x0a, 0x00, 0x00}}, {1, [3]byte{0x0b, 0x00, 0x00}}, + {1, [3]byte{0x0c, 0x00, 0x00}}, {1, [3]byte{0x0d, 0x00, 0x00}}, + {1, [3]byte{0x0e, 0x00, 0x00}}, {1, [3]byte{0x0f, 0x00, 0x00}}, + {1, [3]byte{0x10, 0x00, 0x00}}, {1, [3]byte{0x11, 0x00, 0x00}}, + {1, [3]byte{0x12, 0x00, 0x00}}, {1, [3]byte{0x13, 0x00, 0x00}}, + {1, [3]byte{0x14, 0x00, 0x00}}, {1, [3]byte{0x15, 0x00, 0x00}}, + {1, [3]byte{0x16, 0x00, 0x00}}, {1, [3]byte{0x17, 0x00, 0x00}}, + {1, [3]byte{0x18, 0x00, 0x00}}, {1, [3]byte{0x19, 0x00, 0x00}}, + {1, [3]byte{0x1a, 0x00, 0x00}}, {1, [3]byte{0x1b, 0x00, 0x00}}, + {1, [3]byte{0x1c, 0x00, 0x00}}, {1, [3]byte{0x1d, 0x00, 0x00}}, + {1, [3]byte{0x1e, 0x00, 0x00}}, {1, [3]byte{0x1f, 0x00, 0x00}}, + {1, [3]byte{0x20, 0x00, 0x00}}, {1, [3]byte{0x21, 0x00, 0x00}}, + {1, [3]byte{0x22, 0x00, 0x00}}, {1, [3]byte{0x23, 0x00, 0x00}}, + {1, [3]byte{0x24, 0x00, 0x00}}, {1, [3]byte{0x25, 0x00, 0x00}}, + {1, [3]byte{0x26, 0x00, 0x00}}, {1, [3]byte{0x27, 0x00, 0x00}}, + {1, [3]byte{0x28, 0x00, 0x00}}, {1, [3]byte{0x29, 0x00, 0x00}}, + {1, [3]byte{0x2a, 0x00, 0x00}}, {1, [3]byte{0x2b, 0x00, 0x00}}, + {1, [3]byte{0x2c, 0x00, 0x00}}, {1, [3]byte{0x2d, 0x00, 0x00}}, + {1, [3]byte{0x2e, 0x00, 0x00}}, {1, [3]byte{0x2f, 0x00, 0x00}}, + {1, [3]byte{0x30, 0x00, 0x00}}, {1, [3]byte{0x31, 0x00, 0x00}}, + {1, [3]byte{0x32, 0x00, 0x00}}, {1, [3]byte{0x33, 0x00, 0x00}}, + {1, [3]byte{0x34, 0x00, 0x00}}, {1, [3]byte{0x35, 0x00, 0x00}}, + {1, [3]byte{0x36, 0x00, 0x00}}, {1, [3]byte{0x37, 0x00, 0x00}}, + {1, [3]byte{0x38, 0x00, 0x00}}, {1, [3]byte{0x39, 0x00, 0x00}}, + {1, [3]byte{0x3a, 0x00, 0x00}}, {1, [3]byte{0x3b, 0x00, 0x00}}, + {1, [3]byte{0x3c, 0x00, 0x00}}, {1, [3]byte{0x3d, 0x00, 0x00}}, + {1, [3]byte{0x3e, 0x00, 0x00}}, {1, [3]byte{0x3f, 0x00, 0x00}}, + {1, [3]byte{0x40, 0x00, 0x00}}, {1, [3]byte{0x41, 0x00, 0x00}}, + {1, [3]byte{0x42, 0x00, 0x00}}, {1, [3]byte{0x43, 0x00, 0x00}}, + {1, [3]byte{0x44, 0x00, 0x00}}, {1, [3]byte{0x45, 0x00, 0x00}}, + {1, [3]byte{0x46, 0x00, 0x00}}, {1, [3]byte{0x47, 0x00, 0x00}}, + {1, [3]byte{0x48, 0x00, 0x00}}, {1, [3]byte{0x49, 0x00, 0x00}}, + {1, [3]byte{0x4a, 0x00, 0x00}}, {1, [3]byte{0x4b, 0x00, 0x00}}, + {1, [3]byte{0x4c, 0x00, 0x00}}, {1, [3]byte{0x4d, 0x00, 0x00}}, + {1, [3]byte{0x4e, 0x00, 0x00}}, {1, [3]byte{0x4f, 0x00, 0x00}}, + {1, [3]byte{0x50, 0x00, 0x00}}, {1, [3]byte{0x51, 0x00, 0x00}}, + {1, [3]byte{0x52, 0x00, 0x00}}, {1, [3]byte{0x53, 0x00, 0x00}}, + {1, [3]byte{0x54, 0x00, 0x00}}, {1, [3]byte{0x55, 0x00, 0x00}}, + {1, [3]byte{0x56, 0x00, 0x00}}, {1, [3]byte{0x57, 0x00, 0x00}}, + {1, [3]byte{0x58, 0x00, 0x00}}, {1, [3]byte{0x59, 0x00, 0x00}}, + {1, [3]byte{0x5a, 0x00, 0x00}}, {1, [3]byte{0x5b, 0x00, 0x00}}, + {1, [3]byte{0x5c, 0x00, 0x00}}, {1, [3]byte{0x5d, 0x00, 0x00}}, + {1, [3]byte{0x5e, 0x00, 0x00}}, {1, [3]byte{0x5f, 0x00, 0x00}}, + {1, [3]byte{0x60, 0x00, 0x00}}, {1, [3]byte{0x61, 0x00, 0x00}}, + {1, [3]byte{0x62, 0x00, 0x00}}, {1, [3]byte{0x63, 0x00, 0x00}}, + {1, [3]byte{0x64, 0x00, 0x00}}, {1, [3]byte{0x65, 0x00, 0x00}}, + {1, [3]byte{0x66, 0x00, 0x00}}, {1, [3]byte{0x67, 0x00, 0x00}}, + {1, [3]byte{0x68, 0x00, 0x00}}, {1, [3]byte{0x69, 0x00, 0x00}}, + {1, [3]byte{0x6a, 0x00, 0x00}}, {1, [3]byte{0x6b, 0x00, 0x00}}, + {1, [3]byte{0x6c, 0x00, 0x00}}, {1, [3]byte{0x6d, 0x00, 0x00}}, + {1, [3]byte{0x6e, 0x00, 0x00}}, {1, [3]byte{0x6f, 0x00, 0x00}}, + {1, [3]byte{0x70, 0x00, 0x00}}, {1, [3]byte{0x71, 0x00, 0x00}}, + {1, [3]byte{0x72, 0x00, 0x00}}, {1, [3]byte{0x73, 0x00, 0x00}}, + {1, [3]byte{0x74, 0x00, 0x00}}, {1, [3]byte{0x75, 0x00, 0x00}}, + {1, [3]byte{0x76, 0x00, 0x00}}, {1, [3]byte{0x77, 0x00, 0x00}}, + {1, [3]byte{0x78, 0x00, 0x00}}, {1, [3]byte{0x79, 0x00, 0x00}}, + {1, [3]byte{0x7a, 0x00, 0x00}}, {1, [3]byte{0x7b, 0x00, 0x00}}, + {1, [3]byte{0x7c, 0x00, 0x00}}, {1, [3]byte{0x7d, 0x00, 0x00}}, + {1, [3]byte{0x7e, 0x00, 0x00}}, {1, [3]byte{0x7f, 0x00, 0x00}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {2, [3]byte{0xc2, 0xa0, 0x00}}, {2, [3]byte{0xc4, 0x84, 0x00}}, + {2, [3]byte{0xc4, 0xb8, 0x00}}, {2, [3]byte{0xc5, 0x96, 0x00}}, + {2, [3]byte{0xc2, 0xa4, 0x00}}, {2, [3]byte{0xc4, 0xa8, 0x00}}, + {2, [3]byte{0xc4, 0xbb, 0x00}}, {2, [3]byte{0xc2, 0xa7, 0x00}}, + {2, [3]byte{0xc2, 0xa8, 0x00}}, {2, [3]byte{0xc5, 0xa0, 0x00}}, + {2, [3]byte{0xc4, 0x92, 0x00}}, {2, [3]byte{0xc4, 0xa2, 0x00}}, + {2, [3]byte{0xc5, 0xa6, 0x00}}, {2, [3]byte{0xc2, 0xad, 0x00}}, + {2, [3]byte{0xc5, 0xbd, 0x00}}, {2, [3]byte{0xc2, 0xaf, 0x00}}, + {2, [3]byte{0xc2, 0xb0, 0x00}}, {2, [3]byte{0xc4, 0x85, 0x00}}, + {2, [3]byte{0xcb, 0x9b, 0x00}}, {2, [3]byte{0xc5, 0x97, 0x00}}, + {2, [3]byte{0xc2, 0xb4, 0x00}}, {2, [3]byte{0xc4, 0xa9, 0x00}}, + {2, [3]byte{0xc4, 0xbc, 0x00}}, {2, [3]byte{0xcb, 0x87, 0x00}}, + {2, [3]byte{0xc2, 0xb8, 0x00}}, {2, [3]byte{0xc5, 0xa1, 0x00}}, + {2, [3]byte{0xc4, 0x93, 0x00}}, {2, [3]byte{0xc4, 0xa3, 0x00}}, + {2, [3]byte{0xc5, 0xa7, 0x00}}, {2, [3]byte{0xc5, 0x8a, 0x00}}, + {2, [3]byte{0xc5, 0xbe, 0x00}}, {2, [3]byte{0xc5, 0x8b, 0x00}}, + {2, [3]byte{0xc4, 0x80, 0x00}}, {2, [3]byte{0xc3, 0x81, 0x00}}, + {2, [3]byte{0xc3, 0x82, 0x00}}, {2, [3]byte{0xc3, 0x83, 0x00}}, + {2, [3]byte{0xc3, 0x84, 0x00}}, {2, [3]byte{0xc3, 0x85, 0x00}}, + {2, [3]byte{0xc3, 0x86, 0x00}}, {2, [3]byte{0xc4, 0xae, 0x00}}, + {2, [3]byte{0xc4, 0x8c, 0x00}}, {2, [3]byte{0xc3, 0x89, 0x00}}, + {2, [3]byte{0xc4, 0x98, 0x00}}, {2, [3]byte{0xc3, 0x8b, 0x00}}, + {2, [3]byte{0xc4, 0x96, 0x00}}, {2, [3]byte{0xc3, 0x8d, 0x00}}, + {2, [3]byte{0xc3, 0x8e, 0x00}}, {2, [3]byte{0xc4, 0xaa, 0x00}}, + {2, [3]byte{0xc4, 0x90, 0x00}}, {2, [3]byte{0xc5, 0x85, 0x00}}, + {2, [3]byte{0xc5, 0x8c, 0x00}}, {2, [3]byte{0xc4, 0xb6, 0x00}}, + {2, [3]byte{0xc3, 0x94, 0x00}}, {2, [3]byte{0xc3, 0x95, 0x00}}, + {2, [3]byte{0xc3, 0x96, 0x00}}, {2, [3]byte{0xc3, 0x97, 0x00}}, + {2, [3]byte{0xc3, 0x98, 0x00}}, {2, [3]byte{0xc5, 0xb2, 0x00}}, + {2, [3]byte{0xc3, 0x9a, 0x00}}, {2, [3]byte{0xc3, 0x9b, 0x00}}, + {2, [3]byte{0xc3, 0x9c, 0x00}}, {2, [3]byte{0xc5, 0xa8, 0x00}}, + {2, [3]byte{0xc5, 0xaa, 0x00}}, {2, [3]byte{0xc3, 0x9f, 0x00}}, + {2, [3]byte{0xc4, 0x81, 0x00}}, {2, [3]byte{0xc3, 0xa1, 0x00}}, + {2, [3]byte{0xc3, 0xa2, 0x00}}, {2, [3]byte{0xc3, 0xa3, 0x00}}, + {2, [3]byte{0xc3, 0xa4, 0x00}}, {2, [3]byte{0xc3, 0xa5, 0x00}}, + {2, [3]byte{0xc3, 0xa6, 0x00}}, {2, [3]byte{0xc4, 0xaf, 0x00}}, + {2, [3]byte{0xc4, 0x8d, 0x00}}, {2, [3]byte{0xc3, 0xa9, 0x00}}, + {2, [3]byte{0xc4, 0x99, 0x00}}, {2, [3]byte{0xc3, 0xab, 0x00}}, + {2, [3]byte{0xc4, 0x97, 0x00}}, {2, [3]byte{0xc3, 0xad, 0x00}}, + {2, [3]byte{0xc3, 0xae, 0x00}}, {2, [3]byte{0xc4, 0xab, 0x00}}, + {2, [3]byte{0xc4, 0x91, 0x00}}, {2, [3]byte{0xc5, 0x86, 0x00}}, + {2, [3]byte{0xc5, 0x8d, 0x00}}, {2, [3]byte{0xc4, 0xb7, 0x00}}, + {2, [3]byte{0xc3, 0xb4, 0x00}}, {2, [3]byte{0xc3, 0xb5, 0x00}}, + {2, [3]byte{0xc3, 0xb6, 0x00}}, {2, [3]byte{0xc3, 0xb7, 0x00}}, + {2, [3]byte{0xc3, 0xb8, 0x00}}, {2, [3]byte{0xc5, 0xb3, 0x00}}, + {2, [3]byte{0xc3, 0xba, 0x00}}, {2, [3]byte{0xc3, 0xbb, 0x00}}, + {2, [3]byte{0xc3, 0xbc, 0x00}}, {2, [3]byte{0xc5, 0xa9, 0x00}}, + {2, [3]byte{0xc5, 0xab, 0x00}}, {2, [3]byte{0xcb, 0x99, 0x00}}, + }, + encode: [256]uint32{ + 0x00000000, 0x01000001, 0x02000002, 0x03000003, 0x04000004, 0x05000005, 0x06000006, 0x07000007, + 0x08000008, 0x09000009, 0x0a00000a, 0x0b00000b, 0x0c00000c, 0x0d00000d, 0x0e00000e, 0x0f00000f, + 0x10000010, 0x11000011, 0x12000012, 0x13000013, 0x14000014, 0x15000015, 0x16000016, 0x17000017, + 0x18000018, 0x19000019, 0x1a00001a, 0x1b00001b, 0x1c00001c, 0x1d00001d, 0x1e00001e, 0x1f00001f, + 0x20000020, 0x21000021, 0x22000022, 0x23000023, 0x24000024, 0x25000025, 0x26000026, 0x27000027, + 0x28000028, 0x29000029, 0x2a00002a, 0x2b00002b, 0x2c00002c, 0x2d00002d, 0x2e00002e, 0x2f00002f, + 0x30000030, 0x31000031, 0x32000032, 0x33000033, 0x34000034, 0x35000035, 0x36000036, 0x37000037, + 0x38000038, 0x39000039, 0x3a00003a, 0x3b00003b, 0x3c00003c, 0x3d00003d, 0x3e00003e, 0x3f00003f, + 0x40000040, 0x41000041, 0x42000042, 0x43000043, 0x44000044, 0x45000045, 0x46000046, 0x47000047, + 0x48000048, 0x49000049, 0x4a00004a, 0x4b00004b, 0x4c00004c, 0x4d00004d, 0x4e00004e, 0x4f00004f, + 0x50000050, 0x51000051, 0x52000052, 0x53000053, 0x54000054, 0x55000055, 0x56000056, 0x57000057, + 0x58000058, 0x59000059, 0x5a00005a, 0x5b00005b, 0x5c00005c, 0x5d00005d, 0x5e00005e, 0x5f00005f, + 0x60000060, 0x61000061, 0x62000062, 0x63000063, 0x64000064, 0x65000065, 0x66000066, 0x67000067, + 0x68000068, 0x69000069, 0x6a00006a, 0x6b00006b, 0x6c00006c, 0x6d00006d, 0x6e00006e, 0x6f00006f, + 0x70000070, 0x71000071, 0x72000072, 0x73000073, 0x74000074, 0x75000075, 0x76000076, 0x77000077, + 0x78000078, 0x79000079, 0x7a00007a, 0x7b00007b, 0x7c00007c, 0x7d00007d, 0x7e00007e, 0x7f00007f, + 0xa00000a0, 0xa40000a4, 0xa70000a7, 0xa80000a8, 0xad0000ad, 0xaf0000af, 0xb00000b0, 0xb40000b4, + 0xb80000b8, 0xc10000c1, 0xc20000c2, 0xc30000c3, 0xc40000c4, 0xc50000c5, 0xc60000c6, 0xc90000c9, + 0xcb0000cb, 0xcd0000cd, 0xce0000ce, 0xd40000d4, 0xd50000d5, 0xd60000d6, 0xd70000d7, 0xd80000d8, + 0xda0000da, 0xdb0000db, 0xdc0000dc, 0xdf0000df, 0xe10000e1, 0xe20000e2, 0xe30000e3, 0xe40000e4, + 0xe50000e5, 0xe60000e6, 0xe90000e9, 0xeb0000eb, 0xed0000ed, 0xee0000ee, 0xf40000f4, 0xf50000f5, + 0xf60000f6, 0xf70000f7, 0xf80000f8, 0xfa0000fa, 0xfb0000fb, 0xfc0000fc, 0xc0000100, 0xe0000101, + 0xa1000104, 0xb1000105, 0xc800010c, 0xe800010d, 0xd0000110, 0xf0000111, 0xaa000112, 0xba000113, + 0xcc000116, 0xec000117, 0xca000118, 0xea000119, 0xab000122, 0xbb000123, 0xa5000128, 0xb5000129, + 0xcf00012a, 0xef00012b, 0xc700012e, 0xe700012f, 0xd3000136, 0xf3000137, 0xa2000138, 0xa600013b, + 0xb600013c, 0xd1000145, 0xf1000146, 0xbd00014a, 0xbf00014b, 0xd200014c, 0xf200014d, 0xa3000156, + 0xb3000157, 0xa9000160, 0xb9000161, 0xac000166, 0xbc000167, 0xdd000168, 0xfd000169, 0xde00016a, + 0xfe00016b, 0xd9000172, 0xf9000173, 0xae00017d, 0xbe00017e, 0xb70002c7, 0xff0002d9, 0xb20002db, + 0xb20002db, 0xb20002db, 0xb20002db, 0xb20002db, 0xb20002db, 0xb20002db, 0xb20002db, 0xb20002db, + 0xb20002db, 0xb20002db, 0xb20002db, 0xb20002db, 0xb20002db, 0xb20002db, 0xb20002db, 0xb20002db, + 0xb20002db, 0xb20002db, 0xb20002db, 0xb20002db, 0xb20002db, 0xb20002db, 0xb20002db, 0xb20002db, + 0xb20002db, 0xb20002db, 0xb20002db, 0xb20002db, 0xb20002db, 0xb20002db, 0xb20002db, 0xb20002db, + }, +} + +// ISO8859_5 is the ISO 8859-5 encoding. +var ISO8859_5 *Charmap = &iso8859_5 + +var iso8859_5 = Charmap{ + name: "ISO 8859-5", + mib: identifier.ISOLatinCyrillic, + asciiSuperset: true, + low: 0x80, + replacement: 0x1a, + decode: [256]utf8Enc{ + {1, [3]byte{0x00, 0x00, 0x00}}, {1, [3]byte{0x01, 0x00, 0x00}}, + {1, [3]byte{0x02, 0x00, 0x00}}, {1, [3]byte{0x03, 0x00, 0x00}}, + {1, [3]byte{0x04, 0x00, 0x00}}, {1, [3]byte{0x05, 0x00, 0x00}}, + {1, [3]byte{0x06, 0x00, 0x00}}, {1, [3]byte{0x07, 0x00, 0x00}}, + {1, [3]byte{0x08, 0x00, 0x00}}, {1, [3]byte{0x09, 0x00, 0x00}}, + {1, [3]byte{0x0a, 0x00, 0x00}}, {1, [3]byte{0x0b, 0x00, 0x00}}, + {1, [3]byte{0x0c, 0x00, 0x00}}, {1, [3]byte{0x0d, 0x00, 0x00}}, + {1, [3]byte{0x0e, 0x00, 0x00}}, {1, [3]byte{0x0f, 0x00, 0x00}}, + {1, [3]byte{0x10, 0x00, 0x00}}, {1, [3]byte{0x11, 0x00, 0x00}}, + {1, [3]byte{0x12, 0x00, 0x00}}, {1, [3]byte{0x13, 0x00, 0x00}}, + {1, [3]byte{0x14, 0x00, 0x00}}, {1, [3]byte{0x15, 0x00, 0x00}}, + {1, [3]byte{0x16, 0x00, 0x00}}, {1, [3]byte{0x17, 0x00, 0x00}}, + {1, [3]byte{0x18, 0x00, 0x00}}, {1, [3]byte{0x19, 0x00, 0x00}}, + {1, [3]byte{0x1a, 0x00, 0x00}}, {1, [3]byte{0x1b, 0x00, 0x00}}, + {1, [3]byte{0x1c, 0x00, 0x00}}, {1, [3]byte{0x1d, 0x00, 0x00}}, + {1, [3]byte{0x1e, 0x00, 0x00}}, {1, [3]byte{0x1f, 0x00, 0x00}}, + {1, [3]byte{0x20, 0x00, 0x00}}, {1, [3]byte{0x21, 0x00, 0x00}}, + {1, [3]byte{0x22, 0x00, 0x00}}, {1, [3]byte{0x23, 0x00, 0x00}}, + {1, [3]byte{0x24, 0x00, 0x00}}, {1, [3]byte{0x25, 0x00, 0x00}}, + {1, [3]byte{0x26, 0x00, 0x00}}, {1, [3]byte{0x27, 0x00, 0x00}}, + {1, [3]byte{0x28, 0x00, 0x00}}, {1, [3]byte{0x29, 0x00, 0x00}}, + {1, [3]byte{0x2a, 0x00, 0x00}}, {1, [3]byte{0x2b, 0x00, 0x00}}, + {1, [3]byte{0x2c, 0x00, 0x00}}, {1, [3]byte{0x2d, 0x00, 0x00}}, + {1, [3]byte{0x2e, 0x00, 0x00}}, {1, [3]byte{0x2f, 0x00, 0x00}}, + {1, [3]byte{0x30, 0x00, 0x00}}, {1, [3]byte{0x31, 0x00, 0x00}}, + {1, [3]byte{0x32, 0x00, 0x00}}, {1, [3]byte{0x33, 0x00, 0x00}}, + {1, [3]byte{0x34, 0x00, 0x00}}, {1, [3]byte{0x35, 0x00, 0x00}}, + {1, [3]byte{0x36, 0x00, 0x00}}, {1, [3]byte{0x37, 0x00, 0x00}}, + {1, [3]byte{0x38, 0x00, 0x00}}, {1, [3]byte{0x39, 0x00, 0x00}}, + {1, [3]byte{0x3a, 0x00, 0x00}}, {1, [3]byte{0x3b, 0x00, 0x00}}, + {1, [3]byte{0x3c, 0x00, 0x00}}, {1, [3]byte{0x3d, 0x00, 0x00}}, + {1, [3]byte{0x3e, 0x00, 0x00}}, {1, [3]byte{0x3f, 0x00, 0x00}}, + {1, [3]byte{0x40, 0x00, 0x00}}, {1, [3]byte{0x41, 0x00, 0x00}}, + {1, [3]byte{0x42, 0x00, 0x00}}, {1, [3]byte{0x43, 0x00, 0x00}}, + {1, [3]byte{0x44, 0x00, 0x00}}, {1, [3]byte{0x45, 0x00, 0x00}}, + {1, [3]byte{0x46, 0x00, 0x00}}, {1, [3]byte{0x47, 0x00, 0x00}}, + {1, [3]byte{0x48, 0x00, 0x00}}, {1, [3]byte{0x49, 0x00, 0x00}}, + {1, [3]byte{0x4a, 0x00, 0x00}}, {1, [3]byte{0x4b, 0x00, 0x00}}, + {1, [3]byte{0x4c, 0x00, 0x00}}, {1, [3]byte{0x4d, 0x00, 0x00}}, + {1, [3]byte{0x4e, 0x00, 0x00}}, {1, [3]byte{0x4f, 0x00, 0x00}}, + {1, [3]byte{0x50, 0x00, 0x00}}, {1, [3]byte{0x51, 0x00, 0x00}}, + {1, [3]byte{0x52, 0x00, 0x00}}, {1, [3]byte{0x53, 0x00, 0x00}}, + {1, [3]byte{0x54, 0x00, 0x00}}, {1, [3]byte{0x55, 0x00, 0x00}}, + {1, [3]byte{0x56, 0x00, 0x00}}, {1, [3]byte{0x57, 0x00, 0x00}}, + {1, [3]byte{0x58, 0x00, 0x00}}, {1, [3]byte{0x59, 0x00, 0x00}}, + {1, [3]byte{0x5a, 0x00, 0x00}}, {1, [3]byte{0x5b, 0x00, 0x00}}, + {1, [3]byte{0x5c, 0x00, 0x00}}, {1, [3]byte{0x5d, 0x00, 0x00}}, + {1, [3]byte{0x5e, 0x00, 0x00}}, {1, [3]byte{0x5f, 0x00, 0x00}}, + {1, [3]byte{0x60, 0x00, 0x00}}, {1, [3]byte{0x61, 0x00, 0x00}}, + {1, [3]byte{0x62, 0x00, 0x00}}, {1, [3]byte{0x63, 0x00, 0x00}}, + {1, [3]byte{0x64, 0x00, 0x00}}, {1, [3]byte{0x65, 0x00, 0x00}}, + {1, [3]byte{0x66, 0x00, 0x00}}, {1, [3]byte{0x67, 0x00, 0x00}}, + {1, [3]byte{0x68, 0x00, 0x00}}, {1, [3]byte{0x69, 0x00, 0x00}}, + {1, [3]byte{0x6a, 0x00, 0x00}}, {1, [3]byte{0x6b, 0x00, 0x00}}, + {1, [3]byte{0x6c, 0x00, 0x00}}, {1, [3]byte{0x6d, 0x00, 0x00}}, + {1, [3]byte{0x6e, 0x00, 0x00}}, {1, [3]byte{0x6f, 0x00, 0x00}}, + {1, [3]byte{0x70, 0x00, 0x00}}, {1, [3]byte{0x71, 0x00, 0x00}}, + {1, [3]byte{0x72, 0x00, 0x00}}, {1, [3]byte{0x73, 0x00, 0x00}}, + {1, [3]byte{0x74, 0x00, 0x00}}, {1, [3]byte{0x75, 0x00, 0x00}}, + {1, [3]byte{0x76, 0x00, 0x00}}, {1, [3]byte{0x77, 0x00, 0x00}}, + {1, [3]byte{0x78, 0x00, 0x00}}, {1, [3]byte{0x79, 0x00, 0x00}}, + {1, [3]byte{0x7a, 0x00, 0x00}}, {1, [3]byte{0x7b, 0x00, 0x00}}, + {1, [3]byte{0x7c, 0x00, 0x00}}, {1, [3]byte{0x7d, 0x00, 0x00}}, + {1, [3]byte{0x7e, 0x00, 0x00}}, {1, [3]byte{0x7f, 0x00, 0x00}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {2, [3]byte{0xc2, 0xa0, 0x00}}, {2, [3]byte{0xd0, 0x81, 0x00}}, + {2, [3]byte{0xd0, 0x82, 0x00}}, {2, [3]byte{0xd0, 0x83, 0x00}}, + {2, [3]byte{0xd0, 0x84, 0x00}}, {2, [3]byte{0xd0, 0x85, 0x00}}, + {2, [3]byte{0xd0, 0x86, 0x00}}, {2, [3]byte{0xd0, 0x87, 0x00}}, + {2, [3]byte{0xd0, 0x88, 0x00}}, {2, [3]byte{0xd0, 0x89, 0x00}}, + {2, [3]byte{0xd0, 0x8a, 0x00}}, {2, [3]byte{0xd0, 0x8b, 0x00}}, + {2, [3]byte{0xd0, 0x8c, 0x00}}, {2, [3]byte{0xc2, 0xad, 0x00}}, + {2, [3]byte{0xd0, 0x8e, 0x00}}, {2, [3]byte{0xd0, 0x8f, 0x00}}, + {2, [3]byte{0xd0, 0x90, 0x00}}, {2, [3]byte{0xd0, 0x91, 0x00}}, + {2, [3]byte{0xd0, 0x92, 0x00}}, {2, [3]byte{0xd0, 0x93, 0x00}}, + {2, [3]byte{0xd0, 0x94, 0x00}}, {2, [3]byte{0xd0, 0x95, 0x00}}, + {2, [3]byte{0xd0, 0x96, 0x00}}, {2, [3]byte{0xd0, 0x97, 0x00}}, + {2, [3]byte{0xd0, 0x98, 0x00}}, {2, [3]byte{0xd0, 0x99, 0x00}}, + {2, [3]byte{0xd0, 0x9a, 0x00}}, {2, [3]byte{0xd0, 0x9b, 0x00}}, + {2, [3]byte{0xd0, 0x9c, 0x00}}, {2, [3]byte{0xd0, 0x9d, 0x00}}, + {2, [3]byte{0xd0, 0x9e, 0x00}}, {2, [3]byte{0xd0, 0x9f, 0x00}}, + {2, [3]byte{0xd0, 0xa0, 0x00}}, {2, [3]byte{0xd0, 0xa1, 0x00}}, + {2, [3]byte{0xd0, 0xa2, 0x00}}, {2, [3]byte{0xd0, 0xa3, 0x00}}, + {2, [3]byte{0xd0, 0xa4, 0x00}}, {2, [3]byte{0xd0, 0xa5, 0x00}}, + {2, [3]byte{0xd0, 0xa6, 0x00}}, {2, [3]byte{0xd0, 0xa7, 0x00}}, + {2, [3]byte{0xd0, 0xa8, 0x00}}, {2, [3]byte{0xd0, 0xa9, 0x00}}, + {2, [3]byte{0xd0, 0xaa, 0x00}}, {2, [3]byte{0xd0, 0xab, 0x00}}, + {2, [3]byte{0xd0, 0xac, 0x00}}, {2, [3]byte{0xd0, 0xad, 0x00}}, + {2, [3]byte{0xd0, 0xae, 0x00}}, {2, [3]byte{0xd0, 0xaf, 0x00}}, + {2, [3]byte{0xd0, 0xb0, 0x00}}, {2, [3]byte{0xd0, 0xb1, 0x00}}, + {2, [3]byte{0xd0, 0xb2, 0x00}}, {2, [3]byte{0xd0, 0xb3, 0x00}}, + {2, [3]byte{0xd0, 0xb4, 0x00}}, {2, [3]byte{0xd0, 0xb5, 0x00}}, + {2, [3]byte{0xd0, 0xb6, 0x00}}, {2, [3]byte{0xd0, 0xb7, 0x00}}, + {2, [3]byte{0xd0, 0xb8, 0x00}}, {2, [3]byte{0xd0, 0xb9, 0x00}}, + {2, [3]byte{0xd0, 0xba, 0x00}}, {2, [3]byte{0xd0, 0xbb, 0x00}}, + {2, [3]byte{0xd0, 0xbc, 0x00}}, {2, [3]byte{0xd0, 0xbd, 0x00}}, + {2, [3]byte{0xd0, 0xbe, 0x00}}, {2, [3]byte{0xd0, 0xbf, 0x00}}, + {2, [3]byte{0xd1, 0x80, 0x00}}, {2, [3]byte{0xd1, 0x81, 0x00}}, + {2, [3]byte{0xd1, 0x82, 0x00}}, {2, [3]byte{0xd1, 0x83, 0x00}}, + {2, [3]byte{0xd1, 0x84, 0x00}}, {2, [3]byte{0xd1, 0x85, 0x00}}, + {2, [3]byte{0xd1, 0x86, 0x00}}, {2, [3]byte{0xd1, 0x87, 0x00}}, + {2, [3]byte{0xd1, 0x88, 0x00}}, {2, [3]byte{0xd1, 0x89, 0x00}}, + {2, [3]byte{0xd1, 0x8a, 0x00}}, {2, [3]byte{0xd1, 0x8b, 0x00}}, + {2, [3]byte{0xd1, 0x8c, 0x00}}, {2, [3]byte{0xd1, 0x8d, 0x00}}, + {2, [3]byte{0xd1, 0x8e, 0x00}}, {2, [3]byte{0xd1, 0x8f, 0x00}}, + {3, [3]byte{0xe2, 0x84, 0x96}}, {2, [3]byte{0xd1, 0x91, 0x00}}, + {2, [3]byte{0xd1, 0x92, 0x00}}, {2, [3]byte{0xd1, 0x93, 0x00}}, + {2, [3]byte{0xd1, 0x94, 0x00}}, {2, [3]byte{0xd1, 0x95, 0x00}}, + {2, [3]byte{0xd1, 0x96, 0x00}}, {2, [3]byte{0xd1, 0x97, 0x00}}, + {2, [3]byte{0xd1, 0x98, 0x00}}, {2, [3]byte{0xd1, 0x99, 0x00}}, + {2, [3]byte{0xd1, 0x9a, 0x00}}, {2, [3]byte{0xd1, 0x9b, 0x00}}, + {2, [3]byte{0xd1, 0x9c, 0x00}}, {2, [3]byte{0xc2, 0xa7, 0x00}}, + {2, [3]byte{0xd1, 0x9e, 0x00}}, {2, [3]byte{0xd1, 0x9f, 0x00}}, + }, + encode: [256]uint32{ + 0x00000000, 0x01000001, 0x02000002, 0x03000003, 0x04000004, 0x05000005, 0x06000006, 0x07000007, + 0x08000008, 0x09000009, 0x0a00000a, 0x0b00000b, 0x0c00000c, 0x0d00000d, 0x0e00000e, 0x0f00000f, + 0x10000010, 0x11000011, 0x12000012, 0x13000013, 0x14000014, 0x15000015, 0x16000016, 0x17000017, + 0x18000018, 0x19000019, 0x1a00001a, 0x1b00001b, 0x1c00001c, 0x1d00001d, 0x1e00001e, 0x1f00001f, + 0x20000020, 0x21000021, 0x22000022, 0x23000023, 0x24000024, 0x25000025, 0x26000026, 0x27000027, + 0x28000028, 0x29000029, 0x2a00002a, 0x2b00002b, 0x2c00002c, 0x2d00002d, 0x2e00002e, 0x2f00002f, + 0x30000030, 0x31000031, 0x32000032, 0x33000033, 0x34000034, 0x35000035, 0x36000036, 0x37000037, + 0x38000038, 0x39000039, 0x3a00003a, 0x3b00003b, 0x3c00003c, 0x3d00003d, 0x3e00003e, 0x3f00003f, + 0x40000040, 0x41000041, 0x42000042, 0x43000043, 0x44000044, 0x45000045, 0x46000046, 0x47000047, + 0x48000048, 0x49000049, 0x4a00004a, 0x4b00004b, 0x4c00004c, 0x4d00004d, 0x4e00004e, 0x4f00004f, + 0x50000050, 0x51000051, 0x52000052, 0x53000053, 0x54000054, 0x55000055, 0x56000056, 0x57000057, + 0x58000058, 0x59000059, 0x5a00005a, 0x5b00005b, 0x5c00005c, 0x5d00005d, 0x5e00005e, 0x5f00005f, + 0x60000060, 0x61000061, 0x62000062, 0x63000063, 0x64000064, 0x65000065, 0x66000066, 0x67000067, + 0x68000068, 0x69000069, 0x6a00006a, 0x6b00006b, 0x6c00006c, 0x6d00006d, 0x6e00006e, 0x6f00006f, + 0x70000070, 0x71000071, 0x72000072, 0x73000073, 0x74000074, 0x75000075, 0x76000076, 0x77000077, + 0x78000078, 0x79000079, 0x7a00007a, 0x7b00007b, 0x7c00007c, 0x7d00007d, 0x7e00007e, 0x7f00007f, + 0xa00000a0, 0xfd0000a7, 0xad0000ad, 0xa1000401, 0xa2000402, 0xa3000403, 0xa4000404, 0xa5000405, + 0xa6000406, 0xa7000407, 0xa8000408, 0xa9000409, 0xaa00040a, 0xab00040b, 0xac00040c, 0xae00040e, + 0xaf00040f, 0xb0000410, 0xb1000411, 0xb2000412, 0xb3000413, 0xb4000414, 0xb5000415, 0xb6000416, + 0xb7000417, 0xb8000418, 0xb9000419, 0xba00041a, 0xbb00041b, 0xbc00041c, 0xbd00041d, 0xbe00041e, + 0xbf00041f, 0xc0000420, 0xc1000421, 0xc2000422, 0xc3000423, 0xc4000424, 0xc5000425, 0xc6000426, + 0xc7000427, 0xc8000428, 0xc9000429, 0xca00042a, 0xcb00042b, 0xcc00042c, 0xcd00042d, 0xce00042e, + 0xcf00042f, 0xd0000430, 0xd1000431, 0xd2000432, 0xd3000433, 0xd4000434, 0xd5000435, 0xd6000436, + 0xd7000437, 0xd8000438, 0xd9000439, 0xda00043a, 0xdb00043b, 0xdc00043c, 0xdd00043d, 0xde00043e, + 0xdf00043f, 0xe0000440, 0xe1000441, 0xe2000442, 0xe3000443, 0xe4000444, 0xe5000445, 0xe6000446, + 0xe7000447, 0xe8000448, 0xe9000449, 0xea00044a, 0xeb00044b, 0xec00044c, 0xed00044d, 0xee00044e, + 0xef00044f, 0xf1000451, 0xf2000452, 0xf3000453, 0xf4000454, 0xf5000455, 0xf6000456, 0xf7000457, + 0xf8000458, 0xf9000459, 0xfa00045a, 0xfb00045b, 0xfc00045c, 0xfe00045e, 0xff00045f, 0xf0002116, + 0xf0002116, 0xf0002116, 0xf0002116, 0xf0002116, 0xf0002116, 0xf0002116, 0xf0002116, 0xf0002116, + 0xf0002116, 0xf0002116, 0xf0002116, 0xf0002116, 0xf0002116, 0xf0002116, 0xf0002116, 0xf0002116, + 0xf0002116, 0xf0002116, 0xf0002116, 0xf0002116, 0xf0002116, 0xf0002116, 0xf0002116, 0xf0002116, + 0xf0002116, 0xf0002116, 0xf0002116, 0xf0002116, 0xf0002116, 0xf0002116, 0xf0002116, 0xf0002116, + }, +} + +// ISO8859_6 is the ISO 8859-6 encoding. +var ISO8859_6 *Charmap = &iso8859_6 + +var iso8859_6 = Charmap{ + name: "ISO 8859-6", + mib: identifier.ISOLatinArabic, + asciiSuperset: true, + low: 0x80, + replacement: 0x1a, + decode: [256]utf8Enc{ + {1, [3]byte{0x00, 0x00, 0x00}}, {1, [3]byte{0x01, 0x00, 0x00}}, + {1, [3]byte{0x02, 0x00, 0x00}}, {1, [3]byte{0x03, 0x00, 0x00}}, + {1, [3]byte{0x04, 0x00, 0x00}}, {1, [3]byte{0x05, 0x00, 0x00}}, + {1, [3]byte{0x06, 0x00, 0x00}}, {1, [3]byte{0x07, 0x00, 0x00}}, + {1, [3]byte{0x08, 0x00, 0x00}}, {1, [3]byte{0x09, 0x00, 0x00}}, + {1, [3]byte{0x0a, 0x00, 0x00}}, {1, [3]byte{0x0b, 0x00, 0x00}}, + {1, [3]byte{0x0c, 0x00, 0x00}}, {1, [3]byte{0x0d, 0x00, 0x00}}, + {1, [3]byte{0x0e, 0x00, 0x00}}, {1, [3]byte{0x0f, 0x00, 0x00}}, + {1, [3]byte{0x10, 0x00, 0x00}}, {1, [3]byte{0x11, 0x00, 0x00}}, + {1, [3]byte{0x12, 0x00, 0x00}}, {1, [3]byte{0x13, 0x00, 0x00}}, + {1, [3]byte{0x14, 0x00, 0x00}}, {1, [3]byte{0x15, 0x00, 0x00}}, + {1, [3]byte{0x16, 0x00, 0x00}}, {1, [3]byte{0x17, 0x00, 0x00}}, + {1, [3]byte{0x18, 0x00, 0x00}}, {1, [3]byte{0x19, 0x00, 0x00}}, + {1, [3]byte{0x1a, 0x00, 0x00}}, {1, [3]byte{0x1b, 0x00, 0x00}}, + {1, [3]byte{0x1c, 0x00, 0x00}}, {1, [3]byte{0x1d, 0x00, 0x00}}, + {1, [3]byte{0x1e, 0x00, 0x00}}, {1, [3]byte{0x1f, 0x00, 0x00}}, + {1, [3]byte{0x20, 0x00, 0x00}}, {1, [3]byte{0x21, 0x00, 0x00}}, + {1, [3]byte{0x22, 0x00, 0x00}}, {1, [3]byte{0x23, 0x00, 0x00}}, + {1, [3]byte{0x24, 0x00, 0x00}}, {1, [3]byte{0x25, 0x00, 0x00}}, + {1, [3]byte{0x26, 0x00, 0x00}}, {1, [3]byte{0x27, 0x00, 0x00}}, + {1, [3]byte{0x28, 0x00, 0x00}}, {1, [3]byte{0x29, 0x00, 0x00}}, + {1, [3]byte{0x2a, 0x00, 0x00}}, {1, [3]byte{0x2b, 0x00, 0x00}}, + {1, [3]byte{0x2c, 0x00, 0x00}}, {1, [3]byte{0x2d, 0x00, 0x00}}, + {1, [3]byte{0x2e, 0x00, 0x00}}, {1, [3]byte{0x2f, 0x00, 0x00}}, + {1, [3]byte{0x30, 0x00, 0x00}}, {1, [3]byte{0x31, 0x00, 0x00}}, + {1, [3]byte{0x32, 0x00, 0x00}}, {1, [3]byte{0x33, 0x00, 0x00}}, + {1, [3]byte{0x34, 0x00, 0x00}}, {1, [3]byte{0x35, 0x00, 0x00}}, + {1, [3]byte{0x36, 0x00, 0x00}}, {1, [3]byte{0x37, 0x00, 0x00}}, + {1, [3]byte{0x38, 0x00, 0x00}}, {1, [3]byte{0x39, 0x00, 0x00}}, + {1, [3]byte{0x3a, 0x00, 0x00}}, {1, [3]byte{0x3b, 0x00, 0x00}}, + {1, [3]byte{0x3c, 0x00, 0x00}}, {1, [3]byte{0x3d, 0x00, 0x00}}, + {1, [3]byte{0x3e, 0x00, 0x00}}, {1, [3]byte{0x3f, 0x00, 0x00}}, + {1, [3]byte{0x40, 0x00, 0x00}}, {1, [3]byte{0x41, 0x00, 0x00}}, + {1, [3]byte{0x42, 0x00, 0x00}}, {1, [3]byte{0x43, 0x00, 0x00}}, + {1, [3]byte{0x44, 0x00, 0x00}}, {1, [3]byte{0x45, 0x00, 0x00}}, + {1, [3]byte{0x46, 0x00, 0x00}}, {1, [3]byte{0x47, 0x00, 0x00}}, + {1, [3]byte{0x48, 0x00, 0x00}}, {1, [3]byte{0x49, 0x00, 0x00}}, + {1, [3]byte{0x4a, 0x00, 0x00}}, {1, [3]byte{0x4b, 0x00, 0x00}}, + {1, [3]byte{0x4c, 0x00, 0x00}}, {1, [3]byte{0x4d, 0x00, 0x00}}, + {1, [3]byte{0x4e, 0x00, 0x00}}, {1, [3]byte{0x4f, 0x00, 0x00}}, + {1, [3]byte{0x50, 0x00, 0x00}}, {1, [3]byte{0x51, 0x00, 0x00}}, + {1, [3]byte{0x52, 0x00, 0x00}}, {1, [3]byte{0x53, 0x00, 0x00}}, + {1, [3]byte{0x54, 0x00, 0x00}}, {1, [3]byte{0x55, 0x00, 0x00}}, + {1, [3]byte{0x56, 0x00, 0x00}}, {1, [3]byte{0x57, 0x00, 0x00}}, + {1, [3]byte{0x58, 0x00, 0x00}}, {1, [3]byte{0x59, 0x00, 0x00}}, + {1, [3]byte{0x5a, 0x00, 0x00}}, {1, [3]byte{0x5b, 0x00, 0x00}}, + {1, [3]byte{0x5c, 0x00, 0x00}}, {1, [3]byte{0x5d, 0x00, 0x00}}, + {1, [3]byte{0x5e, 0x00, 0x00}}, {1, [3]byte{0x5f, 0x00, 0x00}}, + {1, [3]byte{0x60, 0x00, 0x00}}, {1, [3]byte{0x61, 0x00, 0x00}}, + {1, [3]byte{0x62, 0x00, 0x00}}, {1, [3]byte{0x63, 0x00, 0x00}}, + {1, [3]byte{0x64, 0x00, 0x00}}, {1, [3]byte{0x65, 0x00, 0x00}}, + {1, [3]byte{0x66, 0x00, 0x00}}, {1, [3]byte{0x67, 0x00, 0x00}}, + {1, [3]byte{0x68, 0x00, 0x00}}, {1, [3]byte{0x69, 0x00, 0x00}}, + {1, [3]byte{0x6a, 0x00, 0x00}}, {1, [3]byte{0x6b, 0x00, 0x00}}, + {1, [3]byte{0x6c, 0x00, 0x00}}, {1, [3]byte{0x6d, 0x00, 0x00}}, + {1, [3]byte{0x6e, 0x00, 0x00}}, {1, [3]byte{0x6f, 0x00, 0x00}}, + {1, [3]byte{0x70, 0x00, 0x00}}, {1, [3]byte{0x71, 0x00, 0x00}}, + {1, [3]byte{0x72, 0x00, 0x00}}, {1, [3]byte{0x73, 0x00, 0x00}}, + {1, [3]byte{0x74, 0x00, 0x00}}, {1, [3]byte{0x75, 0x00, 0x00}}, + {1, [3]byte{0x76, 0x00, 0x00}}, {1, [3]byte{0x77, 0x00, 0x00}}, + {1, [3]byte{0x78, 0x00, 0x00}}, {1, [3]byte{0x79, 0x00, 0x00}}, + {1, [3]byte{0x7a, 0x00, 0x00}}, {1, [3]byte{0x7b, 0x00, 0x00}}, + {1, [3]byte{0x7c, 0x00, 0x00}}, {1, [3]byte{0x7d, 0x00, 0x00}}, + {1, [3]byte{0x7e, 0x00, 0x00}}, {1, [3]byte{0x7f, 0x00, 0x00}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {2, [3]byte{0xc2, 0xa0, 0x00}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {2, [3]byte{0xc2, 0xa4, 0x00}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {2, [3]byte{0xd8, 0x8c, 0x00}}, {2, [3]byte{0xc2, 0xad, 0x00}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {2, [3]byte{0xd8, 0x9b, 0x00}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {2, [3]byte{0xd8, 0x9f, 0x00}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {2, [3]byte{0xd8, 0xa1, 0x00}}, + {2, [3]byte{0xd8, 0xa2, 0x00}}, {2, [3]byte{0xd8, 0xa3, 0x00}}, + {2, [3]byte{0xd8, 0xa4, 0x00}}, {2, [3]byte{0xd8, 0xa5, 0x00}}, + {2, [3]byte{0xd8, 0xa6, 0x00}}, {2, [3]byte{0xd8, 0xa7, 0x00}}, + {2, [3]byte{0xd8, 0xa8, 0x00}}, {2, [3]byte{0xd8, 0xa9, 0x00}}, + {2, [3]byte{0xd8, 0xaa, 0x00}}, {2, [3]byte{0xd8, 0xab, 0x00}}, + {2, [3]byte{0xd8, 0xac, 0x00}}, {2, [3]byte{0xd8, 0xad, 0x00}}, + {2, [3]byte{0xd8, 0xae, 0x00}}, {2, [3]byte{0xd8, 0xaf, 0x00}}, + {2, [3]byte{0xd8, 0xb0, 0x00}}, {2, [3]byte{0xd8, 0xb1, 0x00}}, + {2, [3]byte{0xd8, 0xb2, 0x00}}, {2, [3]byte{0xd8, 0xb3, 0x00}}, + {2, [3]byte{0xd8, 0xb4, 0x00}}, {2, [3]byte{0xd8, 0xb5, 0x00}}, + {2, [3]byte{0xd8, 0xb6, 0x00}}, {2, [3]byte{0xd8, 0xb7, 0x00}}, + {2, [3]byte{0xd8, 0xb8, 0x00}}, {2, [3]byte{0xd8, 0xb9, 0x00}}, + {2, [3]byte{0xd8, 0xba, 0x00}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {2, [3]byte{0xd9, 0x80, 0x00}}, {2, [3]byte{0xd9, 0x81, 0x00}}, + {2, [3]byte{0xd9, 0x82, 0x00}}, {2, [3]byte{0xd9, 0x83, 0x00}}, + {2, [3]byte{0xd9, 0x84, 0x00}}, {2, [3]byte{0xd9, 0x85, 0x00}}, + {2, [3]byte{0xd9, 0x86, 0x00}}, {2, [3]byte{0xd9, 0x87, 0x00}}, + {2, [3]byte{0xd9, 0x88, 0x00}}, {2, [3]byte{0xd9, 0x89, 0x00}}, + {2, [3]byte{0xd9, 0x8a, 0x00}}, {2, [3]byte{0xd9, 0x8b, 0x00}}, + {2, [3]byte{0xd9, 0x8c, 0x00}}, {2, [3]byte{0xd9, 0x8d, 0x00}}, + {2, [3]byte{0xd9, 0x8e, 0x00}}, {2, [3]byte{0xd9, 0x8f, 0x00}}, + {2, [3]byte{0xd9, 0x90, 0x00}}, {2, [3]byte{0xd9, 0x91, 0x00}}, + {2, [3]byte{0xd9, 0x92, 0x00}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + }, + encode: [256]uint32{ + 0x00000000, 0x01000001, 0x02000002, 0x03000003, 0x04000004, 0x05000005, 0x06000006, 0x07000007, + 0x08000008, 0x09000009, 0x0a00000a, 0x0b00000b, 0x0c00000c, 0x0d00000d, 0x0e00000e, 0x0f00000f, + 0x10000010, 0x11000011, 0x12000012, 0x13000013, 0x14000014, 0x15000015, 0x16000016, 0x17000017, + 0x18000018, 0x19000019, 0x1a00001a, 0x1b00001b, 0x1c00001c, 0x1d00001d, 0x1e00001e, 0x1f00001f, + 0x20000020, 0x21000021, 0x22000022, 0x23000023, 0x24000024, 0x25000025, 0x26000026, 0x27000027, + 0x28000028, 0x29000029, 0x2a00002a, 0x2b00002b, 0x2c00002c, 0x2d00002d, 0x2e00002e, 0x2f00002f, + 0x30000030, 0x31000031, 0x32000032, 0x33000033, 0x34000034, 0x35000035, 0x36000036, 0x37000037, + 0x38000038, 0x39000039, 0x3a00003a, 0x3b00003b, 0x3c00003c, 0x3d00003d, 0x3e00003e, 0x3f00003f, + 0x40000040, 0x41000041, 0x42000042, 0x43000043, 0x44000044, 0x45000045, 0x46000046, 0x47000047, + 0x48000048, 0x49000049, 0x4a00004a, 0x4b00004b, 0x4c00004c, 0x4d00004d, 0x4e00004e, 0x4f00004f, + 0x50000050, 0x51000051, 0x52000052, 0x53000053, 0x54000054, 0x55000055, 0x56000056, 0x57000057, + 0x58000058, 0x59000059, 0x5a00005a, 0x5b00005b, 0x5c00005c, 0x5d00005d, 0x5e00005e, 0x5f00005f, + 0x60000060, 0x61000061, 0x62000062, 0x63000063, 0x64000064, 0x65000065, 0x66000066, 0x67000067, + 0x68000068, 0x69000069, 0x6a00006a, 0x6b00006b, 0x6c00006c, 0x6d00006d, 0x6e00006e, 0x6f00006f, + 0x70000070, 0x71000071, 0x72000072, 0x73000073, 0x74000074, 0x75000075, 0x76000076, 0x77000077, + 0x78000078, 0x79000079, 0x7a00007a, 0x7b00007b, 0x7c00007c, 0x7d00007d, 0x7e00007e, 0x7f00007f, + 0xa00000a0, 0xa40000a4, 0xad0000ad, 0xac00060c, 0xbb00061b, 0xbf00061f, 0xc1000621, 0xc2000622, + 0xc3000623, 0xc4000624, 0xc5000625, 0xc6000626, 0xc7000627, 0xc8000628, 0xc9000629, 0xca00062a, + 0xcb00062b, 0xcc00062c, 0xcd00062d, 0xce00062e, 0xcf00062f, 0xd0000630, 0xd1000631, 0xd2000632, + 0xd3000633, 0xd4000634, 0xd5000635, 0xd6000636, 0xd7000637, 0xd8000638, 0xd9000639, 0xda00063a, + 0xe0000640, 0xe1000641, 0xe2000642, 0xe3000643, 0xe4000644, 0xe5000645, 0xe6000646, 0xe7000647, + 0xe8000648, 0xe9000649, 0xea00064a, 0xeb00064b, 0xec00064c, 0xed00064d, 0xee00064e, 0xef00064f, + 0xf0000650, 0xf1000651, 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652, + 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652, + 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652, + 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652, + 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652, + 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652, + 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652, + 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652, + 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652, + 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652, + }, +} + +// ISO8859_7 is the ISO 8859-7 encoding. +var ISO8859_7 *Charmap = &iso8859_7 + +var iso8859_7 = Charmap{ + name: "ISO 8859-7", + mib: identifier.ISOLatinGreek, + asciiSuperset: true, + low: 0x80, + replacement: 0x1a, + decode: [256]utf8Enc{ + {1, [3]byte{0x00, 0x00, 0x00}}, {1, [3]byte{0x01, 0x00, 0x00}}, + {1, [3]byte{0x02, 0x00, 0x00}}, {1, [3]byte{0x03, 0x00, 0x00}}, + {1, [3]byte{0x04, 0x00, 0x00}}, {1, [3]byte{0x05, 0x00, 0x00}}, + {1, [3]byte{0x06, 0x00, 0x00}}, {1, [3]byte{0x07, 0x00, 0x00}}, + {1, [3]byte{0x08, 0x00, 0x00}}, {1, [3]byte{0x09, 0x00, 0x00}}, + {1, [3]byte{0x0a, 0x00, 0x00}}, {1, [3]byte{0x0b, 0x00, 0x00}}, + {1, [3]byte{0x0c, 0x00, 0x00}}, {1, [3]byte{0x0d, 0x00, 0x00}}, + {1, [3]byte{0x0e, 0x00, 0x00}}, {1, [3]byte{0x0f, 0x00, 0x00}}, + {1, [3]byte{0x10, 0x00, 0x00}}, {1, [3]byte{0x11, 0x00, 0x00}}, + {1, [3]byte{0x12, 0x00, 0x00}}, {1, [3]byte{0x13, 0x00, 0x00}}, + {1, [3]byte{0x14, 0x00, 0x00}}, {1, [3]byte{0x15, 0x00, 0x00}}, + {1, [3]byte{0x16, 0x00, 0x00}}, {1, [3]byte{0x17, 0x00, 0x00}}, + {1, [3]byte{0x18, 0x00, 0x00}}, {1, [3]byte{0x19, 0x00, 0x00}}, + {1, [3]byte{0x1a, 0x00, 0x00}}, {1, [3]byte{0x1b, 0x00, 0x00}}, + {1, [3]byte{0x1c, 0x00, 0x00}}, {1, [3]byte{0x1d, 0x00, 0x00}}, + {1, [3]byte{0x1e, 0x00, 0x00}}, {1, [3]byte{0x1f, 0x00, 0x00}}, + {1, [3]byte{0x20, 0x00, 0x00}}, {1, [3]byte{0x21, 0x00, 0x00}}, + {1, [3]byte{0x22, 0x00, 0x00}}, {1, [3]byte{0x23, 0x00, 0x00}}, + {1, [3]byte{0x24, 0x00, 0x00}}, {1, [3]byte{0x25, 0x00, 0x00}}, + {1, [3]byte{0x26, 0x00, 0x00}}, {1, [3]byte{0x27, 0x00, 0x00}}, + {1, [3]byte{0x28, 0x00, 0x00}}, {1, [3]byte{0x29, 0x00, 0x00}}, + {1, [3]byte{0x2a, 0x00, 0x00}}, {1, [3]byte{0x2b, 0x00, 0x00}}, + {1, [3]byte{0x2c, 0x00, 0x00}}, {1, [3]byte{0x2d, 0x00, 0x00}}, + {1, [3]byte{0x2e, 0x00, 0x00}}, {1, [3]byte{0x2f, 0x00, 0x00}}, + {1, [3]byte{0x30, 0x00, 0x00}}, {1, [3]byte{0x31, 0x00, 0x00}}, + {1, [3]byte{0x32, 0x00, 0x00}}, {1, [3]byte{0x33, 0x00, 0x00}}, + {1, [3]byte{0x34, 0x00, 0x00}}, {1, [3]byte{0x35, 0x00, 0x00}}, + {1, [3]byte{0x36, 0x00, 0x00}}, {1, [3]byte{0x37, 0x00, 0x00}}, + {1, [3]byte{0x38, 0x00, 0x00}}, {1, [3]byte{0x39, 0x00, 0x00}}, + {1, [3]byte{0x3a, 0x00, 0x00}}, {1, [3]byte{0x3b, 0x00, 0x00}}, + {1, [3]byte{0x3c, 0x00, 0x00}}, {1, [3]byte{0x3d, 0x00, 0x00}}, + {1, [3]byte{0x3e, 0x00, 0x00}}, {1, [3]byte{0x3f, 0x00, 0x00}}, + {1, [3]byte{0x40, 0x00, 0x00}}, {1, [3]byte{0x41, 0x00, 0x00}}, + {1, [3]byte{0x42, 0x00, 0x00}}, {1, [3]byte{0x43, 0x00, 0x00}}, + {1, [3]byte{0x44, 0x00, 0x00}}, {1, [3]byte{0x45, 0x00, 0x00}}, + {1, [3]byte{0x46, 0x00, 0x00}}, {1, [3]byte{0x47, 0x00, 0x00}}, + {1, [3]byte{0x48, 0x00, 0x00}}, {1, [3]byte{0x49, 0x00, 0x00}}, + {1, [3]byte{0x4a, 0x00, 0x00}}, {1, [3]byte{0x4b, 0x00, 0x00}}, + {1, [3]byte{0x4c, 0x00, 0x00}}, {1, [3]byte{0x4d, 0x00, 0x00}}, + {1, [3]byte{0x4e, 0x00, 0x00}}, {1, [3]byte{0x4f, 0x00, 0x00}}, + {1, [3]byte{0x50, 0x00, 0x00}}, {1, [3]byte{0x51, 0x00, 0x00}}, + {1, [3]byte{0x52, 0x00, 0x00}}, {1, [3]byte{0x53, 0x00, 0x00}}, + {1, [3]byte{0x54, 0x00, 0x00}}, {1, [3]byte{0x55, 0x00, 0x00}}, + {1, [3]byte{0x56, 0x00, 0x00}}, {1, [3]byte{0x57, 0x00, 0x00}}, + {1, [3]byte{0x58, 0x00, 0x00}}, {1, [3]byte{0x59, 0x00, 0x00}}, + {1, [3]byte{0x5a, 0x00, 0x00}}, {1, [3]byte{0x5b, 0x00, 0x00}}, + {1, [3]byte{0x5c, 0x00, 0x00}}, {1, [3]byte{0x5d, 0x00, 0x00}}, + {1, [3]byte{0x5e, 0x00, 0x00}}, {1, [3]byte{0x5f, 0x00, 0x00}}, + {1, [3]byte{0x60, 0x00, 0x00}}, {1, [3]byte{0x61, 0x00, 0x00}}, + {1, [3]byte{0x62, 0x00, 0x00}}, {1, [3]byte{0x63, 0x00, 0x00}}, + {1, [3]byte{0x64, 0x00, 0x00}}, {1, [3]byte{0x65, 0x00, 0x00}}, + {1, [3]byte{0x66, 0x00, 0x00}}, {1, [3]byte{0x67, 0x00, 0x00}}, + {1, [3]byte{0x68, 0x00, 0x00}}, {1, [3]byte{0x69, 0x00, 0x00}}, + {1, [3]byte{0x6a, 0x00, 0x00}}, {1, [3]byte{0x6b, 0x00, 0x00}}, + {1, [3]byte{0x6c, 0x00, 0x00}}, {1, [3]byte{0x6d, 0x00, 0x00}}, + {1, [3]byte{0x6e, 0x00, 0x00}}, {1, [3]byte{0x6f, 0x00, 0x00}}, + {1, [3]byte{0x70, 0x00, 0x00}}, {1, [3]byte{0x71, 0x00, 0x00}}, + {1, [3]byte{0x72, 0x00, 0x00}}, {1, [3]byte{0x73, 0x00, 0x00}}, + {1, [3]byte{0x74, 0x00, 0x00}}, {1, [3]byte{0x75, 0x00, 0x00}}, + {1, [3]byte{0x76, 0x00, 0x00}}, {1, [3]byte{0x77, 0x00, 0x00}}, + {1, [3]byte{0x78, 0x00, 0x00}}, {1, [3]byte{0x79, 0x00, 0x00}}, + {1, [3]byte{0x7a, 0x00, 0x00}}, {1, [3]byte{0x7b, 0x00, 0x00}}, + {1, [3]byte{0x7c, 0x00, 0x00}}, {1, [3]byte{0x7d, 0x00, 0x00}}, + {1, [3]byte{0x7e, 0x00, 0x00}}, {1, [3]byte{0x7f, 0x00, 0x00}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {2, [3]byte{0xc2, 0xa0, 0x00}}, {3, [3]byte{0xe2, 0x80, 0x98}}, + {3, [3]byte{0xe2, 0x80, 0x99}}, {2, [3]byte{0xc2, 0xa3, 0x00}}, + {3, [3]byte{0xe2, 0x82, 0xac}}, {3, [3]byte{0xe2, 0x82, 0xaf}}, + {2, [3]byte{0xc2, 0xa6, 0x00}}, {2, [3]byte{0xc2, 0xa7, 0x00}}, + {2, [3]byte{0xc2, 0xa8, 0x00}}, {2, [3]byte{0xc2, 0xa9, 0x00}}, + {2, [3]byte{0xcd, 0xba, 0x00}}, {2, [3]byte{0xc2, 0xab, 0x00}}, + {2, [3]byte{0xc2, 0xac, 0x00}}, {2, [3]byte{0xc2, 0xad, 0x00}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xe2, 0x80, 0x95}}, + {2, [3]byte{0xc2, 0xb0, 0x00}}, {2, [3]byte{0xc2, 0xb1, 0x00}}, + {2, [3]byte{0xc2, 0xb2, 0x00}}, {2, [3]byte{0xc2, 0xb3, 0x00}}, + {2, [3]byte{0xce, 0x84, 0x00}}, {2, [3]byte{0xce, 0x85, 0x00}}, + {2, [3]byte{0xce, 0x86, 0x00}}, {2, [3]byte{0xc2, 0xb7, 0x00}}, + {2, [3]byte{0xce, 0x88, 0x00}}, {2, [3]byte{0xce, 0x89, 0x00}}, + {2, [3]byte{0xce, 0x8a, 0x00}}, {2, [3]byte{0xc2, 0xbb, 0x00}}, + {2, [3]byte{0xce, 0x8c, 0x00}}, {2, [3]byte{0xc2, 0xbd, 0x00}}, + {2, [3]byte{0xce, 0x8e, 0x00}}, {2, [3]byte{0xce, 0x8f, 0x00}}, + {2, [3]byte{0xce, 0x90, 0x00}}, {2, [3]byte{0xce, 0x91, 0x00}}, + {2, [3]byte{0xce, 0x92, 0x00}}, {2, [3]byte{0xce, 0x93, 0x00}}, + {2, [3]byte{0xce, 0x94, 0x00}}, {2, [3]byte{0xce, 0x95, 0x00}}, + {2, [3]byte{0xce, 0x96, 0x00}}, {2, [3]byte{0xce, 0x97, 0x00}}, + {2, [3]byte{0xce, 0x98, 0x00}}, {2, [3]byte{0xce, 0x99, 0x00}}, + {2, [3]byte{0xce, 0x9a, 0x00}}, {2, [3]byte{0xce, 0x9b, 0x00}}, + {2, [3]byte{0xce, 0x9c, 0x00}}, {2, [3]byte{0xce, 0x9d, 0x00}}, + {2, [3]byte{0xce, 0x9e, 0x00}}, {2, [3]byte{0xce, 0x9f, 0x00}}, + {2, [3]byte{0xce, 0xa0, 0x00}}, {2, [3]byte{0xce, 0xa1, 0x00}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {2, [3]byte{0xce, 0xa3, 0x00}}, + {2, [3]byte{0xce, 0xa4, 0x00}}, {2, [3]byte{0xce, 0xa5, 0x00}}, + {2, [3]byte{0xce, 0xa6, 0x00}}, {2, [3]byte{0xce, 0xa7, 0x00}}, + {2, [3]byte{0xce, 0xa8, 0x00}}, {2, [3]byte{0xce, 0xa9, 0x00}}, + {2, [3]byte{0xce, 0xaa, 0x00}}, {2, [3]byte{0xce, 0xab, 0x00}}, + {2, [3]byte{0xce, 0xac, 0x00}}, {2, [3]byte{0xce, 0xad, 0x00}}, + {2, [3]byte{0xce, 0xae, 0x00}}, {2, [3]byte{0xce, 0xaf, 0x00}}, + {2, [3]byte{0xce, 0xb0, 0x00}}, {2, [3]byte{0xce, 0xb1, 0x00}}, + {2, [3]byte{0xce, 0xb2, 0x00}}, {2, [3]byte{0xce, 0xb3, 0x00}}, + {2, [3]byte{0xce, 0xb4, 0x00}}, {2, [3]byte{0xce, 0xb5, 0x00}}, + {2, [3]byte{0xce, 0xb6, 0x00}}, {2, [3]byte{0xce, 0xb7, 0x00}}, + {2, [3]byte{0xce, 0xb8, 0x00}}, {2, [3]byte{0xce, 0xb9, 0x00}}, + {2, [3]byte{0xce, 0xba, 0x00}}, {2, [3]byte{0xce, 0xbb, 0x00}}, + {2, [3]byte{0xce, 0xbc, 0x00}}, {2, [3]byte{0xce, 0xbd, 0x00}}, + {2, [3]byte{0xce, 0xbe, 0x00}}, {2, [3]byte{0xce, 0xbf, 0x00}}, + {2, [3]byte{0xcf, 0x80, 0x00}}, {2, [3]byte{0xcf, 0x81, 0x00}}, + {2, [3]byte{0xcf, 0x82, 0x00}}, {2, [3]byte{0xcf, 0x83, 0x00}}, + {2, [3]byte{0xcf, 0x84, 0x00}}, {2, [3]byte{0xcf, 0x85, 0x00}}, + {2, [3]byte{0xcf, 0x86, 0x00}}, {2, [3]byte{0xcf, 0x87, 0x00}}, + {2, [3]byte{0xcf, 0x88, 0x00}}, {2, [3]byte{0xcf, 0x89, 0x00}}, + {2, [3]byte{0xcf, 0x8a, 0x00}}, {2, [3]byte{0xcf, 0x8b, 0x00}}, + {2, [3]byte{0xcf, 0x8c, 0x00}}, {2, [3]byte{0xcf, 0x8d, 0x00}}, + {2, [3]byte{0xcf, 0x8e, 0x00}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + }, + encode: [256]uint32{ + 0x00000000, 0x01000001, 0x02000002, 0x03000003, 0x04000004, 0x05000005, 0x06000006, 0x07000007, + 0x08000008, 0x09000009, 0x0a00000a, 0x0b00000b, 0x0c00000c, 0x0d00000d, 0x0e00000e, 0x0f00000f, + 0x10000010, 0x11000011, 0x12000012, 0x13000013, 0x14000014, 0x15000015, 0x16000016, 0x17000017, + 0x18000018, 0x19000019, 0x1a00001a, 0x1b00001b, 0x1c00001c, 0x1d00001d, 0x1e00001e, 0x1f00001f, + 0x20000020, 0x21000021, 0x22000022, 0x23000023, 0x24000024, 0x25000025, 0x26000026, 0x27000027, + 0x28000028, 0x29000029, 0x2a00002a, 0x2b00002b, 0x2c00002c, 0x2d00002d, 0x2e00002e, 0x2f00002f, + 0x30000030, 0x31000031, 0x32000032, 0x33000033, 0x34000034, 0x35000035, 0x36000036, 0x37000037, + 0x38000038, 0x39000039, 0x3a00003a, 0x3b00003b, 0x3c00003c, 0x3d00003d, 0x3e00003e, 0x3f00003f, + 0x40000040, 0x41000041, 0x42000042, 0x43000043, 0x44000044, 0x45000045, 0x46000046, 0x47000047, + 0x48000048, 0x49000049, 0x4a00004a, 0x4b00004b, 0x4c00004c, 0x4d00004d, 0x4e00004e, 0x4f00004f, + 0x50000050, 0x51000051, 0x52000052, 0x53000053, 0x54000054, 0x55000055, 0x56000056, 0x57000057, + 0x58000058, 0x59000059, 0x5a00005a, 0x5b00005b, 0x5c00005c, 0x5d00005d, 0x5e00005e, 0x5f00005f, + 0x60000060, 0x61000061, 0x62000062, 0x63000063, 0x64000064, 0x65000065, 0x66000066, 0x67000067, + 0x68000068, 0x69000069, 0x6a00006a, 0x6b00006b, 0x6c00006c, 0x6d00006d, 0x6e00006e, 0x6f00006f, + 0x70000070, 0x71000071, 0x72000072, 0x73000073, 0x74000074, 0x75000075, 0x76000076, 0x77000077, + 0x78000078, 0x79000079, 0x7a00007a, 0x7b00007b, 0x7c00007c, 0x7d00007d, 0x7e00007e, 0x7f00007f, + 0xa00000a0, 0xa30000a3, 0xa60000a6, 0xa70000a7, 0xa80000a8, 0xa90000a9, 0xab0000ab, 0xac0000ac, + 0xad0000ad, 0xb00000b0, 0xb10000b1, 0xb20000b2, 0xb30000b3, 0xb70000b7, 0xbb0000bb, 0xbd0000bd, + 0xaa00037a, 0xb4000384, 0xb5000385, 0xb6000386, 0xb8000388, 0xb9000389, 0xba00038a, 0xbc00038c, + 0xbe00038e, 0xbf00038f, 0xc0000390, 0xc1000391, 0xc2000392, 0xc3000393, 0xc4000394, 0xc5000395, + 0xc6000396, 0xc7000397, 0xc8000398, 0xc9000399, 0xca00039a, 0xcb00039b, 0xcc00039c, 0xcd00039d, + 0xce00039e, 0xcf00039f, 0xd00003a0, 0xd10003a1, 0xd30003a3, 0xd40003a4, 0xd50003a5, 0xd60003a6, + 0xd70003a7, 0xd80003a8, 0xd90003a9, 0xda0003aa, 0xdb0003ab, 0xdc0003ac, 0xdd0003ad, 0xde0003ae, + 0xdf0003af, 0xe00003b0, 0xe10003b1, 0xe20003b2, 0xe30003b3, 0xe40003b4, 0xe50003b5, 0xe60003b6, + 0xe70003b7, 0xe80003b8, 0xe90003b9, 0xea0003ba, 0xeb0003bb, 0xec0003bc, 0xed0003bd, 0xee0003be, + 0xef0003bf, 0xf00003c0, 0xf10003c1, 0xf20003c2, 0xf30003c3, 0xf40003c4, 0xf50003c5, 0xf60003c6, + 0xf70003c7, 0xf80003c8, 0xf90003c9, 0xfa0003ca, 0xfb0003cb, 0xfc0003cc, 0xfd0003cd, 0xfe0003ce, + 0xaf002015, 0xa1002018, 0xa2002019, 0xa40020ac, 0xa50020af, 0xa50020af, 0xa50020af, 0xa50020af, + 0xa50020af, 0xa50020af, 0xa50020af, 0xa50020af, 0xa50020af, 0xa50020af, 0xa50020af, 0xa50020af, + 0xa50020af, 0xa50020af, 0xa50020af, 0xa50020af, 0xa50020af, 0xa50020af, 0xa50020af, 0xa50020af, + 0xa50020af, 0xa50020af, 0xa50020af, 0xa50020af, 0xa50020af, 0xa50020af, 0xa50020af, 0xa50020af, + 0xa50020af, 0xa50020af, 0xa50020af, 0xa50020af, 0xa50020af, 0xa50020af, 0xa50020af, 0xa50020af, + }, +} + +// ISO8859_8 is the ISO 8859-8 encoding. +var ISO8859_8 *Charmap = &iso8859_8 + +var iso8859_8 = Charmap{ + name: "ISO 8859-8", + mib: identifier.ISOLatinHebrew, + asciiSuperset: true, + low: 0x80, + replacement: 0x1a, + decode: [256]utf8Enc{ + {1, [3]byte{0x00, 0x00, 0x00}}, {1, [3]byte{0x01, 0x00, 0x00}}, + {1, [3]byte{0x02, 0x00, 0x00}}, {1, [3]byte{0x03, 0x00, 0x00}}, + {1, [3]byte{0x04, 0x00, 0x00}}, {1, [3]byte{0x05, 0x00, 0x00}}, + {1, [3]byte{0x06, 0x00, 0x00}}, {1, [3]byte{0x07, 0x00, 0x00}}, + {1, [3]byte{0x08, 0x00, 0x00}}, {1, [3]byte{0x09, 0x00, 0x00}}, + {1, [3]byte{0x0a, 0x00, 0x00}}, {1, [3]byte{0x0b, 0x00, 0x00}}, + {1, [3]byte{0x0c, 0x00, 0x00}}, {1, [3]byte{0x0d, 0x00, 0x00}}, + {1, [3]byte{0x0e, 0x00, 0x00}}, {1, [3]byte{0x0f, 0x00, 0x00}}, + {1, [3]byte{0x10, 0x00, 0x00}}, {1, [3]byte{0x11, 0x00, 0x00}}, + {1, [3]byte{0x12, 0x00, 0x00}}, {1, [3]byte{0x13, 0x00, 0x00}}, + {1, [3]byte{0x14, 0x00, 0x00}}, {1, [3]byte{0x15, 0x00, 0x00}}, + {1, [3]byte{0x16, 0x00, 0x00}}, {1, [3]byte{0x17, 0x00, 0x00}}, + {1, [3]byte{0x18, 0x00, 0x00}}, {1, [3]byte{0x19, 0x00, 0x00}}, + {1, [3]byte{0x1a, 0x00, 0x00}}, {1, [3]byte{0x1b, 0x00, 0x00}}, + {1, [3]byte{0x1c, 0x00, 0x00}}, {1, [3]byte{0x1d, 0x00, 0x00}}, + {1, [3]byte{0x1e, 0x00, 0x00}}, {1, [3]byte{0x1f, 0x00, 0x00}}, + {1, [3]byte{0x20, 0x00, 0x00}}, {1, [3]byte{0x21, 0x00, 0x00}}, + {1, [3]byte{0x22, 0x00, 0x00}}, {1, [3]byte{0x23, 0x00, 0x00}}, + {1, [3]byte{0x24, 0x00, 0x00}}, {1, [3]byte{0x25, 0x00, 0x00}}, + {1, [3]byte{0x26, 0x00, 0x00}}, {1, [3]byte{0x27, 0x00, 0x00}}, + {1, [3]byte{0x28, 0x00, 0x00}}, {1, [3]byte{0x29, 0x00, 0x00}}, + {1, [3]byte{0x2a, 0x00, 0x00}}, {1, [3]byte{0x2b, 0x00, 0x00}}, + {1, [3]byte{0x2c, 0x00, 0x00}}, {1, [3]byte{0x2d, 0x00, 0x00}}, + {1, [3]byte{0x2e, 0x00, 0x00}}, {1, [3]byte{0x2f, 0x00, 0x00}}, + {1, [3]byte{0x30, 0x00, 0x00}}, {1, [3]byte{0x31, 0x00, 0x00}}, + {1, [3]byte{0x32, 0x00, 0x00}}, {1, [3]byte{0x33, 0x00, 0x00}}, + {1, [3]byte{0x34, 0x00, 0x00}}, {1, [3]byte{0x35, 0x00, 0x00}}, + {1, [3]byte{0x36, 0x00, 0x00}}, {1, [3]byte{0x37, 0x00, 0x00}}, + {1, [3]byte{0x38, 0x00, 0x00}}, {1, [3]byte{0x39, 0x00, 0x00}}, + {1, [3]byte{0x3a, 0x00, 0x00}}, {1, [3]byte{0x3b, 0x00, 0x00}}, + {1, [3]byte{0x3c, 0x00, 0x00}}, {1, [3]byte{0x3d, 0x00, 0x00}}, + {1, [3]byte{0x3e, 0x00, 0x00}}, {1, [3]byte{0x3f, 0x00, 0x00}}, + {1, [3]byte{0x40, 0x00, 0x00}}, {1, [3]byte{0x41, 0x00, 0x00}}, + {1, [3]byte{0x42, 0x00, 0x00}}, {1, [3]byte{0x43, 0x00, 0x00}}, + {1, [3]byte{0x44, 0x00, 0x00}}, {1, [3]byte{0x45, 0x00, 0x00}}, + {1, [3]byte{0x46, 0x00, 0x00}}, {1, [3]byte{0x47, 0x00, 0x00}}, + {1, [3]byte{0x48, 0x00, 0x00}}, {1, [3]byte{0x49, 0x00, 0x00}}, + {1, [3]byte{0x4a, 0x00, 0x00}}, {1, [3]byte{0x4b, 0x00, 0x00}}, + {1, [3]byte{0x4c, 0x00, 0x00}}, {1, [3]byte{0x4d, 0x00, 0x00}}, + {1, [3]byte{0x4e, 0x00, 0x00}}, {1, [3]byte{0x4f, 0x00, 0x00}}, + {1, [3]byte{0x50, 0x00, 0x00}}, {1, [3]byte{0x51, 0x00, 0x00}}, + {1, [3]byte{0x52, 0x00, 0x00}}, {1, [3]byte{0x53, 0x00, 0x00}}, + {1, [3]byte{0x54, 0x00, 0x00}}, {1, [3]byte{0x55, 0x00, 0x00}}, + {1, [3]byte{0x56, 0x00, 0x00}}, {1, [3]byte{0x57, 0x00, 0x00}}, + {1, [3]byte{0x58, 0x00, 0x00}}, {1, [3]byte{0x59, 0x00, 0x00}}, + {1, [3]byte{0x5a, 0x00, 0x00}}, {1, [3]byte{0x5b, 0x00, 0x00}}, + {1, [3]byte{0x5c, 0x00, 0x00}}, {1, [3]byte{0x5d, 0x00, 0x00}}, + {1, [3]byte{0x5e, 0x00, 0x00}}, {1, [3]byte{0x5f, 0x00, 0x00}}, + {1, [3]byte{0x60, 0x00, 0x00}}, {1, [3]byte{0x61, 0x00, 0x00}}, + {1, [3]byte{0x62, 0x00, 0x00}}, {1, [3]byte{0x63, 0x00, 0x00}}, + {1, [3]byte{0x64, 0x00, 0x00}}, {1, [3]byte{0x65, 0x00, 0x00}}, + {1, [3]byte{0x66, 0x00, 0x00}}, {1, [3]byte{0x67, 0x00, 0x00}}, + {1, [3]byte{0x68, 0x00, 0x00}}, {1, [3]byte{0x69, 0x00, 0x00}}, + {1, [3]byte{0x6a, 0x00, 0x00}}, {1, [3]byte{0x6b, 0x00, 0x00}}, + {1, [3]byte{0x6c, 0x00, 0x00}}, {1, [3]byte{0x6d, 0x00, 0x00}}, + {1, [3]byte{0x6e, 0x00, 0x00}}, {1, [3]byte{0x6f, 0x00, 0x00}}, + {1, [3]byte{0x70, 0x00, 0x00}}, {1, [3]byte{0x71, 0x00, 0x00}}, + {1, [3]byte{0x72, 0x00, 0x00}}, {1, [3]byte{0x73, 0x00, 0x00}}, + {1, [3]byte{0x74, 0x00, 0x00}}, {1, [3]byte{0x75, 0x00, 0x00}}, + {1, [3]byte{0x76, 0x00, 0x00}}, {1, [3]byte{0x77, 0x00, 0x00}}, + {1, [3]byte{0x78, 0x00, 0x00}}, {1, [3]byte{0x79, 0x00, 0x00}}, + {1, [3]byte{0x7a, 0x00, 0x00}}, {1, [3]byte{0x7b, 0x00, 0x00}}, + {1, [3]byte{0x7c, 0x00, 0x00}}, {1, [3]byte{0x7d, 0x00, 0x00}}, + {1, [3]byte{0x7e, 0x00, 0x00}}, {1, [3]byte{0x7f, 0x00, 0x00}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {2, [3]byte{0xc2, 0xa0, 0x00}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {2, [3]byte{0xc2, 0xa2, 0x00}}, {2, [3]byte{0xc2, 0xa3, 0x00}}, + {2, [3]byte{0xc2, 0xa4, 0x00}}, {2, [3]byte{0xc2, 0xa5, 0x00}}, + {2, [3]byte{0xc2, 0xa6, 0x00}}, {2, [3]byte{0xc2, 0xa7, 0x00}}, + {2, [3]byte{0xc2, 0xa8, 0x00}}, {2, [3]byte{0xc2, 0xa9, 0x00}}, + {2, [3]byte{0xc3, 0x97, 0x00}}, {2, [3]byte{0xc2, 0xab, 0x00}}, + {2, [3]byte{0xc2, 0xac, 0x00}}, {2, [3]byte{0xc2, 0xad, 0x00}}, + {2, [3]byte{0xc2, 0xae, 0x00}}, {2, [3]byte{0xc2, 0xaf, 0x00}}, + {2, [3]byte{0xc2, 0xb0, 0x00}}, {2, [3]byte{0xc2, 0xb1, 0x00}}, + {2, [3]byte{0xc2, 0xb2, 0x00}}, {2, [3]byte{0xc2, 0xb3, 0x00}}, + {2, [3]byte{0xc2, 0xb4, 0x00}}, {2, [3]byte{0xc2, 0xb5, 0x00}}, + {2, [3]byte{0xc2, 0xb6, 0x00}}, {2, [3]byte{0xc2, 0xb7, 0x00}}, + {2, [3]byte{0xc2, 0xb8, 0x00}}, {2, [3]byte{0xc2, 0xb9, 0x00}}, + {2, [3]byte{0xc3, 0xb7, 0x00}}, {2, [3]byte{0xc2, 0xbb, 0x00}}, + {2, [3]byte{0xc2, 0xbc, 0x00}}, {2, [3]byte{0xc2, 0xbd, 0x00}}, + {2, [3]byte{0xc2, 0xbe, 0x00}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xe2, 0x80, 0x97}}, + {2, [3]byte{0xd7, 0x90, 0x00}}, {2, [3]byte{0xd7, 0x91, 0x00}}, + {2, [3]byte{0xd7, 0x92, 0x00}}, {2, [3]byte{0xd7, 0x93, 0x00}}, + {2, [3]byte{0xd7, 0x94, 0x00}}, {2, [3]byte{0xd7, 0x95, 0x00}}, + {2, [3]byte{0xd7, 0x96, 0x00}}, {2, [3]byte{0xd7, 0x97, 0x00}}, + {2, [3]byte{0xd7, 0x98, 0x00}}, {2, [3]byte{0xd7, 0x99, 0x00}}, + {2, [3]byte{0xd7, 0x9a, 0x00}}, {2, [3]byte{0xd7, 0x9b, 0x00}}, + {2, [3]byte{0xd7, 0x9c, 0x00}}, {2, [3]byte{0xd7, 0x9d, 0x00}}, + {2, [3]byte{0xd7, 0x9e, 0x00}}, {2, [3]byte{0xd7, 0x9f, 0x00}}, + {2, [3]byte{0xd7, 0xa0, 0x00}}, {2, [3]byte{0xd7, 0xa1, 0x00}}, + {2, [3]byte{0xd7, 0xa2, 0x00}}, {2, [3]byte{0xd7, 0xa3, 0x00}}, + {2, [3]byte{0xd7, 0xa4, 0x00}}, {2, [3]byte{0xd7, 0xa5, 0x00}}, + {2, [3]byte{0xd7, 0xa6, 0x00}}, {2, [3]byte{0xd7, 0xa7, 0x00}}, + {2, [3]byte{0xd7, 0xa8, 0x00}}, {2, [3]byte{0xd7, 0xa9, 0x00}}, + {2, [3]byte{0xd7, 0xaa, 0x00}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xe2, 0x80, 0x8e}}, + {3, [3]byte{0xe2, 0x80, 0x8f}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + }, + encode: [256]uint32{ + 0x00000000, 0x01000001, 0x02000002, 0x03000003, 0x04000004, 0x05000005, 0x06000006, 0x07000007, + 0x08000008, 0x09000009, 0x0a00000a, 0x0b00000b, 0x0c00000c, 0x0d00000d, 0x0e00000e, 0x0f00000f, + 0x10000010, 0x11000011, 0x12000012, 0x13000013, 0x14000014, 0x15000015, 0x16000016, 0x17000017, + 0x18000018, 0x19000019, 0x1a00001a, 0x1b00001b, 0x1c00001c, 0x1d00001d, 0x1e00001e, 0x1f00001f, + 0x20000020, 0x21000021, 0x22000022, 0x23000023, 0x24000024, 0x25000025, 0x26000026, 0x27000027, + 0x28000028, 0x29000029, 0x2a00002a, 0x2b00002b, 0x2c00002c, 0x2d00002d, 0x2e00002e, 0x2f00002f, + 0x30000030, 0x31000031, 0x32000032, 0x33000033, 0x34000034, 0x35000035, 0x36000036, 0x37000037, + 0x38000038, 0x39000039, 0x3a00003a, 0x3b00003b, 0x3c00003c, 0x3d00003d, 0x3e00003e, 0x3f00003f, + 0x40000040, 0x41000041, 0x42000042, 0x43000043, 0x44000044, 0x45000045, 0x46000046, 0x47000047, + 0x48000048, 0x49000049, 0x4a00004a, 0x4b00004b, 0x4c00004c, 0x4d00004d, 0x4e00004e, 0x4f00004f, + 0x50000050, 0x51000051, 0x52000052, 0x53000053, 0x54000054, 0x55000055, 0x56000056, 0x57000057, + 0x58000058, 0x59000059, 0x5a00005a, 0x5b00005b, 0x5c00005c, 0x5d00005d, 0x5e00005e, 0x5f00005f, + 0x60000060, 0x61000061, 0x62000062, 0x63000063, 0x64000064, 0x65000065, 0x66000066, 0x67000067, + 0x68000068, 0x69000069, 0x6a00006a, 0x6b00006b, 0x6c00006c, 0x6d00006d, 0x6e00006e, 0x6f00006f, + 0x70000070, 0x71000071, 0x72000072, 0x73000073, 0x74000074, 0x75000075, 0x76000076, 0x77000077, + 0x78000078, 0x79000079, 0x7a00007a, 0x7b00007b, 0x7c00007c, 0x7d00007d, 0x7e00007e, 0x7f00007f, + 0xa00000a0, 0xa20000a2, 0xa30000a3, 0xa40000a4, 0xa50000a5, 0xa60000a6, 0xa70000a7, 0xa80000a8, + 0xa90000a9, 0xab0000ab, 0xac0000ac, 0xad0000ad, 0xae0000ae, 0xaf0000af, 0xb00000b0, 0xb10000b1, + 0xb20000b2, 0xb30000b3, 0xb40000b4, 0xb50000b5, 0xb60000b6, 0xb70000b7, 0xb80000b8, 0xb90000b9, + 0xbb0000bb, 0xbc0000bc, 0xbd0000bd, 0xbe0000be, 0xaa0000d7, 0xba0000f7, 0xe00005d0, 0xe10005d1, + 0xe20005d2, 0xe30005d3, 0xe40005d4, 0xe50005d5, 0xe60005d6, 0xe70005d7, 0xe80005d8, 0xe90005d9, + 0xea0005da, 0xeb0005db, 0xec0005dc, 0xed0005dd, 0xee0005de, 0xef0005df, 0xf00005e0, 0xf10005e1, + 0xf20005e2, 0xf30005e3, 0xf40005e4, 0xf50005e5, 0xf60005e6, 0xf70005e7, 0xf80005e8, 0xf90005e9, + 0xfa0005ea, 0xfd00200e, 0xfe00200f, 0xdf002017, 0xdf002017, 0xdf002017, 0xdf002017, 0xdf002017, + 0xdf002017, 0xdf002017, 0xdf002017, 0xdf002017, 0xdf002017, 0xdf002017, 0xdf002017, 0xdf002017, + 0xdf002017, 0xdf002017, 0xdf002017, 0xdf002017, 0xdf002017, 0xdf002017, 0xdf002017, 0xdf002017, + 0xdf002017, 0xdf002017, 0xdf002017, 0xdf002017, 0xdf002017, 0xdf002017, 0xdf002017, 0xdf002017, + 0xdf002017, 0xdf002017, 0xdf002017, 0xdf002017, 0xdf002017, 0xdf002017, 0xdf002017, 0xdf002017, + 0xdf002017, 0xdf002017, 0xdf002017, 0xdf002017, 0xdf002017, 0xdf002017, 0xdf002017, 0xdf002017, + 0xdf002017, 0xdf002017, 0xdf002017, 0xdf002017, 0xdf002017, 0xdf002017, 0xdf002017, 0xdf002017, + 0xdf002017, 0xdf002017, 0xdf002017, 0xdf002017, 0xdf002017, 0xdf002017, 0xdf002017, 0xdf002017, + 0xdf002017, 0xdf002017, 0xdf002017, 0xdf002017, 0xdf002017, 0xdf002017, 0xdf002017, 0xdf002017, + }, +} + +// ISO8859_9 is the ISO 8859-9 encoding. +var ISO8859_9 *Charmap = &iso8859_9 + +var iso8859_9 = Charmap{ + name: "ISO 8859-9", + mib: identifier.ISOLatin5, + asciiSuperset: true, + low: 0x80, + replacement: 0x1a, + decode: [256]utf8Enc{ + {1, [3]byte{0x00, 0x00, 0x00}}, {1, [3]byte{0x01, 0x00, 0x00}}, + {1, [3]byte{0x02, 0x00, 0x00}}, {1, [3]byte{0x03, 0x00, 0x00}}, + {1, [3]byte{0x04, 0x00, 0x00}}, {1, [3]byte{0x05, 0x00, 0x00}}, + {1, [3]byte{0x06, 0x00, 0x00}}, {1, [3]byte{0x07, 0x00, 0x00}}, + {1, [3]byte{0x08, 0x00, 0x00}}, {1, [3]byte{0x09, 0x00, 0x00}}, + {1, [3]byte{0x0a, 0x00, 0x00}}, {1, [3]byte{0x0b, 0x00, 0x00}}, + {1, [3]byte{0x0c, 0x00, 0x00}}, {1, [3]byte{0x0d, 0x00, 0x00}}, + {1, [3]byte{0x0e, 0x00, 0x00}}, {1, [3]byte{0x0f, 0x00, 0x00}}, + {1, [3]byte{0x10, 0x00, 0x00}}, {1, [3]byte{0x11, 0x00, 0x00}}, + {1, [3]byte{0x12, 0x00, 0x00}}, {1, [3]byte{0x13, 0x00, 0x00}}, + {1, [3]byte{0x14, 0x00, 0x00}}, {1, [3]byte{0x15, 0x00, 0x00}}, + {1, [3]byte{0x16, 0x00, 0x00}}, {1, [3]byte{0x17, 0x00, 0x00}}, + {1, [3]byte{0x18, 0x00, 0x00}}, {1, [3]byte{0x19, 0x00, 0x00}}, + {1, [3]byte{0x1a, 0x00, 0x00}}, {1, [3]byte{0x1b, 0x00, 0x00}}, + {1, [3]byte{0x1c, 0x00, 0x00}}, {1, [3]byte{0x1d, 0x00, 0x00}}, + {1, [3]byte{0x1e, 0x00, 0x00}}, {1, [3]byte{0x1f, 0x00, 0x00}}, + {1, [3]byte{0x20, 0x00, 0x00}}, {1, [3]byte{0x21, 0x00, 0x00}}, + {1, [3]byte{0x22, 0x00, 0x00}}, {1, [3]byte{0x23, 0x00, 0x00}}, + {1, [3]byte{0x24, 0x00, 0x00}}, {1, [3]byte{0x25, 0x00, 0x00}}, + {1, [3]byte{0x26, 0x00, 0x00}}, {1, [3]byte{0x27, 0x00, 0x00}}, + {1, [3]byte{0x28, 0x00, 0x00}}, {1, [3]byte{0x29, 0x00, 0x00}}, + {1, [3]byte{0x2a, 0x00, 0x00}}, {1, [3]byte{0x2b, 0x00, 0x00}}, + {1, [3]byte{0x2c, 0x00, 0x00}}, {1, [3]byte{0x2d, 0x00, 0x00}}, + {1, [3]byte{0x2e, 0x00, 0x00}}, {1, [3]byte{0x2f, 0x00, 0x00}}, + {1, [3]byte{0x30, 0x00, 0x00}}, {1, [3]byte{0x31, 0x00, 0x00}}, + {1, [3]byte{0x32, 0x00, 0x00}}, {1, [3]byte{0x33, 0x00, 0x00}}, + {1, [3]byte{0x34, 0x00, 0x00}}, {1, [3]byte{0x35, 0x00, 0x00}}, + {1, [3]byte{0x36, 0x00, 0x00}}, {1, [3]byte{0x37, 0x00, 0x00}}, + {1, [3]byte{0x38, 0x00, 0x00}}, {1, [3]byte{0x39, 0x00, 0x00}}, + {1, [3]byte{0x3a, 0x00, 0x00}}, {1, [3]byte{0x3b, 0x00, 0x00}}, + {1, [3]byte{0x3c, 0x00, 0x00}}, {1, [3]byte{0x3d, 0x00, 0x00}}, + {1, [3]byte{0x3e, 0x00, 0x00}}, {1, [3]byte{0x3f, 0x00, 0x00}}, + {1, [3]byte{0x40, 0x00, 0x00}}, {1, [3]byte{0x41, 0x00, 0x00}}, + {1, [3]byte{0x42, 0x00, 0x00}}, {1, [3]byte{0x43, 0x00, 0x00}}, + {1, [3]byte{0x44, 0x00, 0x00}}, {1, [3]byte{0x45, 0x00, 0x00}}, + {1, [3]byte{0x46, 0x00, 0x00}}, {1, [3]byte{0x47, 0x00, 0x00}}, + {1, [3]byte{0x48, 0x00, 0x00}}, {1, [3]byte{0x49, 0x00, 0x00}}, + {1, [3]byte{0x4a, 0x00, 0x00}}, {1, [3]byte{0x4b, 0x00, 0x00}}, + {1, [3]byte{0x4c, 0x00, 0x00}}, {1, [3]byte{0x4d, 0x00, 0x00}}, + {1, [3]byte{0x4e, 0x00, 0x00}}, {1, [3]byte{0x4f, 0x00, 0x00}}, + {1, [3]byte{0x50, 0x00, 0x00}}, {1, [3]byte{0x51, 0x00, 0x00}}, + {1, [3]byte{0x52, 0x00, 0x00}}, {1, [3]byte{0x53, 0x00, 0x00}}, + {1, [3]byte{0x54, 0x00, 0x00}}, {1, [3]byte{0x55, 0x00, 0x00}}, + {1, [3]byte{0x56, 0x00, 0x00}}, {1, [3]byte{0x57, 0x00, 0x00}}, + {1, [3]byte{0x58, 0x00, 0x00}}, {1, [3]byte{0x59, 0x00, 0x00}}, + {1, [3]byte{0x5a, 0x00, 0x00}}, {1, [3]byte{0x5b, 0x00, 0x00}}, + {1, [3]byte{0x5c, 0x00, 0x00}}, {1, [3]byte{0x5d, 0x00, 0x00}}, + {1, [3]byte{0x5e, 0x00, 0x00}}, {1, [3]byte{0x5f, 0x00, 0x00}}, + {1, [3]byte{0x60, 0x00, 0x00}}, {1, [3]byte{0x61, 0x00, 0x00}}, + {1, [3]byte{0x62, 0x00, 0x00}}, {1, [3]byte{0x63, 0x00, 0x00}}, + {1, [3]byte{0x64, 0x00, 0x00}}, {1, [3]byte{0x65, 0x00, 0x00}}, + {1, [3]byte{0x66, 0x00, 0x00}}, {1, [3]byte{0x67, 0x00, 0x00}}, + {1, [3]byte{0x68, 0x00, 0x00}}, {1, [3]byte{0x69, 0x00, 0x00}}, + {1, [3]byte{0x6a, 0x00, 0x00}}, {1, [3]byte{0x6b, 0x00, 0x00}}, + {1, [3]byte{0x6c, 0x00, 0x00}}, {1, [3]byte{0x6d, 0x00, 0x00}}, + {1, [3]byte{0x6e, 0x00, 0x00}}, {1, [3]byte{0x6f, 0x00, 0x00}}, + {1, [3]byte{0x70, 0x00, 0x00}}, {1, [3]byte{0x71, 0x00, 0x00}}, + {1, [3]byte{0x72, 0x00, 0x00}}, {1, [3]byte{0x73, 0x00, 0x00}}, + {1, [3]byte{0x74, 0x00, 0x00}}, {1, [3]byte{0x75, 0x00, 0x00}}, + {1, [3]byte{0x76, 0x00, 0x00}}, {1, [3]byte{0x77, 0x00, 0x00}}, + {1, [3]byte{0x78, 0x00, 0x00}}, {1, [3]byte{0x79, 0x00, 0x00}}, + {1, [3]byte{0x7a, 0x00, 0x00}}, {1, [3]byte{0x7b, 0x00, 0x00}}, + {1, [3]byte{0x7c, 0x00, 0x00}}, {1, [3]byte{0x7d, 0x00, 0x00}}, + {1, [3]byte{0x7e, 0x00, 0x00}}, {1, [3]byte{0x7f, 0x00, 0x00}}, + {2, [3]byte{0xc2, 0x80, 0x00}}, {2, [3]byte{0xc2, 0x81, 0x00}}, + {2, [3]byte{0xc2, 0x82, 0x00}}, {2, [3]byte{0xc2, 0x83, 0x00}}, + {2, [3]byte{0xc2, 0x84, 0x00}}, {2, [3]byte{0xc2, 0x85, 0x00}}, + {2, [3]byte{0xc2, 0x86, 0x00}}, {2, [3]byte{0xc2, 0x87, 0x00}}, + {2, [3]byte{0xc2, 0x88, 0x00}}, {2, [3]byte{0xc2, 0x89, 0x00}}, + {2, [3]byte{0xc2, 0x8a, 0x00}}, {2, [3]byte{0xc2, 0x8b, 0x00}}, + {2, [3]byte{0xc2, 0x8c, 0x00}}, {2, [3]byte{0xc2, 0x8d, 0x00}}, + {2, [3]byte{0xc2, 0x8e, 0x00}}, {2, [3]byte{0xc2, 0x8f, 0x00}}, + {2, [3]byte{0xc2, 0x90, 0x00}}, {2, [3]byte{0xc2, 0x91, 0x00}}, + {2, [3]byte{0xc2, 0x92, 0x00}}, {2, [3]byte{0xc2, 0x93, 0x00}}, + {2, [3]byte{0xc2, 0x94, 0x00}}, {2, [3]byte{0xc2, 0x95, 0x00}}, + {2, [3]byte{0xc2, 0x96, 0x00}}, {2, [3]byte{0xc2, 0x97, 0x00}}, + {2, [3]byte{0xc2, 0x98, 0x00}}, {2, [3]byte{0xc2, 0x99, 0x00}}, + {2, [3]byte{0xc2, 0x9a, 0x00}}, {2, [3]byte{0xc2, 0x9b, 0x00}}, + {2, [3]byte{0xc2, 0x9c, 0x00}}, {2, [3]byte{0xc2, 0x9d, 0x00}}, + {2, [3]byte{0xc2, 0x9e, 0x00}}, {2, [3]byte{0xc2, 0x9f, 0x00}}, + {2, [3]byte{0xc2, 0xa0, 0x00}}, {2, [3]byte{0xc2, 0xa1, 0x00}}, + {2, [3]byte{0xc2, 0xa2, 0x00}}, {2, [3]byte{0xc2, 0xa3, 0x00}}, + {2, [3]byte{0xc2, 0xa4, 0x00}}, {2, [3]byte{0xc2, 0xa5, 0x00}}, + {2, [3]byte{0xc2, 0xa6, 0x00}}, {2, [3]byte{0xc2, 0xa7, 0x00}}, + {2, [3]byte{0xc2, 0xa8, 0x00}}, {2, [3]byte{0xc2, 0xa9, 0x00}}, + {2, [3]byte{0xc2, 0xaa, 0x00}}, {2, [3]byte{0xc2, 0xab, 0x00}}, + {2, [3]byte{0xc2, 0xac, 0x00}}, {2, [3]byte{0xc2, 0xad, 0x00}}, + {2, [3]byte{0xc2, 0xae, 0x00}}, {2, [3]byte{0xc2, 0xaf, 0x00}}, + {2, [3]byte{0xc2, 0xb0, 0x00}}, {2, [3]byte{0xc2, 0xb1, 0x00}}, + {2, [3]byte{0xc2, 0xb2, 0x00}}, {2, [3]byte{0xc2, 0xb3, 0x00}}, + {2, [3]byte{0xc2, 0xb4, 0x00}}, {2, [3]byte{0xc2, 0xb5, 0x00}}, + {2, [3]byte{0xc2, 0xb6, 0x00}}, {2, [3]byte{0xc2, 0xb7, 0x00}}, + {2, [3]byte{0xc2, 0xb8, 0x00}}, {2, [3]byte{0xc2, 0xb9, 0x00}}, + {2, [3]byte{0xc2, 0xba, 0x00}}, {2, [3]byte{0xc2, 0xbb, 0x00}}, + {2, [3]byte{0xc2, 0xbc, 0x00}}, {2, [3]byte{0xc2, 0xbd, 0x00}}, + {2, [3]byte{0xc2, 0xbe, 0x00}}, {2, [3]byte{0xc2, 0xbf, 0x00}}, + {2, [3]byte{0xc3, 0x80, 0x00}}, {2, [3]byte{0xc3, 0x81, 0x00}}, + {2, [3]byte{0xc3, 0x82, 0x00}}, {2, [3]byte{0xc3, 0x83, 0x00}}, + {2, [3]byte{0xc3, 0x84, 0x00}}, {2, [3]byte{0xc3, 0x85, 0x00}}, + {2, [3]byte{0xc3, 0x86, 0x00}}, {2, [3]byte{0xc3, 0x87, 0x00}}, + {2, [3]byte{0xc3, 0x88, 0x00}}, {2, [3]byte{0xc3, 0x89, 0x00}}, + {2, [3]byte{0xc3, 0x8a, 0x00}}, {2, [3]byte{0xc3, 0x8b, 0x00}}, + {2, [3]byte{0xc3, 0x8c, 0x00}}, {2, [3]byte{0xc3, 0x8d, 0x00}}, + {2, [3]byte{0xc3, 0x8e, 0x00}}, {2, [3]byte{0xc3, 0x8f, 0x00}}, + {2, [3]byte{0xc4, 0x9e, 0x00}}, {2, [3]byte{0xc3, 0x91, 0x00}}, + {2, [3]byte{0xc3, 0x92, 0x00}}, {2, [3]byte{0xc3, 0x93, 0x00}}, + {2, [3]byte{0xc3, 0x94, 0x00}}, {2, [3]byte{0xc3, 0x95, 0x00}}, + {2, [3]byte{0xc3, 0x96, 0x00}}, {2, [3]byte{0xc3, 0x97, 0x00}}, + {2, [3]byte{0xc3, 0x98, 0x00}}, {2, [3]byte{0xc3, 0x99, 0x00}}, + {2, [3]byte{0xc3, 0x9a, 0x00}}, {2, [3]byte{0xc3, 0x9b, 0x00}}, + {2, [3]byte{0xc3, 0x9c, 0x00}}, {2, [3]byte{0xc4, 0xb0, 0x00}}, + {2, [3]byte{0xc5, 0x9e, 0x00}}, {2, [3]byte{0xc3, 0x9f, 0x00}}, + {2, [3]byte{0xc3, 0xa0, 0x00}}, {2, [3]byte{0xc3, 0xa1, 0x00}}, + {2, [3]byte{0xc3, 0xa2, 0x00}}, {2, [3]byte{0xc3, 0xa3, 0x00}}, + {2, [3]byte{0xc3, 0xa4, 0x00}}, {2, [3]byte{0xc3, 0xa5, 0x00}}, + {2, [3]byte{0xc3, 0xa6, 0x00}}, {2, [3]byte{0xc3, 0xa7, 0x00}}, + {2, [3]byte{0xc3, 0xa8, 0x00}}, {2, [3]byte{0xc3, 0xa9, 0x00}}, + {2, [3]byte{0xc3, 0xaa, 0x00}}, {2, [3]byte{0xc3, 0xab, 0x00}}, + {2, [3]byte{0xc3, 0xac, 0x00}}, {2, [3]byte{0xc3, 0xad, 0x00}}, + {2, [3]byte{0xc3, 0xae, 0x00}}, {2, [3]byte{0xc3, 0xaf, 0x00}}, + {2, [3]byte{0xc4, 0x9f, 0x00}}, {2, [3]byte{0xc3, 0xb1, 0x00}}, + {2, [3]byte{0xc3, 0xb2, 0x00}}, {2, [3]byte{0xc3, 0xb3, 0x00}}, + {2, [3]byte{0xc3, 0xb4, 0x00}}, {2, [3]byte{0xc3, 0xb5, 0x00}}, + {2, [3]byte{0xc3, 0xb6, 0x00}}, {2, [3]byte{0xc3, 0xb7, 0x00}}, + {2, [3]byte{0xc3, 0xb8, 0x00}}, {2, [3]byte{0xc3, 0xb9, 0x00}}, + {2, [3]byte{0xc3, 0xba, 0x00}}, {2, [3]byte{0xc3, 0xbb, 0x00}}, + {2, [3]byte{0xc3, 0xbc, 0x00}}, {2, [3]byte{0xc4, 0xb1, 0x00}}, + {2, [3]byte{0xc5, 0x9f, 0x00}}, {2, [3]byte{0xc3, 0xbf, 0x00}}, + }, + encode: [256]uint32{ + 0x00000000, 0x01000001, 0x02000002, 0x03000003, 0x04000004, 0x05000005, 0x06000006, 0x07000007, + 0x08000008, 0x09000009, 0x0a00000a, 0x0b00000b, 0x0c00000c, 0x0d00000d, 0x0e00000e, 0x0f00000f, + 0x10000010, 0x11000011, 0x12000012, 0x13000013, 0x14000014, 0x15000015, 0x16000016, 0x17000017, + 0x18000018, 0x19000019, 0x1a00001a, 0x1b00001b, 0x1c00001c, 0x1d00001d, 0x1e00001e, 0x1f00001f, + 0x20000020, 0x21000021, 0x22000022, 0x23000023, 0x24000024, 0x25000025, 0x26000026, 0x27000027, + 0x28000028, 0x29000029, 0x2a00002a, 0x2b00002b, 0x2c00002c, 0x2d00002d, 0x2e00002e, 0x2f00002f, + 0x30000030, 0x31000031, 0x32000032, 0x33000033, 0x34000034, 0x35000035, 0x36000036, 0x37000037, + 0x38000038, 0x39000039, 0x3a00003a, 0x3b00003b, 0x3c00003c, 0x3d00003d, 0x3e00003e, 0x3f00003f, + 0x40000040, 0x41000041, 0x42000042, 0x43000043, 0x44000044, 0x45000045, 0x46000046, 0x47000047, + 0x48000048, 0x49000049, 0x4a00004a, 0x4b00004b, 0x4c00004c, 0x4d00004d, 0x4e00004e, 0x4f00004f, + 0x50000050, 0x51000051, 0x52000052, 0x53000053, 0x54000054, 0x55000055, 0x56000056, 0x57000057, + 0x58000058, 0x59000059, 0x5a00005a, 0x5b00005b, 0x5c00005c, 0x5d00005d, 0x5e00005e, 0x5f00005f, + 0x60000060, 0x61000061, 0x62000062, 0x63000063, 0x64000064, 0x65000065, 0x66000066, 0x67000067, + 0x68000068, 0x69000069, 0x6a00006a, 0x6b00006b, 0x6c00006c, 0x6d00006d, 0x6e00006e, 0x6f00006f, + 0x70000070, 0x71000071, 0x72000072, 0x73000073, 0x74000074, 0x75000075, 0x76000076, 0x77000077, + 0x78000078, 0x79000079, 0x7a00007a, 0x7b00007b, 0x7c00007c, 0x7d00007d, 0x7e00007e, 0x7f00007f, + 0x80000080, 0x81000081, 0x82000082, 0x83000083, 0x84000084, 0x85000085, 0x86000086, 0x87000087, + 0x88000088, 0x89000089, 0x8a00008a, 0x8b00008b, 0x8c00008c, 0x8d00008d, 0x8e00008e, 0x8f00008f, + 0x90000090, 0x91000091, 0x92000092, 0x93000093, 0x94000094, 0x95000095, 0x96000096, 0x97000097, + 0x98000098, 0x99000099, 0x9a00009a, 0x9b00009b, 0x9c00009c, 0x9d00009d, 0x9e00009e, 0x9f00009f, + 0xa00000a0, 0xa10000a1, 0xa20000a2, 0xa30000a3, 0xa40000a4, 0xa50000a5, 0xa60000a6, 0xa70000a7, + 0xa80000a8, 0xa90000a9, 0xaa0000aa, 0xab0000ab, 0xac0000ac, 0xad0000ad, 0xae0000ae, 0xaf0000af, + 0xb00000b0, 0xb10000b1, 0xb20000b2, 0xb30000b3, 0xb40000b4, 0xb50000b5, 0xb60000b6, 0xb70000b7, + 0xb80000b8, 0xb90000b9, 0xba0000ba, 0xbb0000bb, 0xbc0000bc, 0xbd0000bd, 0xbe0000be, 0xbf0000bf, + 0xc00000c0, 0xc10000c1, 0xc20000c2, 0xc30000c3, 0xc40000c4, 0xc50000c5, 0xc60000c6, 0xc70000c7, + 0xc80000c8, 0xc90000c9, 0xca0000ca, 0xcb0000cb, 0xcc0000cc, 0xcd0000cd, 0xce0000ce, 0xcf0000cf, + 0xd10000d1, 0xd20000d2, 0xd30000d3, 0xd40000d4, 0xd50000d5, 0xd60000d6, 0xd70000d7, 0xd80000d8, + 0xd90000d9, 0xda0000da, 0xdb0000db, 0xdc0000dc, 0xdf0000df, 0xe00000e0, 0xe10000e1, 0xe20000e2, + 0xe30000e3, 0xe40000e4, 0xe50000e5, 0xe60000e6, 0xe70000e7, 0xe80000e8, 0xe90000e9, 0xea0000ea, + 0xeb0000eb, 0xec0000ec, 0xed0000ed, 0xee0000ee, 0xef0000ef, 0xf10000f1, 0xf20000f2, 0xf30000f3, + 0xf40000f4, 0xf50000f5, 0xf60000f6, 0xf70000f7, 0xf80000f8, 0xf90000f9, 0xfa0000fa, 0xfb0000fb, + 0xfc0000fc, 0xff0000ff, 0xd000011e, 0xf000011f, 0xdd000130, 0xfd000131, 0xde00015e, 0xfe00015f, + }, +} + +// ISO8859_10 is the ISO 8859-10 encoding. +var ISO8859_10 *Charmap = &iso8859_10 + +var iso8859_10 = Charmap{ + name: "ISO 8859-10", + mib: identifier.ISOLatin6, + asciiSuperset: true, + low: 0x80, + replacement: 0x1a, + decode: [256]utf8Enc{ + {1, [3]byte{0x00, 0x00, 0x00}}, {1, [3]byte{0x01, 0x00, 0x00}}, + {1, [3]byte{0x02, 0x00, 0x00}}, {1, [3]byte{0x03, 0x00, 0x00}}, + {1, [3]byte{0x04, 0x00, 0x00}}, {1, [3]byte{0x05, 0x00, 0x00}}, + {1, [3]byte{0x06, 0x00, 0x00}}, {1, [3]byte{0x07, 0x00, 0x00}}, + {1, [3]byte{0x08, 0x00, 0x00}}, {1, [3]byte{0x09, 0x00, 0x00}}, + {1, [3]byte{0x0a, 0x00, 0x00}}, {1, [3]byte{0x0b, 0x00, 0x00}}, + {1, [3]byte{0x0c, 0x00, 0x00}}, {1, [3]byte{0x0d, 0x00, 0x00}}, + {1, [3]byte{0x0e, 0x00, 0x00}}, {1, [3]byte{0x0f, 0x00, 0x00}}, + {1, [3]byte{0x10, 0x00, 0x00}}, {1, [3]byte{0x11, 0x00, 0x00}}, + {1, [3]byte{0x12, 0x00, 0x00}}, {1, [3]byte{0x13, 0x00, 0x00}}, + {1, [3]byte{0x14, 0x00, 0x00}}, {1, [3]byte{0x15, 0x00, 0x00}}, + {1, [3]byte{0x16, 0x00, 0x00}}, {1, [3]byte{0x17, 0x00, 0x00}}, + {1, [3]byte{0x18, 0x00, 0x00}}, {1, [3]byte{0x19, 0x00, 0x00}}, + {1, [3]byte{0x1a, 0x00, 0x00}}, {1, [3]byte{0x1b, 0x00, 0x00}}, + {1, [3]byte{0x1c, 0x00, 0x00}}, {1, [3]byte{0x1d, 0x00, 0x00}}, + {1, [3]byte{0x1e, 0x00, 0x00}}, {1, [3]byte{0x1f, 0x00, 0x00}}, + {1, [3]byte{0x20, 0x00, 0x00}}, {1, [3]byte{0x21, 0x00, 0x00}}, + {1, [3]byte{0x22, 0x00, 0x00}}, {1, [3]byte{0x23, 0x00, 0x00}}, + {1, [3]byte{0x24, 0x00, 0x00}}, {1, [3]byte{0x25, 0x00, 0x00}}, + {1, [3]byte{0x26, 0x00, 0x00}}, {1, [3]byte{0x27, 0x00, 0x00}}, + {1, [3]byte{0x28, 0x00, 0x00}}, {1, [3]byte{0x29, 0x00, 0x00}}, + {1, [3]byte{0x2a, 0x00, 0x00}}, {1, [3]byte{0x2b, 0x00, 0x00}}, + {1, [3]byte{0x2c, 0x00, 0x00}}, {1, [3]byte{0x2d, 0x00, 0x00}}, + {1, [3]byte{0x2e, 0x00, 0x00}}, {1, [3]byte{0x2f, 0x00, 0x00}}, + {1, [3]byte{0x30, 0x00, 0x00}}, {1, [3]byte{0x31, 0x00, 0x00}}, + {1, [3]byte{0x32, 0x00, 0x00}}, {1, [3]byte{0x33, 0x00, 0x00}}, + {1, [3]byte{0x34, 0x00, 0x00}}, {1, [3]byte{0x35, 0x00, 0x00}}, + {1, [3]byte{0x36, 0x00, 0x00}}, {1, [3]byte{0x37, 0x00, 0x00}}, + {1, [3]byte{0x38, 0x00, 0x00}}, {1, [3]byte{0x39, 0x00, 0x00}}, + {1, [3]byte{0x3a, 0x00, 0x00}}, {1, [3]byte{0x3b, 0x00, 0x00}}, + {1, [3]byte{0x3c, 0x00, 0x00}}, {1, [3]byte{0x3d, 0x00, 0x00}}, + {1, [3]byte{0x3e, 0x00, 0x00}}, {1, [3]byte{0x3f, 0x00, 0x00}}, + {1, [3]byte{0x40, 0x00, 0x00}}, {1, [3]byte{0x41, 0x00, 0x00}}, + {1, [3]byte{0x42, 0x00, 0x00}}, {1, [3]byte{0x43, 0x00, 0x00}}, + {1, [3]byte{0x44, 0x00, 0x00}}, {1, [3]byte{0x45, 0x00, 0x00}}, + {1, [3]byte{0x46, 0x00, 0x00}}, {1, [3]byte{0x47, 0x00, 0x00}}, + {1, [3]byte{0x48, 0x00, 0x00}}, {1, [3]byte{0x49, 0x00, 0x00}}, + {1, [3]byte{0x4a, 0x00, 0x00}}, {1, [3]byte{0x4b, 0x00, 0x00}}, + {1, [3]byte{0x4c, 0x00, 0x00}}, {1, [3]byte{0x4d, 0x00, 0x00}}, + {1, [3]byte{0x4e, 0x00, 0x00}}, {1, [3]byte{0x4f, 0x00, 0x00}}, + {1, [3]byte{0x50, 0x00, 0x00}}, {1, [3]byte{0x51, 0x00, 0x00}}, + {1, [3]byte{0x52, 0x00, 0x00}}, {1, [3]byte{0x53, 0x00, 0x00}}, + {1, [3]byte{0x54, 0x00, 0x00}}, {1, [3]byte{0x55, 0x00, 0x00}}, + {1, [3]byte{0x56, 0x00, 0x00}}, {1, [3]byte{0x57, 0x00, 0x00}}, + {1, [3]byte{0x58, 0x00, 0x00}}, {1, [3]byte{0x59, 0x00, 0x00}}, + {1, [3]byte{0x5a, 0x00, 0x00}}, {1, [3]byte{0x5b, 0x00, 0x00}}, + {1, [3]byte{0x5c, 0x00, 0x00}}, {1, [3]byte{0x5d, 0x00, 0x00}}, + {1, [3]byte{0x5e, 0x00, 0x00}}, {1, [3]byte{0x5f, 0x00, 0x00}}, + {1, [3]byte{0x60, 0x00, 0x00}}, {1, [3]byte{0x61, 0x00, 0x00}}, + {1, [3]byte{0x62, 0x00, 0x00}}, {1, [3]byte{0x63, 0x00, 0x00}}, + {1, [3]byte{0x64, 0x00, 0x00}}, {1, [3]byte{0x65, 0x00, 0x00}}, + {1, [3]byte{0x66, 0x00, 0x00}}, {1, [3]byte{0x67, 0x00, 0x00}}, + {1, [3]byte{0x68, 0x00, 0x00}}, {1, [3]byte{0x69, 0x00, 0x00}}, + {1, [3]byte{0x6a, 0x00, 0x00}}, {1, [3]byte{0x6b, 0x00, 0x00}}, + {1, [3]byte{0x6c, 0x00, 0x00}}, {1, [3]byte{0x6d, 0x00, 0x00}}, + {1, [3]byte{0x6e, 0x00, 0x00}}, {1, [3]byte{0x6f, 0x00, 0x00}}, + {1, [3]byte{0x70, 0x00, 0x00}}, {1, [3]byte{0x71, 0x00, 0x00}}, + {1, [3]byte{0x72, 0x00, 0x00}}, {1, [3]byte{0x73, 0x00, 0x00}}, + {1, [3]byte{0x74, 0x00, 0x00}}, {1, [3]byte{0x75, 0x00, 0x00}}, + {1, [3]byte{0x76, 0x00, 0x00}}, {1, [3]byte{0x77, 0x00, 0x00}}, + {1, [3]byte{0x78, 0x00, 0x00}}, {1, [3]byte{0x79, 0x00, 0x00}}, + {1, [3]byte{0x7a, 0x00, 0x00}}, {1, [3]byte{0x7b, 0x00, 0x00}}, + {1, [3]byte{0x7c, 0x00, 0x00}}, {1, [3]byte{0x7d, 0x00, 0x00}}, + {1, [3]byte{0x7e, 0x00, 0x00}}, {1, [3]byte{0x7f, 0x00, 0x00}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {2, [3]byte{0xc2, 0xa0, 0x00}}, {2, [3]byte{0xc4, 0x84, 0x00}}, + {2, [3]byte{0xc4, 0x92, 0x00}}, {2, [3]byte{0xc4, 0xa2, 0x00}}, + {2, [3]byte{0xc4, 0xaa, 0x00}}, {2, [3]byte{0xc4, 0xa8, 0x00}}, + {2, [3]byte{0xc4, 0xb6, 0x00}}, {2, [3]byte{0xc2, 0xa7, 0x00}}, + {2, [3]byte{0xc4, 0xbb, 0x00}}, {2, [3]byte{0xc4, 0x90, 0x00}}, + {2, [3]byte{0xc5, 0xa0, 0x00}}, {2, [3]byte{0xc5, 0xa6, 0x00}}, + {2, [3]byte{0xc5, 0xbd, 0x00}}, {2, [3]byte{0xc2, 0xad, 0x00}}, + {2, [3]byte{0xc5, 0xaa, 0x00}}, {2, [3]byte{0xc5, 0x8a, 0x00}}, + {2, [3]byte{0xc2, 0xb0, 0x00}}, {2, [3]byte{0xc4, 0x85, 0x00}}, + {2, [3]byte{0xc4, 0x93, 0x00}}, {2, [3]byte{0xc4, 0xa3, 0x00}}, + {2, [3]byte{0xc4, 0xab, 0x00}}, {2, [3]byte{0xc4, 0xa9, 0x00}}, + {2, [3]byte{0xc4, 0xb7, 0x00}}, {2, [3]byte{0xc2, 0xb7, 0x00}}, + {2, [3]byte{0xc4, 0xbc, 0x00}}, {2, [3]byte{0xc4, 0x91, 0x00}}, + {2, [3]byte{0xc5, 0xa1, 0x00}}, {2, [3]byte{0xc5, 0xa7, 0x00}}, + {2, [3]byte{0xc5, 0xbe, 0x00}}, {3, [3]byte{0xe2, 0x80, 0x95}}, + {2, [3]byte{0xc5, 0xab, 0x00}}, {2, [3]byte{0xc5, 0x8b, 0x00}}, + {2, [3]byte{0xc4, 0x80, 0x00}}, {2, [3]byte{0xc3, 0x81, 0x00}}, + {2, [3]byte{0xc3, 0x82, 0x00}}, {2, [3]byte{0xc3, 0x83, 0x00}}, + {2, [3]byte{0xc3, 0x84, 0x00}}, {2, [3]byte{0xc3, 0x85, 0x00}}, + {2, [3]byte{0xc3, 0x86, 0x00}}, {2, [3]byte{0xc4, 0xae, 0x00}}, + {2, [3]byte{0xc4, 0x8c, 0x00}}, {2, [3]byte{0xc3, 0x89, 0x00}}, + {2, [3]byte{0xc4, 0x98, 0x00}}, {2, [3]byte{0xc3, 0x8b, 0x00}}, + {2, [3]byte{0xc4, 0x96, 0x00}}, {2, [3]byte{0xc3, 0x8d, 0x00}}, + {2, [3]byte{0xc3, 0x8e, 0x00}}, {2, [3]byte{0xc3, 0x8f, 0x00}}, + {2, [3]byte{0xc3, 0x90, 0x00}}, {2, [3]byte{0xc5, 0x85, 0x00}}, + {2, [3]byte{0xc5, 0x8c, 0x00}}, {2, [3]byte{0xc3, 0x93, 0x00}}, + {2, [3]byte{0xc3, 0x94, 0x00}}, {2, [3]byte{0xc3, 0x95, 0x00}}, + {2, [3]byte{0xc3, 0x96, 0x00}}, {2, [3]byte{0xc5, 0xa8, 0x00}}, + {2, [3]byte{0xc3, 0x98, 0x00}}, {2, [3]byte{0xc5, 0xb2, 0x00}}, + {2, [3]byte{0xc3, 0x9a, 0x00}}, {2, [3]byte{0xc3, 0x9b, 0x00}}, + {2, [3]byte{0xc3, 0x9c, 0x00}}, {2, [3]byte{0xc3, 0x9d, 0x00}}, + {2, [3]byte{0xc3, 0x9e, 0x00}}, {2, [3]byte{0xc3, 0x9f, 0x00}}, + {2, [3]byte{0xc4, 0x81, 0x00}}, {2, [3]byte{0xc3, 0xa1, 0x00}}, + {2, [3]byte{0xc3, 0xa2, 0x00}}, {2, [3]byte{0xc3, 0xa3, 0x00}}, + {2, [3]byte{0xc3, 0xa4, 0x00}}, {2, [3]byte{0xc3, 0xa5, 0x00}}, + {2, [3]byte{0xc3, 0xa6, 0x00}}, {2, [3]byte{0xc4, 0xaf, 0x00}}, + {2, [3]byte{0xc4, 0x8d, 0x00}}, {2, [3]byte{0xc3, 0xa9, 0x00}}, + {2, [3]byte{0xc4, 0x99, 0x00}}, {2, [3]byte{0xc3, 0xab, 0x00}}, + {2, [3]byte{0xc4, 0x97, 0x00}}, {2, [3]byte{0xc3, 0xad, 0x00}}, + {2, [3]byte{0xc3, 0xae, 0x00}}, {2, [3]byte{0xc3, 0xaf, 0x00}}, + {2, [3]byte{0xc3, 0xb0, 0x00}}, {2, [3]byte{0xc5, 0x86, 0x00}}, + {2, [3]byte{0xc5, 0x8d, 0x00}}, {2, [3]byte{0xc3, 0xb3, 0x00}}, + {2, [3]byte{0xc3, 0xb4, 0x00}}, {2, [3]byte{0xc3, 0xb5, 0x00}}, + {2, [3]byte{0xc3, 0xb6, 0x00}}, {2, [3]byte{0xc5, 0xa9, 0x00}}, + {2, [3]byte{0xc3, 0xb8, 0x00}}, {2, [3]byte{0xc5, 0xb3, 0x00}}, + {2, [3]byte{0xc3, 0xba, 0x00}}, {2, [3]byte{0xc3, 0xbb, 0x00}}, + {2, [3]byte{0xc3, 0xbc, 0x00}}, {2, [3]byte{0xc3, 0xbd, 0x00}}, + {2, [3]byte{0xc3, 0xbe, 0x00}}, {2, [3]byte{0xc4, 0xb8, 0x00}}, + }, + encode: [256]uint32{ + 0x00000000, 0x01000001, 0x02000002, 0x03000003, 0x04000004, 0x05000005, 0x06000006, 0x07000007, + 0x08000008, 0x09000009, 0x0a00000a, 0x0b00000b, 0x0c00000c, 0x0d00000d, 0x0e00000e, 0x0f00000f, + 0x10000010, 0x11000011, 0x12000012, 0x13000013, 0x14000014, 0x15000015, 0x16000016, 0x17000017, + 0x18000018, 0x19000019, 0x1a00001a, 0x1b00001b, 0x1c00001c, 0x1d00001d, 0x1e00001e, 0x1f00001f, + 0x20000020, 0x21000021, 0x22000022, 0x23000023, 0x24000024, 0x25000025, 0x26000026, 0x27000027, + 0x28000028, 0x29000029, 0x2a00002a, 0x2b00002b, 0x2c00002c, 0x2d00002d, 0x2e00002e, 0x2f00002f, + 0x30000030, 0x31000031, 0x32000032, 0x33000033, 0x34000034, 0x35000035, 0x36000036, 0x37000037, + 0x38000038, 0x39000039, 0x3a00003a, 0x3b00003b, 0x3c00003c, 0x3d00003d, 0x3e00003e, 0x3f00003f, + 0x40000040, 0x41000041, 0x42000042, 0x43000043, 0x44000044, 0x45000045, 0x46000046, 0x47000047, + 0x48000048, 0x49000049, 0x4a00004a, 0x4b00004b, 0x4c00004c, 0x4d00004d, 0x4e00004e, 0x4f00004f, + 0x50000050, 0x51000051, 0x52000052, 0x53000053, 0x54000054, 0x55000055, 0x56000056, 0x57000057, + 0x58000058, 0x59000059, 0x5a00005a, 0x5b00005b, 0x5c00005c, 0x5d00005d, 0x5e00005e, 0x5f00005f, + 0x60000060, 0x61000061, 0x62000062, 0x63000063, 0x64000064, 0x65000065, 0x66000066, 0x67000067, + 0x68000068, 0x69000069, 0x6a00006a, 0x6b00006b, 0x6c00006c, 0x6d00006d, 0x6e00006e, 0x6f00006f, + 0x70000070, 0x71000071, 0x72000072, 0x73000073, 0x74000074, 0x75000075, 0x76000076, 0x77000077, + 0x78000078, 0x79000079, 0x7a00007a, 0x7b00007b, 0x7c00007c, 0x7d00007d, 0x7e00007e, 0x7f00007f, + 0xa00000a0, 0xa70000a7, 0xad0000ad, 0xb00000b0, 0xb70000b7, 0xc10000c1, 0xc20000c2, 0xc30000c3, + 0xc40000c4, 0xc50000c5, 0xc60000c6, 0xc90000c9, 0xcb0000cb, 0xcd0000cd, 0xce0000ce, 0xcf0000cf, + 0xd00000d0, 0xd30000d3, 0xd40000d4, 0xd50000d5, 0xd60000d6, 0xd80000d8, 0xda0000da, 0xdb0000db, + 0xdc0000dc, 0xdd0000dd, 0xde0000de, 0xdf0000df, 0xe10000e1, 0xe20000e2, 0xe30000e3, 0xe40000e4, + 0xe50000e5, 0xe60000e6, 0xe90000e9, 0xeb0000eb, 0xed0000ed, 0xee0000ee, 0xef0000ef, 0xf00000f0, + 0xf30000f3, 0xf40000f4, 0xf50000f5, 0xf60000f6, 0xf80000f8, 0xfa0000fa, 0xfb0000fb, 0xfc0000fc, + 0xfd0000fd, 0xfe0000fe, 0xc0000100, 0xe0000101, 0xa1000104, 0xb1000105, 0xc800010c, 0xe800010d, + 0xa9000110, 0xb9000111, 0xa2000112, 0xb2000113, 0xcc000116, 0xec000117, 0xca000118, 0xea000119, + 0xa3000122, 0xb3000123, 0xa5000128, 0xb5000129, 0xa400012a, 0xb400012b, 0xc700012e, 0xe700012f, + 0xa6000136, 0xb6000137, 0xff000138, 0xa800013b, 0xb800013c, 0xd1000145, 0xf1000146, 0xaf00014a, + 0xbf00014b, 0xd200014c, 0xf200014d, 0xaa000160, 0xba000161, 0xab000166, 0xbb000167, 0xd7000168, + 0xf7000169, 0xae00016a, 0xbe00016b, 0xd9000172, 0xf9000173, 0xac00017d, 0xbc00017e, 0xbd002015, + 0xbd002015, 0xbd002015, 0xbd002015, 0xbd002015, 0xbd002015, 0xbd002015, 0xbd002015, 0xbd002015, + 0xbd002015, 0xbd002015, 0xbd002015, 0xbd002015, 0xbd002015, 0xbd002015, 0xbd002015, 0xbd002015, + 0xbd002015, 0xbd002015, 0xbd002015, 0xbd002015, 0xbd002015, 0xbd002015, 0xbd002015, 0xbd002015, + 0xbd002015, 0xbd002015, 0xbd002015, 0xbd002015, 0xbd002015, 0xbd002015, 0xbd002015, 0xbd002015, + }, +} + +// ISO8859_13 is the ISO 8859-13 encoding. +var ISO8859_13 *Charmap = &iso8859_13 + +var iso8859_13 = Charmap{ + name: "ISO 8859-13", + mib: identifier.ISO885913, + asciiSuperset: true, + low: 0x80, + replacement: 0x1a, + decode: [256]utf8Enc{ + {1, [3]byte{0x00, 0x00, 0x00}}, {1, [3]byte{0x01, 0x00, 0x00}}, + {1, [3]byte{0x02, 0x00, 0x00}}, {1, [3]byte{0x03, 0x00, 0x00}}, + {1, [3]byte{0x04, 0x00, 0x00}}, {1, [3]byte{0x05, 0x00, 0x00}}, + {1, [3]byte{0x06, 0x00, 0x00}}, {1, [3]byte{0x07, 0x00, 0x00}}, + {1, [3]byte{0x08, 0x00, 0x00}}, {1, [3]byte{0x09, 0x00, 0x00}}, + {1, [3]byte{0x0a, 0x00, 0x00}}, {1, [3]byte{0x0b, 0x00, 0x00}}, + {1, [3]byte{0x0c, 0x00, 0x00}}, {1, [3]byte{0x0d, 0x00, 0x00}}, + {1, [3]byte{0x0e, 0x00, 0x00}}, {1, [3]byte{0x0f, 0x00, 0x00}}, + {1, [3]byte{0x10, 0x00, 0x00}}, {1, [3]byte{0x11, 0x00, 0x00}}, + {1, [3]byte{0x12, 0x00, 0x00}}, {1, [3]byte{0x13, 0x00, 0x00}}, + {1, [3]byte{0x14, 0x00, 0x00}}, {1, [3]byte{0x15, 0x00, 0x00}}, + {1, [3]byte{0x16, 0x00, 0x00}}, {1, [3]byte{0x17, 0x00, 0x00}}, + {1, [3]byte{0x18, 0x00, 0x00}}, {1, [3]byte{0x19, 0x00, 0x00}}, + {1, [3]byte{0x1a, 0x00, 0x00}}, {1, [3]byte{0x1b, 0x00, 0x00}}, + {1, [3]byte{0x1c, 0x00, 0x00}}, {1, [3]byte{0x1d, 0x00, 0x00}}, + {1, [3]byte{0x1e, 0x00, 0x00}}, {1, [3]byte{0x1f, 0x00, 0x00}}, + {1, [3]byte{0x20, 0x00, 0x00}}, {1, [3]byte{0x21, 0x00, 0x00}}, + {1, [3]byte{0x22, 0x00, 0x00}}, {1, [3]byte{0x23, 0x00, 0x00}}, + {1, [3]byte{0x24, 0x00, 0x00}}, {1, [3]byte{0x25, 0x00, 0x00}}, + {1, [3]byte{0x26, 0x00, 0x00}}, {1, [3]byte{0x27, 0x00, 0x00}}, + {1, [3]byte{0x28, 0x00, 0x00}}, {1, [3]byte{0x29, 0x00, 0x00}}, + {1, [3]byte{0x2a, 0x00, 0x00}}, {1, [3]byte{0x2b, 0x00, 0x00}}, + {1, [3]byte{0x2c, 0x00, 0x00}}, {1, [3]byte{0x2d, 0x00, 0x00}}, + {1, [3]byte{0x2e, 0x00, 0x00}}, {1, [3]byte{0x2f, 0x00, 0x00}}, + {1, [3]byte{0x30, 0x00, 0x00}}, {1, [3]byte{0x31, 0x00, 0x00}}, + {1, [3]byte{0x32, 0x00, 0x00}}, {1, [3]byte{0x33, 0x00, 0x00}}, + {1, [3]byte{0x34, 0x00, 0x00}}, {1, [3]byte{0x35, 0x00, 0x00}}, + {1, [3]byte{0x36, 0x00, 0x00}}, {1, [3]byte{0x37, 0x00, 0x00}}, + {1, [3]byte{0x38, 0x00, 0x00}}, {1, [3]byte{0x39, 0x00, 0x00}}, + {1, [3]byte{0x3a, 0x00, 0x00}}, {1, [3]byte{0x3b, 0x00, 0x00}}, + {1, [3]byte{0x3c, 0x00, 0x00}}, {1, [3]byte{0x3d, 0x00, 0x00}}, + {1, [3]byte{0x3e, 0x00, 0x00}}, {1, [3]byte{0x3f, 0x00, 0x00}}, + {1, [3]byte{0x40, 0x00, 0x00}}, {1, [3]byte{0x41, 0x00, 0x00}}, + {1, [3]byte{0x42, 0x00, 0x00}}, {1, [3]byte{0x43, 0x00, 0x00}}, + {1, [3]byte{0x44, 0x00, 0x00}}, {1, [3]byte{0x45, 0x00, 0x00}}, + {1, [3]byte{0x46, 0x00, 0x00}}, {1, [3]byte{0x47, 0x00, 0x00}}, + {1, [3]byte{0x48, 0x00, 0x00}}, {1, [3]byte{0x49, 0x00, 0x00}}, + {1, [3]byte{0x4a, 0x00, 0x00}}, {1, [3]byte{0x4b, 0x00, 0x00}}, + {1, [3]byte{0x4c, 0x00, 0x00}}, {1, [3]byte{0x4d, 0x00, 0x00}}, + {1, [3]byte{0x4e, 0x00, 0x00}}, {1, [3]byte{0x4f, 0x00, 0x00}}, + {1, [3]byte{0x50, 0x00, 0x00}}, {1, [3]byte{0x51, 0x00, 0x00}}, + {1, [3]byte{0x52, 0x00, 0x00}}, {1, [3]byte{0x53, 0x00, 0x00}}, + {1, [3]byte{0x54, 0x00, 0x00}}, {1, [3]byte{0x55, 0x00, 0x00}}, + {1, [3]byte{0x56, 0x00, 0x00}}, {1, [3]byte{0x57, 0x00, 0x00}}, + {1, [3]byte{0x58, 0x00, 0x00}}, {1, [3]byte{0x59, 0x00, 0x00}}, + {1, [3]byte{0x5a, 0x00, 0x00}}, {1, [3]byte{0x5b, 0x00, 0x00}}, + {1, [3]byte{0x5c, 0x00, 0x00}}, {1, [3]byte{0x5d, 0x00, 0x00}}, + {1, [3]byte{0x5e, 0x00, 0x00}}, {1, [3]byte{0x5f, 0x00, 0x00}}, + {1, [3]byte{0x60, 0x00, 0x00}}, {1, [3]byte{0x61, 0x00, 0x00}}, + {1, [3]byte{0x62, 0x00, 0x00}}, {1, [3]byte{0x63, 0x00, 0x00}}, + {1, [3]byte{0x64, 0x00, 0x00}}, {1, [3]byte{0x65, 0x00, 0x00}}, + {1, [3]byte{0x66, 0x00, 0x00}}, {1, [3]byte{0x67, 0x00, 0x00}}, + {1, [3]byte{0x68, 0x00, 0x00}}, {1, [3]byte{0x69, 0x00, 0x00}}, + {1, [3]byte{0x6a, 0x00, 0x00}}, {1, [3]byte{0x6b, 0x00, 0x00}}, + {1, [3]byte{0x6c, 0x00, 0x00}}, {1, [3]byte{0x6d, 0x00, 0x00}}, + {1, [3]byte{0x6e, 0x00, 0x00}}, {1, [3]byte{0x6f, 0x00, 0x00}}, + {1, [3]byte{0x70, 0x00, 0x00}}, {1, [3]byte{0x71, 0x00, 0x00}}, + {1, [3]byte{0x72, 0x00, 0x00}}, {1, [3]byte{0x73, 0x00, 0x00}}, + {1, [3]byte{0x74, 0x00, 0x00}}, {1, [3]byte{0x75, 0x00, 0x00}}, + {1, [3]byte{0x76, 0x00, 0x00}}, {1, [3]byte{0x77, 0x00, 0x00}}, + {1, [3]byte{0x78, 0x00, 0x00}}, {1, [3]byte{0x79, 0x00, 0x00}}, + {1, [3]byte{0x7a, 0x00, 0x00}}, {1, [3]byte{0x7b, 0x00, 0x00}}, + {1, [3]byte{0x7c, 0x00, 0x00}}, {1, [3]byte{0x7d, 0x00, 0x00}}, + {1, [3]byte{0x7e, 0x00, 0x00}}, {1, [3]byte{0x7f, 0x00, 0x00}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {2, [3]byte{0xc2, 0xa0, 0x00}}, {3, [3]byte{0xe2, 0x80, 0x9d}}, + {2, [3]byte{0xc2, 0xa2, 0x00}}, {2, [3]byte{0xc2, 0xa3, 0x00}}, + {2, [3]byte{0xc2, 0xa4, 0x00}}, {3, [3]byte{0xe2, 0x80, 0x9e}}, + {2, [3]byte{0xc2, 0xa6, 0x00}}, {2, [3]byte{0xc2, 0xa7, 0x00}}, + {2, [3]byte{0xc3, 0x98, 0x00}}, {2, [3]byte{0xc2, 0xa9, 0x00}}, + {2, [3]byte{0xc5, 0x96, 0x00}}, {2, [3]byte{0xc2, 0xab, 0x00}}, + {2, [3]byte{0xc2, 0xac, 0x00}}, {2, [3]byte{0xc2, 0xad, 0x00}}, + {2, [3]byte{0xc2, 0xae, 0x00}}, {2, [3]byte{0xc3, 0x86, 0x00}}, + {2, [3]byte{0xc2, 0xb0, 0x00}}, {2, [3]byte{0xc2, 0xb1, 0x00}}, + {2, [3]byte{0xc2, 0xb2, 0x00}}, {2, [3]byte{0xc2, 0xb3, 0x00}}, + {3, [3]byte{0xe2, 0x80, 0x9c}}, {2, [3]byte{0xc2, 0xb5, 0x00}}, + {2, [3]byte{0xc2, 0xb6, 0x00}}, {2, [3]byte{0xc2, 0xb7, 0x00}}, + {2, [3]byte{0xc3, 0xb8, 0x00}}, {2, [3]byte{0xc2, 0xb9, 0x00}}, + {2, [3]byte{0xc5, 0x97, 0x00}}, {2, [3]byte{0xc2, 0xbb, 0x00}}, + {2, [3]byte{0xc2, 0xbc, 0x00}}, {2, [3]byte{0xc2, 0xbd, 0x00}}, + {2, [3]byte{0xc2, 0xbe, 0x00}}, {2, [3]byte{0xc3, 0xa6, 0x00}}, + {2, [3]byte{0xc4, 0x84, 0x00}}, {2, [3]byte{0xc4, 0xae, 0x00}}, + {2, [3]byte{0xc4, 0x80, 0x00}}, {2, [3]byte{0xc4, 0x86, 0x00}}, + {2, [3]byte{0xc3, 0x84, 0x00}}, {2, [3]byte{0xc3, 0x85, 0x00}}, + {2, [3]byte{0xc4, 0x98, 0x00}}, {2, [3]byte{0xc4, 0x92, 0x00}}, + {2, [3]byte{0xc4, 0x8c, 0x00}}, {2, [3]byte{0xc3, 0x89, 0x00}}, + {2, [3]byte{0xc5, 0xb9, 0x00}}, {2, [3]byte{0xc4, 0x96, 0x00}}, + {2, [3]byte{0xc4, 0xa2, 0x00}}, {2, [3]byte{0xc4, 0xb6, 0x00}}, + {2, [3]byte{0xc4, 0xaa, 0x00}}, {2, [3]byte{0xc4, 0xbb, 0x00}}, + {2, [3]byte{0xc5, 0xa0, 0x00}}, {2, [3]byte{0xc5, 0x83, 0x00}}, + {2, [3]byte{0xc5, 0x85, 0x00}}, {2, [3]byte{0xc3, 0x93, 0x00}}, + {2, [3]byte{0xc5, 0x8c, 0x00}}, {2, [3]byte{0xc3, 0x95, 0x00}}, + {2, [3]byte{0xc3, 0x96, 0x00}}, {2, [3]byte{0xc3, 0x97, 0x00}}, + {2, [3]byte{0xc5, 0xb2, 0x00}}, {2, [3]byte{0xc5, 0x81, 0x00}}, + {2, [3]byte{0xc5, 0x9a, 0x00}}, {2, [3]byte{0xc5, 0xaa, 0x00}}, + {2, [3]byte{0xc3, 0x9c, 0x00}}, {2, [3]byte{0xc5, 0xbb, 0x00}}, + {2, [3]byte{0xc5, 0xbd, 0x00}}, {2, [3]byte{0xc3, 0x9f, 0x00}}, + {2, [3]byte{0xc4, 0x85, 0x00}}, {2, [3]byte{0xc4, 0xaf, 0x00}}, + {2, [3]byte{0xc4, 0x81, 0x00}}, {2, [3]byte{0xc4, 0x87, 0x00}}, + {2, [3]byte{0xc3, 0xa4, 0x00}}, {2, [3]byte{0xc3, 0xa5, 0x00}}, + {2, [3]byte{0xc4, 0x99, 0x00}}, {2, [3]byte{0xc4, 0x93, 0x00}}, + {2, [3]byte{0xc4, 0x8d, 0x00}}, {2, [3]byte{0xc3, 0xa9, 0x00}}, + {2, [3]byte{0xc5, 0xba, 0x00}}, {2, [3]byte{0xc4, 0x97, 0x00}}, + {2, [3]byte{0xc4, 0xa3, 0x00}}, {2, [3]byte{0xc4, 0xb7, 0x00}}, + {2, [3]byte{0xc4, 0xab, 0x00}}, {2, [3]byte{0xc4, 0xbc, 0x00}}, + {2, [3]byte{0xc5, 0xa1, 0x00}}, {2, [3]byte{0xc5, 0x84, 0x00}}, + {2, [3]byte{0xc5, 0x86, 0x00}}, {2, [3]byte{0xc3, 0xb3, 0x00}}, + {2, [3]byte{0xc5, 0x8d, 0x00}}, {2, [3]byte{0xc3, 0xb5, 0x00}}, + {2, [3]byte{0xc3, 0xb6, 0x00}}, {2, [3]byte{0xc3, 0xb7, 0x00}}, + {2, [3]byte{0xc5, 0xb3, 0x00}}, {2, [3]byte{0xc5, 0x82, 0x00}}, + {2, [3]byte{0xc5, 0x9b, 0x00}}, {2, [3]byte{0xc5, 0xab, 0x00}}, + {2, [3]byte{0xc3, 0xbc, 0x00}}, {2, [3]byte{0xc5, 0xbc, 0x00}}, + {2, [3]byte{0xc5, 0xbe, 0x00}}, {3, [3]byte{0xe2, 0x80, 0x99}}, + }, + encode: [256]uint32{ + 0x00000000, 0x01000001, 0x02000002, 0x03000003, 0x04000004, 0x05000005, 0x06000006, 0x07000007, + 0x08000008, 0x09000009, 0x0a00000a, 0x0b00000b, 0x0c00000c, 0x0d00000d, 0x0e00000e, 0x0f00000f, + 0x10000010, 0x11000011, 0x12000012, 0x13000013, 0x14000014, 0x15000015, 0x16000016, 0x17000017, + 0x18000018, 0x19000019, 0x1a00001a, 0x1b00001b, 0x1c00001c, 0x1d00001d, 0x1e00001e, 0x1f00001f, + 0x20000020, 0x21000021, 0x22000022, 0x23000023, 0x24000024, 0x25000025, 0x26000026, 0x27000027, + 0x28000028, 0x29000029, 0x2a00002a, 0x2b00002b, 0x2c00002c, 0x2d00002d, 0x2e00002e, 0x2f00002f, + 0x30000030, 0x31000031, 0x32000032, 0x33000033, 0x34000034, 0x35000035, 0x36000036, 0x37000037, + 0x38000038, 0x39000039, 0x3a00003a, 0x3b00003b, 0x3c00003c, 0x3d00003d, 0x3e00003e, 0x3f00003f, + 0x40000040, 0x41000041, 0x42000042, 0x43000043, 0x44000044, 0x45000045, 0x46000046, 0x47000047, + 0x48000048, 0x49000049, 0x4a00004a, 0x4b00004b, 0x4c00004c, 0x4d00004d, 0x4e00004e, 0x4f00004f, + 0x50000050, 0x51000051, 0x52000052, 0x53000053, 0x54000054, 0x55000055, 0x56000056, 0x57000057, + 0x58000058, 0x59000059, 0x5a00005a, 0x5b00005b, 0x5c00005c, 0x5d00005d, 0x5e00005e, 0x5f00005f, + 0x60000060, 0x61000061, 0x62000062, 0x63000063, 0x64000064, 0x65000065, 0x66000066, 0x67000067, + 0x68000068, 0x69000069, 0x6a00006a, 0x6b00006b, 0x6c00006c, 0x6d00006d, 0x6e00006e, 0x6f00006f, + 0x70000070, 0x71000071, 0x72000072, 0x73000073, 0x74000074, 0x75000075, 0x76000076, 0x77000077, + 0x78000078, 0x79000079, 0x7a00007a, 0x7b00007b, 0x7c00007c, 0x7d00007d, 0x7e00007e, 0x7f00007f, + 0xa00000a0, 0xa20000a2, 0xa30000a3, 0xa40000a4, 0xa60000a6, 0xa70000a7, 0xa90000a9, 0xab0000ab, + 0xac0000ac, 0xad0000ad, 0xae0000ae, 0xb00000b0, 0xb10000b1, 0xb20000b2, 0xb30000b3, 0xb50000b5, + 0xb60000b6, 0xb70000b7, 0xb90000b9, 0xbb0000bb, 0xbc0000bc, 0xbd0000bd, 0xbe0000be, 0xc40000c4, + 0xc50000c5, 0xaf0000c6, 0xc90000c9, 0xd30000d3, 0xd50000d5, 0xd60000d6, 0xd70000d7, 0xa80000d8, + 0xdc0000dc, 0xdf0000df, 0xe40000e4, 0xe50000e5, 0xbf0000e6, 0xe90000e9, 0xf30000f3, 0xf50000f5, + 0xf60000f6, 0xf70000f7, 0xb80000f8, 0xfc0000fc, 0xc2000100, 0xe2000101, 0xc0000104, 0xe0000105, + 0xc3000106, 0xe3000107, 0xc800010c, 0xe800010d, 0xc7000112, 0xe7000113, 0xcb000116, 0xeb000117, + 0xc6000118, 0xe6000119, 0xcc000122, 0xec000123, 0xce00012a, 0xee00012b, 0xc100012e, 0xe100012f, + 0xcd000136, 0xed000137, 0xcf00013b, 0xef00013c, 0xd9000141, 0xf9000142, 0xd1000143, 0xf1000144, + 0xd2000145, 0xf2000146, 0xd400014c, 0xf400014d, 0xaa000156, 0xba000157, 0xda00015a, 0xfa00015b, + 0xd0000160, 0xf0000161, 0xdb00016a, 0xfb00016b, 0xd8000172, 0xf8000173, 0xca000179, 0xea00017a, + 0xdd00017b, 0xfd00017c, 0xde00017d, 0xfe00017e, 0xff002019, 0xb400201c, 0xa100201d, 0xa500201e, + 0xa500201e, 0xa500201e, 0xa500201e, 0xa500201e, 0xa500201e, 0xa500201e, 0xa500201e, 0xa500201e, + 0xa500201e, 0xa500201e, 0xa500201e, 0xa500201e, 0xa500201e, 0xa500201e, 0xa500201e, 0xa500201e, + 0xa500201e, 0xa500201e, 0xa500201e, 0xa500201e, 0xa500201e, 0xa500201e, 0xa500201e, 0xa500201e, + 0xa500201e, 0xa500201e, 0xa500201e, 0xa500201e, 0xa500201e, 0xa500201e, 0xa500201e, 0xa500201e, + }, +} + +// ISO8859_14 is the ISO 8859-14 encoding. +var ISO8859_14 *Charmap = &iso8859_14 + +var iso8859_14 = Charmap{ + name: "ISO 8859-14", + mib: identifier.ISO885914, + asciiSuperset: true, + low: 0x80, + replacement: 0x1a, + decode: [256]utf8Enc{ + {1, [3]byte{0x00, 0x00, 0x00}}, {1, [3]byte{0x01, 0x00, 0x00}}, + {1, [3]byte{0x02, 0x00, 0x00}}, {1, [3]byte{0x03, 0x00, 0x00}}, + {1, [3]byte{0x04, 0x00, 0x00}}, {1, [3]byte{0x05, 0x00, 0x00}}, + {1, [3]byte{0x06, 0x00, 0x00}}, {1, [3]byte{0x07, 0x00, 0x00}}, + {1, [3]byte{0x08, 0x00, 0x00}}, {1, [3]byte{0x09, 0x00, 0x00}}, + {1, [3]byte{0x0a, 0x00, 0x00}}, {1, [3]byte{0x0b, 0x00, 0x00}}, + {1, [3]byte{0x0c, 0x00, 0x00}}, {1, [3]byte{0x0d, 0x00, 0x00}}, + {1, [3]byte{0x0e, 0x00, 0x00}}, {1, [3]byte{0x0f, 0x00, 0x00}}, + {1, [3]byte{0x10, 0x00, 0x00}}, {1, [3]byte{0x11, 0x00, 0x00}}, + {1, [3]byte{0x12, 0x00, 0x00}}, {1, [3]byte{0x13, 0x00, 0x00}}, + {1, [3]byte{0x14, 0x00, 0x00}}, {1, [3]byte{0x15, 0x00, 0x00}}, + {1, [3]byte{0x16, 0x00, 0x00}}, {1, [3]byte{0x17, 0x00, 0x00}}, + {1, [3]byte{0x18, 0x00, 0x00}}, {1, [3]byte{0x19, 0x00, 0x00}}, + {1, [3]byte{0x1a, 0x00, 0x00}}, {1, [3]byte{0x1b, 0x00, 0x00}}, + {1, [3]byte{0x1c, 0x00, 0x00}}, {1, [3]byte{0x1d, 0x00, 0x00}}, + {1, [3]byte{0x1e, 0x00, 0x00}}, {1, [3]byte{0x1f, 0x00, 0x00}}, + {1, [3]byte{0x20, 0x00, 0x00}}, {1, [3]byte{0x21, 0x00, 0x00}}, + {1, [3]byte{0x22, 0x00, 0x00}}, {1, [3]byte{0x23, 0x00, 0x00}}, + {1, [3]byte{0x24, 0x00, 0x00}}, {1, [3]byte{0x25, 0x00, 0x00}}, + {1, [3]byte{0x26, 0x00, 0x00}}, {1, [3]byte{0x27, 0x00, 0x00}}, + {1, [3]byte{0x28, 0x00, 0x00}}, {1, [3]byte{0x29, 0x00, 0x00}}, + {1, [3]byte{0x2a, 0x00, 0x00}}, {1, [3]byte{0x2b, 0x00, 0x00}}, + {1, [3]byte{0x2c, 0x00, 0x00}}, {1, [3]byte{0x2d, 0x00, 0x00}}, + {1, [3]byte{0x2e, 0x00, 0x00}}, {1, [3]byte{0x2f, 0x00, 0x00}}, + {1, [3]byte{0x30, 0x00, 0x00}}, {1, [3]byte{0x31, 0x00, 0x00}}, + {1, [3]byte{0x32, 0x00, 0x00}}, {1, [3]byte{0x33, 0x00, 0x00}}, + {1, [3]byte{0x34, 0x00, 0x00}}, {1, [3]byte{0x35, 0x00, 0x00}}, + {1, [3]byte{0x36, 0x00, 0x00}}, {1, [3]byte{0x37, 0x00, 0x00}}, + {1, [3]byte{0x38, 0x00, 0x00}}, {1, [3]byte{0x39, 0x00, 0x00}}, + {1, [3]byte{0x3a, 0x00, 0x00}}, {1, [3]byte{0x3b, 0x00, 0x00}}, + {1, [3]byte{0x3c, 0x00, 0x00}}, {1, [3]byte{0x3d, 0x00, 0x00}}, + {1, [3]byte{0x3e, 0x00, 0x00}}, {1, [3]byte{0x3f, 0x00, 0x00}}, + {1, [3]byte{0x40, 0x00, 0x00}}, {1, [3]byte{0x41, 0x00, 0x00}}, + {1, [3]byte{0x42, 0x00, 0x00}}, {1, [3]byte{0x43, 0x00, 0x00}}, + {1, [3]byte{0x44, 0x00, 0x00}}, {1, [3]byte{0x45, 0x00, 0x00}}, + {1, [3]byte{0x46, 0x00, 0x00}}, {1, [3]byte{0x47, 0x00, 0x00}}, + {1, [3]byte{0x48, 0x00, 0x00}}, {1, [3]byte{0x49, 0x00, 0x00}}, + {1, [3]byte{0x4a, 0x00, 0x00}}, {1, [3]byte{0x4b, 0x00, 0x00}}, + {1, [3]byte{0x4c, 0x00, 0x00}}, {1, [3]byte{0x4d, 0x00, 0x00}}, + {1, [3]byte{0x4e, 0x00, 0x00}}, {1, [3]byte{0x4f, 0x00, 0x00}}, + {1, [3]byte{0x50, 0x00, 0x00}}, {1, [3]byte{0x51, 0x00, 0x00}}, + {1, [3]byte{0x52, 0x00, 0x00}}, {1, [3]byte{0x53, 0x00, 0x00}}, + {1, [3]byte{0x54, 0x00, 0x00}}, {1, [3]byte{0x55, 0x00, 0x00}}, + {1, [3]byte{0x56, 0x00, 0x00}}, {1, [3]byte{0x57, 0x00, 0x00}}, + {1, [3]byte{0x58, 0x00, 0x00}}, {1, [3]byte{0x59, 0x00, 0x00}}, + {1, [3]byte{0x5a, 0x00, 0x00}}, {1, [3]byte{0x5b, 0x00, 0x00}}, + {1, [3]byte{0x5c, 0x00, 0x00}}, {1, [3]byte{0x5d, 0x00, 0x00}}, + {1, [3]byte{0x5e, 0x00, 0x00}}, {1, [3]byte{0x5f, 0x00, 0x00}}, + {1, [3]byte{0x60, 0x00, 0x00}}, {1, [3]byte{0x61, 0x00, 0x00}}, + {1, [3]byte{0x62, 0x00, 0x00}}, {1, [3]byte{0x63, 0x00, 0x00}}, + {1, [3]byte{0x64, 0x00, 0x00}}, {1, [3]byte{0x65, 0x00, 0x00}}, + {1, [3]byte{0x66, 0x00, 0x00}}, {1, [3]byte{0x67, 0x00, 0x00}}, + {1, [3]byte{0x68, 0x00, 0x00}}, {1, [3]byte{0x69, 0x00, 0x00}}, + {1, [3]byte{0x6a, 0x00, 0x00}}, {1, [3]byte{0x6b, 0x00, 0x00}}, + {1, [3]byte{0x6c, 0x00, 0x00}}, {1, [3]byte{0x6d, 0x00, 0x00}}, + {1, [3]byte{0x6e, 0x00, 0x00}}, {1, [3]byte{0x6f, 0x00, 0x00}}, + {1, [3]byte{0x70, 0x00, 0x00}}, {1, [3]byte{0x71, 0x00, 0x00}}, + {1, [3]byte{0x72, 0x00, 0x00}}, {1, [3]byte{0x73, 0x00, 0x00}}, + {1, [3]byte{0x74, 0x00, 0x00}}, {1, [3]byte{0x75, 0x00, 0x00}}, + {1, [3]byte{0x76, 0x00, 0x00}}, {1, [3]byte{0x77, 0x00, 0x00}}, + {1, [3]byte{0x78, 0x00, 0x00}}, {1, [3]byte{0x79, 0x00, 0x00}}, + {1, [3]byte{0x7a, 0x00, 0x00}}, {1, [3]byte{0x7b, 0x00, 0x00}}, + {1, [3]byte{0x7c, 0x00, 0x00}}, {1, [3]byte{0x7d, 0x00, 0x00}}, + {1, [3]byte{0x7e, 0x00, 0x00}}, {1, [3]byte{0x7f, 0x00, 0x00}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {2, [3]byte{0xc2, 0xa0, 0x00}}, {3, [3]byte{0xe1, 0xb8, 0x82}}, + {3, [3]byte{0xe1, 0xb8, 0x83}}, {2, [3]byte{0xc2, 0xa3, 0x00}}, + {2, [3]byte{0xc4, 0x8a, 0x00}}, {2, [3]byte{0xc4, 0x8b, 0x00}}, + {3, [3]byte{0xe1, 0xb8, 0x8a}}, {2, [3]byte{0xc2, 0xa7, 0x00}}, + {3, [3]byte{0xe1, 0xba, 0x80}}, {2, [3]byte{0xc2, 0xa9, 0x00}}, + {3, [3]byte{0xe1, 0xba, 0x82}}, {3, [3]byte{0xe1, 0xb8, 0x8b}}, + {3, [3]byte{0xe1, 0xbb, 0xb2}}, {2, [3]byte{0xc2, 0xad, 0x00}}, + {2, [3]byte{0xc2, 0xae, 0x00}}, {2, [3]byte{0xc5, 0xb8, 0x00}}, + {3, [3]byte{0xe1, 0xb8, 0x9e}}, {3, [3]byte{0xe1, 0xb8, 0x9f}}, + {2, [3]byte{0xc4, 0xa0, 0x00}}, {2, [3]byte{0xc4, 0xa1, 0x00}}, + {3, [3]byte{0xe1, 0xb9, 0x80}}, {3, [3]byte{0xe1, 0xb9, 0x81}}, + {2, [3]byte{0xc2, 0xb6, 0x00}}, {3, [3]byte{0xe1, 0xb9, 0x96}}, + {3, [3]byte{0xe1, 0xba, 0x81}}, {3, [3]byte{0xe1, 0xb9, 0x97}}, + {3, [3]byte{0xe1, 0xba, 0x83}}, {3, [3]byte{0xe1, 0xb9, 0xa0}}, + {3, [3]byte{0xe1, 0xbb, 0xb3}}, {3, [3]byte{0xe1, 0xba, 0x84}}, + {3, [3]byte{0xe1, 0xba, 0x85}}, {3, [3]byte{0xe1, 0xb9, 0xa1}}, + {2, [3]byte{0xc3, 0x80, 0x00}}, {2, [3]byte{0xc3, 0x81, 0x00}}, + {2, [3]byte{0xc3, 0x82, 0x00}}, {2, [3]byte{0xc3, 0x83, 0x00}}, + {2, [3]byte{0xc3, 0x84, 0x00}}, {2, [3]byte{0xc3, 0x85, 0x00}}, + {2, [3]byte{0xc3, 0x86, 0x00}}, {2, [3]byte{0xc3, 0x87, 0x00}}, + {2, [3]byte{0xc3, 0x88, 0x00}}, {2, [3]byte{0xc3, 0x89, 0x00}}, + {2, [3]byte{0xc3, 0x8a, 0x00}}, {2, [3]byte{0xc3, 0x8b, 0x00}}, + {2, [3]byte{0xc3, 0x8c, 0x00}}, {2, [3]byte{0xc3, 0x8d, 0x00}}, + {2, [3]byte{0xc3, 0x8e, 0x00}}, {2, [3]byte{0xc3, 0x8f, 0x00}}, + {2, [3]byte{0xc5, 0xb4, 0x00}}, {2, [3]byte{0xc3, 0x91, 0x00}}, + {2, [3]byte{0xc3, 0x92, 0x00}}, {2, [3]byte{0xc3, 0x93, 0x00}}, + {2, [3]byte{0xc3, 0x94, 0x00}}, {2, [3]byte{0xc3, 0x95, 0x00}}, + {2, [3]byte{0xc3, 0x96, 0x00}}, {3, [3]byte{0xe1, 0xb9, 0xaa}}, + {2, [3]byte{0xc3, 0x98, 0x00}}, {2, [3]byte{0xc3, 0x99, 0x00}}, + {2, [3]byte{0xc3, 0x9a, 0x00}}, {2, [3]byte{0xc3, 0x9b, 0x00}}, + {2, [3]byte{0xc3, 0x9c, 0x00}}, {2, [3]byte{0xc3, 0x9d, 0x00}}, + {2, [3]byte{0xc5, 0xb6, 0x00}}, {2, [3]byte{0xc3, 0x9f, 0x00}}, + {2, [3]byte{0xc3, 0xa0, 0x00}}, {2, [3]byte{0xc3, 0xa1, 0x00}}, + {2, [3]byte{0xc3, 0xa2, 0x00}}, {2, [3]byte{0xc3, 0xa3, 0x00}}, + {2, [3]byte{0xc3, 0xa4, 0x00}}, {2, [3]byte{0xc3, 0xa5, 0x00}}, + {2, [3]byte{0xc3, 0xa6, 0x00}}, {2, [3]byte{0xc3, 0xa7, 0x00}}, + {2, [3]byte{0xc3, 0xa8, 0x00}}, {2, [3]byte{0xc3, 0xa9, 0x00}}, + {2, [3]byte{0xc3, 0xaa, 0x00}}, {2, [3]byte{0xc3, 0xab, 0x00}}, + {2, [3]byte{0xc3, 0xac, 0x00}}, {2, [3]byte{0xc3, 0xad, 0x00}}, + {2, [3]byte{0xc3, 0xae, 0x00}}, {2, [3]byte{0xc3, 0xaf, 0x00}}, + {2, [3]byte{0xc5, 0xb5, 0x00}}, {2, [3]byte{0xc3, 0xb1, 0x00}}, + {2, [3]byte{0xc3, 0xb2, 0x00}}, {2, [3]byte{0xc3, 0xb3, 0x00}}, + {2, [3]byte{0xc3, 0xb4, 0x00}}, {2, [3]byte{0xc3, 0xb5, 0x00}}, + {2, [3]byte{0xc3, 0xb6, 0x00}}, {3, [3]byte{0xe1, 0xb9, 0xab}}, + {2, [3]byte{0xc3, 0xb8, 0x00}}, {2, [3]byte{0xc3, 0xb9, 0x00}}, + {2, [3]byte{0xc3, 0xba, 0x00}}, {2, [3]byte{0xc3, 0xbb, 0x00}}, + {2, [3]byte{0xc3, 0xbc, 0x00}}, {2, [3]byte{0xc3, 0xbd, 0x00}}, + {2, [3]byte{0xc5, 0xb7, 0x00}}, {2, [3]byte{0xc3, 0xbf, 0x00}}, + }, + encode: [256]uint32{ + 0x00000000, 0x01000001, 0x02000002, 0x03000003, 0x04000004, 0x05000005, 0x06000006, 0x07000007, + 0x08000008, 0x09000009, 0x0a00000a, 0x0b00000b, 0x0c00000c, 0x0d00000d, 0x0e00000e, 0x0f00000f, + 0x10000010, 0x11000011, 0x12000012, 0x13000013, 0x14000014, 0x15000015, 0x16000016, 0x17000017, + 0x18000018, 0x19000019, 0x1a00001a, 0x1b00001b, 0x1c00001c, 0x1d00001d, 0x1e00001e, 0x1f00001f, + 0x20000020, 0x21000021, 0x22000022, 0x23000023, 0x24000024, 0x25000025, 0x26000026, 0x27000027, + 0x28000028, 0x29000029, 0x2a00002a, 0x2b00002b, 0x2c00002c, 0x2d00002d, 0x2e00002e, 0x2f00002f, + 0x30000030, 0x31000031, 0x32000032, 0x33000033, 0x34000034, 0x35000035, 0x36000036, 0x37000037, + 0x38000038, 0x39000039, 0x3a00003a, 0x3b00003b, 0x3c00003c, 0x3d00003d, 0x3e00003e, 0x3f00003f, + 0x40000040, 0x41000041, 0x42000042, 0x43000043, 0x44000044, 0x45000045, 0x46000046, 0x47000047, + 0x48000048, 0x49000049, 0x4a00004a, 0x4b00004b, 0x4c00004c, 0x4d00004d, 0x4e00004e, 0x4f00004f, + 0x50000050, 0x51000051, 0x52000052, 0x53000053, 0x54000054, 0x55000055, 0x56000056, 0x57000057, + 0x58000058, 0x59000059, 0x5a00005a, 0x5b00005b, 0x5c00005c, 0x5d00005d, 0x5e00005e, 0x5f00005f, + 0x60000060, 0x61000061, 0x62000062, 0x63000063, 0x64000064, 0x65000065, 0x66000066, 0x67000067, + 0x68000068, 0x69000069, 0x6a00006a, 0x6b00006b, 0x6c00006c, 0x6d00006d, 0x6e00006e, 0x6f00006f, + 0x70000070, 0x71000071, 0x72000072, 0x73000073, 0x74000074, 0x75000075, 0x76000076, 0x77000077, + 0x78000078, 0x79000079, 0x7a00007a, 0x7b00007b, 0x7c00007c, 0x7d00007d, 0x7e00007e, 0x7f00007f, + 0xa00000a0, 0xa30000a3, 0xa70000a7, 0xa90000a9, 0xad0000ad, 0xae0000ae, 0xb60000b6, 0xc00000c0, + 0xc10000c1, 0xc20000c2, 0xc30000c3, 0xc40000c4, 0xc50000c5, 0xc60000c6, 0xc70000c7, 0xc80000c8, + 0xc90000c9, 0xca0000ca, 0xcb0000cb, 0xcc0000cc, 0xcd0000cd, 0xce0000ce, 0xcf0000cf, 0xd10000d1, + 0xd20000d2, 0xd30000d3, 0xd40000d4, 0xd50000d5, 0xd60000d6, 0xd80000d8, 0xd90000d9, 0xda0000da, + 0xdb0000db, 0xdc0000dc, 0xdd0000dd, 0xdf0000df, 0xe00000e0, 0xe10000e1, 0xe20000e2, 0xe30000e3, + 0xe40000e4, 0xe50000e5, 0xe60000e6, 0xe70000e7, 0xe80000e8, 0xe90000e9, 0xea0000ea, 0xeb0000eb, + 0xec0000ec, 0xed0000ed, 0xee0000ee, 0xef0000ef, 0xf10000f1, 0xf20000f2, 0xf30000f3, 0xf40000f4, + 0xf50000f5, 0xf60000f6, 0xf80000f8, 0xf90000f9, 0xfa0000fa, 0xfb0000fb, 0xfc0000fc, 0xfd0000fd, + 0xff0000ff, 0xa400010a, 0xa500010b, 0xb2000120, 0xb3000121, 0xd0000174, 0xf0000175, 0xde000176, + 0xfe000177, 0xaf000178, 0xa1001e02, 0xa2001e03, 0xa6001e0a, 0xab001e0b, 0xb0001e1e, 0xb1001e1f, + 0xb4001e40, 0xb5001e41, 0xb7001e56, 0xb9001e57, 0xbb001e60, 0xbf001e61, 0xd7001e6a, 0xf7001e6b, + 0xa8001e80, 0xb8001e81, 0xaa001e82, 0xba001e83, 0xbd001e84, 0xbe001e85, 0xac001ef2, 0xbc001ef3, + 0xbc001ef3, 0xbc001ef3, 0xbc001ef3, 0xbc001ef3, 0xbc001ef3, 0xbc001ef3, 0xbc001ef3, 0xbc001ef3, + 0xbc001ef3, 0xbc001ef3, 0xbc001ef3, 0xbc001ef3, 0xbc001ef3, 0xbc001ef3, 0xbc001ef3, 0xbc001ef3, + 0xbc001ef3, 0xbc001ef3, 0xbc001ef3, 0xbc001ef3, 0xbc001ef3, 0xbc001ef3, 0xbc001ef3, 0xbc001ef3, + 0xbc001ef3, 0xbc001ef3, 0xbc001ef3, 0xbc001ef3, 0xbc001ef3, 0xbc001ef3, 0xbc001ef3, 0xbc001ef3, + }, +} + +// ISO8859_15 is the ISO 8859-15 encoding. +var ISO8859_15 *Charmap = &iso8859_15 + +var iso8859_15 = Charmap{ + name: "ISO 8859-15", + mib: identifier.ISO885915, + asciiSuperset: true, + low: 0x80, + replacement: 0x1a, + decode: [256]utf8Enc{ + {1, [3]byte{0x00, 0x00, 0x00}}, {1, [3]byte{0x01, 0x00, 0x00}}, + {1, [3]byte{0x02, 0x00, 0x00}}, {1, [3]byte{0x03, 0x00, 0x00}}, + {1, [3]byte{0x04, 0x00, 0x00}}, {1, [3]byte{0x05, 0x00, 0x00}}, + {1, [3]byte{0x06, 0x00, 0x00}}, {1, [3]byte{0x07, 0x00, 0x00}}, + {1, [3]byte{0x08, 0x00, 0x00}}, {1, [3]byte{0x09, 0x00, 0x00}}, + {1, [3]byte{0x0a, 0x00, 0x00}}, {1, [3]byte{0x0b, 0x00, 0x00}}, + {1, [3]byte{0x0c, 0x00, 0x00}}, {1, [3]byte{0x0d, 0x00, 0x00}}, + {1, [3]byte{0x0e, 0x00, 0x00}}, {1, [3]byte{0x0f, 0x00, 0x00}}, + {1, [3]byte{0x10, 0x00, 0x00}}, {1, [3]byte{0x11, 0x00, 0x00}}, + {1, [3]byte{0x12, 0x00, 0x00}}, {1, [3]byte{0x13, 0x00, 0x00}}, + {1, [3]byte{0x14, 0x00, 0x00}}, {1, [3]byte{0x15, 0x00, 0x00}}, + {1, [3]byte{0x16, 0x00, 0x00}}, {1, [3]byte{0x17, 0x00, 0x00}}, + {1, [3]byte{0x18, 0x00, 0x00}}, {1, [3]byte{0x19, 0x00, 0x00}}, + {1, [3]byte{0x1a, 0x00, 0x00}}, {1, [3]byte{0x1b, 0x00, 0x00}}, + {1, [3]byte{0x1c, 0x00, 0x00}}, {1, [3]byte{0x1d, 0x00, 0x00}}, + {1, [3]byte{0x1e, 0x00, 0x00}}, {1, [3]byte{0x1f, 0x00, 0x00}}, + {1, [3]byte{0x20, 0x00, 0x00}}, {1, [3]byte{0x21, 0x00, 0x00}}, + {1, [3]byte{0x22, 0x00, 0x00}}, {1, [3]byte{0x23, 0x00, 0x00}}, + {1, [3]byte{0x24, 0x00, 0x00}}, {1, [3]byte{0x25, 0x00, 0x00}}, + {1, [3]byte{0x26, 0x00, 0x00}}, {1, [3]byte{0x27, 0x00, 0x00}}, + {1, [3]byte{0x28, 0x00, 0x00}}, {1, [3]byte{0x29, 0x00, 0x00}}, + {1, [3]byte{0x2a, 0x00, 0x00}}, {1, [3]byte{0x2b, 0x00, 0x00}}, + {1, [3]byte{0x2c, 0x00, 0x00}}, {1, [3]byte{0x2d, 0x00, 0x00}}, + {1, [3]byte{0x2e, 0x00, 0x00}}, {1, [3]byte{0x2f, 0x00, 0x00}}, + {1, [3]byte{0x30, 0x00, 0x00}}, {1, [3]byte{0x31, 0x00, 0x00}}, + {1, [3]byte{0x32, 0x00, 0x00}}, {1, [3]byte{0x33, 0x00, 0x00}}, + {1, [3]byte{0x34, 0x00, 0x00}}, {1, [3]byte{0x35, 0x00, 0x00}}, + {1, [3]byte{0x36, 0x00, 0x00}}, {1, [3]byte{0x37, 0x00, 0x00}}, + {1, [3]byte{0x38, 0x00, 0x00}}, {1, [3]byte{0x39, 0x00, 0x00}}, + {1, [3]byte{0x3a, 0x00, 0x00}}, {1, [3]byte{0x3b, 0x00, 0x00}}, + {1, [3]byte{0x3c, 0x00, 0x00}}, {1, [3]byte{0x3d, 0x00, 0x00}}, + {1, [3]byte{0x3e, 0x00, 0x00}}, {1, [3]byte{0x3f, 0x00, 0x00}}, + {1, [3]byte{0x40, 0x00, 0x00}}, {1, [3]byte{0x41, 0x00, 0x00}}, + {1, [3]byte{0x42, 0x00, 0x00}}, {1, [3]byte{0x43, 0x00, 0x00}}, + {1, [3]byte{0x44, 0x00, 0x00}}, {1, [3]byte{0x45, 0x00, 0x00}}, + {1, [3]byte{0x46, 0x00, 0x00}}, {1, [3]byte{0x47, 0x00, 0x00}}, + {1, [3]byte{0x48, 0x00, 0x00}}, {1, [3]byte{0x49, 0x00, 0x00}}, + {1, [3]byte{0x4a, 0x00, 0x00}}, {1, [3]byte{0x4b, 0x00, 0x00}}, + {1, [3]byte{0x4c, 0x00, 0x00}}, {1, [3]byte{0x4d, 0x00, 0x00}}, + {1, [3]byte{0x4e, 0x00, 0x00}}, {1, [3]byte{0x4f, 0x00, 0x00}}, + {1, [3]byte{0x50, 0x00, 0x00}}, {1, [3]byte{0x51, 0x00, 0x00}}, + {1, [3]byte{0x52, 0x00, 0x00}}, {1, [3]byte{0x53, 0x00, 0x00}}, + {1, [3]byte{0x54, 0x00, 0x00}}, {1, [3]byte{0x55, 0x00, 0x00}}, + {1, [3]byte{0x56, 0x00, 0x00}}, {1, [3]byte{0x57, 0x00, 0x00}}, + {1, [3]byte{0x58, 0x00, 0x00}}, {1, [3]byte{0x59, 0x00, 0x00}}, + {1, [3]byte{0x5a, 0x00, 0x00}}, {1, [3]byte{0x5b, 0x00, 0x00}}, + {1, [3]byte{0x5c, 0x00, 0x00}}, {1, [3]byte{0x5d, 0x00, 0x00}}, + {1, [3]byte{0x5e, 0x00, 0x00}}, {1, [3]byte{0x5f, 0x00, 0x00}}, + {1, [3]byte{0x60, 0x00, 0x00}}, {1, [3]byte{0x61, 0x00, 0x00}}, + {1, [3]byte{0x62, 0x00, 0x00}}, {1, [3]byte{0x63, 0x00, 0x00}}, + {1, [3]byte{0x64, 0x00, 0x00}}, {1, [3]byte{0x65, 0x00, 0x00}}, + {1, [3]byte{0x66, 0x00, 0x00}}, {1, [3]byte{0x67, 0x00, 0x00}}, + {1, [3]byte{0x68, 0x00, 0x00}}, {1, [3]byte{0x69, 0x00, 0x00}}, + {1, [3]byte{0x6a, 0x00, 0x00}}, {1, [3]byte{0x6b, 0x00, 0x00}}, + {1, [3]byte{0x6c, 0x00, 0x00}}, {1, [3]byte{0x6d, 0x00, 0x00}}, + {1, [3]byte{0x6e, 0x00, 0x00}}, {1, [3]byte{0x6f, 0x00, 0x00}}, + {1, [3]byte{0x70, 0x00, 0x00}}, {1, [3]byte{0x71, 0x00, 0x00}}, + {1, [3]byte{0x72, 0x00, 0x00}}, {1, [3]byte{0x73, 0x00, 0x00}}, + {1, [3]byte{0x74, 0x00, 0x00}}, {1, [3]byte{0x75, 0x00, 0x00}}, + {1, [3]byte{0x76, 0x00, 0x00}}, {1, [3]byte{0x77, 0x00, 0x00}}, + {1, [3]byte{0x78, 0x00, 0x00}}, {1, [3]byte{0x79, 0x00, 0x00}}, + {1, [3]byte{0x7a, 0x00, 0x00}}, {1, [3]byte{0x7b, 0x00, 0x00}}, + {1, [3]byte{0x7c, 0x00, 0x00}}, {1, [3]byte{0x7d, 0x00, 0x00}}, + {1, [3]byte{0x7e, 0x00, 0x00}}, {1, [3]byte{0x7f, 0x00, 0x00}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {2, [3]byte{0xc2, 0xa0, 0x00}}, {2, [3]byte{0xc2, 0xa1, 0x00}}, + {2, [3]byte{0xc2, 0xa2, 0x00}}, {2, [3]byte{0xc2, 0xa3, 0x00}}, + {3, [3]byte{0xe2, 0x82, 0xac}}, {2, [3]byte{0xc2, 0xa5, 0x00}}, + {2, [3]byte{0xc5, 0xa0, 0x00}}, {2, [3]byte{0xc2, 0xa7, 0x00}}, + {2, [3]byte{0xc5, 0xa1, 0x00}}, {2, [3]byte{0xc2, 0xa9, 0x00}}, + {2, [3]byte{0xc2, 0xaa, 0x00}}, {2, [3]byte{0xc2, 0xab, 0x00}}, + {2, [3]byte{0xc2, 0xac, 0x00}}, {2, [3]byte{0xc2, 0xad, 0x00}}, + {2, [3]byte{0xc2, 0xae, 0x00}}, {2, [3]byte{0xc2, 0xaf, 0x00}}, + {2, [3]byte{0xc2, 0xb0, 0x00}}, {2, [3]byte{0xc2, 0xb1, 0x00}}, + {2, [3]byte{0xc2, 0xb2, 0x00}}, {2, [3]byte{0xc2, 0xb3, 0x00}}, + {2, [3]byte{0xc5, 0xbd, 0x00}}, {2, [3]byte{0xc2, 0xb5, 0x00}}, + {2, [3]byte{0xc2, 0xb6, 0x00}}, {2, [3]byte{0xc2, 0xb7, 0x00}}, + {2, [3]byte{0xc5, 0xbe, 0x00}}, {2, [3]byte{0xc2, 0xb9, 0x00}}, + {2, [3]byte{0xc2, 0xba, 0x00}}, {2, [3]byte{0xc2, 0xbb, 0x00}}, + {2, [3]byte{0xc5, 0x92, 0x00}}, {2, [3]byte{0xc5, 0x93, 0x00}}, + {2, [3]byte{0xc5, 0xb8, 0x00}}, {2, [3]byte{0xc2, 0xbf, 0x00}}, + {2, [3]byte{0xc3, 0x80, 0x00}}, {2, [3]byte{0xc3, 0x81, 0x00}}, + {2, [3]byte{0xc3, 0x82, 0x00}}, {2, [3]byte{0xc3, 0x83, 0x00}}, + {2, [3]byte{0xc3, 0x84, 0x00}}, {2, [3]byte{0xc3, 0x85, 0x00}}, + {2, [3]byte{0xc3, 0x86, 0x00}}, {2, [3]byte{0xc3, 0x87, 0x00}}, + {2, [3]byte{0xc3, 0x88, 0x00}}, {2, [3]byte{0xc3, 0x89, 0x00}}, + {2, [3]byte{0xc3, 0x8a, 0x00}}, {2, [3]byte{0xc3, 0x8b, 0x00}}, + {2, [3]byte{0xc3, 0x8c, 0x00}}, {2, [3]byte{0xc3, 0x8d, 0x00}}, + {2, [3]byte{0xc3, 0x8e, 0x00}}, {2, [3]byte{0xc3, 0x8f, 0x00}}, + {2, [3]byte{0xc3, 0x90, 0x00}}, {2, [3]byte{0xc3, 0x91, 0x00}}, + {2, [3]byte{0xc3, 0x92, 0x00}}, {2, [3]byte{0xc3, 0x93, 0x00}}, + {2, [3]byte{0xc3, 0x94, 0x00}}, {2, [3]byte{0xc3, 0x95, 0x00}}, + {2, [3]byte{0xc3, 0x96, 0x00}}, {2, [3]byte{0xc3, 0x97, 0x00}}, + {2, [3]byte{0xc3, 0x98, 0x00}}, {2, [3]byte{0xc3, 0x99, 0x00}}, + {2, [3]byte{0xc3, 0x9a, 0x00}}, {2, [3]byte{0xc3, 0x9b, 0x00}}, + {2, [3]byte{0xc3, 0x9c, 0x00}}, {2, [3]byte{0xc3, 0x9d, 0x00}}, + {2, [3]byte{0xc3, 0x9e, 0x00}}, {2, [3]byte{0xc3, 0x9f, 0x00}}, + {2, [3]byte{0xc3, 0xa0, 0x00}}, {2, [3]byte{0xc3, 0xa1, 0x00}}, + {2, [3]byte{0xc3, 0xa2, 0x00}}, {2, [3]byte{0xc3, 0xa3, 0x00}}, + {2, [3]byte{0xc3, 0xa4, 0x00}}, {2, [3]byte{0xc3, 0xa5, 0x00}}, + {2, [3]byte{0xc3, 0xa6, 0x00}}, {2, [3]byte{0xc3, 0xa7, 0x00}}, + {2, [3]byte{0xc3, 0xa8, 0x00}}, {2, [3]byte{0xc3, 0xa9, 0x00}}, + {2, [3]byte{0xc3, 0xaa, 0x00}}, {2, [3]byte{0xc3, 0xab, 0x00}}, + {2, [3]byte{0xc3, 0xac, 0x00}}, {2, [3]byte{0xc3, 0xad, 0x00}}, + {2, [3]byte{0xc3, 0xae, 0x00}}, {2, [3]byte{0xc3, 0xaf, 0x00}}, + {2, [3]byte{0xc3, 0xb0, 0x00}}, {2, [3]byte{0xc3, 0xb1, 0x00}}, + {2, [3]byte{0xc3, 0xb2, 0x00}}, {2, [3]byte{0xc3, 0xb3, 0x00}}, + {2, [3]byte{0xc3, 0xb4, 0x00}}, {2, [3]byte{0xc3, 0xb5, 0x00}}, + {2, [3]byte{0xc3, 0xb6, 0x00}}, {2, [3]byte{0xc3, 0xb7, 0x00}}, + {2, [3]byte{0xc3, 0xb8, 0x00}}, {2, [3]byte{0xc3, 0xb9, 0x00}}, + {2, [3]byte{0xc3, 0xba, 0x00}}, {2, [3]byte{0xc3, 0xbb, 0x00}}, + {2, [3]byte{0xc3, 0xbc, 0x00}}, {2, [3]byte{0xc3, 0xbd, 0x00}}, + {2, [3]byte{0xc3, 0xbe, 0x00}}, {2, [3]byte{0xc3, 0xbf, 0x00}}, + }, + encode: [256]uint32{ + 0x00000000, 0x01000001, 0x02000002, 0x03000003, 0x04000004, 0x05000005, 0x06000006, 0x07000007, + 0x08000008, 0x09000009, 0x0a00000a, 0x0b00000b, 0x0c00000c, 0x0d00000d, 0x0e00000e, 0x0f00000f, + 0x10000010, 0x11000011, 0x12000012, 0x13000013, 0x14000014, 0x15000015, 0x16000016, 0x17000017, + 0x18000018, 0x19000019, 0x1a00001a, 0x1b00001b, 0x1c00001c, 0x1d00001d, 0x1e00001e, 0x1f00001f, + 0x20000020, 0x21000021, 0x22000022, 0x23000023, 0x24000024, 0x25000025, 0x26000026, 0x27000027, + 0x28000028, 0x29000029, 0x2a00002a, 0x2b00002b, 0x2c00002c, 0x2d00002d, 0x2e00002e, 0x2f00002f, + 0x30000030, 0x31000031, 0x32000032, 0x33000033, 0x34000034, 0x35000035, 0x36000036, 0x37000037, + 0x38000038, 0x39000039, 0x3a00003a, 0x3b00003b, 0x3c00003c, 0x3d00003d, 0x3e00003e, 0x3f00003f, + 0x40000040, 0x41000041, 0x42000042, 0x43000043, 0x44000044, 0x45000045, 0x46000046, 0x47000047, + 0x48000048, 0x49000049, 0x4a00004a, 0x4b00004b, 0x4c00004c, 0x4d00004d, 0x4e00004e, 0x4f00004f, + 0x50000050, 0x51000051, 0x52000052, 0x53000053, 0x54000054, 0x55000055, 0x56000056, 0x57000057, + 0x58000058, 0x59000059, 0x5a00005a, 0x5b00005b, 0x5c00005c, 0x5d00005d, 0x5e00005e, 0x5f00005f, + 0x60000060, 0x61000061, 0x62000062, 0x63000063, 0x64000064, 0x65000065, 0x66000066, 0x67000067, + 0x68000068, 0x69000069, 0x6a00006a, 0x6b00006b, 0x6c00006c, 0x6d00006d, 0x6e00006e, 0x6f00006f, + 0x70000070, 0x71000071, 0x72000072, 0x73000073, 0x74000074, 0x75000075, 0x76000076, 0x77000077, + 0x78000078, 0x79000079, 0x7a00007a, 0x7b00007b, 0x7c00007c, 0x7d00007d, 0x7e00007e, 0x7f00007f, + 0xa00000a0, 0xa10000a1, 0xa20000a2, 0xa30000a3, 0xa50000a5, 0xa70000a7, 0xa90000a9, 0xaa0000aa, + 0xab0000ab, 0xac0000ac, 0xad0000ad, 0xae0000ae, 0xaf0000af, 0xb00000b0, 0xb10000b1, 0xb20000b2, + 0xb30000b3, 0xb50000b5, 0xb60000b6, 0xb70000b7, 0xb90000b9, 0xba0000ba, 0xbb0000bb, 0xbf0000bf, + 0xc00000c0, 0xc10000c1, 0xc20000c2, 0xc30000c3, 0xc40000c4, 0xc50000c5, 0xc60000c6, 0xc70000c7, + 0xc80000c8, 0xc90000c9, 0xca0000ca, 0xcb0000cb, 0xcc0000cc, 0xcd0000cd, 0xce0000ce, 0xcf0000cf, + 0xd00000d0, 0xd10000d1, 0xd20000d2, 0xd30000d3, 0xd40000d4, 0xd50000d5, 0xd60000d6, 0xd70000d7, + 0xd80000d8, 0xd90000d9, 0xda0000da, 0xdb0000db, 0xdc0000dc, 0xdd0000dd, 0xde0000de, 0xdf0000df, + 0xe00000e0, 0xe10000e1, 0xe20000e2, 0xe30000e3, 0xe40000e4, 0xe50000e5, 0xe60000e6, 0xe70000e7, + 0xe80000e8, 0xe90000e9, 0xea0000ea, 0xeb0000eb, 0xec0000ec, 0xed0000ed, 0xee0000ee, 0xef0000ef, + 0xf00000f0, 0xf10000f1, 0xf20000f2, 0xf30000f3, 0xf40000f4, 0xf50000f5, 0xf60000f6, 0xf70000f7, + 0xf80000f8, 0xf90000f9, 0xfa0000fa, 0xfb0000fb, 0xfc0000fc, 0xfd0000fd, 0xfe0000fe, 0xff0000ff, + 0xbc000152, 0xbd000153, 0xa6000160, 0xa8000161, 0xbe000178, 0xb400017d, 0xb800017e, 0xa40020ac, + 0xa40020ac, 0xa40020ac, 0xa40020ac, 0xa40020ac, 0xa40020ac, 0xa40020ac, 0xa40020ac, 0xa40020ac, + 0xa40020ac, 0xa40020ac, 0xa40020ac, 0xa40020ac, 0xa40020ac, 0xa40020ac, 0xa40020ac, 0xa40020ac, + 0xa40020ac, 0xa40020ac, 0xa40020ac, 0xa40020ac, 0xa40020ac, 0xa40020ac, 0xa40020ac, 0xa40020ac, + 0xa40020ac, 0xa40020ac, 0xa40020ac, 0xa40020ac, 0xa40020ac, 0xa40020ac, 0xa40020ac, 0xa40020ac, + }, +} + +// ISO8859_16 is the ISO 8859-16 encoding. +var ISO8859_16 *Charmap = &iso8859_16 + +var iso8859_16 = Charmap{ + name: "ISO 8859-16", + mib: identifier.ISO885916, + asciiSuperset: true, + low: 0x80, + replacement: 0x1a, + decode: [256]utf8Enc{ + {1, [3]byte{0x00, 0x00, 0x00}}, {1, [3]byte{0x01, 0x00, 0x00}}, + {1, [3]byte{0x02, 0x00, 0x00}}, {1, [3]byte{0x03, 0x00, 0x00}}, + {1, [3]byte{0x04, 0x00, 0x00}}, {1, [3]byte{0x05, 0x00, 0x00}}, + {1, [3]byte{0x06, 0x00, 0x00}}, {1, [3]byte{0x07, 0x00, 0x00}}, + {1, [3]byte{0x08, 0x00, 0x00}}, {1, [3]byte{0x09, 0x00, 0x00}}, + {1, [3]byte{0x0a, 0x00, 0x00}}, {1, [3]byte{0x0b, 0x00, 0x00}}, + {1, [3]byte{0x0c, 0x00, 0x00}}, {1, [3]byte{0x0d, 0x00, 0x00}}, + {1, [3]byte{0x0e, 0x00, 0x00}}, {1, [3]byte{0x0f, 0x00, 0x00}}, + {1, [3]byte{0x10, 0x00, 0x00}}, {1, [3]byte{0x11, 0x00, 0x00}}, + {1, [3]byte{0x12, 0x00, 0x00}}, {1, [3]byte{0x13, 0x00, 0x00}}, + {1, [3]byte{0x14, 0x00, 0x00}}, {1, [3]byte{0x15, 0x00, 0x00}}, + {1, [3]byte{0x16, 0x00, 0x00}}, {1, [3]byte{0x17, 0x00, 0x00}}, + {1, [3]byte{0x18, 0x00, 0x00}}, {1, [3]byte{0x19, 0x00, 0x00}}, + {1, [3]byte{0x1a, 0x00, 0x00}}, {1, [3]byte{0x1b, 0x00, 0x00}}, + {1, [3]byte{0x1c, 0x00, 0x00}}, {1, [3]byte{0x1d, 0x00, 0x00}}, + {1, [3]byte{0x1e, 0x00, 0x00}}, {1, [3]byte{0x1f, 0x00, 0x00}}, + {1, [3]byte{0x20, 0x00, 0x00}}, {1, [3]byte{0x21, 0x00, 0x00}}, + {1, [3]byte{0x22, 0x00, 0x00}}, {1, [3]byte{0x23, 0x00, 0x00}}, + {1, [3]byte{0x24, 0x00, 0x00}}, {1, [3]byte{0x25, 0x00, 0x00}}, + {1, [3]byte{0x26, 0x00, 0x00}}, {1, [3]byte{0x27, 0x00, 0x00}}, + {1, [3]byte{0x28, 0x00, 0x00}}, {1, [3]byte{0x29, 0x00, 0x00}}, + {1, [3]byte{0x2a, 0x00, 0x00}}, {1, [3]byte{0x2b, 0x00, 0x00}}, + {1, [3]byte{0x2c, 0x00, 0x00}}, {1, [3]byte{0x2d, 0x00, 0x00}}, + {1, [3]byte{0x2e, 0x00, 0x00}}, {1, [3]byte{0x2f, 0x00, 0x00}}, + {1, [3]byte{0x30, 0x00, 0x00}}, {1, [3]byte{0x31, 0x00, 0x00}}, + {1, [3]byte{0x32, 0x00, 0x00}}, {1, [3]byte{0x33, 0x00, 0x00}}, + {1, [3]byte{0x34, 0x00, 0x00}}, {1, [3]byte{0x35, 0x00, 0x00}}, + {1, [3]byte{0x36, 0x00, 0x00}}, {1, [3]byte{0x37, 0x00, 0x00}}, + {1, [3]byte{0x38, 0x00, 0x00}}, {1, [3]byte{0x39, 0x00, 0x00}}, + {1, [3]byte{0x3a, 0x00, 0x00}}, {1, [3]byte{0x3b, 0x00, 0x00}}, + {1, [3]byte{0x3c, 0x00, 0x00}}, {1, [3]byte{0x3d, 0x00, 0x00}}, + {1, [3]byte{0x3e, 0x00, 0x00}}, {1, [3]byte{0x3f, 0x00, 0x00}}, + {1, [3]byte{0x40, 0x00, 0x00}}, {1, [3]byte{0x41, 0x00, 0x00}}, + {1, [3]byte{0x42, 0x00, 0x00}}, {1, [3]byte{0x43, 0x00, 0x00}}, + {1, [3]byte{0x44, 0x00, 0x00}}, {1, [3]byte{0x45, 0x00, 0x00}}, + {1, [3]byte{0x46, 0x00, 0x00}}, {1, [3]byte{0x47, 0x00, 0x00}}, + {1, [3]byte{0x48, 0x00, 0x00}}, {1, [3]byte{0x49, 0x00, 0x00}}, + {1, [3]byte{0x4a, 0x00, 0x00}}, {1, [3]byte{0x4b, 0x00, 0x00}}, + {1, [3]byte{0x4c, 0x00, 0x00}}, {1, [3]byte{0x4d, 0x00, 0x00}}, + {1, [3]byte{0x4e, 0x00, 0x00}}, {1, [3]byte{0x4f, 0x00, 0x00}}, + {1, [3]byte{0x50, 0x00, 0x00}}, {1, [3]byte{0x51, 0x00, 0x00}}, + {1, [3]byte{0x52, 0x00, 0x00}}, {1, [3]byte{0x53, 0x00, 0x00}}, + {1, [3]byte{0x54, 0x00, 0x00}}, {1, [3]byte{0x55, 0x00, 0x00}}, + {1, [3]byte{0x56, 0x00, 0x00}}, {1, [3]byte{0x57, 0x00, 0x00}}, + {1, [3]byte{0x58, 0x00, 0x00}}, {1, [3]byte{0x59, 0x00, 0x00}}, + {1, [3]byte{0x5a, 0x00, 0x00}}, {1, [3]byte{0x5b, 0x00, 0x00}}, + {1, [3]byte{0x5c, 0x00, 0x00}}, {1, [3]byte{0x5d, 0x00, 0x00}}, + {1, [3]byte{0x5e, 0x00, 0x00}}, {1, [3]byte{0x5f, 0x00, 0x00}}, + {1, [3]byte{0x60, 0x00, 0x00}}, {1, [3]byte{0x61, 0x00, 0x00}}, + {1, [3]byte{0x62, 0x00, 0x00}}, {1, [3]byte{0x63, 0x00, 0x00}}, + {1, [3]byte{0x64, 0x00, 0x00}}, {1, [3]byte{0x65, 0x00, 0x00}}, + {1, [3]byte{0x66, 0x00, 0x00}}, {1, [3]byte{0x67, 0x00, 0x00}}, + {1, [3]byte{0x68, 0x00, 0x00}}, {1, [3]byte{0x69, 0x00, 0x00}}, + {1, [3]byte{0x6a, 0x00, 0x00}}, {1, [3]byte{0x6b, 0x00, 0x00}}, + {1, [3]byte{0x6c, 0x00, 0x00}}, {1, [3]byte{0x6d, 0x00, 0x00}}, + {1, [3]byte{0x6e, 0x00, 0x00}}, {1, [3]byte{0x6f, 0x00, 0x00}}, + {1, [3]byte{0x70, 0x00, 0x00}}, {1, [3]byte{0x71, 0x00, 0x00}}, + {1, [3]byte{0x72, 0x00, 0x00}}, {1, [3]byte{0x73, 0x00, 0x00}}, + {1, [3]byte{0x74, 0x00, 0x00}}, {1, [3]byte{0x75, 0x00, 0x00}}, + {1, [3]byte{0x76, 0x00, 0x00}}, {1, [3]byte{0x77, 0x00, 0x00}}, + {1, [3]byte{0x78, 0x00, 0x00}}, {1, [3]byte{0x79, 0x00, 0x00}}, + {1, [3]byte{0x7a, 0x00, 0x00}}, {1, [3]byte{0x7b, 0x00, 0x00}}, + {1, [3]byte{0x7c, 0x00, 0x00}}, {1, [3]byte{0x7d, 0x00, 0x00}}, + {1, [3]byte{0x7e, 0x00, 0x00}}, {1, [3]byte{0x7f, 0x00, 0x00}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {2, [3]byte{0xc2, 0xa0, 0x00}}, {2, [3]byte{0xc4, 0x84, 0x00}}, + {2, [3]byte{0xc4, 0x85, 0x00}}, {2, [3]byte{0xc5, 0x81, 0x00}}, + {3, [3]byte{0xe2, 0x82, 0xac}}, {3, [3]byte{0xe2, 0x80, 0x9e}}, + {2, [3]byte{0xc5, 0xa0, 0x00}}, {2, [3]byte{0xc2, 0xa7, 0x00}}, + {2, [3]byte{0xc5, 0xa1, 0x00}}, {2, [3]byte{0xc2, 0xa9, 0x00}}, + {2, [3]byte{0xc8, 0x98, 0x00}}, {2, [3]byte{0xc2, 0xab, 0x00}}, + {2, [3]byte{0xc5, 0xb9, 0x00}}, {2, [3]byte{0xc2, 0xad, 0x00}}, + {2, [3]byte{0xc5, 0xba, 0x00}}, {2, [3]byte{0xc5, 0xbb, 0x00}}, + {2, [3]byte{0xc2, 0xb0, 0x00}}, {2, [3]byte{0xc2, 0xb1, 0x00}}, + {2, [3]byte{0xc4, 0x8c, 0x00}}, {2, [3]byte{0xc5, 0x82, 0x00}}, + {2, [3]byte{0xc5, 0xbd, 0x00}}, {3, [3]byte{0xe2, 0x80, 0x9d}}, + {2, [3]byte{0xc2, 0xb6, 0x00}}, {2, [3]byte{0xc2, 0xb7, 0x00}}, + {2, [3]byte{0xc5, 0xbe, 0x00}}, {2, [3]byte{0xc4, 0x8d, 0x00}}, + {2, [3]byte{0xc8, 0x99, 0x00}}, {2, [3]byte{0xc2, 0xbb, 0x00}}, + {2, [3]byte{0xc5, 0x92, 0x00}}, {2, [3]byte{0xc5, 0x93, 0x00}}, + {2, [3]byte{0xc5, 0xb8, 0x00}}, {2, [3]byte{0xc5, 0xbc, 0x00}}, + {2, [3]byte{0xc3, 0x80, 0x00}}, {2, [3]byte{0xc3, 0x81, 0x00}}, + {2, [3]byte{0xc3, 0x82, 0x00}}, {2, [3]byte{0xc4, 0x82, 0x00}}, + {2, [3]byte{0xc3, 0x84, 0x00}}, {2, [3]byte{0xc4, 0x86, 0x00}}, + {2, [3]byte{0xc3, 0x86, 0x00}}, {2, [3]byte{0xc3, 0x87, 0x00}}, + {2, [3]byte{0xc3, 0x88, 0x00}}, {2, [3]byte{0xc3, 0x89, 0x00}}, + {2, [3]byte{0xc3, 0x8a, 0x00}}, {2, [3]byte{0xc3, 0x8b, 0x00}}, + {2, [3]byte{0xc3, 0x8c, 0x00}}, {2, [3]byte{0xc3, 0x8d, 0x00}}, + {2, [3]byte{0xc3, 0x8e, 0x00}}, {2, [3]byte{0xc3, 0x8f, 0x00}}, + {2, [3]byte{0xc4, 0x90, 0x00}}, {2, [3]byte{0xc5, 0x83, 0x00}}, + {2, [3]byte{0xc3, 0x92, 0x00}}, {2, [3]byte{0xc3, 0x93, 0x00}}, + {2, [3]byte{0xc3, 0x94, 0x00}}, {2, [3]byte{0xc5, 0x90, 0x00}}, + {2, [3]byte{0xc3, 0x96, 0x00}}, {2, [3]byte{0xc5, 0x9a, 0x00}}, + {2, [3]byte{0xc5, 0xb0, 0x00}}, {2, [3]byte{0xc3, 0x99, 0x00}}, + {2, [3]byte{0xc3, 0x9a, 0x00}}, {2, [3]byte{0xc3, 0x9b, 0x00}}, + {2, [3]byte{0xc3, 0x9c, 0x00}}, {2, [3]byte{0xc4, 0x98, 0x00}}, + {2, [3]byte{0xc8, 0x9a, 0x00}}, {2, [3]byte{0xc3, 0x9f, 0x00}}, + {2, [3]byte{0xc3, 0xa0, 0x00}}, {2, [3]byte{0xc3, 0xa1, 0x00}}, + {2, [3]byte{0xc3, 0xa2, 0x00}}, {2, [3]byte{0xc4, 0x83, 0x00}}, + {2, [3]byte{0xc3, 0xa4, 0x00}}, {2, [3]byte{0xc4, 0x87, 0x00}}, + {2, [3]byte{0xc3, 0xa6, 0x00}}, {2, [3]byte{0xc3, 0xa7, 0x00}}, + {2, [3]byte{0xc3, 0xa8, 0x00}}, {2, [3]byte{0xc3, 0xa9, 0x00}}, + {2, [3]byte{0xc3, 0xaa, 0x00}}, {2, [3]byte{0xc3, 0xab, 0x00}}, + {2, [3]byte{0xc3, 0xac, 0x00}}, {2, [3]byte{0xc3, 0xad, 0x00}}, + {2, [3]byte{0xc3, 0xae, 0x00}}, {2, [3]byte{0xc3, 0xaf, 0x00}}, + {2, [3]byte{0xc4, 0x91, 0x00}}, {2, [3]byte{0xc5, 0x84, 0x00}}, + {2, [3]byte{0xc3, 0xb2, 0x00}}, {2, [3]byte{0xc3, 0xb3, 0x00}}, + {2, [3]byte{0xc3, 0xb4, 0x00}}, {2, [3]byte{0xc5, 0x91, 0x00}}, + {2, [3]byte{0xc3, 0xb6, 0x00}}, {2, [3]byte{0xc5, 0x9b, 0x00}}, + {2, [3]byte{0xc5, 0xb1, 0x00}}, {2, [3]byte{0xc3, 0xb9, 0x00}}, + {2, [3]byte{0xc3, 0xba, 0x00}}, {2, [3]byte{0xc3, 0xbb, 0x00}}, + {2, [3]byte{0xc3, 0xbc, 0x00}}, {2, [3]byte{0xc4, 0x99, 0x00}}, + {2, [3]byte{0xc8, 0x9b, 0x00}}, {2, [3]byte{0xc3, 0xbf, 0x00}}, + }, + encode: [256]uint32{ + 0x00000000, 0x01000001, 0x02000002, 0x03000003, 0x04000004, 0x05000005, 0x06000006, 0x07000007, + 0x08000008, 0x09000009, 0x0a00000a, 0x0b00000b, 0x0c00000c, 0x0d00000d, 0x0e00000e, 0x0f00000f, + 0x10000010, 0x11000011, 0x12000012, 0x13000013, 0x14000014, 0x15000015, 0x16000016, 0x17000017, + 0x18000018, 0x19000019, 0x1a00001a, 0x1b00001b, 0x1c00001c, 0x1d00001d, 0x1e00001e, 0x1f00001f, + 0x20000020, 0x21000021, 0x22000022, 0x23000023, 0x24000024, 0x25000025, 0x26000026, 0x27000027, + 0x28000028, 0x29000029, 0x2a00002a, 0x2b00002b, 0x2c00002c, 0x2d00002d, 0x2e00002e, 0x2f00002f, + 0x30000030, 0x31000031, 0x32000032, 0x33000033, 0x34000034, 0x35000035, 0x36000036, 0x37000037, + 0x38000038, 0x39000039, 0x3a00003a, 0x3b00003b, 0x3c00003c, 0x3d00003d, 0x3e00003e, 0x3f00003f, + 0x40000040, 0x41000041, 0x42000042, 0x43000043, 0x44000044, 0x45000045, 0x46000046, 0x47000047, + 0x48000048, 0x49000049, 0x4a00004a, 0x4b00004b, 0x4c00004c, 0x4d00004d, 0x4e00004e, 0x4f00004f, + 0x50000050, 0x51000051, 0x52000052, 0x53000053, 0x54000054, 0x55000055, 0x56000056, 0x57000057, + 0x58000058, 0x59000059, 0x5a00005a, 0x5b00005b, 0x5c00005c, 0x5d00005d, 0x5e00005e, 0x5f00005f, + 0x60000060, 0x61000061, 0x62000062, 0x63000063, 0x64000064, 0x65000065, 0x66000066, 0x67000067, + 0x68000068, 0x69000069, 0x6a00006a, 0x6b00006b, 0x6c00006c, 0x6d00006d, 0x6e00006e, 0x6f00006f, + 0x70000070, 0x71000071, 0x72000072, 0x73000073, 0x74000074, 0x75000075, 0x76000076, 0x77000077, + 0x78000078, 0x79000079, 0x7a00007a, 0x7b00007b, 0x7c00007c, 0x7d00007d, 0x7e00007e, 0x7f00007f, + 0xa00000a0, 0xa70000a7, 0xa90000a9, 0xab0000ab, 0xad0000ad, 0xb00000b0, 0xb10000b1, 0xb60000b6, + 0xb70000b7, 0xbb0000bb, 0xc00000c0, 0xc10000c1, 0xc20000c2, 0xc40000c4, 0xc60000c6, 0xc70000c7, + 0xc80000c8, 0xc90000c9, 0xca0000ca, 0xcb0000cb, 0xcc0000cc, 0xcd0000cd, 0xce0000ce, 0xcf0000cf, + 0xd20000d2, 0xd30000d3, 0xd40000d4, 0xd60000d6, 0xd90000d9, 0xda0000da, 0xdb0000db, 0xdc0000dc, + 0xdf0000df, 0xe00000e0, 0xe10000e1, 0xe20000e2, 0xe40000e4, 0xe60000e6, 0xe70000e7, 0xe80000e8, + 0xe90000e9, 0xea0000ea, 0xeb0000eb, 0xec0000ec, 0xed0000ed, 0xee0000ee, 0xef0000ef, 0xf20000f2, + 0xf30000f3, 0xf40000f4, 0xf60000f6, 0xf90000f9, 0xfa0000fa, 0xfb0000fb, 0xfc0000fc, 0xff0000ff, + 0xc3000102, 0xe3000103, 0xa1000104, 0xa2000105, 0xc5000106, 0xe5000107, 0xb200010c, 0xb900010d, + 0xd0000110, 0xf0000111, 0xdd000118, 0xfd000119, 0xa3000141, 0xb3000142, 0xd1000143, 0xf1000144, + 0xd5000150, 0xf5000151, 0xbc000152, 0xbd000153, 0xd700015a, 0xf700015b, 0xa6000160, 0xa8000161, + 0xd8000170, 0xf8000171, 0xbe000178, 0xac000179, 0xae00017a, 0xaf00017b, 0xbf00017c, 0xb400017d, + 0xb800017e, 0xaa000218, 0xba000219, 0xde00021a, 0xfe00021b, 0xb500201d, 0xa500201e, 0xa40020ac, + 0xa40020ac, 0xa40020ac, 0xa40020ac, 0xa40020ac, 0xa40020ac, 0xa40020ac, 0xa40020ac, 0xa40020ac, + 0xa40020ac, 0xa40020ac, 0xa40020ac, 0xa40020ac, 0xa40020ac, 0xa40020ac, 0xa40020ac, 0xa40020ac, + 0xa40020ac, 0xa40020ac, 0xa40020ac, 0xa40020ac, 0xa40020ac, 0xa40020ac, 0xa40020ac, 0xa40020ac, + 0xa40020ac, 0xa40020ac, 0xa40020ac, 0xa40020ac, 0xa40020ac, 0xa40020ac, 0xa40020ac, 0xa40020ac, + }, +} + +// KOI8R is the KOI8-R encoding. +var KOI8R *Charmap = &koi8R + +var koi8R = Charmap{ + name: "KOI8-R", + mib: identifier.KOI8R, + asciiSuperset: true, + low: 0x80, + replacement: 0x1a, + decode: [256]utf8Enc{ + {1, [3]byte{0x00, 0x00, 0x00}}, {1, [3]byte{0x01, 0x00, 0x00}}, + {1, [3]byte{0x02, 0x00, 0x00}}, {1, [3]byte{0x03, 0x00, 0x00}}, + {1, [3]byte{0x04, 0x00, 0x00}}, {1, [3]byte{0x05, 0x00, 0x00}}, + {1, [3]byte{0x06, 0x00, 0x00}}, {1, [3]byte{0x07, 0x00, 0x00}}, + {1, [3]byte{0x08, 0x00, 0x00}}, {1, [3]byte{0x09, 0x00, 0x00}}, + {1, [3]byte{0x0a, 0x00, 0x00}}, {1, [3]byte{0x0b, 0x00, 0x00}}, + {1, [3]byte{0x0c, 0x00, 0x00}}, {1, [3]byte{0x0d, 0x00, 0x00}}, + {1, [3]byte{0x0e, 0x00, 0x00}}, {1, [3]byte{0x0f, 0x00, 0x00}}, + {1, [3]byte{0x10, 0x00, 0x00}}, {1, [3]byte{0x11, 0x00, 0x00}}, + {1, [3]byte{0x12, 0x00, 0x00}}, {1, [3]byte{0x13, 0x00, 0x00}}, + {1, [3]byte{0x14, 0x00, 0x00}}, {1, [3]byte{0x15, 0x00, 0x00}}, + {1, [3]byte{0x16, 0x00, 0x00}}, {1, [3]byte{0x17, 0x00, 0x00}}, + {1, [3]byte{0x18, 0x00, 0x00}}, {1, [3]byte{0x19, 0x00, 0x00}}, + {1, [3]byte{0x1a, 0x00, 0x00}}, {1, [3]byte{0x1b, 0x00, 0x00}}, + {1, [3]byte{0x1c, 0x00, 0x00}}, {1, [3]byte{0x1d, 0x00, 0x00}}, + {1, [3]byte{0x1e, 0x00, 0x00}}, {1, [3]byte{0x1f, 0x00, 0x00}}, + {1, [3]byte{0x20, 0x00, 0x00}}, {1, [3]byte{0x21, 0x00, 0x00}}, + {1, [3]byte{0x22, 0x00, 0x00}}, {1, [3]byte{0x23, 0x00, 0x00}}, + {1, [3]byte{0x24, 0x00, 0x00}}, {1, [3]byte{0x25, 0x00, 0x00}}, + {1, [3]byte{0x26, 0x00, 0x00}}, {1, [3]byte{0x27, 0x00, 0x00}}, + {1, [3]byte{0x28, 0x00, 0x00}}, {1, [3]byte{0x29, 0x00, 0x00}}, + {1, [3]byte{0x2a, 0x00, 0x00}}, {1, [3]byte{0x2b, 0x00, 0x00}}, + {1, [3]byte{0x2c, 0x00, 0x00}}, {1, [3]byte{0x2d, 0x00, 0x00}}, + {1, [3]byte{0x2e, 0x00, 0x00}}, {1, [3]byte{0x2f, 0x00, 0x00}}, + {1, [3]byte{0x30, 0x00, 0x00}}, {1, [3]byte{0x31, 0x00, 0x00}}, + {1, [3]byte{0x32, 0x00, 0x00}}, {1, [3]byte{0x33, 0x00, 0x00}}, + {1, [3]byte{0x34, 0x00, 0x00}}, {1, [3]byte{0x35, 0x00, 0x00}}, + {1, [3]byte{0x36, 0x00, 0x00}}, {1, [3]byte{0x37, 0x00, 0x00}}, + {1, [3]byte{0x38, 0x00, 0x00}}, {1, [3]byte{0x39, 0x00, 0x00}}, + {1, [3]byte{0x3a, 0x00, 0x00}}, {1, [3]byte{0x3b, 0x00, 0x00}}, + {1, [3]byte{0x3c, 0x00, 0x00}}, {1, [3]byte{0x3d, 0x00, 0x00}}, + {1, [3]byte{0x3e, 0x00, 0x00}}, {1, [3]byte{0x3f, 0x00, 0x00}}, + {1, [3]byte{0x40, 0x00, 0x00}}, {1, [3]byte{0x41, 0x00, 0x00}}, + {1, [3]byte{0x42, 0x00, 0x00}}, {1, [3]byte{0x43, 0x00, 0x00}}, + {1, [3]byte{0x44, 0x00, 0x00}}, {1, [3]byte{0x45, 0x00, 0x00}}, + {1, [3]byte{0x46, 0x00, 0x00}}, {1, [3]byte{0x47, 0x00, 0x00}}, + {1, [3]byte{0x48, 0x00, 0x00}}, {1, [3]byte{0x49, 0x00, 0x00}}, + {1, [3]byte{0x4a, 0x00, 0x00}}, {1, [3]byte{0x4b, 0x00, 0x00}}, + {1, [3]byte{0x4c, 0x00, 0x00}}, {1, [3]byte{0x4d, 0x00, 0x00}}, + {1, [3]byte{0x4e, 0x00, 0x00}}, {1, [3]byte{0x4f, 0x00, 0x00}}, + {1, [3]byte{0x50, 0x00, 0x00}}, {1, [3]byte{0x51, 0x00, 0x00}}, + {1, [3]byte{0x52, 0x00, 0x00}}, {1, [3]byte{0x53, 0x00, 0x00}}, + {1, [3]byte{0x54, 0x00, 0x00}}, {1, [3]byte{0x55, 0x00, 0x00}}, + {1, [3]byte{0x56, 0x00, 0x00}}, {1, [3]byte{0x57, 0x00, 0x00}}, + {1, [3]byte{0x58, 0x00, 0x00}}, {1, [3]byte{0x59, 0x00, 0x00}}, + {1, [3]byte{0x5a, 0x00, 0x00}}, {1, [3]byte{0x5b, 0x00, 0x00}}, + {1, [3]byte{0x5c, 0x00, 0x00}}, {1, [3]byte{0x5d, 0x00, 0x00}}, + {1, [3]byte{0x5e, 0x00, 0x00}}, {1, [3]byte{0x5f, 0x00, 0x00}}, + {1, [3]byte{0x60, 0x00, 0x00}}, {1, [3]byte{0x61, 0x00, 0x00}}, + {1, [3]byte{0x62, 0x00, 0x00}}, {1, [3]byte{0x63, 0x00, 0x00}}, + {1, [3]byte{0x64, 0x00, 0x00}}, {1, [3]byte{0x65, 0x00, 0x00}}, + {1, [3]byte{0x66, 0x00, 0x00}}, {1, [3]byte{0x67, 0x00, 0x00}}, + {1, [3]byte{0x68, 0x00, 0x00}}, {1, [3]byte{0x69, 0x00, 0x00}}, + {1, [3]byte{0x6a, 0x00, 0x00}}, {1, [3]byte{0x6b, 0x00, 0x00}}, + {1, [3]byte{0x6c, 0x00, 0x00}}, {1, [3]byte{0x6d, 0x00, 0x00}}, + {1, [3]byte{0x6e, 0x00, 0x00}}, {1, [3]byte{0x6f, 0x00, 0x00}}, + {1, [3]byte{0x70, 0x00, 0x00}}, {1, [3]byte{0x71, 0x00, 0x00}}, + {1, [3]byte{0x72, 0x00, 0x00}}, {1, [3]byte{0x73, 0x00, 0x00}}, + {1, [3]byte{0x74, 0x00, 0x00}}, {1, [3]byte{0x75, 0x00, 0x00}}, + {1, [3]byte{0x76, 0x00, 0x00}}, {1, [3]byte{0x77, 0x00, 0x00}}, + {1, [3]byte{0x78, 0x00, 0x00}}, {1, [3]byte{0x79, 0x00, 0x00}}, + {1, [3]byte{0x7a, 0x00, 0x00}}, {1, [3]byte{0x7b, 0x00, 0x00}}, + {1, [3]byte{0x7c, 0x00, 0x00}}, {1, [3]byte{0x7d, 0x00, 0x00}}, + {1, [3]byte{0x7e, 0x00, 0x00}}, {1, [3]byte{0x7f, 0x00, 0x00}}, + {3, [3]byte{0xe2, 0x94, 0x80}}, {3, [3]byte{0xe2, 0x94, 0x82}}, + {3, [3]byte{0xe2, 0x94, 0x8c}}, {3, [3]byte{0xe2, 0x94, 0x90}}, + {3, [3]byte{0xe2, 0x94, 0x94}}, {3, [3]byte{0xe2, 0x94, 0x98}}, + {3, [3]byte{0xe2, 0x94, 0x9c}}, {3, [3]byte{0xe2, 0x94, 0xa4}}, + {3, [3]byte{0xe2, 0x94, 0xac}}, {3, [3]byte{0xe2, 0x94, 0xb4}}, + {3, [3]byte{0xe2, 0x94, 0xbc}}, {3, [3]byte{0xe2, 0x96, 0x80}}, + {3, [3]byte{0xe2, 0x96, 0x84}}, {3, [3]byte{0xe2, 0x96, 0x88}}, + {3, [3]byte{0xe2, 0x96, 0x8c}}, {3, [3]byte{0xe2, 0x96, 0x90}}, + {3, [3]byte{0xe2, 0x96, 0x91}}, {3, [3]byte{0xe2, 0x96, 0x92}}, + {3, [3]byte{0xe2, 0x96, 0x93}}, {3, [3]byte{0xe2, 0x8c, 0xa0}}, + {3, [3]byte{0xe2, 0x96, 0xa0}}, {3, [3]byte{0xe2, 0x88, 0x99}}, + {3, [3]byte{0xe2, 0x88, 0x9a}}, {3, [3]byte{0xe2, 0x89, 0x88}}, + {3, [3]byte{0xe2, 0x89, 0xa4}}, {3, [3]byte{0xe2, 0x89, 0xa5}}, + {2, [3]byte{0xc2, 0xa0, 0x00}}, {3, [3]byte{0xe2, 0x8c, 0xa1}}, + {2, [3]byte{0xc2, 0xb0, 0x00}}, {2, [3]byte{0xc2, 0xb2, 0x00}}, + {2, [3]byte{0xc2, 0xb7, 0x00}}, {2, [3]byte{0xc3, 0xb7, 0x00}}, + {3, [3]byte{0xe2, 0x95, 0x90}}, {3, [3]byte{0xe2, 0x95, 0x91}}, + {3, [3]byte{0xe2, 0x95, 0x92}}, {2, [3]byte{0xd1, 0x91, 0x00}}, + {3, [3]byte{0xe2, 0x95, 0x93}}, {3, [3]byte{0xe2, 0x95, 0x94}}, + {3, [3]byte{0xe2, 0x95, 0x95}}, {3, [3]byte{0xe2, 0x95, 0x96}}, + {3, [3]byte{0xe2, 0x95, 0x97}}, {3, [3]byte{0xe2, 0x95, 0x98}}, + {3, [3]byte{0xe2, 0x95, 0x99}}, {3, [3]byte{0xe2, 0x95, 0x9a}}, + {3, [3]byte{0xe2, 0x95, 0x9b}}, {3, [3]byte{0xe2, 0x95, 0x9c}}, + {3, [3]byte{0xe2, 0x95, 0x9d}}, {3, [3]byte{0xe2, 0x95, 0x9e}}, + {3, [3]byte{0xe2, 0x95, 0x9f}}, {3, [3]byte{0xe2, 0x95, 0xa0}}, + {3, [3]byte{0xe2, 0x95, 0xa1}}, {2, [3]byte{0xd0, 0x81, 0x00}}, + {3, [3]byte{0xe2, 0x95, 0xa2}}, {3, [3]byte{0xe2, 0x95, 0xa3}}, + {3, [3]byte{0xe2, 0x95, 0xa4}}, {3, [3]byte{0xe2, 0x95, 0xa5}}, + {3, [3]byte{0xe2, 0x95, 0xa6}}, {3, [3]byte{0xe2, 0x95, 0xa7}}, + {3, [3]byte{0xe2, 0x95, 0xa8}}, {3, [3]byte{0xe2, 0x95, 0xa9}}, + {3, [3]byte{0xe2, 0x95, 0xaa}}, {3, [3]byte{0xe2, 0x95, 0xab}}, + {3, [3]byte{0xe2, 0x95, 0xac}}, {2, [3]byte{0xc2, 0xa9, 0x00}}, + {2, [3]byte{0xd1, 0x8e, 0x00}}, {2, [3]byte{0xd0, 0xb0, 0x00}}, + {2, [3]byte{0xd0, 0xb1, 0x00}}, {2, [3]byte{0xd1, 0x86, 0x00}}, + {2, [3]byte{0xd0, 0xb4, 0x00}}, {2, [3]byte{0xd0, 0xb5, 0x00}}, + {2, [3]byte{0xd1, 0x84, 0x00}}, {2, [3]byte{0xd0, 0xb3, 0x00}}, + {2, [3]byte{0xd1, 0x85, 0x00}}, {2, [3]byte{0xd0, 0xb8, 0x00}}, + {2, [3]byte{0xd0, 0xb9, 0x00}}, {2, [3]byte{0xd0, 0xba, 0x00}}, + {2, [3]byte{0xd0, 0xbb, 0x00}}, {2, [3]byte{0xd0, 0xbc, 0x00}}, + {2, [3]byte{0xd0, 0xbd, 0x00}}, {2, [3]byte{0xd0, 0xbe, 0x00}}, + {2, [3]byte{0xd0, 0xbf, 0x00}}, {2, [3]byte{0xd1, 0x8f, 0x00}}, + {2, [3]byte{0xd1, 0x80, 0x00}}, {2, [3]byte{0xd1, 0x81, 0x00}}, + {2, [3]byte{0xd1, 0x82, 0x00}}, {2, [3]byte{0xd1, 0x83, 0x00}}, + {2, [3]byte{0xd0, 0xb6, 0x00}}, {2, [3]byte{0xd0, 0xb2, 0x00}}, + {2, [3]byte{0xd1, 0x8c, 0x00}}, {2, [3]byte{0xd1, 0x8b, 0x00}}, + {2, [3]byte{0xd0, 0xb7, 0x00}}, {2, [3]byte{0xd1, 0x88, 0x00}}, + {2, [3]byte{0xd1, 0x8d, 0x00}}, {2, [3]byte{0xd1, 0x89, 0x00}}, + {2, [3]byte{0xd1, 0x87, 0x00}}, {2, [3]byte{0xd1, 0x8a, 0x00}}, + {2, [3]byte{0xd0, 0xae, 0x00}}, {2, [3]byte{0xd0, 0x90, 0x00}}, + {2, [3]byte{0xd0, 0x91, 0x00}}, {2, [3]byte{0xd0, 0xa6, 0x00}}, + {2, [3]byte{0xd0, 0x94, 0x00}}, {2, [3]byte{0xd0, 0x95, 0x00}}, + {2, [3]byte{0xd0, 0xa4, 0x00}}, {2, [3]byte{0xd0, 0x93, 0x00}}, + {2, [3]byte{0xd0, 0xa5, 0x00}}, {2, [3]byte{0xd0, 0x98, 0x00}}, + {2, [3]byte{0xd0, 0x99, 0x00}}, {2, [3]byte{0xd0, 0x9a, 0x00}}, + {2, [3]byte{0xd0, 0x9b, 0x00}}, {2, [3]byte{0xd0, 0x9c, 0x00}}, + {2, [3]byte{0xd0, 0x9d, 0x00}}, {2, [3]byte{0xd0, 0x9e, 0x00}}, + {2, [3]byte{0xd0, 0x9f, 0x00}}, {2, [3]byte{0xd0, 0xaf, 0x00}}, + {2, [3]byte{0xd0, 0xa0, 0x00}}, {2, [3]byte{0xd0, 0xa1, 0x00}}, + {2, [3]byte{0xd0, 0xa2, 0x00}}, {2, [3]byte{0xd0, 0xa3, 0x00}}, + {2, [3]byte{0xd0, 0x96, 0x00}}, {2, [3]byte{0xd0, 0x92, 0x00}}, + {2, [3]byte{0xd0, 0xac, 0x00}}, {2, [3]byte{0xd0, 0xab, 0x00}}, + {2, [3]byte{0xd0, 0x97, 0x00}}, {2, [3]byte{0xd0, 0xa8, 0x00}}, + {2, [3]byte{0xd0, 0xad, 0x00}}, {2, [3]byte{0xd0, 0xa9, 0x00}}, + {2, [3]byte{0xd0, 0xa7, 0x00}}, {2, [3]byte{0xd0, 0xaa, 0x00}}, + }, + encode: [256]uint32{ + 0x00000000, 0x01000001, 0x02000002, 0x03000003, 0x04000004, 0x05000005, 0x06000006, 0x07000007, + 0x08000008, 0x09000009, 0x0a00000a, 0x0b00000b, 0x0c00000c, 0x0d00000d, 0x0e00000e, 0x0f00000f, + 0x10000010, 0x11000011, 0x12000012, 0x13000013, 0x14000014, 0x15000015, 0x16000016, 0x17000017, + 0x18000018, 0x19000019, 0x1a00001a, 0x1b00001b, 0x1c00001c, 0x1d00001d, 0x1e00001e, 0x1f00001f, + 0x20000020, 0x21000021, 0x22000022, 0x23000023, 0x24000024, 0x25000025, 0x26000026, 0x27000027, + 0x28000028, 0x29000029, 0x2a00002a, 0x2b00002b, 0x2c00002c, 0x2d00002d, 0x2e00002e, 0x2f00002f, + 0x30000030, 0x31000031, 0x32000032, 0x33000033, 0x34000034, 0x35000035, 0x36000036, 0x37000037, + 0x38000038, 0x39000039, 0x3a00003a, 0x3b00003b, 0x3c00003c, 0x3d00003d, 0x3e00003e, 0x3f00003f, + 0x40000040, 0x41000041, 0x42000042, 0x43000043, 0x44000044, 0x45000045, 0x46000046, 0x47000047, + 0x48000048, 0x49000049, 0x4a00004a, 0x4b00004b, 0x4c00004c, 0x4d00004d, 0x4e00004e, 0x4f00004f, + 0x50000050, 0x51000051, 0x52000052, 0x53000053, 0x54000054, 0x55000055, 0x56000056, 0x57000057, + 0x58000058, 0x59000059, 0x5a00005a, 0x5b00005b, 0x5c00005c, 0x5d00005d, 0x5e00005e, 0x5f00005f, + 0x60000060, 0x61000061, 0x62000062, 0x63000063, 0x64000064, 0x65000065, 0x66000066, 0x67000067, + 0x68000068, 0x69000069, 0x6a00006a, 0x6b00006b, 0x6c00006c, 0x6d00006d, 0x6e00006e, 0x6f00006f, + 0x70000070, 0x71000071, 0x72000072, 0x73000073, 0x74000074, 0x75000075, 0x76000076, 0x77000077, + 0x78000078, 0x79000079, 0x7a00007a, 0x7b00007b, 0x7c00007c, 0x7d00007d, 0x7e00007e, 0x7f00007f, + 0x9a0000a0, 0xbf0000a9, 0x9c0000b0, 0x9d0000b2, 0x9e0000b7, 0x9f0000f7, 0xb3000401, 0xe1000410, + 0xe2000411, 0xf7000412, 0xe7000413, 0xe4000414, 0xe5000415, 0xf6000416, 0xfa000417, 0xe9000418, + 0xea000419, 0xeb00041a, 0xec00041b, 0xed00041c, 0xee00041d, 0xef00041e, 0xf000041f, 0xf2000420, + 0xf3000421, 0xf4000422, 0xf5000423, 0xe6000424, 0xe8000425, 0xe3000426, 0xfe000427, 0xfb000428, + 0xfd000429, 0xff00042a, 0xf900042b, 0xf800042c, 0xfc00042d, 0xe000042e, 0xf100042f, 0xc1000430, + 0xc2000431, 0xd7000432, 0xc7000433, 0xc4000434, 0xc5000435, 0xd6000436, 0xda000437, 0xc9000438, + 0xca000439, 0xcb00043a, 0xcc00043b, 0xcd00043c, 0xce00043d, 0xcf00043e, 0xd000043f, 0xd2000440, + 0xd3000441, 0xd4000442, 0xd5000443, 0xc6000444, 0xc8000445, 0xc3000446, 0xde000447, 0xdb000448, + 0xdd000449, 0xdf00044a, 0xd900044b, 0xd800044c, 0xdc00044d, 0xc000044e, 0xd100044f, 0xa3000451, + 0x95002219, 0x9600221a, 0x97002248, 0x98002264, 0x99002265, 0x93002320, 0x9b002321, 0x80002500, + 0x81002502, 0x8200250c, 0x83002510, 0x84002514, 0x85002518, 0x8600251c, 0x87002524, 0x8800252c, + 0x89002534, 0x8a00253c, 0xa0002550, 0xa1002551, 0xa2002552, 0xa4002553, 0xa5002554, 0xa6002555, + 0xa7002556, 0xa8002557, 0xa9002558, 0xaa002559, 0xab00255a, 0xac00255b, 0xad00255c, 0xae00255d, + 0xaf00255e, 0xb000255f, 0xb1002560, 0xb2002561, 0xb4002562, 0xb5002563, 0xb6002564, 0xb7002565, + 0xb8002566, 0xb9002567, 0xba002568, 0xbb002569, 0xbc00256a, 0xbd00256b, 0xbe00256c, 0x8b002580, + 0x8c002584, 0x8d002588, 0x8e00258c, 0x8f002590, 0x90002591, 0x91002592, 0x92002593, 0x940025a0, + }, +} + +// KOI8U is the KOI8-U encoding. +var KOI8U *Charmap = &koi8U + +var koi8U = Charmap{ + name: "KOI8-U", + mib: identifier.KOI8U, + asciiSuperset: true, + low: 0x80, + replacement: 0x1a, + decode: [256]utf8Enc{ + {1, [3]byte{0x00, 0x00, 0x00}}, {1, [3]byte{0x01, 0x00, 0x00}}, + {1, [3]byte{0x02, 0x00, 0x00}}, {1, [3]byte{0x03, 0x00, 0x00}}, + {1, [3]byte{0x04, 0x00, 0x00}}, {1, [3]byte{0x05, 0x00, 0x00}}, + {1, [3]byte{0x06, 0x00, 0x00}}, {1, [3]byte{0x07, 0x00, 0x00}}, + {1, [3]byte{0x08, 0x00, 0x00}}, {1, [3]byte{0x09, 0x00, 0x00}}, + {1, [3]byte{0x0a, 0x00, 0x00}}, {1, [3]byte{0x0b, 0x00, 0x00}}, + {1, [3]byte{0x0c, 0x00, 0x00}}, {1, [3]byte{0x0d, 0x00, 0x00}}, + {1, [3]byte{0x0e, 0x00, 0x00}}, {1, [3]byte{0x0f, 0x00, 0x00}}, + {1, [3]byte{0x10, 0x00, 0x00}}, {1, [3]byte{0x11, 0x00, 0x00}}, + {1, [3]byte{0x12, 0x00, 0x00}}, {1, [3]byte{0x13, 0x00, 0x00}}, + {1, [3]byte{0x14, 0x00, 0x00}}, {1, [3]byte{0x15, 0x00, 0x00}}, + {1, [3]byte{0x16, 0x00, 0x00}}, {1, [3]byte{0x17, 0x00, 0x00}}, + {1, [3]byte{0x18, 0x00, 0x00}}, {1, [3]byte{0x19, 0x00, 0x00}}, + {1, [3]byte{0x1a, 0x00, 0x00}}, {1, [3]byte{0x1b, 0x00, 0x00}}, + {1, [3]byte{0x1c, 0x00, 0x00}}, {1, [3]byte{0x1d, 0x00, 0x00}}, + {1, [3]byte{0x1e, 0x00, 0x00}}, {1, [3]byte{0x1f, 0x00, 0x00}}, + {1, [3]byte{0x20, 0x00, 0x00}}, {1, [3]byte{0x21, 0x00, 0x00}}, + {1, [3]byte{0x22, 0x00, 0x00}}, {1, [3]byte{0x23, 0x00, 0x00}}, + {1, [3]byte{0x24, 0x00, 0x00}}, {1, [3]byte{0x25, 0x00, 0x00}}, + {1, [3]byte{0x26, 0x00, 0x00}}, {1, [3]byte{0x27, 0x00, 0x00}}, + {1, [3]byte{0x28, 0x00, 0x00}}, {1, [3]byte{0x29, 0x00, 0x00}}, + {1, [3]byte{0x2a, 0x00, 0x00}}, {1, [3]byte{0x2b, 0x00, 0x00}}, + {1, [3]byte{0x2c, 0x00, 0x00}}, {1, [3]byte{0x2d, 0x00, 0x00}}, + {1, [3]byte{0x2e, 0x00, 0x00}}, {1, [3]byte{0x2f, 0x00, 0x00}}, + {1, [3]byte{0x30, 0x00, 0x00}}, {1, [3]byte{0x31, 0x00, 0x00}}, + {1, [3]byte{0x32, 0x00, 0x00}}, {1, [3]byte{0x33, 0x00, 0x00}}, + {1, [3]byte{0x34, 0x00, 0x00}}, {1, [3]byte{0x35, 0x00, 0x00}}, + {1, [3]byte{0x36, 0x00, 0x00}}, {1, [3]byte{0x37, 0x00, 0x00}}, + {1, [3]byte{0x38, 0x00, 0x00}}, {1, [3]byte{0x39, 0x00, 0x00}}, + {1, [3]byte{0x3a, 0x00, 0x00}}, {1, [3]byte{0x3b, 0x00, 0x00}}, + {1, [3]byte{0x3c, 0x00, 0x00}}, {1, [3]byte{0x3d, 0x00, 0x00}}, + {1, [3]byte{0x3e, 0x00, 0x00}}, {1, [3]byte{0x3f, 0x00, 0x00}}, + {1, [3]byte{0x40, 0x00, 0x00}}, {1, [3]byte{0x41, 0x00, 0x00}}, + {1, [3]byte{0x42, 0x00, 0x00}}, {1, [3]byte{0x43, 0x00, 0x00}}, + {1, [3]byte{0x44, 0x00, 0x00}}, {1, [3]byte{0x45, 0x00, 0x00}}, + {1, [3]byte{0x46, 0x00, 0x00}}, {1, [3]byte{0x47, 0x00, 0x00}}, + {1, [3]byte{0x48, 0x00, 0x00}}, {1, [3]byte{0x49, 0x00, 0x00}}, + {1, [3]byte{0x4a, 0x00, 0x00}}, {1, [3]byte{0x4b, 0x00, 0x00}}, + {1, [3]byte{0x4c, 0x00, 0x00}}, {1, [3]byte{0x4d, 0x00, 0x00}}, + {1, [3]byte{0x4e, 0x00, 0x00}}, {1, [3]byte{0x4f, 0x00, 0x00}}, + {1, [3]byte{0x50, 0x00, 0x00}}, {1, [3]byte{0x51, 0x00, 0x00}}, + {1, [3]byte{0x52, 0x00, 0x00}}, {1, [3]byte{0x53, 0x00, 0x00}}, + {1, [3]byte{0x54, 0x00, 0x00}}, {1, [3]byte{0x55, 0x00, 0x00}}, + {1, [3]byte{0x56, 0x00, 0x00}}, {1, [3]byte{0x57, 0x00, 0x00}}, + {1, [3]byte{0x58, 0x00, 0x00}}, {1, [3]byte{0x59, 0x00, 0x00}}, + {1, [3]byte{0x5a, 0x00, 0x00}}, {1, [3]byte{0x5b, 0x00, 0x00}}, + {1, [3]byte{0x5c, 0x00, 0x00}}, {1, [3]byte{0x5d, 0x00, 0x00}}, + {1, [3]byte{0x5e, 0x00, 0x00}}, {1, [3]byte{0x5f, 0x00, 0x00}}, + {1, [3]byte{0x60, 0x00, 0x00}}, {1, [3]byte{0x61, 0x00, 0x00}}, + {1, [3]byte{0x62, 0x00, 0x00}}, {1, [3]byte{0x63, 0x00, 0x00}}, + {1, [3]byte{0x64, 0x00, 0x00}}, {1, [3]byte{0x65, 0x00, 0x00}}, + {1, [3]byte{0x66, 0x00, 0x00}}, {1, [3]byte{0x67, 0x00, 0x00}}, + {1, [3]byte{0x68, 0x00, 0x00}}, {1, [3]byte{0x69, 0x00, 0x00}}, + {1, [3]byte{0x6a, 0x00, 0x00}}, {1, [3]byte{0x6b, 0x00, 0x00}}, + {1, [3]byte{0x6c, 0x00, 0x00}}, {1, [3]byte{0x6d, 0x00, 0x00}}, + {1, [3]byte{0x6e, 0x00, 0x00}}, {1, [3]byte{0x6f, 0x00, 0x00}}, + {1, [3]byte{0x70, 0x00, 0x00}}, {1, [3]byte{0x71, 0x00, 0x00}}, + {1, [3]byte{0x72, 0x00, 0x00}}, {1, [3]byte{0x73, 0x00, 0x00}}, + {1, [3]byte{0x74, 0x00, 0x00}}, {1, [3]byte{0x75, 0x00, 0x00}}, + {1, [3]byte{0x76, 0x00, 0x00}}, {1, [3]byte{0x77, 0x00, 0x00}}, + {1, [3]byte{0x78, 0x00, 0x00}}, {1, [3]byte{0x79, 0x00, 0x00}}, + {1, [3]byte{0x7a, 0x00, 0x00}}, {1, [3]byte{0x7b, 0x00, 0x00}}, + {1, [3]byte{0x7c, 0x00, 0x00}}, {1, [3]byte{0x7d, 0x00, 0x00}}, + {1, [3]byte{0x7e, 0x00, 0x00}}, {1, [3]byte{0x7f, 0x00, 0x00}}, + {3, [3]byte{0xe2, 0x94, 0x80}}, {3, [3]byte{0xe2, 0x94, 0x82}}, + {3, [3]byte{0xe2, 0x94, 0x8c}}, {3, [3]byte{0xe2, 0x94, 0x90}}, + {3, [3]byte{0xe2, 0x94, 0x94}}, {3, [3]byte{0xe2, 0x94, 0x98}}, + {3, [3]byte{0xe2, 0x94, 0x9c}}, {3, [3]byte{0xe2, 0x94, 0xa4}}, + {3, [3]byte{0xe2, 0x94, 0xac}}, {3, [3]byte{0xe2, 0x94, 0xb4}}, + {3, [3]byte{0xe2, 0x94, 0xbc}}, {3, [3]byte{0xe2, 0x96, 0x80}}, + {3, [3]byte{0xe2, 0x96, 0x84}}, {3, [3]byte{0xe2, 0x96, 0x88}}, + {3, [3]byte{0xe2, 0x96, 0x8c}}, {3, [3]byte{0xe2, 0x96, 0x90}}, + {3, [3]byte{0xe2, 0x96, 0x91}}, {3, [3]byte{0xe2, 0x96, 0x92}}, + {3, [3]byte{0xe2, 0x96, 0x93}}, {3, [3]byte{0xe2, 0x8c, 0xa0}}, + {3, [3]byte{0xe2, 0x96, 0xa0}}, {3, [3]byte{0xe2, 0x88, 0x99}}, + {3, [3]byte{0xe2, 0x88, 0x9a}}, {3, [3]byte{0xe2, 0x89, 0x88}}, + {3, [3]byte{0xe2, 0x89, 0xa4}}, {3, [3]byte{0xe2, 0x89, 0xa5}}, + {2, [3]byte{0xc2, 0xa0, 0x00}}, {3, [3]byte{0xe2, 0x8c, 0xa1}}, + {2, [3]byte{0xc2, 0xb0, 0x00}}, {2, [3]byte{0xc2, 0xb2, 0x00}}, + {2, [3]byte{0xc2, 0xb7, 0x00}}, {2, [3]byte{0xc3, 0xb7, 0x00}}, + {3, [3]byte{0xe2, 0x95, 0x90}}, {3, [3]byte{0xe2, 0x95, 0x91}}, + {3, [3]byte{0xe2, 0x95, 0x92}}, {2, [3]byte{0xd1, 0x91, 0x00}}, + {2, [3]byte{0xd1, 0x94, 0x00}}, {3, [3]byte{0xe2, 0x95, 0x94}}, + {2, [3]byte{0xd1, 0x96, 0x00}}, {2, [3]byte{0xd1, 0x97, 0x00}}, + {3, [3]byte{0xe2, 0x95, 0x97}}, {3, [3]byte{0xe2, 0x95, 0x98}}, + {3, [3]byte{0xe2, 0x95, 0x99}}, {3, [3]byte{0xe2, 0x95, 0x9a}}, + {3, [3]byte{0xe2, 0x95, 0x9b}}, {2, [3]byte{0xd2, 0x91, 0x00}}, + {2, [3]byte{0xd1, 0x9e, 0x00}}, {3, [3]byte{0xe2, 0x95, 0x9e}}, + {3, [3]byte{0xe2, 0x95, 0x9f}}, {3, [3]byte{0xe2, 0x95, 0xa0}}, + {3, [3]byte{0xe2, 0x95, 0xa1}}, {2, [3]byte{0xd0, 0x81, 0x00}}, + {2, [3]byte{0xd0, 0x84, 0x00}}, {3, [3]byte{0xe2, 0x95, 0xa3}}, + {2, [3]byte{0xd0, 0x86, 0x00}}, {2, [3]byte{0xd0, 0x87, 0x00}}, + {3, [3]byte{0xe2, 0x95, 0xa6}}, {3, [3]byte{0xe2, 0x95, 0xa7}}, + {3, [3]byte{0xe2, 0x95, 0xa8}}, {3, [3]byte{0xe2, 0x95, 0xa9}}, + {3, [3]byte{0xe2, 0x95, 0xaa}}, {2, [3]byte{0xd2, 0x90, 0x00}}, + {2, [3]byte{0xd0, 0x8e, 0x00}}, {2, [3]byte{0xc2, 0xa9, 0x00}}, + {2, [3]byte{0xd1, 0x8e, 0x00}}, {2, [3]byte{0xd0, 0xb0, 0x00}}, + {2, [3]byte{0xd0, 0xb1, 0x00}}, {2, [3]byte{0xd1, 0x86, 0x00}}, + {2, [3]byte{0xd0, 0xb4, 0x00}}, {2, [3]byte{0xd0, 0xb5, 0x00}}, + {2, [3]byte{0xd1, 0x84, 0x00}}, {2, [3]byte{0xd0, 0xb3, 0x00}}, + {2, [3]byte{0xd1, 0x85, 0x00}}, {2, [3]byte{0xd0, 0xb8, 0x00}}, + {2, [3]byte{0xd0, 0xb9, 0x00}}, {2, [3]byte{0xd0, 0xba, 0x00}}, + {2, [3]byte{0xd0, 0xbb, 0x00}}, {2, [3]byte{0xd0, 0xbc, 0x00}}, + {2, [3]byte{0xd0, 0xbd, 0x00}}, {2, [3]byte{0xd0, 0xbe, 0x00}}, + {2, [3]byte{0xd0, 0xbf, 0x00}}, {2, [3]byte{0xd1, 0x8f, 0x00}}, + {2, [3]byte{0xd1, 0x80, 0x00}}, {2, [3]byte{0xd1, 0x81, 0x00}}, + {2, [3]byte{0xd1, 0x82, 0x00}}, {2, [3]byte{0xd1, 0x83, 0x00}}, + {2, [3]byte{0xd0, 0xb6, 0x00}}, {2, [3]byte{0xd0, 0xb2, 0x00}}, + {2, [3]byte{0xd1, 0x8c, 0x00}}, {2, [3]byte{0xd1, 0x8b, 0x00}}, + {2, [3]byte{0xd0, 0xb7, 0x00}}, {2, [3]byte{0xd1, 0x88, 0x00}}, + {2, [3]byte{0xd1, 0x8d, 0x00}}, {2, [3]byte{0xd1, 0x89, 0x00}}, + {2, [3]byte{0xd1, 0x87, 0x00}}, {2, [3]byte{0xd1, 0x8a, 0x00}}, + {2, [3]byte{0xd0, 0xae, 0x00}}, {2, [3]byte{0xd0, 0x90, 0x00}}, + {2, [3]byte{0xd0, 0x91, 0x00}}, {2, [3]byte{0xd0, 0xa6, 0x00}}, + {2, [3]byte{0xd0, 0x94, 0x00}}, {2, [3]byte{0xd0, 0x95, 0x00}}, + {2, [3]byte{0xd0, 0xa4, 0x00}}, {2, [3]byte{0xd0, 0x93, 0x00}}, + {2, [3]byte{0xd0, 0xa5, 0x00}}, {2, [3]byte{0xd0, 0x98, 0x00}}, + {2, [3]byte{0xd0, 0x99, 0x00}}, {2, [3]byte{0xd0, 0x9a, 0x00}}, + {2, [3]byte{0xd0, 0x9b, 0x00}}, {2, [3]byte{0xd0, 0x9c, 0x00}}, + {2, [3]byte{0xd0, 0x9d, 0x00}}, {2, [3]byte{0xd0, 0x9e, 0x00}}, + {2, [3]byte{0xd0, 0x9f, 0x00}}, {2, [3]byte{0xd0, 0xaf, 0x00}}, + {2, [3]byte{0xd0, 0xa0, 0x00}}, {2, [3]byte{0xd0, 0xa1, 0x00}}, + {2, [3]byte{0xd0, 0xa2, 0x00}}, {2, [3]byte{0xd0, 0xa3, 0x00}}, + {2, [3]byte{0xd0, 0x96, 0x00}}, {2, [3]byte{0xd0, 0x92, 0x00}}, + {2, [3]byte{0xd0, 0xac, 0x00}}, {2, [3]byte{0xd0, 0xab, 0x00}}, + {2, [3]byte{0xd0, 0x97, 0x00}}, {2, [3]byte{0xd0, 0xa8, 0x00}}, + {2, [3]byte{0xd0, 0xad, 0x00}}, {2, [3]byte{0xd0, 0xa9, 0x00}}, + {2, [3]byte{0xd0, 0xa7, 0x00}}, {2, [3]byte{0xd0, 0xaa, 0x00}}, + }, + encode: [256]uint32{ + 0x00000000, 0x01000001, 0x02000002, 0x03000003, 0x04000004, 0x05000005, 0x06000006, 0x07000007, + 0x08000008, 0x09000009, 0x0a00000a, 0x0b00000b, 0x0c00000c, 0x0d00000d, 0x0e00000e, 0x0f00000f, + 0x10000010, 0x11000011, 0x12000012, 0x13000013, 0x14000014, 0x15000015, 0x16000016, 0x17000017, + 0x18000018, 0x19000019, 0x1a00001a, 0x1b00001b, 0x1c00001c, 0x1d00001d, 0x1e00001e, 0x1f00001f, + 0x20000020, 0x21000021, 0x22000022, 0x23000023, 0x24000024, 0x25000025, 0x26000026, 0x27000027, + 0x28000028, 0x29000029, 0x2a00002a, 0x2b00002b, 0x2c00002c, 0x2d00002d, 0x2e00002e, 0x2f00002f, + 0x30000030, 0x31000031, 0x32000032, 0x33000033, 0x34000034, 0x35000035, 0x36000036, 0x37000037, + 0x38000038, 0x39000039, 0x3a00003a, 0x3b00003b, 0x3c00003c, 0x3d00003d, 0x3e00003e, 0x3f00003f, + 0x40000040, 0x41000041, 0x42000042, 0x43000043, 0x44000044, 0x45000045, 0x46000046, 0x47000047, + 0x48000048, 0x49000049, 0x4a00004a, 0x4b00004b, 0x4c00004c, 0x4d00004d, 0x4e00004e, 0x4f00004f, + 0x50000050, 0x51000051, 0x52000052, 0x53000053, 0x54000054, 0x55000055, 0x56000056, 0x57000057, + 0x58000058, 0x59000059, 0x5a00005a, 0x5b00005b, 0x5c00005c, 0x5d00005d, 0x5e00005e, 0x5f00005f, + 0x60000060, 0x61000061, 0x62000062, 0x63000063, 0x64000064, 0x65000065, 0x66000066, 0x67000067, + 0x68000068, 0x69000069, 0x6a00006a, 0x6b00006b, 0x6c00006c, 0x6d00006d, 0x6e00006e, 0x6f00006f, + 0x70000070, 0x71000071, 0x72000072, 0x73000073, 0x74000074, 0x75000075, 0x76000076, 0x77000077, + 0x78000078, 0x79000079, 0x7a00007a, 0x7b00007b, 0x7c00007c, 0x7d00007d, 0x7e00007e, 0x7f00007f, + 0x9a0000a0, 0xbf0000a9, 0x9c0000b0, 0x9d0000b2, 0x9e0000b7, 0x9f0000f7, 0xb3000401, 0xb4000404, + 0xb6000406, 0xb7000407, 0xbe00040e, 0xe1000410, 0xe2000411, 0xf7000412, 0xe7000413, 0xe4000414, + 0xe5000415, 0xf6000416, 0xfa000417, 0xe9000418, 0xea000419, 0xeb00041a, 0xec00041b, 0xed00041c, + 0xee00041d, 0xef00041e, 0xf000041f, 0xf2000420, 0xf3000421, 0xf4000422, 0xf5000423, 0xe6000424, + 0xe8000425, 0xe3000426, 0xfe000427, 0xfb000428, 0xfd000429, 0xff00042a, 0xf900042b, 0xf800042c, + 0xfc00042d, 0xe000042e, 0xf100042f, 0xc1000430, 0xc2000431, 0xd7000432, 0xc7000433, 0xc4000434, + 0xc5000435, 0xd6000436, 0xda000437, 0xc9000438, 0xca000439, 0xcb00043a, 0xcc00043b, 0xcd00043c, + 0xce00043d, 0xcf00043e, 0xd000043f, 0xd2000440, 0xd3000441, 0xd4000442, 0xd5000443, 0xc6000444, + 0xc8000445, 0xc3000446, 0xde000447, 0xdb000448, 0xdd000449, 0xdf00044a, 0xd900044b, 0xd800044c, + 0xdc00044d, 0xc000044e, 0xd100044f, 0xa3000451, 0xa4000454, 0xa6000456, 0xa7000457, 0xae00045e, + 0xbd000490, 0xad000491, 0x95002219, 0x9600221a, 0x97002248, 0x98002264, 0x99002265, 0x93002320, + 0x9b002321, 0x80002500, 0x81002502, 0x8200250c, 0x83002510, 0x84002514, 0x85002518, 0x8600251c, + 0x87002524, 0x8800252c, 0x89002534, 0x8a00253c, 0xa0002550, 0xa1002551, 0xa2002552, 0xa5002554, + 0xa8002557, 0xa9002558, 0xaa002559, 0xab00255a, 0xac00255b, 0xaf00255e, 0xb000255f, 0xb1002560, + 0xb2002561, 0xb5002563, 0xb8002566, 0xb9002567, 0xba002568, 0xbb002569, 0xbc00256a, 0x8b002580, + 0x8c002584, 0x8d002588, 0x8e00258c, 0x8f002590, 0x90002591, 0x91002592, 0x92002593, 0x940025a0, + }, +} + +// Macintosh is the Macintosh encoding. +var Macintosh *Charmap = &macintosh + +var macintosh = Charmap{ + name: "Macintosh", + mib: identifier.Macintosh, + asciiSuperset: true, + low: 0x80, + replacement: 0x1a, + decode: [256]utf8Enc{ + {1, [3]byte{0x00, 0x00, 0x00}}, {1, [3]byte{0x01, 0x00, 0x00}}, + {1, [3]byte{0x02, 0x00, 0x00}}, {1, [3]byte{0x03, 0x00, 0x00}}, + {1, [3]byte{0x04, 0x00, 0x00}}, {1, [3]byte{0x05, 0x00, 0x00}}, + {1, [3]byte{0x06, 0x00, 0x00}}, {1, [3]byte{0x07, 0x00, 0x00}}, + {1, [3]byte{0x08, 0x00, 0x00}}, {1, [3]byte{0x09, 0x00, 0x00}}, + {1, [3]byte{0x0a, 0x00, 0x00}}, {1, [3]byte{0x0b, 0x00, 0x00}}, + {1, [3]byte{0x0c, 0x00, 0x00}}, {1, [3]byte{0x0d, 0x00, 0x00}}, + {1, [3]byte{0x0e, 0x00, 0x00}}, {1, [3]byte{0x0f, 0x00, 0x00}}, + {1, [3]byte{0x10, 0x00, 0x00}}, {1, [3]byte{0x11, 0x00, 0x00}}, + {1, [3]byte{0x12, 0x00, 0x00}}, {1, [3]byte{0x13, 0x00, 0x00}}, + {1, [3]byte{0x14, 0x00, 0x00}}, {1, [3]byte{0x15, 0x00, 0x00}}, + {1, [3]byte{0x16, 0x00, 0x00}}, {1, [3]byte{0x17, 0x00, 0x00}}, + {1, [3]byte{0x18, 0x00, 0x00}}, {1, [3]byte{0x19, 0x00, 0x00}}, + {1, [3]byte{0x1a, 0x00, 0x00}}, {1, [3]byte{0x1b, 0x00, 0x00}}, + {1, [3]byte{0x1c, 0x00, 0x00}}, {1, [3]byte{0x1d, 0x00, 0x00}}, + {1, [3]byte{0x1e, 0x00, 0x00}}, {1, [3]byte{0x1f, 0x00, 0x00}}, + {1, [3]byte{0x20, 0x00, 0x00}}, {1, [3]byte{0x21, 0x00, 0x00}}, + {1, [3]byte{0x22, 0x00, 0x00}}, {1, [3]byte{0x23, 0x00, 0x00}}, + {1, [3]byte{0x24, 0x00, 0x00}}, {1, [3]byte{0x25, 0x00, 0x00}}, + {1, [3]byte{0x26, 0x00, 0x00}}, {1, [3]byte{0x27, 0x00, 0x00}}, + {1, [3]byte{0x28, 0x00, 0x00}}, {1, [3]byte{0x29, 0x00, 0x00}}, + {1, [3]byte{0x2a, 0x00, 0x00}}, {1, [3]byte{0x2b, 0x00, 0x00}}, + {1, [3]byte{0x2c, 0x00, 0x00}}, {1, [3]byte{0x2d, 0x00, 0x00}}, + {1, [3]byte{0x2e, 0x00, 0x00}}, {1, [3]byte{0x2f, 0x00, 0x00}}, + {1, [3]byte{0x30, 0x00, 0x00}}, {1, [3]byte{0x31, 0x00, 0x00}}, + {1, [3]byte{0x32, 0x00, 0x00}}, {1, [3]byte{0x33, 0x00, 0x00}}, + {1, [3]byte{0x34, 0x00, 0x00}}, {1, [3]byte{0x35, 0x00, 0x00}}, + {1, [3]byte{0x36, 0x00, 0x00}}, {1, [3]byte{0x37, 0x00, 0x00}}, + {1, [3]byte{0x38, 0x00, 0x00}}, {1, [3]byte{0x39, 0x00, 0x00}}, + {1, [3]byte{0x3a, 0x00, 0x00}}, {1, [3]byte{0x3b, 0x00, 0x00}}, + {1, [3]byte{0x3c, 0x00, 0x00}}, {1, [3]byte{0x3d, 0x00, 0x00}}, + {1, [3]byte{0x3e, 0x00, 0x00}}, {1, [3]byte{0x3f, 0x00, 0x00}}, + {1, [3]byte{0x40, 0x00, 0x00}}, {1, [3]byte{0x41, 0x00, 0x00}}, + {1, [3]byte{0x42, 0x00, 0x00}}, {1, [3]byte{0x43, 0x00, 0x00}}, + {1, [3]byte{0x44, 0x00, 0x00}}, {1, [3]byte{0x45, 0x00, 0x00}}, + {1, [3]byte{0x46, 0x00, 0x00}}, {1, [3]byte{0x47, 0x00, 0x00}}, + {1, [3]byte{0x48, 0x00, 0x00}}, {1, [3]byte{0x49, 0x00, 0x00}}, + {1, [3]byte{0x4a, 0x00, 0x00}}, {1, [3]byte{0x4b, 0x00, 0x00}}, + {1, [3]byte{0x4c, 0x00, 0x00}}, {1, [3]byte{0x4d, 0x00, 0x00}}, + {1, [3]byte{0x4e, 0x00, 0x00}}, {1, [3]byte{0x4f, 0x00, 0x00}}, + {1, [3]byte{0x50, 0x00, 0x00}}, {1, [3]byte{0x51, 0x00, 0x00}}, + {1, [3]byte{0x52, 0x00, 0x00}}, {1, [3]byte{0x53, 0x00, 0x00}}, + {1, [3]byte{0x54, 0x00, 0x00}}, {1, [3]byte{0x55, 0x00, 0x00}}, + {1, [3]byte{0x56, 0x00, 0x00}}, {1, [3]byte{0x57, 0x00, 0x00}}, + {1, [3]byte{0x58, 0x00, 0x00}}, {1, [3]byte{0x59, 0x00, 0x00}}, + {1, [3]byte{0x5a, 0x00, 0x00}}, {1, [3]byte{0x5b, 0x00, 0x00}}, + {1, [3]byte{0x5c, 0x00, 0x00}}, {1, [3]byte{0x5d, 0x00, 0x00}}, + {1, [3]byte{0x5e, 0x00, 0x00}}, {1, [3]byte{0x5f, 0x00, 0x00}}, + {1, [3]byte{0x60, 0x00, 0x00}}, {1, [3]byte{0x61, 0x00, 0x00}}, + {1, [3]byte{0x62, 0x00, 0x00}}, {1, [3]byte{0x63, 0x00, 0x00}}, + {1, [3]byte{0x64, 0x00, 0x00}}, {1, [3]byte{0x65, 0x00, 0x00}}, + {1, [3]byte{0x66, 0x00, 0x00}}, {1, [3]byte{0x67, 0x00, 0x00}}, + {1, [3]byte{0x68, 0x00, 0x00}}, {1, [3]byte{0x69, 0x00, 0x00}}, + {1, [3]byte{0x6a, 0x00, 0x00}}, {1, [3]byte{0x6b, 0x00, 0x00}}, + {1, [3]byte{0x6c, 0x00, 0x00}}, {1, [3]byte{0x6d, 0x00, 0x00}}, + {1, [3]byte{0x6e, 0x00, 0x00}}, {1, [3]byte{0x6f, 0x00, 0x00}}, + {1, [3]byte{0x70, 0x00, 0x00}}, {1, [3]byte{0x71, 0x00, 0x00}}, + {1, [3]byte{0x72, 0x00, 0x00}}, {1, [3]byte{0x73, 0x00, 0x00}}, + {1, [3]byte{0x74, 0x00, 0x00}}, {1, [3]byte{0x75, 0x00, 0x00}}, + {1, [3]byte{0x76, 0x00, 0x00}}, {1, [3]byte{0x77, 0x00, 0x00}}, + {1, [3]byte{0x78, 0x00, 0x00}}, {1, [3]byte{0x79, 0x00, 0x00}}, + {1, [3]byte{0x7a, 0x00, 0x00}}, {1, [3]byte{0x7b, 0x00, 0x00}}, + {1, [3]byte{0x7c, 0x00, 0x00}}, {1, [3]byte{0x7d, 0x00, 0x00}}, + {1, [3]byte{0x7e, 0x00, 0x00}}, {1, [3]byte{0x7f, 0x00, 0x00}}, + {2, [3]byte{0xc3, 0x84, 0x00}}, {2, [3]byte{0xc3, 0x85, 0x00}}, + {2, [3]byte{0xc3, 0x87, 0x00}}, {2, [3]byte{0xc3, 0x89, 0x00}}, + {2, [3]byte{0xc3, 0x91, 0x00}}, {2, [3]byte{0xc3, 0x96, 0x00}}, + {2, [3]byte{0xc3, 0x9c, 0x00}}, {2, [3]byte{0xc3, 0xa1, 0x00}}, + {2, [3]byte{0xc3, 0xa0, 0x00}}, {2, [3]byte{0xc3, 0xa2, 0x00}}, + {2, [3]byte{0xc3, 0xa4, 0x00}}, {2, [3]byte{0xc3, 0xa3, 0x00}}, + {2, [3]byte{0xc3, 0xa5, 0x00}}, {2, [3]byte{0xc3, 0xa7, 0x00}}, + {2, [3]byte{0xc3, 0xa9, 0x00}}, {2, [3]byte{0xc3, 0xa8, 0x00}}, + {2, [3]byte{0xc3, 0xaa, 0x00}}, {2, [3]byte{0xc3, 0xab, 0x00}}, + {2, [3]byte{0xc3, 0xad, 0x00}}, {2, [3]byte{0xc3, 0xac, 0x00}}, + {2, [3]byte{0xc3, 0xae, 0x00}}, {2, [3]byte{0xc3, 0xaf, 0x00}}, + {2, [3]byte{0xc3, 0xb1, 0x00}}, {2, [3]byte{0xc3, 0xb3, 0x00}}, + {2, [3]byte{0xc3, 0xb2, 0x00}}, {2, [3]byte{0xc3, 0xb4, 0x00}}, + {2, [3]byte{0xc3, 0xb6, 0x00}}, {2, [3]byte{0xc3, 0xb5, 0x00}}, + {2, [3]byte{0xc3, 0xba, 0x00}}, {2, [3]byte{0xc3, 0xb9, 0x00}}, + {2, [3]byte{0xc3, 0xbb, 0x00}}, {2, [3]byte{0xc3, 0xbc, 0x00}}, + {3, [3]byte{0xe2, 0x80, 0xa0}}, {2, [3]byte{0xc2, 0xb0, 0x00}}, + {2, [3]byte{0xc2, 0xa2, 0x00}}, {2, [3]byte{0xc2, 0xa3, 0x00}}, + {2, [3]byte{0xc2, 0xa7, 0x00}}, {3, [3]byte{0xe2, 0x80, 0xa2}}, + {2, [3]byte{0xc2, 0xb6, 0x00}}, {2, [3]byte{0xc3, 0x9f, 0x00}}, + {2, [3]byte{0xc2, 0xae, 0x00}}, {2, [3]byte{0xc2, 0xa9, 0x00}}, + {3, [3]byte{0xe2, 0x84, 0xa2}}, {2, [3]byte{0xc2, 0xb4, 0x00}}, + {2, [3]byte{0xc2, 0xa8, 0x00}}, {3, [3]byte{0xe2, 0x89, 0xa0}}, + {2, [3]byte{0xc3, 0x86, 0x00}}, {2, [3]byte{0xc3, 0x98, 0x00}}, + {3, [3]byte{0xe2, 0x88, 0x9e}}, {2, [3]byte{0xc2, 0xb1, 0x00}}, + {3, [3]byte{0xe2, 0x89, 0xa4}}, {3, [3]byte{0xe2, 0x89, 0xa5}}, + {2, [3]byte{0xc2, 0xa5, 0x00}}, {2, [3]byte{0xc2, 0xb5, 0x00}}, + {3, [3]byte{0xe2, 0x88, 0x82}}, {3, [3]byte{0xe2, 0x88, 0x91}}, + {3, [3]byte{0xe2, 0x88, 0x8f}}, {2, [3]byte{0xcf, 0x80, 0x00}}, + {3, [3]byte{0xe2, 0x88, 0xab}}, {2, [3]byte{0xc2, 0xaa, 0x00}}, + {2, [3]byte{0xc2, 0xba, 0x00}}, {2, [3]byte{0xce, 0xa9, 0x00}}, + {2, [3]byte{0xc3, 0xa6, 0x00}}, {2, [3]byte{0xc3, 0xb8, 0x00}}, + {2, [3]byte{0xc2, 0xbf, 0x00}}, {2, [3]byte{0xc2, 0xa1, 0x00}}, + {2, [3]byte{0xc2, 0xac, 0x00}}, {3, [3]byte{0xe2, 0x88, 0x9a}}, + {2, [3]byte{0xc6, 0x92, 0x00}}, {3, [3]byte{0xe2, 0x89, 0x88}}, + {3, [3]byte{0xe2, 0x88, 0x86}}, {2, [3]byte{0xc2, 0xab, 0x00}}, + {2, [3]byte{0xc2, 0xbb, 0x00}}, {3, [3]byte{0xe2, 0x80, 0xa6}}, + {2, [3]byte{0xc2, 0xa0, 0x00}}, {2, [3]byte{0xc3, 0x80, 0x00}}, + {2, [3]byte{0xc3, 0x83, 0x00}}, {2, [3]byte{0xc3, 0x95, 0x00}}, + {2, [3]byte{0xc5, 0x92, 0x00}}, {2, [3]byte{0xc5, 0x93, 0x00}}, + {3, [3]byte{0xe2, 0x80, 0x93}}, {3, [3]byte{0xe2, 0x80, 0x94}}, + {3, [3]byte{0xe2, 0x80, 0x9c}}, {3, [3]byte{0xe2, 0x80, 0x9d}}, + {3, [3]byte{0xe2, 0x80, 0x98}}, {3, [3]byte{0xe2, 0x80, 0x99}}, + {2, [3]byte{0xc3, 0xb7, 0x00}}, {3, [3]byte{0xe2, 0x97, 0x8a}}, + {2, [3]byte{0xc3, 0xbf, 0x00}}, {2, [3]byte{0xc5, 0xb8, 0x00}}, + {3, [3]byte{0xe2, 0x81, 0x84}}, {3, [3]byte{0xe2, 0x82, 0xac}}, + {3, [3]byte{0xe2, 0x80, 0xb9}}, {3, [3]byte{0xe2, 0x80, 0xba}}, + {3, [3]byte{0xef, 0xac, 0x81}}, {3, [3]byte{0xef, 0xac, 0x82}}, + {3, [3]byte{0xe2, 0x80, 0xa1}}, {2, [3]byte{0xc2, 0xb7, 0x00}}, + {3, [3]byte{0xe2, 0x80, 0x9a}}, {3, [3]byte{0xe2, 0x80, 0x9e}}, + {3, [3]byte{0xe2, 0x80, 0xb0}}, {2, [3]byte{0xc3, 0x82, 0x00}}, + {2, [3]byte{0xc3, 0x8a, 0x00}}, {2, [3]byte{0xc3, 0x81, 0x00}}, + {2, [3]byte{0xc3, 0x8b, 0x00}}, {2, [3]byte{0xc3, 0x88, 0x00}}, + {2, [3]byte{0xc3, 0x8d, 0x00}}, {2, [3]byte{0xc3, 0x8e, 0x00}}, + {2, [3]byte{0xc3, 0x8f, 0x00}}, {2, [3]byte{0xc3, 0x8c, 0x00}}, + {2, [3]byte{0xc3, 0x93, 0x00}}, {2, [3]byte{0xc3, 0x94, 0x00}}, + {3, [3]byte{0xef, 0xa3, 0xbf}}, {2, [3]byte{0xc3, 0x92, 0x00}}, + {2, [3]byte{0xc3, 0x9a, 0x00}}, {2, [3]byte{0xc3, 0x9b, 0x00}}, + {2, [3]byte{0xc3, 0x99, 0x00}}, {2, [3]byte{0xc4, 0xb1, 0x00}}, + {2, [3]byte{0xcb, 0x86, 0x00}}, {2, [3]byte{0xcb, 0x9c, 0x00}}, + {2, [3]byte{0xc2, 0xaf, 0x00}}, {2, [3]byte{0xcb, 0x98, 0x00}}, + {2, [3]byte{0xcb, 0x99, 0x00}}, {2, [3]byte{0xcb, 0x9a, 0x00}}, + {2, [3]byte{0xc2, 0xb8, 0x00}}, {2, [3]byte{0xcb, 0x9d, 0x00}}, + {2, [3]byte{0xcb, 0x9b, 0x00}}, {2, [3]byte{0xcb, 0x87, 0x00}}, + }, + encode: [256]uint32{ + 0x00000000, 0x01000001, 0x02000002, 0x03000003, 0x04000004, 0x05000005, 0x06000006, 0x07000007, + 0x08000008, 0x09000009, 0x0a00000a, 0x0b00000b, 0x0c00000c, 0x0d00000d, 0x0e00000e, 0x0f00000f, + 0x10000010, 0x11000011, 0x12000012, 0x13000013, 0x14000014, 0x15000015, 0x16000016, 0x17000017, + 0x18000018, 0x19000019, 0x1a00001a, 0x1b00001b, 0x1c00001c, 0x1d00001d, 0x1e00001e, 0x1f00001f, + 0x20000020, 0x21000021, 0x22000022, 0x23000023, 0x24000024, 0x25000025, 0x26000026, 0x27000027, + 0x28000028, 0x29000029, 0x2a00002a, 0x2b00002b, 0x2c00002c, 0x2d00002d, 0x2e00002e, 0x2f00002f, + 0x30000030, 0x31000031, 0x32000032, 0x33000033, 0x34000034, 0x35000035, 0x36000036, 0x37000037, + 0x38000038, 0x39000039, 0x3a00003a, 0x3b00003b, 0x3c00003c, 0x3d00003d, 0x3e00003e, 0x3f00003f, + 0x40000040, 0x41000041, 0x42000042, 0x43000043, 0x44000044, 0x45000045, 0x46000046, 0x47000047, + 0x48000048, 0x49000049, 0x4a00004a, 0x4b00004b, 0x4c00004c, 0x4d00004d, 0x4e00004e, 0x4f00004f, + 0x50000050, 0x51000051, 0x52000052, 0x53000053, 0x54000054, 0x55000055, 0x56000056, 0x57000057, + 0x58000058, 0x59000059, 0x5a00005a, 0x5b00005b, 0x5c00005c, 0x5d00005d, 0x5e00005e, 0x5f00005f, + 0x60000060, 0x61000061, 0x62000062, 0x63000063, 0x64000064, 0x65000065, 0x66000066, 0x67000067, + 0x68000068, 0x69000069, 0x6a00006a, 0x6b00006b, 0x6c00006c, 0x6d00006d, 0x6e00006e, 0x6f00006f, + 0x70000070, 0x71000071, 0x72000072, 0x73000073, 0x74000074, 0x75000075, 0x76000076, 0x77000077, + 0x78000078, 0x79000079, 0x7a00007a, 0x7b00007b, 0x7c00007c, 0x7d00007d, 0x7e00007e, 0x7f00007f, + 0xca0000a0, 0xc10000a1, 0xa20000a2, 0xa30000a3, 0xb40000a5, 0xa40000a7, 0xac0000a8, 0xa90000a9, + 0xbb0000aa, 0xc70000ab, 0xc20000ac, 0xa80000ae, 0xf80000af, 0xa10000b0, 0xb10000b1, 0xab0000b4, + 0xb50000b5, 0xa60000b6, 0xe10000b7, 0xfc0000b8, 0xbc0000ba, 0xc80000bb, 0xc00000bf, 0xcb0000c0, + 0xe70000c1, 0xe50000c2, 0xcc0000c3, 0x800000c4, 0x810000c5, 0xae0000c6, 0x820000c7, 0xe90000c8, + 0x830000c9, 0xe60000ca, 0xe80000cb, 0xed0000cc, 0xea0000cd, 0xeb0000ce, 0xec0000cf, 0x840000d1, + 0xf10000d2, 0xee0000d3, 0xef0000d4, 0xcd0000d5, 0x850000d6, 0xaf0000d8, 0xf40000d9, 0xf20000da, + 0xf30000db, 0x860000dc, 0xa70000df, 0x880000e0, 0x870000e1, 0x890000e2, 0x8b0000e3, 0x8a0000e4, + 0x8c0000e5, 0xbe0000e6, 0x8d0000e7, 0x8f0000e8, 0x8e0000e9, 0x900000ea, 0x910000eb, 0x930000ec, + 0x920000ed, 0x940000ee, 0x950000ef, 0x960000f1, 0x980000f2, 0x970000f3, 0x990000f4, 0x9b0000f5, + 0x9a0000f6, 0xd60000f7, 0xbf0000f8, 0x9d0000f9, 0x9c0000fa, 0x9e0000fb, 0x9f0000fc, 0xd80000ff, + 0xf5000131, 0xce000152, 0xcf000153, 0xd9000178, 0xc4000192, 0xf60002c6, 0xff0002c7, 0xf90002d8, + 0xfa0002d9, 0xfb0002da, 0xfe0002db, 0xf70002dc, 0xfd0002dd, 0xbd0003a9, 0xb90003c0, 0xd0002013, + 0xd1002014, 0xd4002018, 0xd5002019, 0xe200201a, 0xd200201c, 0xd300201d, 0xe300201e, 0xa0002020, + 0xe0002021, 0xa5002022, 0xc9002026, 0xe4002030, 0xdc002039, 0xdd00203a, 0xda002044, 0xdb0020ac, + 0xaa002122, 0xb6002202, 0xc6002206, 0xb800220f, 0xb7002211, 0xc300221a, 0xb000221e, 0xba00222b, + 0xc5002248, 0xad002260, 0xb2002264, 0xb3002265, 0xd70025ca, 0xf000f8ff, 0xde00fb01, 0xdf00fb02, + }, +} + +// MacintoshCyrillic is the Macintosh Cyrillic encoding. +var MacintoshCyrillic *Charmap = &macintoshCyrillic + +var macintoshCyrillic = Charmap{ + name: "Macintosh Cyrillic", + mib: identifier.MacintoshCyrillic, + asciiSuperset: true, + low: 0x80, + replacement: 0x1a, + decode: [256]utf8Enc{ + {1, [3]byte{0x00, 0x00, 0x00}}, {1, [3]byte{0x01, 0x00, 0x00}}, + {1, [3]byte{0x02, 0x00, 0x00}}, {1, [3]byte{0x03, 0x00, 0x00}}, + {1, [3]byte{0x04, 0x00, 0x00}}, {1, [3]byte{0x05, 0x00, 0x00}}, + {1, [3]byte{0x06, 0x00, 0x00}}, {1, [3]byte{0x07, 0x00, 0x00}}, + {1, [3]byte{0x08, 0x00, 0x00}}, {1, [3]byte{0x09, 0x00, 0x00}}, + {1, [3]byte{0x0a, 0x00, 0x00}}, {1, [3]byte{0x0b, 0x00, 0x00}}, + {1, [3]byte{0x0c, 0x00, 0x00}}, {1, [3]byte{0x0d, 0x00, 0x00}}, + {1, [3]byte{0x0e, 0x00, 0x00}}, {1, [3]byte{0x0f, 0x00, 0x00}}, + {1, [3]byte{0x10, 0x00, 0x00}}, {1, [3]byte{0x11, 0x00, 0x00}}, + {1, [3]byte{0x12, 0x00, 0x00}}, {1, [3]byte{0x13, 0x00, 0x00}}, + {1, [3]byte{0x14, 0x00, 0x00}}, {1, [3]byte{0x15, 0x00, 0x00}}, + {1, [3]byte{0x16, 0x00, 0x00}}, {1, [3]byte{0x17, 0x00, 0x00}}, + {1, [3]byte{0x18, 0x00, 0x00}}, {1, [3]byte{0x19, 0x00, 0x00}}, + {1, [3]byte{0x1a, 0x00, 0x00}}, {1, [3]byte{0x1b, 0x00, 0x00}}, + {1, [3]byte{0x1c, 0x00, 0x00}}, {1, [3]byte{0x1d, 0x00, 0x00}}, + {1, [3]byte{0x1e, 0x00, 0x00}}, {1, [3]byte{0x1f, 0x00, 0x00}}, + {1, [3]byte{0x20, 0x00, 0x00}}, {1, [3]byte{0x21, 0x00, 0x00}}, + {1, [3]byte{0x22, 0x00, 0x00}}, {1, [3]byte{0x23, 0x00, 0x00}}, + {1, [3]byte{0x24, 0x00, 0x00}}, {1, [3]byte{0x25, 0x00, 0x00}}, + {1, [3]byte{0x26, 0x00, 0x00}}, {1, [3]byte{0x27, 0x00, 0x00}}, + {1, [3]byte{0x28, 0x00, 0x00}}, {1, [3]byte{0x29, 0x00, 0x00}}, + {1, [3]byte{0x2a, 0x00, 0x00}}, {1, [3]byte{0x2b, 0x00, 0x00}}, + {1, [3]byte{0x2c, 0x00, 0x00}}, {1, [3]byte{0x2d, 0x00, 0x00}}, + {1, [3]byte{0x2e, 0x00, 0x00}}, {1, [3]byte{0x2f, 0x00, 0x00}}, + {1, [3]byte{0x30, 0x00, 0x00}}, {1, [3]byte{0x31, 0x00, 0x00}}, + {1, [3]byte{0x32, 0x00, 0x00}}, {1, [3]byte{0x33, 0x00, 0x00}}, + {1, [3]byte{0x34, 0x00, 0x00}}, {1, [3]byte{0x35, 0x00, 0x00}}, + {1, [3]byte{0x36, 0x00, 0x00}}, {1, [3]byte{0x37, 0x00, 0x00}}, + {1, [3]byte{0x38, 0x00, 0x00}}, {1, [3]byte{0x39, 0x00, 0x00}}, + {1, [3]byte{0x3a, 0x00, 0x00}}, {1, [3]byte{0x3b, 0x00, 0x00}}, + {1, [3]byte{0x3c, 0x00, 0x00}}, {1, [3]byte{0x3d, 0x00, 0x00}}, + {1, [3]byte{0x3e, 0x00, 0x00}}, {1, [3]byte{0x3f, 0x00, 0x00}}, + {1, [3]byte{0x40, 0x00, 0x00}}, {1, [3]byte{0x41, 0x00, 0x00}}, + {1, [3]byte{0x42, 0x00, 0x00}}, {1, [3]byte{0x43, 0x00, 0x00}}, + {1, [3]byte{0x44, 0x00, 0x00}}, {1, [3]byte{0x45, 0x00, 0x00}}, + {1, [3]byte{0x46, 0x00, 0x00}}, {1, [3]byte{0x47, 0x00, 0x00}}, + {1, [3]byte{0x48, 0x00, 0x00}}, {1, [3]byte{0x49, 0x00, 0x00}}, + {1, [3]byte{0x4a, 0x00, 0x00}}, {1, [3]byte{0x4b, 0x00, 0x00}}, + {1, [3]byte{0x4c, 0x00, 0x00}}, {1, [3]byte{0x4d, 0x00, 0x00}}, + {1, [3]byte{0x4e, 0x00, 0x00}}, {1, [3]byte{0x4f, 0x00, 0x00}}, + {1, [3]byte{0x50, 0x00, 0x00}}, {1, [3]byte{0x51, 0x00, 0x00}}, + {1, [3]byte{0x52, 0x00, 0x00}}, {1, [3]byte{0x53, 0x00, 0x00}}, + {1, [3]byte{0x54, 0x00, 0x00}}, {1, [3]byte{0x55, 0x00, 0x00}}, + {1, [3]byte{0x56, 0x00, 0x00}}, {1, [3]byte{0x57, 0x00, 0x00}}, + {1, [3]byte{0x58, 0x00, 0x00}}, {1, [3]byte{0x59, 0x00, 0x00}}, + {1, [3]byte{0x5a, 0x00, 0x00}}, {1, [3]byte{0x5b, 0x00, 0x00}}, + {1, [3]byte{0x5c, 0x00, 0x00}}, {1, [3]byte{0x5d, 0x00, 0x00}}, + {1, [3]byte{0x5e, 0x00, 0x00}}, {1, [3]byte{0x5f, 0x00, 0x00}}, + {1, [3]byte{0x60, 0x00, 0x00}}, {1, [3]byte{0x61, 0x00, 0x00}}, + {1, [3]byte{0x62, 0x00, 0x00}}, {1, [3]byte{0x63, 0x00, 0x00}}, + {1, [3]byte{0x64, 0x00, 0x00}}, {1, [3]byte{0x65, 0x00, 0x00}}, + {1, [3]byte{0x66, 0x00, 0x00}}, {1, [3]byte{0x67, 0x00, 0x00}}, + {1, [3]byte{0x68, 0x00, 0x00}}, {1, [3]byte{0x69, 0x00, 0x00}}, + {1, [3]byte{0x6a, 0x00, 0x00}}, {1, [3]byte{0x6b, 0x00, 0x00}}, + {1, [3]byte{0x6c, 0x00, 0x00}}, {1, [3]byte{0x6d, 0x00, 0x00}}, + {1, [3]byte{0x6e, 0x00, 0x00}}, {1, [3]byte{0x6f, 0x00, 0x00}}, + {1, [3]byte{0x70, 0x00, 0x00}}, {1, [3]byte{0x71, 0x00, 0x00}}, + {1, [3]byte{0x72, 0x00, 0x00}}, {1, [3]byte{0x73, 0x00, 0x00}}, + {1, [3]byte{0x74, 0x00, 0x00}}, {1, [3]byte{0x75, 0x00, 0x00}}, + {1, [3]byte{0x76, 0x00, 0x00}}, {1, [3]byte{0x77, 0x00, 0x00}}, + {1, [3]byte{0x78, 0x00, 0x00}}, {1, [3]byte{0x79, 0x00, 0x00}}, + {1, [3]byte{0x7a, 0x00, 0x00}}, {1, [3]byte{0x7b, 0x00, 0x00}}, + {1, [3]byte{0x7c, 0x00, 0x00}}, {1, [3]byte{0x7d, 0x00, 0x00}}, + {1, [3]byte{0x7e, 0x00, 0x00}}, {1, [3]byte{0x7f, 0x00, 0x00}}, + {2, [3]byte{0xd0, 0x90, 0x00}}, {2, [3]byte{0xd0, 0x91, 0x00}}, + {2, [3]byte{0xd0, 0x92, 0x00}}, {2, [3]byte{0xd0, 0x93, 0x00}}, + {2, [3]byte{0xd0, 0x94, 0x00}}, {2, [3]byte{0xd0, 0x95, 0x00}}, + {2, [3]byte{0xd0, 0x96, 0x00}}, {2, [3]byte{0xd0, 0x97, 0x00}}, + {2, [3]byte{0xd0, 0x98, 0x00}}, {2, [3]byte{0xd0, 0x99, 0x00}}, + {2, [3]byte{0xd0, 0x9a, 0x00}}, {2, [3]byte{0xd0, 0x9b, 0x00}}, + {2, [3]byte{0xd0, 0x9c, 0x00}}, {2, [3]byte{0xd0, 0x9d, 0x00}}, + {2, [3]byte{0xd0, 0x9e, 0x00}}, {2, [3]byte{0xd0, 0x9f, 0x00}}, + {2, [3]byte{0xd0, 0xa0, 0x00}}, {2, [3]byte{0xd0, 0xa1, 0x00}}, + {2, [3]byte{0xd0, 0xa2, 0x00}}, {2, [3]byte{0xd0, 0xa3, 0x00}}, + {2, [3]byte{0xd0, 0xa4, 0x00}}, {2, [3]byte{0xd0, 0xa5, 0x00}}, + {2, [3]byte{0xd0, 0xa6, 0x00}}, {2, [3]byte{0xd0, 0xa7, 0x00}}, + {2, [3]byte{0xd0, 0xa8, 0x00}}, {2, [3]byte{0xd0, 0xa9, 0x00}}, + {2, [3]byte{0xd0, 0xaa, 0x00}}, {2, [3]byte{0xd0, 0xab, 0x00}}, + {2, [3]byte{0xd0, 0xac, 0x00}}, {2, [3]byte{0xd0, 0xad, 0x00}}, + {2, [3]byte{0xd0, 0xae, 0x00}}, {2, [3]byte{0xd0, 0xaf, 0x00}}, + {3, [3]byte{0xe2, 0x80, 0xa0}}, {2, [3]byte{0xc2, 0xb0, 0x00}}, + {2, [3]byte{0xd2, 0x90, 0x00}}, {2, [3]byte{0xc2, 0xa3, 0x00}}, + {2, [3]byte{0xc2, 0xa7, 0x00}}, {3, [3]byte{0xe2, 0x80, 0xa2}}, + {2, [3]byte{0xc2, 0xb6, 0x00}}, {2, [3]byte{0xd0, 0x86, 0x00}}, + {2, [3]byte{0xc2, 0xae, 0x00}}, {2, [3]byte{0xc2, 0xa9, 0x00}}, + {3, [3]byte{0xe2, 0x84, 0xa2}}, {2, [3]byte{0xd0, 0x82, 0x00}}, + {2, [3]byte{0xd1, 0x92, 0x00}}, {3, [3]byte{0xe2, 0x89, 0xa0}}, + {2, [3]byte{0xd0, 0x83, 0x00}}, {2, [3]byte{0xd1, 0x93, 0x00}}, + {3, [3]byte{0xe2, 0x88, 0x9e}}, {2, [3]byte{0xc2, 0xb1, 0x00}}, + {3, [3]byte{0xe2, 0x89, 0xa4}}, {3, [3]byte{0xe2, 0x89, 0xa5}}, + {2, [3]byte{0xd1, 0x96, 0x00}}, {2, [3]byte{0xc2, 0xb5, 0x00}}, + {2, [3]byte{0xd2, 0x91, 0x00}}, {2, [3]byte{0xd0, 0x88, 0x00}}, + {2, [3]byte{0xd0, 0x84, 0x00}}, {2, [3]byte{0xd1, 0x94, 0x00}}, + {2, [3]byte{0xd0, 0x87, 0x00}}, {2, [3]byte{0xd1, 0x97, 0x00}}, + {2, [3]byte{0xd0, 0x89, 0x00}}, {2, [3]byte{0xd1, 0x99, 0x00}}, + {2, [3]byte{0xd0, 0x8a, 0x00}}, {2, [3]byte{0xd1, 0x9a, 0x00}}, + {2, [3]byte{0xd1, 0x98, 0x00}}, {2, [3]byte{0xd0, 0x85, 0x00}}, + {2, [3]byte{0xc2, 0xac, 0x00}}, {3, [3]byte{0xe2, 0x88, 0x9a}}, + {2, [3]byte{0xc6, 0x92, 0x00}}, {3, [3]byte{0xe2, 0x89, 0x88}}, + {3, [3]byte{0xe2, 0x88, 0x86}}, {2, [3]byte{0xc2, 0xab, 0x00}}, + {2, [3]byte{0xc2, 0xbb, 0x00}}, {3, [3]byte{0xe2, 0x80, 0xa6}}, + {2, [3]byte{0xc2, 0xa0, 0x00}}, {2, [3]byte{0xd0, 0x8b, 0x00}}, + {2, [3]byte{0xd1, 0x9b, 0x00}}, {2, [3]byte{0xd0, 0x8c, 0x00}}, + {2, [3]byte{0xd1, 0x9c, 0x00}}, {2, [3]byte{0xd1, 0x95, 0x00}}, + {3, [3]byte{0xe2, 0x80, 0x93}}, {3, [3]byte{0xe2, 0x80, 0x94}}, + {3, [3]byte{0xe2, 0x80, 0x9c}}, {3, [3]byte{0xe2, 0x80, 0x9d}}, + {3, [3]byte{0xe2, 0x80, 0x98}}, {3, [3]byte{0xe2, 0x80, 0x99}}, + {2, [3]byte{0xc3, 0xb7, 0x00}}, {3, [3]byte{0xe2, 0x80, 0x9e}}, + {2, [3]byte{0xd0, 0x8e, 0x00}}, {2, [3]byte{0xd1, 0x9e, 0x00}}, + {2, [3]byte{0xd0, 0x8f, 0x00}}, {2, [3]byte{0xd1, 0x9f, 0x00}}, + {3, [3]byte{0xe2, 0x84, 0x96}}, {2, [3]byte{0xd0, 0x81, 0x00}}, + {2, [3]byte{0xd1, 0x91, 0x00}}, {2, [3]byte{0xd1, 0x8f, 0x00}}, + {2, [3]byte{0xd0, 0xb0, 0x00}}, {2, [3]byte{0xd0, 0xb1, 0x00}}, + {2, [3]byte{0xd0, 0xb2, 0x00}}, {2, [3]byte{0xd0, 0xb3, 0x00}}, + {2, [3]byte{0xd0, 0xb4, 0x00}}, {2, [3]byte{0xd0, 0xb5, 0x00}}, + {2, [3]byte{0xd0, 0xb6, 0x00}}, {2, [3]byte{0xd0, 0xb7, 0x00}}, + {2, [3]byte{0xd0, 0xb8, 0x00}}, {2, [3]byte{0xd0, 0xb9, 0x00}}, + {2, [3]byte{0xd0, 0xba, 0x00}}, {2, [3]byte{0xd0, 0xbb, 0x00}}, + {2, [3]byte{0xd0, 0xbc, 0x00}}, {2, [3]byte{0xd0, 0xbd, 0x00}}, + {2, [3]byte{0xd0, 0xbe, 0x00}}, {2, [3]byte{0xd0, 0xbf, 0x00}}, + {2, [3]byte{0xd1, 0x80, 0x00}}, {2, [3]byte{0xd1, 0x81, 0x00}}, + {2, [3]byte{0xd1, 0x82, 0x00}}, {2, [3]byte{0xd1, 0x83, 0x00}}, + {2, [3]byte{0xd1, 0x84, 0x00}}, {2, [3]byte{0xd1, 0x85, 0x00}}, + {2, [3]byte{0xd1, 0x86, 0x00}}, {2, [3]byte{0xd1, 0x87, 0x00}}, + {2, [3]byte{0xd1, 0x88, 0x00}}, {2, [3]byte{0xd1, 0x89, 0x00}}, + {2, [3]byte{0xd1, 0x8a, 0x00}}, {2, [3]byte{0xd1, 0x8b, 0x00}}, + {2, [3]byte{0xd1, 0x8c, 0x00}}, {2, [3]byte{0xd1, 0x8d, 0x00}}, + {2, [3]byte{0xd1, 0x8e, 0x00}}, {3, [3]byte{0xe2, 0x82, 0xac}}, + }, + encode: [256]uint32{ + 0x00000000, 0x01000001, 0x02000002, 0x03000003, 0x04000004, 0x05000005, 0x06000006, 0x07000007, + 0x08000008, 0x09000009, 0x0a00000a, 0x0b00000b, 0x0c00000c, 0x0d00000d, 0x0e00000e, 0x0f00000f, + 0x10000010, 0x11000011, 0x12000012, 0x13000013, 0x14000014, 0x15000015, 0x16000016, 0x17000017, + 0x18000018, 0x19000019, 0x1a00001a, 0x1b00001b, 0x1c00001c, 0x1d00001d, 0x1e00001e, 0x1f00001f, + 0x20000020, 0x21000021, 0x22000022, 0x23000023, 0x24000024, 0x25000025, 0x26000026, 0x27000027, + 0x28000028, 0x29000029, 0x2a00002a, 0x2b00002b, 0x2c00002c, 0x2d00002d, 0x2e00002e, 0x2f00002f, + 0x30000030, 0x31000031, 0x32000032, 0x33000033, 0x34000034, 0x35000035, 0x36000036, 0x37000037, + 0x38000038, 0x39000039, 0x3a00003a, 0x3b00003b, 0x3c00003c, 0x3d00003d, 0x3e00003e, 0x3f00003f, + 0x40000040, 0x41000041, 0x42000042, 0x43000043, 0x44000044, 0x45000045, 0x46000046, 0x47000047, + 0x48000048, 0x49000049, 0x4a00004a, 0x4b00004b, 0x4c00004c, 0x4d00004d, 0x4e00004e, 0x4f00004f, + 0x50000050, 0x51000051, 0x52000052, 0x53000053, 0x54000054, 0x55000055, 0x56000056, 0x57000057, + 0x58000058, 0x59000059, 0x5a00005a, 0x5b00005b, 0x5c00005c, 0x5d00005d, 0x5e00005e, 0x5f00005f, + 0x60000060, 0x61000061, 0x62000062, 0x63000063, 0x64000064, 0x65000065, 0x66000066, 0x67000067, + 0x68000068, 0x69000069, 0x6a00006a, 0x6b00006b, 0x6c00006c, 0x6d00006d, 0x6e00006e, 0x6f00006f, + 0x70000070, 0x71000071, 0x72000072, 0x73000073, 0x74000074, 0x75000075, 0x76000076, 0x77000077, + 0x78000078, 0x79000079, 0x7a00007a, 0x7b00007b, 0x7c00007c, 0x7d00007d, 0x7e00007e, 0x7f00007f, + 0xca0000a0, 0xa30000a3, 0xa40000a7, 0xa90000a9, 0xc70000ab, 0xc20000ac, 0xa80000ae, 0xa10000b0, + 0xb10000b1, 0xb50000b5, 0xa60000b6, 0xc80000bb, 0xd60000f7, 0xc4000192, 0xdd000401, 0xab000402, + 0xae000403, 0xb8000404, 0xc1000405, 0xa7000406, 0xba000407, 0xb7000408, 0xbc000409, 0xbe00040a, + 0xcb00040b, 0xcd00040c, 0xd800040e, 0xda00040f, 0x80000410, 0x81000411, 0x82000412, 0x83000413, + 0x84000414, 0x85000415, 0x86000416, 0x87000417, 0x88000418, 0x89000419, 0x8a00041a, 0x8b00041b, + 0x8c00041c, 0x8d00041d, 0x8e00041e, 0x8f00041f, 0x90000420, 0x91000421, 0x92000422, 0x93000423, + 0x94000424, 0x95000425, 0x96000426, 0x97000427, 0x98000428, 0x99000429, 0x9a00042a, 0x9b00042b, + 0x9c00042c, 0x9d00042d, 0x9e00042e, 0x9f00042f, 0xe0000430, 0xe1000431, 0xe2000432, 0xe3000433, + 0xe4000434, 0xe5000435, 0xe6000436, 0xe7000437, 0xe8000438, 0xe9000439, 0xea00043a, 0xeb00043b, + 0xec00043c, 0xed00043d, 0xee00043e, 0xef00043f, 0xf0000440, 0xf1000441, 0xf2000442, 0xf3000443, + 0xf4000444, 0xf5000445, 0xf6000446, 0xf7000447, 0xf8000448, 0xf9000449, 0xfa00044a, 0xfb00044b, + 0xfc00044c, 0xfd00044d, 0xfe00044e, 0xdf00044f, 0xde000451, 0xac000452, 0xaf000453, 0xb9000454, + 0xcf000455, 0xb4000456, 0xbb000457, 0xc0000458, 0xbd000459, 0xbf00045a, 0xcc00045b, 0xce00045c, + 0xd900045e, 0xdb00045f, 0xa2000490, 0xb6000491, 0xd0002013, 0xd1002014, 0xd4002018, 0xd5002019, + 0xd200201c, 0xd300201d, 0xd700201e, 0xa0002020, 0xa5002022, 0xc9002026, 0xff0020ac, 0xdc002116, + 0xaa002122, 0xc6002206, 0xc300221a, 0xb000221e, 0xc5002248, 0xad002260, 0xb2002264, 0xb3002265, + }, +} + +// Windows874 is the Windows 874 encoding. +var Windows874 *Charmap = &windows874 + +var windows874 = Charmap{ + name: "Windows 874", + mib: identifier.Windows874, + asciiSuperset: true, + low: 0x80, + replacement: 0x1a, + decode: [256]utf8Enc{ + {1, [3]byte{0x00, 0x00, 0x00}}, {1, [3]byte{0x01, 0x00, 0x00}}, + {1, [3]byte{0x02, 0x00, 0x00}}, {1, [3]byte{0x03, 0x00, 0x00}}, + {1, [3]byte{0x04, 0x00, 0x00}}, {1, [3]byte{0x05, 0x00, 0x00}}, + {1, [3]byte{0x06, 0x00, 0x00}}, {1, [3]byte{0x07, 0x00, 0x00}}, + {1, [3]byte{0x08, 0x00, 0x00}}, {1, [3]byte{0x09, 0x00, 0x00}}, + {1, [3]byte{0x0a, 0x00, 0x00}}, {1, [3]byte{0x0b, 0x00, 0x00}}, + {1, [3]byte{0x0c, 0x00, 0x00}}, {1, [3]byte{0x0d, 0x00, 0x00}}, + {1, [3]byte{0x0e, 0x00, 0x00}}, {1, [3]byte{0x0f, 0x00, 0x00}}, + {1, [3]byte{0x10, 0x00, 0x00}}, {1, [3]byte{0x11, 0x00, 0x00}}, + {1, [3]byte{0x12, 0x00, 0x00}}, {1, [3]byte{0x13, 0x00, 0x00}}, + {1, [3]byte{0x14, 0x00, 0x00}}, {1, [3]byte{0x15, 0x00, 0x00}}, + {1, [3]byte{0x16, 0x00, 0x00}}, {1, [3]byte{0x17, 0x00, 0x00}}, + {1, [3]byte{0x18, 0x00, 0x00}}, {1, [3]byte{0x19, 0x00, 0x00}}, + {1, [3]byte{0x1a, 0x00, 0x00}}, {1, [3]byte{0x1b, 0x00, 0x00}}, + {1, [3]byte{0x1c, 0x00, 0x00}}, {1, [3]byte{0x1d, 0x00, 0x00}}, + {1, [3]byte{0x1e, 0x00, 0x00}}, {1, [3]byte{0x1f, 0x00, 0x00}}, + {1, [3]byte{0x20, 0x00, 0x00}}, {1, [3]byte{0x21, 0x00, 0x00}}, + {1, [3]byte{0x22, 0x00, 0x00}}, {1, [3]byte{0x23, 0x00, 0x00}}, + {1, [3]byte{0x24, 0x00, 0x00}}, {1, [3]byte{0x25, 0x00, 0x00}}, + {1, [3]byte{0x26, 0x00, 0x00}}, {1, [3]byte{0x27, 0x00, 0x00}}, + {1, [3]byte{0x28, 0x00, 0x00}}, {1, [3]byte{0x29, 0x00, 0x00}}, + {1, [3]byte{0x2a, 0x00, 0x00}}, {1, [3]byte{0x2b, 0x00, 0x00}}, + {1, [3]byte{0x2c, 0x00, 0x00}}, {1, [3]byte{0x2d, 0x00, 0x00}}, + {1, [3]byte{0x2e, 0x00, 0x00}}, {1, [3]byte{0x2f, 0x00, 0x00}}, + {1, [3]byte{0x30, 0x00, 0x00}}, {1, [3]byte{0x31, 0x00, 0x00}}, + {1, [3]byte{0x32, 0x00, 0x00}}, {1, [3]byte{0x33, 0x00, 0x00}}, + {1, [3]byte{0x34, 0x00, 0x00}}, {1, [3]byte{0x35, 0x00, 0x00}}, + {1, [3]byte{0x36, 0x00, 0x00}}, {1, [3]byte{0x37, 0x00, 0x00}}, + {1, [3]byte{0x38, 0x00, 0x00}}, {1, [3]byte{0x39, 0x00, 0x00}}, + {1, [3]byte{0x3a, 0x00, 0x00}}, {1, [3]byte{0x3b, 0x00, 0x00}}, + {1, [3]byte{0x3c, 0x00, 0x00}}, {1, [3]byte{0x3d, 0x00, 0x00}}, + {1, [3]byte{0x3e, 0x00, 0x00}}, {1, [3]byte{0x3f, 0x00, 0x00}}, + {1, [3]byte{0x40, 0x00, 0x00}}, {1, [3]byte{0x41, 0x00, 0x00}}, + {1, [3]byte{0x42, 0x00, 0x00}}, {1, [3]byte{0x43, 0x00, 0x00}}, + {1, [3]byte{0x44, 0x00, 0x00}}, {1, [3]byte{0x45, 0x00, 0x00}}, + {1, [3]byte{0x46, 0x00, 0x00}}, {1, [3]byte{0x47, 0x00, 0x00}}, + {1, [3]byte{0x48, 0x00, 0x00}}, {1, [3]byte{0x49, 0x00, 0x00}}, + {1, [3]byte{0x4a, 0x00, 0x00}}, {1, [3]byte{0x4b, 0x00, 0x00}}, + {1, [3]byte{0x4c, 0x00, 0x00}}, {1, [3]byte{0x4d, 0x00, 0x00}}, + {1, [3]byte{0x4e, 0x00, 0x00}}, {1, [3]byte{0x4f, 0x00, 0x00}}, + {1, [3]byte{0x50, 0x00, 0x00}}, {1, [3]byte{0x51, 0x00, 0x00}}, + {1, [3]byte{0x52, 0x00, 0x00}}, {1, [3]byte{0x53, 0x00, 0x00}}, + {1, [3]byte{0x54, 0x00, 0x00}}, {1, [3]byte{0x55, 0x00, 0x00}}, + {1, [3]byte{0x56, 0x00, 0x00}}, {1, [3]byte{0x57, 0x00, 0x00}}, + {1, [3]byte{0x58, 0x00, 0x00}}, {1, [3]byte{0x59, 0x00, 0x00}}, + {1, [3]byte{0x5a, 0x00, 0x00}}, {1, [3]byte{0x5b, 0x00, 0x00}}, + {1, [3]byte{0x5c, 0x00, 0x00}}, {1, [3]byte{0x5d, 0x00, 0x00}}, + {1, [3]byte{0x5e, 0x00, 0x00}}, {1, [3]byte{0x5f, 0x00, 0x00}}, + {1, [3]byte{0x60, 0x00, 0x00}}, {1, [3]byte{0x61, 0x00, 0x00}}, + {1, [3]byte{0x62, 0x00, 0x00}}, {1, [3]byte{0x63, 0x00, 0x00}}, + {1, [3]byte{0x64, 0x00, 0x00}}, {1, [3]byte{0x65, 0x00, 0x00}}, + {1, [3]byte{0x66, 0x00, 0x00}}, {1, [3]byte{0x67, 0x00, 0x00}}, + {1, [3]byte{0x68, 0x00, 0x00}}, {1, [3]byte{0x69, 0x00, 0x00}}, + {1, [3]byte{0x6a, 0x00, 0x00}}, {1, [3]byte{0x6b, 0x00, 0x00}}, + {1, [3]byte{0x6c, 0x00, 0x00}}, {1, [3]byte{0x6d, 0x00, 0x00}}, + {1, [3]byte{0x6e, 0x00, 0x00}}, {1, [3]byte{0x6f, 0x00, 0x00}}, + {1, [3]byte{0x70, 0x00, 0x00}}, {1, [3]byte{0x71, 0x00, 0x00}}, + {1, [3]byte{0x72, 0x00, 0x00}}, {1, [3]byte{0x73, 0x00, 0x00}}, + {1, [3]byte{0x74, 0x00, 0x00}}, {1, [3]byte{0x75, 0x00, 0x00}}, + {1, [3]byte{0x76, 0x00, 0x00}}, {1, [3]byte{0x77, 0x00, 0x00}}, + {1, [3]byte{0x78, 0x00, 0x00}}, {1, [3]byte{0x79, 0x00, 0x00}}, + {1, [3]byte{0x7a, 0x00, 0x00}}, {1, [3]byte{0x7b, 0x00, 0x00}}, + {1, [3]byte{0x7c, 0x00, 0x00}}, {1, [3]byte{0x7d, 0x00, 0x00}}, + {1, [3]byte{0x7e, 0x00, 0x00}}, {1, [3]byte{0x7f, 0x00, 0x00}}, + {3, [3]byte{0xe2, 0x82, 0xac}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xe2, 0x80, 0xa6}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xe2, 0x80, 0x98}}, + {3, [3]byte{0xe2, 0x80, 0x99}}, {3, [3]byte{0xe2, 0x80, 0x9c}}, + {3, [3]byte{0xe2, 0x80, 0x9d}}, {3, [3]byte{0xe2, 0x80, 0xa2}}, + {3, [3]byte{0xe2, 0x80, 0x93}}, {3, [3]byte{0xe2, 0x80, 0x94}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {2, [3]byte{0xc2, 0xa0, 0x00}}, {3, [3]byte{0xe0, 0xb8, 0x81}}, + {3, [3]byte{0xe0, 0xb8, 0x82}}, {3, [3]byte{0xe0, 0xb8, 0x83}}, + {3, [3]byte{0xe0, 0xb8, 0x84}}, {3, [3]byte{0xe0, 0xb8, 0x85}}, + {3, [3]byte{0xe0, 0xb8, 0x86}}, {3, [3]byte{0xe0, 0xb8, 0x87}}, + {3, [3]byte{0xe0, 0xb8, 0x88}}, {3, [3]byte{0xe0, 0xb8, 0x89}}, + {3, [3]byte{0xe0, 0xb8, 0x8a}}, {3, [3]byte{0xe0, 0xb8, 0x8b}}, + {3, [3]byte{0xe0, 0xb8, 0x8c}}, {3, [3]byte{0xe0, 0xb8, 0x8d}}, + {3, [3]byte{0xe0, 0xb8, 0x8e}}, {3, [3]byte{0xe0, 0xb8, 0x8f}}, + {3, [3]byte{0xe0, 0xb8, 0x90}}, {3, [3]byte{0xe0, 0xb8, 0x91}}, + {3, [3]byte{0xe0, 0xb8, 0x92}}, {3, [3]byte{0xe0, 0xb8, 0x93}}, + {3, [3]byte{0xe0, 0xb8, 0x94}}, {3, [3]byte{0xe0, 0xb8, 0x95}}, + {3, [3]byte{0xe0, 0xb8, 0x96}}, {3, [3]byte{0xe0, 0xb8, 0x97}}, + {3, [3]byte{0xe0, 0xb8, 0x98}}, {3, [3]byte{0xe0, 0xb8, 0x99}}, + {3, [3]byte{0xe0, 0xb8, 0x9a}}, {3, [3]byte{0xe0, 0xb8, 0x9b}}, + {3, [3]byte{0xe0, 0xb8, 0x9c}}, {3, [3]byte{0xe0, 0xb8, 0x9d}}, + {3, [3]byte{0xe0, 0xb8, 0x9e}}, {3, [3]byte{0xe0, 0xb8, 0x9f}}, + {3, [3]byte{0xe0, 0xb8, 0xa0}}, {3, [3]byte{0xe0, 0xb8, 0xa1}}, + {3, [3]byte{0xe0, 0xb8, 0xa2}}, {3, [3]byte{0xe0, 0xb8, 0xa3}}, + {3, [3]byte{0xe0, 0xb8, 0xa4}}, {3, [3]byte{0xe0, 0xb8, 0xa5}}, + {3, [3]byte{0xe0, 0xb8, 0xa6}}, {3, [3]byte{0xe0, 0xb8, 0xa7}}, + {3, [3]byte{0xe0, 0xb8, 0xa8}}, {3, [3]byte{0xe0, 0xb8, 0xa9}}, + {3, [3]byte{0xe0, 0xb8, 0xaa}}, {3, [3]byte{0xe0, 0xb8, 0xab}}, + {3, [3]byte{0xe0, 0xb8, 0xac}}, {3, [3]byte{0xe0, 0xb8, 0xad}}, + {3, [3]byte{0xe0, 0xb8, 0xae}}, {3, [3]byte{0xe0, 0xb8, 0xaf}}, + {3, [3]byte{0xe0, 0xb8, 0xb0}}, {3, [3]byte{0xe0, 0xb8, 0xb1}}, + {3, [3]byte{0xe0, 0xb8, 0xb2}}, {3, [3]byte{0xe0, 0xb8, 0xb3}}, + {3, [3]byte{0xe0, 0xb8, 0xb4}}, {3, [3]byte{0xe0, 0xb8, 0xb5}}, + {3, [3]byte{0xe0, 0xb8, 0xb6}}, {3, [3]byte{0xe0, 0xb8, 0xb7}}, + {3, [3]byte{0xe0, 0xb8, 0xb8}}, {3, [3]byte{0xe0, 0xb8, 0xb9}}, + {3, [3]byte{0xe0, 0xb8, 0xba}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xe0, 0xb8, 0xbf}}, + {3, [3]byte{0xe0, 0xb9, 0x80}}, {3, [3]byte{0xe0, 0xb9, 0x81}}, + {3, [3]byte{0xe0, 0xb9, 0x82}}, {3, [3]byte{0xe0, 0xb9, 0x83}}, + {3, [3]byte{0xe0, 0xb9, 0x84}}, {3, [3]byte{0xe0, 0xb9, 0x85}}, + {3, [3]byte{0xe0, 0xb9, 0x86}}, {3, [3]byte{0xe0, 0xb9, 0x87}}, + {3, [3]byte{0xe0, 0xb9, 0x88}}, {3, [3]byte{0xe0, 0xb9, 0x89}}, + {3, [3]byte{0xe0, 0xb9, 0x8a}}, {3, [3]byte{0xe0, 0xb9, 0x8b}}, + {3, [3]byte{0xe0, 0xb9, 0x8c}}, {3, [3]byte{0xe0, 0xb9, 0x8d}}, + {3, [3]byte{0xe0, 0xb9, 0x8e}}, {3, [3]byte{0xe0, 0xb9, 0x8f}}, + {3, [3]byte{0xe0, 0xb9, 0x90}}, {3, [3]byte{0xe0, 0xb9, 0x91}}, + {3, [3]byte{0xe0, 0xb9, 0x92}}, {3, [3]byte{0xe0, 0xb9, 0x93}}, + {3, [3]byte{0xe0, 0xb9, 0x94}}, {3, [3]byte{0xe0, 0xb9, 0x95}}, + {3, [3]byte{0xe0, 0xb9, 0x96}}, {3, [3]byte{0xe0, 0xb9, 0x97}}, + {3, [3]byte{0xe0, 0xb9, 0x98}}, {3, [3]byte{0xe0, 0xb9, 0x99}}, + {3, [3]byte{0xe0, 0xb9, 0x9a}}, {3, [3]byte{0xe0, 0xb9, 0x9b}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + }, + encode: [256]uint32{ + 0x00000000, 0x01000001, 0x02000002, 0x03000003, 0x04000004, 0x05000005, 0x06000006, 0x07000007, + 0x08000008, 0x09000009, 0x0a00000a, 0x0b00000b, 0x0c00000c, 0x0d00000d, 0x0e00000e, 0x0f00000f, + 0x10000010, 0x11000011, 0x12000012, 0x13000013, 0x14000014, 0x15000015, 0x16000016, 0x17000017, + 0x18000018, 0x19000019, 0x1a00001a, 0x1b00001b, 0x1c00001c, 0x1d00001d, 0x1e00001e, 0x1f00001f, + 0x20000020, 0x21000021, 0x22000022, 0x23000023, 0x24000024, 0x25000025, 0x26000026, 0x27000027, + 0x28000028, 0x29000029, 0x2a00002a, 0x2b00002b, 0x2c00002c, 0x2d00002d, 0x2e00002e, 0x2f00002f, + 0x30000030, 0x31000031, 0x32000032, 0x33000033, 0x34000034, 0x35000035, 0x36000036, 0x37000037, + 0x38000038, 0x39000039, 0x3a00003a, 0x3b00003b, 0x3c00003c, 0x3d00003d, 0x3e00003e, 0x3f00003f, + 0x40000040, 0x41000041, 0x42000042, 0x43000043, 0x44000044, 0x45000045, 0x46000046, 0x47000047, + 0x48000048, 0x49000049, 0x4a00004a, 0x4b00004b, 0x4c00004c, 0x4d00004d, 0x4e00004e, 0x4f00004f, + 0x50000050, 0x51000051, 0x52000052, 0x53000053, 0x54000054, 0x55000055, 0x56000056, 0x57000057, + 0x58000058, 0x59000059, 0x5a00005a, 0x5b00005b, 0x5c00005c, 0x5d00005d, 0x5e00005e, 0x5f00005f, + 0x60000060, 0x61000061, 0x62000062, 0x63000063, 0x64000064, 0x65000065, 0x66000066, 0x67000067, + 0x68000068, 0x69000069, 0x6a00006a, 0x6b00006b, 0x6c00006c, 0x6d00006d, 0x6e00006e, 0x6f00006f, + 0x70000070, 0x71000071, 0x72000072, 0x73000073, 0x74000074, 0x75000075, 0x76000076, 0x77000077, + 0x78000078, 0x79000079, 0x7a00007a, 0x7b00007b, 0x7c00007c, 0x7d00007d, 0x7e00007e, 0x7f00007f, + 0xa00000a0, 0xa1000e01, 0xa2000e02, 0xa3000e03, 0xa4000e04, 0xa5000e05, 0xa6000e06, 0xa7000e07, + 0xa8000e08, 0xa9000e09, 0xaa000e0a, 0xab000e0b, 0xac000e0c, 0xad000e0d, 0xae000e0e, 0xaf000e0f, + 0xb0000e10, 0xb1000e11, 0xb2000e12, 0xb3000e13, 0xb4000e14, 0xb5000e15, 0xb6000e16, 0xb7000e17, + 0xb8000e18, 0xb9000e19, 0xba000e1a, 0xbb000e1b, 0xbc000e1c, 0xbd000e1d, 0xbe000e1e, 0xbf000e1f, + 0xc0000e20, 0xc1000e21, 0xc2000e22, 0xc3000e23, 0xc4000e24, 0xc5000e25, 0xc6000e26, 0xc7000e27, + 0xc8000e28, 0xc9000e29, 0xca000e2a, 0xcb000e2b, 0xcc000e2c, 0xcd000e2d, 0xce000e2e, 0xcf000e2f, + 0xd0000e30, 0xd1000e31, 0xd2000e32, 0xd3000e33, 0xd4000e34, 0xd5000e35, 0xd6000e36, 0xd7000e37, + 0xd8000e38, 0xd9000e39, 0xda000e3a, 0xdf000e3f, 0xe0000e40, 0xe1000e41, 0xe2000e42, 0xe3000e43, + 0xe4000e44, 0xe5000e45, 0xe6000e46, 0xe7000e47, 0xe8000e48, 0xe9000e49, 0xea000e4a, 0xeb000e4b, + 0xec000e4c, 0xed000e4d, 0xee000e4e, 0xef000e4f, 0xf0000e50, 0xf1000e51, 0xf2000e52, 0xf3000e53, + 0xf4000e54, 0xf5000e55, 0xf6000e56, 0xf7000e57, 0xf8000e58, 0xf9000e59, 0xfa000e5a, 0xfb000e5b, + 0x96002013, 0x97002014, 0x91002018, 0x92002019, 0x9300201c, 0x9400201d, 0x95002022, 0x85002026, + 0x800020ac, 0x800020ac, 0x800020ac, 0x800020ac, 0x800020ac, 0x800020ac, 0x800020ac, 0x800020ac, + 0x800020ac, 0x800020ac, 0x800020ac, 0x800020ac, 0x800020ac, 0x800020ac, 0x800020ac, 0x800020ac, + 0x800020ac, 0x800020ac, 0x800020ac, 0x800020ac, 0x800020ac, 0x800020ac, 0x800020ac, 0x800020ac, + 0x800020ac, 0x800020ac, 0x800020ac, 0x800020ac, 0x800020ac, 0x800020ac, 0x800020ac, 0x800020ac, + }, +} + +// Windows1250 is the Windows 1250 encoding. +var Windows1250 *Charmap = &windows1250 + +var windows1250 = Charmap{ + name: "Windows 1250", + mib: identifier.Windows1250, + asciiSuperset: true, + low: 0x80, + replacement: 0x1a, + decode: [256]utf8Enc{ + {1, [3]byte{0x00, 0x00, 0x00}}, {1, [3]byte{0x01, 0x00, 0x00}}, + {1, [3]byte{0x02, 0x00, 0x00}}, {1, [3]byte{0x03, 0x00, 0x00}}, + {1, [3]byte{0x04, 0x00, 0x00}}, {1, [3]byte{0x05, 0x00, 0x00}}, + {1, [3]byte{0x06, 0x00, 0x00}}, {1, [3]byte{0x07, 0x00, 0x00}}, + {1, [3]byte{0x08, 0x00, 0x00}}, {1, [3]byte{0x09, 0x00, 0x00}}, + {1, [3]byte{0x0a, 0x00, 0x00}}, {1, [3]byte{0x0b, 0x00, 0x00}}, + {1, [3]byte{0x0c, 0x00, 0x00}}, {1, [3]byte{0x0d, 0x00, 0x00}}, + {1, [3]byte{0x0e, 0x00, 0x00}}, {1, [3]byte{0x0f, 0x00, 0x00}}, + {1, [3]byte{0x10, 0x00, 0x00}}, {1, [3]byte{0x11, 0x00, 0x00}}, + {1, [3]byte{0x12, 0x00, 0x00}}, {1, [3]byte{0x13, 0x00, 0x00}}, + {1, [3]byte{0x14, 0x00, 0x00}}, {1, [3]byte{0x15, 0x00, 0x00}}, + {1, [3]byte{0x16, 0x00, 0x00}}, {1, [3]byte{0x17, 0x00, 0x00}}, + {1, [3]byte{0x18, 0x00, 0x00}}, {1, [3]byte{0x19, 0x00, 0x00}}, + {1, [3]byte{0x1a, 0x00, 0x00}}, {1, [3]byte{0x1b, 0x00, 0x00}}, + {1, [3]byte{0x1c, 0x00, 0x00}}, {1, [3]byte{0x1d, 0x00, 0x00}}, + {1, [3]byte{0x1e, 0x00, 0x00}}, {1, [3]byte{0x1f, 0x00, 0x00}}, + {1, [3]byte{0x20, 0x00, 0x00}}, {1, [3]byte{0x21, 0x00, 0x00}}, + {1, [3]byte{0x22, 0x00, 0x00}}, {1, [3]byte{0x23, 0x00, 0x00}}, + {1, [3]byte{0x24, 0x00, 0x00}}, {1, [3]byte{0x25, 0x00, 0x00}}, + {1, [3]byte{0x26, 0x00, 0x00}}, {1, [3]byte{0x27, 0x00, 0x00}}, + {1, [3]byte{0x28, 0x00, 0x00}}, {1, [3]byte{0x29, 0x00, 0x00}}, + {1, [3]byte{0x2a, 0x00, 0x00}}, {1, [3]byte{0x2b, 0x00, 0x00}}, + {1, [3]byte{0x2c, 0x00, 0x00}}, {1, [3]byte{0x2d, 0x00, 0x00}}, + {1, [3]byte{0x2e, 0x00, 0x00}}, {1, [3]byte{0x2f, 0x00, 0x00}}, + {1, [3]byte{0x30, 0x00, 0x00}}, {1, [3]byte{0x31, 0x00, 0x00}}, + {1, [3]byte{0x32, 0x00, 0x00}}, {1, [3]byte{0x33, 0x00, 0x00}}, + {1, [3]byte{0x34, 0x00, 0x00}}, {1, [3]byte{0x35, 0x00, 0x00}}, + {1, [3]byte{0x36, 0x00, 0x00}}, {1, [3]byte{0x37, 0x00, 0x00}}, + {1, [3]byte{0x38, 0x00, 0x00}}, {1, [3]byte{0x39, 0x00, 0x00}}, + {1, [3]byte{0x3a, 0x00, 0x00}}, {1, [3]byte{0x3b, 0x00, 0x00}}, + {1, [3]byte{0x3c, 0x00, 0x00}}, {1, [3]byte{0x3d, 0x00, 0x00}}, + {1, [3]byte{0x3e, 0x00, 0x00}}, {1, [3]byte{0x3f, 0x00, 0x00}}, + {1, [3]byte{0x40, 0x00, 0x00}}, {1, [3]byte{0x41, 0x00, 0x00}}, + {1, [3]byte{0x42, 0x00, 0x00}}, {1, [3]byte{0x43, 0x00, 0x00}}, + {1, [3]byte{0x44, 0x00, 0x00}}, {1, [3]byte{0x45, 0x00, 0x00}}, + {1, [3]byte{0x46, 0x00, 0x00}}, {1, [3]byte{0x47, 0x00, 0x00}}, + {1, [3]byte{0x48, 0x00, 0x00}}, {1, [3]byte{0x49, 0x00, 0x00}}, + {1, [3]byte{0x4a, 0x00, 0x00}}, {1, [3]byte{0x4b, 0x00, 0x00}}, + {1, [3]byte{0x4c, 0x00, 0x00}}, {1, [3]byte{0x4d, 0x00, 0x00}}, + {1, [3]byte{0x4e, 0x00, 0x00}}, {1, [3]byte{0x4f, 0x00, 0x00}}, + {1, [3]byte{0x50, 0x00, 0x00}}, {1, [3]byte{0x51, 0x00, 0x00}}, + {1, [3]byte{0x52, 0x00, 0x00}}, {1, [3]byte{0x53, 0x00, 0x00}}, + {1, [3]byte{0x54, 0x00, 0x00}}, {1, [3]byte{0x55, 0x00, 0x00}}, + {1, [3]byte{0x56, 0x00, 0x00}}, {1, [3]byte{0x57, 0x00, 0x00}}, + {1, [3]byte{0x58, 0x00, 0x00}}, {1, [3]byte{0x59, 0x00, 0x00}}, + {1, [3]byte{0x5a, 0x00, 0x00}}, {1, [3]byte{0x5b, 0x00, 0x00}}, + {1, [3]byte{0x5c, 0x00, 0x00}}, {1, [3]byte{0x5d, 0x00, 0x00}}, + {1, [3]byte{0x5e, 0x00, 0x00}}, {1, [3]byte{0x5f, 0x00, 0x00}}, + {1, [3]byte{0x60, 0x00, 0x00}}, {1, [3]byte{0x61, 0x00, 0x00}}, + {1, [3]byte{0x62, 0x00, 0x00}}, {1, [3]byte{0x63, 0x00, 0x00}}, + {1, [3]byte{0x64, 0x00, 0x00}}, {1, [3]byte{0x65, 0x00, 0x00}}, + {1, [3]byte{0x66, 0x00, 0x00}}, {1, [3]byte{0x67, 0x00, 0x00}}, + {1, [3]byte{0x68, 0x00, 0x00}}, {1, [3]byte{0x69, 0x00, 0x00}}, + {1, [3]byte{0x6a, 0x00, 0x00}}, {1, [3]byte{0x6b, 0x00, 0x00}}, + {1, [3]byte{0x6c, 0x00, 0x00}}, {1, [3]byte{0x6d, 0x00, 0x00}}, + {1, [3]byte{0x6e, 0x00, 0x00}}, {1, [3]byte{0x6f, 0x00, 0x00}}, + {1, [3]byte{0x70, 0x00, 0x00}}, {1, [3]byte{0x71, 0x00, 0x00}}, + {1, [3]byte{0x72, 0x00, 0x00}}, {1, [3]byte{0x73, 0x00, 0x00}}, + {1, [3]byte{0x74, 0x00, 0x00}}, {1, [3]byte{0x75, 0x00, 0x00}}, + {1, [3]byte{0x76, 0x00, 0x00}}, {1, [3]byte{0x77, 0x00, 0x00}}, + {1, [3]byte{0x78, 0x00, 0x00}}, {1, [3]byte{0x79, 0x00, 0x00}}, + {1, [3]byte{0x7a, 0x00, 0x00}}, {1, [3]byte{0x7b, 0x00, 0x00}}, + {1, [3]byte{0x7c, 0x00, 0x00}}, {1, [3]byte{0x7d, 0x00, 0x00}}, + {1, [3]byte{0x7e, 0x00, 0x00}}, {1, [3]byte{0x7f, 0x00, 0x00}}, + {3, [3]byte{0xe2, 0x82, 0xac}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xe2, 0x80, 0x9a}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xe2, 0x80, 0x9e}}, {3, [3]byte{0xe2, 0x80, 0xa6}}, + {3, [3]byte{0xe2, 0x80, 0xa0}}, {3, [3]byte{0xe2, 0x80, 0xa1}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xe2, 0x80, 0xb0}}, + {2, [3]byte{0xc5, 0xa0, 0x00}}, {3, [3]byte{0xe2, 0x80, 0xb9}}, + {2, [3]byte{0xc5, 0x9a, 0x00}}, {2, [3]byte{0xc5, 0xa4, 0x00}}, + {2, [3]byte{0xc5, 0xbd, 0x00}}, {2, [3]byte{0xc5, 0xb9, 0x00}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xe2, 0x80, 0x98}}, + {3, [3]byte{0xe2, 0x80, 0x99}}, {3, [3]byte{0xe2, 0x80, 0x9c}}, + {3, [3]byte{0xe2, 0x80, 0x9d}}, {3, [3]byte{0xe2, 0x80, 0xa2}}, + {3, [3]byte{0xe2, 0x80, 0x93}}, {3, [3]byte{0xe2, 0x80, 0x94}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xe2, 0x84, 0xa2}}, + {2, [3]byte{0xc5, 0xa1, 0x00}}, {3, [3]byte{0xe2, 0x80, 0xba}}, + {2, [3]byte{0xc5, 0x9b, 0x00}}, {2, [3]byte{0xc5, 0xa5, 0x00}}, + {2, [3]byte{0xc5, 0xbe, 0x00}}, {2, [3]byte{0xc5, 0xba, 0x00}}, + {2, [3]byte{0xc2, 0xa0, 0x00}}, {2, [3]byte{0xcb, 0x87, 0x00}}, + {2, [3]byte{0xcb, 0x98, 0x00}}, {2, [3]byte{0xc5, 0x81, 0x00}}, + {2, [3]byte{0xc2, 0xa4, 0x00}}, {2, [3]byte{0xc4, 0x84, 0x00}}, + {2, [3]byte{0xc2, 0xa6, 0x00}}, {2, [3]byte{0xc2, 0xa7, 0x00}}, + {2, [3]byte{0xc2, 0xa8, 0x00}}, {2, [3]byte{0xc2, 0xa9, 0x00}}, + {2, [3]byte{0xc5, 0x9e, 0x00}}, {2, [3]byte{0xc2, 0xab, 0x00}}, + {2, [3]byte{0xc2, 0xac, 0x00}}, {2, [3]byte{0xc2, 0xad, 0x00}}, + {2, [3]byte{0xc2, 0xae, 0x00}}, {2, [3]byte{0xc5, 0xbb, 0x00}}, + {2, [3]byte{0xc2, 0xb0, 0x00}}, {2, [3]byte{0xc2, 0xb1, 0x00}}, + {2, [3]byte{0xcb, 0x9b, 0x00}}, {2, [3]byte{0xc5, 0x82, 0x00}}, + {2, [3]byte{0xc2, 0xb4, 0x00}}, {2, [3]byte{0xc2, 0xb5, 0x00}}, + {2, [3]byte{0xc2, 0xb6, 0x00}}, {2, [3]byte{0xc2, 0xb7, 0x00}}, + {2, [3]byte{0xc2, 0xb8, 0x00}}, {2, [3]byte{0xc4, 0x85, 0x00}}, + {2, [3]byte{0xc5, 0x9f, 0x00}}, {2, [3]byte{0xc2, 0xbb, 0x00}}, + {2, [3]byte{0xc4, 0xbd, 0x00}}, {2, [3]byte{0xcb, 0x9d, 0x00}}, + {2, [3]byte{0xc4, 0xbe, 0x00}}, {2, [3]byte{0xc5, 0xbc, 0x00}}, + {2, [3]byte{0xc5, 0x94, 0x00}}, {2, [3]byte{0xc3, 0x81, 0x00}}, + {2, [3]byte{0xc3, 0x82, 0x00}}, {2, [3]byte{0xc4, 0x82, 0x00}}, + {2, [3]byte{0xc3, 0x84, 0x00}}, {2, [3]byte{0xc4, 0xb9, 0x00}}, + {2, [3]byte{0xc4, 0x86, 0x00}}, {2, [3]byte{0xc3, 0x87, 0x00}}, + {2, [3]byte{0xc4, 0x8c, 0x00}}, {2, [3]byte{0xc3, 0x89, 0x00}}, + {2, [3]byte{0xc4, 0x98, 0x00}}, {2, [3]byte{0xc3, 0x8b, 0x00}}, + {2, [3]byte{0xc4, 0x9a, 0x00}}, {2, [3]byte{0xc3, 0x8d, 0x00}}, + {2, [3]byte{0xc3, 0x8e, 0x00}}, {2, [3]byte{0xc4, 0x8e, 0x00}}, + {2, [3]byte{0xc4, 0x90, 0x00}}, {2, [3]byte{0xc5, 0x83, 0x00}}, + {2, [3]byte{0xc5, 0x87, 0x00}}, {2, [3]byte{0xc3, 0x93, 0x00}}, + {2, [3]byte{0xc3, 0x94, 0x00}}, {2, [3]byte{0xc5, 0x90, 0x00}}, + {2, [3]byte{0xc3, 0x96, 0x00}}, {2, [3]byte{0xc3, 0x97, 0x00}}, + {2, [3]byte{0xc5, 0x98, 0x00}}, {2, [3]byte{0xc5, 0xae, 0x00}}, + {2, [3]byte{0xc3, 0x9a, 0x00}}, {2, [3]byte{0xc5, 0xb0, 0x00}}, + {2, [3]byte{0xc3, 0x9c, 0x00}}, {2, [3]byte{0xc3, 0x9d, 0x00}}, + {2, [3]byte{0xc5, 0xa2, 0x00}}, {2, [3]byte{0xc3, 0x9f, 0x00}}, + {2, [3]byte{0xc5, 0x95, 0x00}}, {2, [3]byte{0xc3, 0xa1, 0x00}}, + {2, [3]byte{0xc3, 0xa2, 0x00}}, {2, [3]byte{0xc4, 0x83, 0x00}}, + {2, [3]byte{0xc3, 0xa4, 0x00}}, {2, [3]byte{0xc4, 0xba, 0x00}}, + {2, [3]byte{0xc4, 0x87, 0x00}}, {2, [3]byte{0xc3, 0xa7, 0x00}}, + {2, [3]byte{0xc4, 0x8d, 0x00}}, {2, [3]byte{0xc3, 0xa9, 0x00}}, + {2, [3]byte{0xc4, 0x99, 0x00}}, {2, [3]byte{0xc3, 0xab, 0x00}}, + {2, [3]byte{0xc4, 0x9b, 0x00}}, {2, [3]byte{0xc3, 0xad, 0x00}}, + {2, [3]byte{0xc3, 0xae, 0x00}}, {2, [3]byte{0xc4, 0x8f, 0x00}}, + {2, [3]byte{0xc4, 0x91, 0x00}}, {2, [3]byte{0xc5, 0x84, 0x00}}, + {2, [3]byte{0xc5, 0x88, 0x00}}, {2, [3]byte{0xc3, 0xb3, 0x00}}, + {2, [3]byte{0xc3, 0xb4, 0x00}}, {2, [3]byte{0xc5, 0x91, 0x00}}, + {2, [3]byte{0xc3, 0xb6, 0x00}}, {2, [3]byte{0xc3, 0xb7, 0x00}}, + {2, [3]byte{0xc5, 0x99, 0x00}}, {2, [3]byte{0xc5, 0xaf, 0x00}}, + {2, [3]byte{0xc3, 0xba, 0x00}}, {2, [3]byte{0xc5, 0xb1, 0x00}}, + {2, [3]byte{0xc3, 0xbc, 0x00}}, {2, [3]byte{0xc3, 0xbd, 0x00}}, + {2, [3]byte{0xc5, 0xa3, 0x00}}, {2, [3]byte{0xcb, 0x99, 0x00}}, + }, + encode: [256]uint32{ + 0x00000000, 0x01000001, 0x02000002, 0x03000003, 0x04000004, 0x05000005, 0x06000006, 0x07000007, + 0x08000008, 0x09000009, 0x0a00000a, 0x0b00000b, 0x0c00000c, 0x0d00000d, 0x0e00000e, 0x0f00000f, + 0x10000010, 0x11000011, 0x12000012, 0x13000013, 0x14000014, 0x15000015, 0x16000016, 0x17000017, + 0x18000018, 0x19000019, 0x1a00001a, 0x1b00001b, 0x1c00001c, 0x1d00001d, 0x1e00001e, 0x1f00001f, + 0x20000020, 0x21000021, 0x22000022, 0x23000023, 0x24000024, 0x25000025, 0x26000026, 0x27000027, + 0x28000028, 0x29000029, 0x2a00002a, 0x2b00002b, 0x2c00002c, 0x2d00002d, 0x2e00002e, 0x2f00002f, + 0x30000030, 0x31000031, 0x32000032, 0x33000033, 0x34000034, 0x35000035, 0x36000036, 0x37000037, + 0x38000038, 0x39000039, 0x3a00003a, 0x3b00003b, 0x3c00003c, 0x3d00003d, 0x3e00003e, 0x3f00003f, + 0x40000040, 0x41000041, 0x42000042, 0x43000043, 0x44000044, 0x45000045, 0x46000046, 0x47000047, + 0x48000048, 0x49000049, 0x4a00004a, 0x4b00004b, 0x4c00004c, 0x4d00004d, 0x4e00004e, 0x4f00004f, + 0x50000050, 0x51000051, 0x52000052, 0x53000053, 0x54000054, 0x55000055, 0x56000056, 0x57000057, + 0x58000058, 0x59000059, 0x5a00005a, 0x5b00005b, 0x5c00005c, 0x5d00005d, 0x5e00005e, 0x5f00005f, + 0x60000060, 0x61000061, 0x62000062, 0x63000063, 0x64000064, 0x65000065, 0x66000066, 0x67000067, + 0x68000068, 0x69000069, 0x6a00006a, 0x6b00006b, 0x6c00006c, 0x6d00006d, 0x6e00006e, 0x6f00006f, + 0x70000070, 0x71000071, 0x72000072, 0x73000073, 0x74000074, 0x75000075, 0x76000076, 0x77000077, + 0x78000078, 0x79000079, 0x7a00007a, 0x7b00007b, 0x7c00007c, 0x7d00007d, 0x7e00007e, 0x7f00007f, + 0xa00000a0, 0xa40000a4, 0xa60000a6, 0xa70000a7, 0xa80000a8, 0xa90000a9, 0xab0000ab, 0xac0000ac, + 0xad0000ad, 0xae0000ae, 0xb00000b0, 0xb10000b1, 0xb40000b4, 0xb50000b5, 0xb60000b6, 0xb70000b7, + 0xb80000b8, 0xbb0000bb, 0xc10000c1, 0xc20000c2, 0xc40000c4, 0xc70000c7, 0xc90000c9, 0xcb0000cb, + 0xcd0000cd, 0xce0000ce, 0xd30000d3, 0xd40000d4, 0xd60000d6, 0xd70000d7, 0xda0000da, 0xdc0000dc, + 0xdd0000dd, 0xdf0000df, 0xe10000e1, 0xe20000e2, 0xe40000e4, 0xe70000e7, 0xe90000e9, 0xeb0000eb, + 0xed0000ed, 0xee0000ee, 0xf30000f3, 0xf40000f4, 0xf60000f6, 0xf70000f7, 0xfa0000fa, 0xfc0000fc, + 0xfd0000fd, 0xc3000102, 0xe3000103, 0xa5000104, 0xb9000105, 0xc6000106, 0xe6000107, 0xc800010c, + 0xe800010d, 0xcf00010e, 0xef00010f, 0xd0000110, 0xf0000111, 0xca000118, 0xea000119, 0xcc00011a, + 0xec00011b, 0xc5000139, 0xe500013a, 0xbc00013d, 0xbe00013e, 0xa3000141, 0xb3000142, 0xd1000143, + 0xf1000144, 0xd2000147, 0xf2000148, 0xd5000150, 0xf5000151, 0xc0000154, 0xe0000155, 0xd8000158, + 0xf8000159, 0x8c00015a, 0x9c00015b, 0xaa00015e, 0xba00015f, 0x8a000160, 0x9a000161, 0xde000162, + 0xfe000163, 0x8d000164, 0x9d000165, 0xd900016e, 0xf900016f, 0xdb000170, 0xfb000171, 0x8f000179, + 0x9f00017a, 0xaf00017b, 0xbf00017c, 0x8e00017d, 0x9e00017e, 0xa10002c7, 0xa20002d8, 0xff0002d9, + 0xb20002db, 0xbd0002dd, 0x96002013, 0x97002014, 0x91002018, 0x92002019, 0x8200201a, 0x9300201c, + 0x9400201d, 0x8400201e, 0x86002020, 0x87002021, 0x95002022, 0x85002026, 0x89002030, 0x8b002039, + 0x9b00203a, 0x800020ac, 0x99002122, 0x99002122, 0x99002122, 0x99002122, 0x99002122, 0x99002122, + }, +} + +// Windows1251 is the Windows 1251 encoding. +var Windows1251 *Charmap = &windows1251 + +var windows1251 = Charmap{ + name: "Windows 1251", + mib: identifier.Windows1251, + asciiSuperset: true, + low: 0x80, + replacement: 0x1a, + decode: [256]utf8Enc{ + {1, [3]byte{0x00, 0x00, 0x00}}, {1, [3]byte{0x01, 0x00, 0x00}}, + {1, [3]byte{0x02, 0x00, 0x00}}, {1, [3]byte{0x03, 0x00, 0x00}}, + {1, [3]byte{0x04, 0x00, 0x00}}, {1, [3]byte{0x05, 0x00, 0x00}}, + {1, [3]byte{0x06, 0x00, 0x00}}, {1, [3]byte{0x07, 0x00, 0x00}}, + {1, [3]byte{0x08, 0x00, 0x00}}, {1, [3]byte{0x09, 0x00, 0x00}}, + {1, [3]byte{0x0a, 0x00, 0x00}}, {1, [3]byte{0x0b, 0x00, 0x00}}, + {1, [3]byte{0x0c, 0x00, 0x00}}, {1, [3]byte{0x0d, 0x00, 0x00}}, + {1, [3]byte{0x0e, 0x00, 0x00}}, {1, [3]byte{0x0f, 0x00, 0x00}}, + {1, [3]byte{0x10, 0x00, 0x00}}, {1, [3]byte{0x11, 0x00, 0x00}}, + {1, [3]byte{0x12, 0x00, 0x00}}, {1, [3]byte{0x13, 0x00, 0x00}}, + {1, [3]byte{0x14, 0x00, 0x00}}, {1, [3]byte{0x15, 0x00, 0x00}}, + {1, [3]byte{0x16, 0x00, 0x00}}, {1, [3]byte{0x17, 0x00, 0x00}}, + {1, [3]byte{0x18, 0x00, 0x00}}, {1, [3]byte{0x19, 0x00, 0x00}}, + {1, [3]byte{0x1a, 0x00, 0x00}}, {1, [3]byte{0x1b, 0x00, 0x00}}, + {1, [3]byte{0x1c, 0x00, 0x00}}, {1, [3]byte{0x1d, 0x00, 0x00}}, + {1, [3]byte{0x1e, 0x00, 0x00}}, {1, [3]byte{0x1f, 0x00, 0x00}}, + {1, [3]byte{0x20, 0x00, 0x00}}, {1, [3]byte{0x21, 0x00, 0x00}}, + {1, [3]byte{0x22, 0x00, 0x00}}, {1, [3]byte{0x23, 0x00, 0x00}}, + {1, [3]byte{0x24, 0x00, 0x00}}, {1, [3]byte{0x25, 0x00, 0x00}}, + {1, [3]byte{0x26, 0x00, 0x00}}, {1, [3]byte{0x27, 0x00, 0x00}}, + {1, [3]byte{0x28, 0x00, 0x00}}, {1, [3]byte{0x29, 0x00, 0x00}}, + {1, [3]byte{0x2a, 0x00, 0x00}}, {1, [3]byte{0x2b, 0x00, 0x00}}, + {1, [3]byte{0x2c, 0x00, 0x00}}, {1, [3]byte{0x2d, 0x00, 0x00}}, + {1, [3]byte{0x2e, 0x00, 0x00}}, {1, [3]byte{0x2f, 0x00, 0x00}}, + {1, [3]byte{0x30, 0x00, 0x00}}, {1, [3]byte{0x31, 0x00, 0x00}}, + {1, [3]byte{0x32, 0x00, 0x00}}, {1, [3]byte{0x33, 0x00, 0x00}}, + {1, [3]byte{0x34, 0x00, 0x00}}, {1, [3]byte{0x35, 0x00, 0x00}}, + {1, [3]byte{0x36, 0x00, 0x00}}, {1, [3]byte{0x37, 0x00, 0x00}}, + {1, [3]byte{0x38, 0x00, 0x00}}, {1, [3]byte{0x39, 0x00, 0x00}}, + {1, [3]byte{0x3a, 0x00, 0x00}}, {1, [3]byte{0x3b, 0x00, 0x00}}, + {1, [3]byte{0x3c, 0x00, 0x00}}, {1, [3]byte{0x3d, 0x00, 0x00}}, + {1, [3]byte{0x3e, 0x00, 0x00}}, {1, [3]byte{0x3f, 0x00, 0x00}}, + {1, [3]byte{0x40, 0x00, 0x00}}, {1, [3]byte{0x41, 0x00, 0x00}}, + {1, [3]byte{0x42, 0x00, 0x00}}, {1, [3]byte{0x43, 0x00, 0x00}}, + {1, [3]byte{0x44, 0x00, 0x00}}, {1, [3]byte{0x45, 0x00, 0x00}}, + {1, [3]byte{0x46, 0x00, 0x00}}, {1, [3]byte{0x47, 0x00, 0x00}}, + {1, [3]byte{0x48, 0x00, 0x00}}, {1, [3]byte{0x49, 0x00, 0x00}}, + {1, [3]byte{0x4a, 0x00, 0x00}}, {1, [3]byte{0x4b, 0x00, 0x00}}, + {1, [3]byte{0x4c, 0x00, 0x00}}, {1, [3]byte{0x4d, 0x00, 0x00}}, + {1, [3]byte{0x4e, 0x00, 0x00}}, {1, [3]byte{0x4f, 0x00, 0x00}}, + {1, [3]byte{0x50, 0x00, 0x00}}, {1, [3]byte{0x51, 0x00, 0x00}}, + {1, [3]byte{0x52, 0x00, 0x00}}, {1, [3]byte{0x53, 0x00, 0x00}}, + {1, [3]byte{0x54, 0x00, 0x00}}, {1, [3]byte{0x55, 0x00, 0x00}}, + {1, [3]byte{0x56, 0x00, 0x00}}, {1, [3]byte{0x57, 0x00, 0x00}}, + {1, [3]byte{0x58, 0x00, 0x00}}, {1, [3]byte{0x59, 0x00, 0x00}}, + {1, [3]byte{0x5a, 0x00, 0x00}}, {1, [3]byte{0x5b, 0x00, 0x00}}, + {1, [3]byte{0x5c, 0x00, 0x00}}, {1, [3]byte{0x5d, 0x00, 0x00}}, + {1, [3]byte{0x5e, 0x00, 0x00}}, {1, [3]byte{0x5f, 0x00, 0x00}}, + {1, [3]byte{0x60, 0x00, 0x00}}, {1, [3]byte{0x61, 0x00, 0x00}}, + {1, [3]byte{0x62, 0x00, 0x00}}, {1, [3]byte{0x63, 0x00, 0x00}}, + {1, [3]byte{0x64, 0x00, 0x00}}, {1, [3]byte{0x65, 0x00, 0x00}}, + {1, [3]byte{0x66, 0x00, 0x00}}, {1, [3]byte{0x67, 0x00, 0x00}}, + {1, [3]byte{0x68, 0x00, 0x00}}, {1, [3]byte{0x69, 0x00, 0x00}}, + {1, [3]byte{0x6a, 0x00, 0x00}}, {1, [3]byte{0x6b, 0x00, 0x00}}, + {1, [3]byte{0x6c, 0x00, 0x00}}, {1, [3]byte{0x6d, 0x00, 0x00}}, + {1, [3]byte{0x6e, 0x00, 0x00}}, {1, [3]byte{0x6f, 0x00, 0x00}}, + {1, [3]byte{0x70, 0x00, 0x00}}, {1, [3]byte{0x71, 0x00, 0x00}}, + {1, [3]byte{0x72, 0x00, 0x00}}, {1, [3]byte{0x73, 0x00, 0x00}}, + {1, [3]byte{0x74, 0x00, 0x00}}, {1, [3]byte{0x75, 0x00, 0x00}}, + {1, [3]byte{0x76, 0x00, 0x00}}, {1, [3]byte{0x77, 0x00, 0x00}}, + {1, [3]byte{0x78, 0x00, 0x00}}, {1, [3]byte{0x79, 0x00, 0x00}}, + {1, [3]byte{0x7a, 0x00, 0x00}}, {1, [3]byte{0x7b, 0x00, 0x00}}, + {1, [3]byte{0x7c, 0x00, 0x00}}, {1, [3]byte{0x7d, 0x00, 0x00}}, + {1, [3]byte{0x7e, 0x00, 0x00}}, {1, [3]byte{0x7f, 0x00, 0x00}}, + {2, [3]byte{0xd0, 0x82, 0x00}}, {2, [3]byte{0xd0, 0x83, 0x00}}, + {3, [3]byte{0xe2, 0x80, 0x9a}}, {2, [3]byte{0xd1, 0x93, 0x00}}, + {3, [3]byte{0xe2, 0x80, 0x9e}}, {3, [3]byte{0xe2, 0x80, 0xa6}}, + {3, [3]byte{0xe2, 0x80, 0xa0}}, {3, [3]byte{0xe2, 0x80, 0xa1}}, + {3, [3]byte{0xe2, 0x82, 0xac}}, {3, [3]byte{0xe2, 0x80, 0xb0}}, + {2, [3]byte{0xd0, 0x89, 0x00}}, {3, [3]byte{0xe2, 0x80, 0xb9}}, + {2, [3]byte{0xd0, 0x8a, 0x00}}, {2, [3]byte{0xd0, 0x8c, 0x00}}, + {2, [3]byte{0xd0, 0x8b, 0x00}}, {2, [3]byte{0xd0, 0x8f, 0x00}}, + {2, [3]byte{0xd1, 0x92, 0x00}}, {3, [3]byte{0xe2, 0x80, 0x98}}, + {3, [3]byte{0xe2, 0x80, 0x99}}, {3, [3]byte{0xe2, 0x80, 0x9c}}, + {3, [3]byte{0xe2, 0x80, 0x9d}}, {3, [3]byte{0xe2, 0x80, 0xa2}}, + {3, [3]byte{0xe2, 0x80, 0x93}}, {3, [3]byte{0xe2, 0x80, 0x94}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xe2, 0x84, 0xa2}}, + {2, [3]byte{0xd1, 0x99, 0x00}}, {3, [3]byte{0xe2, 0x80, 0xba}}, + {2, [3]byte{0xd1, 0x9a, 0x00}}, {2, [3]byte{0xd1, 0x9c, 0x00}}, + {2, [3]byte{0xd1, 0x9b, 0x00}}, {2, [3]byte{0xd1, 0x9f, 0x00}}, + {2, [3]byte{0xc2, 0xa0, 0x00}}, {2, [3]byte{0xd0, 0x8e, 0x00}}, + {2, [3]byte{0xd1, 0x9e, 0x00}}, {2, [3]byte{0xd0, 0x88, 0x00}}, + {2, [3]byte{0xc2, 0xa4, 0x00}}, {2, [3]byte{0xd2, 0x90, 0x00}}, + {2, [3]byte{0xc2, 0xa6, 0x00}}, {2, [3]byte{0xc2, 0xa7, 0x00}}, + {2, [3]byte{0xd0, 0x81, 0x00}}, {2, [3]byte{0xc2, 0xa9, 0x00}}, + {2, [3]byte{0xd0, 0x84, 0x00}}, {2, [3]byte{0xc2, 0xab, 0x00}}, + {2, [3]byte{0xc2, 0xac, 0x00}}, {2, [3]byte{0xc2, 0xad, 0x00}}, + {2, [3]byte{0xc2, 0xae, 0x00}}, {2, [3]byte{0xd0, 0x87, 0x00}}, + {2, [3]byte{0xc2, 0xb0, 0x00}}, {2, [3]byte{0xc2, 0xb1, 0x00}}, + {2, [3]byte{0xd0, 0x86, 0x00}}, {2, [3]byte{0xd1, 0x96, 0x00}}, + {2, [3]byte{0xd2, 0x91, 0x00}}, {2, [3]byte{0xc2, 0xb5, 0x00}}, + {2, [3]byte{0xc2, 0xb6, 0x00}}, {2, [3]byte{0xc2, 0xb7, 0x00}}, + {2, [3]byte{0xd1, 0x91, 0x00}}, {3, [3]byte{0xe2, 0x84, 0x96}}, + {2, [3]byte{0xd1, 0x94, 0x00}}, {2, [3]byte{0xc2, 0xbb, 0x00}}, + {2, [3]byte{0xd1, 0x98, 0x00}}, {2, [3]byte{0xd0, 0x85, 0x00}}, + {2, [3]byte{0xd1, 0x95, 0x00}}, {2, [3]byte{0xd1, 0x97, 0x00}}, + {2, [3]byte{0xd0, 0x90, 0x00}}, {2, [3]byte{0xd0, 0x91, 0x00}}, + {2, [3]byte{0xd0, 0x92, 0x00}}, {2, [3]byte{0xd0, 0x93, 0x00}}, + {2, [3]byte{0xd0, 0x94, 0x00}}, {2, [3]byte{0xd0, 0x95, 0x00}}, + {2, [3]byte{0xd0, 0x96, 0x00}}, {2, [3]byte{0xd0, 0x97, 0x00}}, + {2, [3]byte{0xd0, 0x98, 0x00}}, {2, [3]byte{0xd0, 0x99, 0x00}}, + {2, [3]byte{0xd0, 0x9a, 0x00}}, {2, [3]byte{0xd0, 0x9b, 0x00}}, + {2, [3]byte{0xd0, 0x9c, 0x00}}, {2, [3]byte{0xd0, 0x9d, 0x00}}, + {2, [3]byte{0xd0, 0x9e, 0x00}}, {2, [3]byte{0xd0, 0x9f, 0x00}}, + {2, [3]byte{0xd0, 0xa0, 0x00}}, {2, [3]byte{0xd0, 0xa1, 0x00}}, + {2, [3]byte{0xd0, 0xa2, 0x00}}, {2, [3]byte{0xd0, 0xa3, 0x00}}, + {2, [3]byte{0xd0, 0xa4, 0x00}}, {2, [3]byte{0xd0, 0xa5, 0x00}}, + {2, [3]byte{0xd0, 0xa6, 0x00}}, {2, [3]byte{0xd0, 0xa7, 0x00}}, + {2, [3]byte{0xd0, 0xa8, 0x00}}, {2, [3]byte{0xd0, 0xa9, 0x00}}, + {2, [3]byte{0xd0, 0xaa, 0x00}}, {2, [3]byte{0xd0, 0xab, 0x00}}, + {2, [3]byte{0xd0, 0xac, 0x00}}, {2, [3]byte{0xd0, 0xad, 0x00}}, + {2, [3]byte{0xd0, 0xae, 0x00}}, {2, [3]byte{0xd0, 0xaf, 0x00}}, + {2, [3]byte{0xd0, 0xb0, 0x00}}, {2, [3]byte{0xd0, 0xb1, 0x00}}, + {2, [3]byte{0xd0, 0xb2, 0x00}}, {2, [3]byte{0xd0, 0xb3, 0x00}}, + {2, [3]byte{0xd0, 0xb4, 0x00}}, {2, [3]byte{0xd0, 0xb5, 0x00}}, + {2, [3]byte{0xd0, 0xb6, 0x00}}, {2, [3]byte{0xd0, 0xb7, 0x00}}, + {2, [3]byte{0xd0, 0xb8, 0x00}}, {2, [3]byte{0xd0, 0xb9, 0x00}}, + {2, [3]byte{0xd0, 0xba, 0x00}}, {2, [3]byte{0xd0, 0xbb, 0x00}}, + {2, [3]byte{0xd0, 0xbc, 0x00}}, {2, [3]byte{0xd0, 0xbd, 0x00}}, + {2, [3]byte{0xd0, 0xbe, 0x00}}, {2, [3]byte{0xd0, 0xbf, 0x00}}, + {2, [3]byte{0xd1, 0x80, 0x00}}, {2, [3]byte{0xd1, 0x81, 0x00}}, + {2, [3]byte{0xd1, 0x82, 0x00}}, {2, [3]byte{0xd1, 0x83, 0x00}}, + {2, [3]byte{0xd1, 0x84, 0x00}}, {2, [3]byte{0xd1, 0x85, 0x00}}, + {2, [3]byte{0xd1, 0x86, 0x00}}, {2, [3]byte{0xd1, 0x87, 0x00}}, + {2, [3]byte{0xd1, 0x88, 0x00}}, {2, [3]byte{0xd1, 0x89, 0x00}}, + {2, [3]byte{0xd1, 0x8a, 0x00}}, {2, [3]byte{0xd1, 0x8b, 0x00}}, + {2, [3]byte{0xd1, 0x8c, 0x00}}, {2, [3]byte{0xd1, 0x8d, 0x00}}, + {2, [3]byte{0xd1, 0x8e, 0x00}}, {2, [3]byte{0xd1, 0x8f, 0x00}}, + }, + encode: [256]uint32{ + 0x00000000, 0x01000001, 0x02000002, 0x03000003, 0x04000004, 0x05000005, 0x06000006, 0x07000007, + 0x08000008, 0x09000009, 0x0a00000a, 0x0b00000b, 0x0c00000c, 0x0d00000d, 0x0e00000e, 0x0f00000f, + 0x10000010, 0x11000011, 0x12000012, 0x13000013, 0x14000014, 0x15000015, 0x16000016, 0x17000017, + 0x18000018, 0x19000019, 0x1a00001a, 0x1b00001b, 0x1c00001c, 0x1d00001d, 0x1e00001e, 0x1f00001f, + 0x20000020, 0x21000021, 0x22000022, 0x23000023, 0x24000024, 0x25000025, 0x26000026, 0x27000027, + 0x28000028, 0x29000029, 0x2a00002a, 0x2b00002b, 0x2c00002c, 0x2d00002d, 0x2e00002e, 0x2f00002f, + 0x30000030, 0x31000031, 0x32000032, 0x33000033, 0x34000034, 0x35000035, 0x36000036, 0x37000037, + 0x38000038, 0x39000039, 0x3a00003a, 0x3b00003b, 0x3c00003c, 0x3d00003d, 0x3e00003e, 0x3f00003f, + 0x40000040, 0x41000041, 0x42000042, 0x43000043, 0x44000044, 0x45000045, 0x46000046, 0x47000047, + 0x48000048, 0x49000049, 0x4a00004a, 0x4b00004b, 0x4c00004c, 0x4d00004d, 0x4e00004e, 0x4f00004f, + 0x50000050, 0x51000051, 0x52000052, 0x53000053, 0x54000054, 0x55000055, 0x56000056, 0x57000057, + 0x58000058, 0x59000059, 0x5a00005a, 0x5b00005b, 0x5c00005c, 0x5d00005d, 0x5e00005e, 0x5f00005f, + 0x60000060, 0x61000061, 0x62000062, 0x63000063, 0x64000064, 0x65000065, 0x66000066, 0x67000067, + 0x68000068, 0x69000069, 0x6a00006a, 0x6b00006b, 0x6c00006c, 0x6d00006d, 0x6e00006e, 0x6f00006f, + 0x70000070, 0x71000071, 0x72000072, 0x73000073, 0x74000074, 0x75000075, 0x76000076, 0x77000077, + 0x78000078, 0x79000079, 0x7a00007a, 0x7b00007b, 0x7c00007c, 0x7d00007d, 0x7e00007e, 0x7f00007f, + 0xa00000a0, 0xa40000a4, 0xa60000a6, 0xa70000a7, 0xa90000a9, 0xab0000ab, 0xac0000ac, 0xad0000ad, + 0xae0000ae, 0xb00000b0, 0xb10000b1, 0xb50000b5, 0xb60000b6, 0xb70000b7, 0xbb0000bb, 0xa8000401, + 0x80000402, 0x81000403, 0xaa000404, 0xbd000405, 0xb2000406, 0xaf000407, 0xa3000408, 0x8a000409, + 0x8c00040a, 0x8e00040b, 0x8d00040c, 0xa100040e, 0x8f00040f, 0xc0000410, 0xc1000411, 0xc2000412, + 0xc3000413, 0xc4000414, 0xc5000415, 0xc6000416, 0xc7000417, 0xc8000418, 0xc9000419, 0xca00041a, + 0xcb00041b, 0xcc00041c, 0xcd00041d, 0xce00041e, 0xcf00041f, 0xd0000420, 0xd1000421, 0xd2000422, + 0xd3000423, 0xd4000424, 0xd5000425, 0xd6000426, 0xd7000427, 0xd8000428, 0xd9000429, 0xda00042a, + 0xdb00042b, 0xdc00042c, 0xdd00042d, 0xde00042e, 0xdf00042f, 0xe0000430, 0xe1000431, 0xe2000432, + 0xe3000433, 0xe4000434, 0xe5000435, 0xe6000436, 0xe7000437, 0xe8000438, 0xe9000439, 0xea00043a, + 0xeb00043b, 0xec00043c, 0xed00043d, 0xee00043e, 0xef00043f, 0xf0000440, 0xf1000441, 0xf2000442, + 0xf3000443, 0xf4000444, 0xf5000445, 0xf6000446, 0xf7000447, 0xf8000448, 0xf9000449, 0xfa00044a, + 0xfb00044b, 0xfc00044c, 0xfd00044d, 0xfe00044e, 0xff00044f, 0xb8000451, 0x90000452, 0x83000453, + 0xba000454, 0xbe000455, 0xb3000456, 0xbf000457, 0xbc000458, 0x9a000459, 0x9c00045a, 0x9e00045b, + 0x9d00045c, 0xa200045e, 0x9f00045f, 0xa5000490, 0xb4000491, 0x96002013, 0x97002014, 0x91002018, + 0x92002019, 0x8200201a, 0x9300201c, 0x9400201d, 0x8400201e, 0x86002020, 0x87002021, 0x95002022, + 0x85002026, 0x89002030, 0x8b002039, 0x9b00203a, 0x880020ac, 0xb9002116, 0x99002122, 0x99002122, + }, +} + +// Windows1252 is the Windows 1252 encoding. +var Windows1252 *Charmap = &windows1252 + +var windows1252 = Charmap{ + name: "Windows 1252", + mib: identifier.Windows1252, + asciiSuperset: true, + low: 0x80, + replacement: 0x1a, + decode: [256]utf8Enc{ + {1, [3]byte{0x00, 0x00, 0x00}}, {1, [3]byte{0x01, 0x00, 0x00}}, + {1, [3]byte{0x02, 0x00, 0x00}}, {1, [3]byte{0x03, 0x00, 0x00}}, + {1, [3]byte{0x04, 0x00, 0x00}}, {1, [3]byte{0x05, 0x00, 0x00}}, + {1, [3]byte{0x06, 0x00, 0x00}}, {1, [3]byte{0x07, 0x00, 0x00}}, + {1, [3]byte{0x08, 0x00, 0x00}}, {1, [3]byte{0x09, 0x00, 0x00}}, + {1, [3]byte{0x0a, 0x00, 0x00}}, {1, [3]byte{0x0b, 0x00, 0x00}}, + {1, [3]byte{0x0c, 0x00, 0x00}}, {1, [3]byte{0x0d, 0x00, 0x00}}, + {1, [3]byte{0x0e, 0x00, 0x00}}, {1, [3]byte{0x0f, 0x00, 0x00}}, + {1, [3]byte{0x10, 0x00, 0x00}}, {1, [3]byte{0x11, 0x00, 0x00}}, + {1, [3]byte{0x12, 0x00, 0x00}}, {1, [3]byte{0x13, 0x00, 0x00}}, + {1, [3]byte{0x14, 0x00, 0x00}}, {1, [3]byte{0x15, 0x00, 0x00}}, + {1, [3]byte{0x16, 0x00, 0x00}}, {1, [3]byte{0x17, 0x00, 0x00}}, + {1, [3]byte{0x18, 0x00, 0x00}}, {1, [3]byte{0x19, 0x00, 0x00}}, + {1, [3]byte{0x1a, 0x00, 0x00}}, {1, [3]byte{0x1b, 0x00, 0x00}}, + {1, [3]byte{0x1c, 0x00, 0x00}}, {1, [3]byte{0x1d, 0x00, 0x00}}, + {1, [3]byte{0x1e, 0x00, 0x00}}, {1, [3]byte{0x1f, 0x00, 0x00}}, + {1, [3]byte{0x20, 0x00, 0x00}}, {1, [3]byte{0x21, 0x00, 0x00}}, + {1, [3]byte{0x22, 0x00, 0x00}}, {1, [3]byte{0x23, 0x00, 0x00}}, + {1, [3]byte{0x24, 0x00, 0x00}}, {1, [3]byte{0x25, 0x00, 0x00}}, + {1, [3]byte{0x26, 0x00, 0x00}}, {1, [3]byte{0x27, 0x00, 0x00}}, + {1, [3]byte{0x28, 0x00, 0x00}}, {1, [3]byte{0x29, 0x00, 0x00}}, + {1, [3]byte{0x2a, 0x00, 0x00}}, {1, [3]byte{0x2b, 0x00, 0x00}}, + {1, [3]byte{0x2c, 0x00, 0x00}}, {1, [3]byte{0x2d, 0x00, 0x00}}, + {1, [3]byte{0x2e, 0x00, 0x00}}, {1, [3]byte{0x2f, 0x00, 0x00}}, + {1, [3]byte{0x30, 0x00, 0x00}}, {1, [3]byte{0x31, 0x00, 0x00}}, + {1, [3]byte{0x32, 0x00, 0x00}}, {1, [3]byte{0x33, 0x00, 0x00}}, + {1, [3]byte{0x34, 0x00, 0x00}}, {1, [3]byte{0x35, 0x00, 0x00}}, + {1, [3]byte{0x36, 0x00, 0x00}}, {1, [3]byte{0x37, 0x00, 0x00}}, + {1, [3]byte{0x38, 0x00, 0x00}}, {1, [3]byte{0x39, 0x00, 0x00}}, + {1, [3]byte{0x3a, 0x00, 0x00}}, {1, [3]byte{0x3b, 0x00, 0x00}}, + {1, [3]byte{0x3c, 0x00, 0x00}}, {1, [3]byte{0x3d, 0x00, 0x00}}, + {1, [3]byte{0x3e, 0x00, 0x00}}, {1, [3]byte{0x3f, 0x00, 0x00}}, + {1, [3]byte{0x40, 0x00, 0x00}}, {1, [3]byte{0x41, 0x00, 0x00}}, + {1, [3]byte{0x42, 0x00, 0x00}}, {1, [3]byte{0x43, 0x00, 0x00}}, + {1, [3]byte{0x44, 0x00, 0x00}}, {1, [3]byte{0x45, 0x00, 0x00}}, + {1, [3]byte{0x46, 0x00, 0x00}}, {1, [3]byte{0x47, 0x00, 0x00}}, + {1, [3]byte{0x48, 0x00, 0x00}}, {1, [3]byte{0x49, 0x00, 0x00}}, + {1, [3]byte{0x4a, 0x00, 0x00}}, {1, [3]byte{0x4b, 0x00, 0x00}}, + {1, [3]byte{0x4c, 0x00, 0x00}}, {1, [3]byte{0x4d, 0x00, 0x00}}, + {1, [3]byte{0x4e, 0x00, 0x00}}, {1, [3]byte{0x4f, 0x00, 0x00}}, + {1, [3]byte{0x50, 0x00, 0x00}}, {1, [3]byte{0x51, 0x00, 0x00}}, + {1, [3]byte{0x52, 0x00, 0x00}}, {1, [3]byte{0x53, 0x00, 0x00}}, + {1, [3]byte{0x54, 0x00, 0x00}}, {1, [3]byte{0x55, 0x00, 0x00}}, + {1, [3]byte{0x56, 0x00, 0x00}}, {1, [3]byte{0x57, 0x00, 0x00}}, + {1, [3]byte{0x58, 0x00, 0x00}}, {1, [3]byte{0x59, 0x00, 0x00}}, + {1, [3]byte{0x5a, 0x00, 0x00}}, {1, [3]byte{0x5b, 0x00, 0x00}}, + {1, [3]byte{0x5c, 0x00, 0x00}}, {1, [3]byte{0x5d, 0x00, 0x00}}, + {1, [3]byte{0x5e, 0x00, 0x00}}, {1, [3]byte{0x5f, 0x00, 0x00}}, + {1, [3]byte{0x60, 0x00, 0x00}}, {1, [3]byte{0x61, 0x00, 0x00}}, + {1, [3]byte{0x62, 0x00, 0x00}}, {1, [3]byte{0x63, 0x00, 0x00}}, + {1, [3]byte{0x64, 0x00, 0x00}}, {1, [3]byte{0x65, 0x00, 0x00}}, + {1, [3]byte{0x66, 0x00, 0x00}}, {1, [3]byte{0x67, 0x00, 0x00}}, + {1, [3]byte{0x68, 0x00, 0x00}}, {1, [3]byte{0x69, 0x00, 0x00}}, + {1, [3]byte{0x6a, 0x00, 0x00}}, {1, [3]byte{0x6b, 0x00, 0x00}}, + {1, [3]byte{0x6c, 0x00, 0x00}}, {1, [3]byte{0x6d, 0x00, 0x00}}, + {1, [3]byte{0x6e, 0x00, 0x00}}, {1, [3]byte{0x6f, 0x00, 0x00}}, + {1, [3]byte{0x70, 0x00, 0x00}}, {1, [3]byte{0x71, 0x00, 0x00}}, + {1, [3]byte{0x72, 0x00, 0x00}}, {1, [3]byte{0x73, 0x00, 0x00}}, + {1, [3]byte{0x74, 0x00, 0x00}}, {1, [3]byte{0x75, 0x00, 0x00}}, + {1, [3]byte{0x76, 0x00, 0x00}}, {1, [3]byte{0x77, 0x00, 0x00}}, + {1, [3]byte{0x78, 0x00, 0x00}}, {1, [3]byte{0x79, 0x00, 0x00}}, + {1, [3]byte{0x7a, 0x00, 0x00}}, {1, [3]byte{0x7b, 0x00, 0x00}}, + {1, [3]byte{0x7c, 0x00, 0x00}}, {1, [3]byte{0x7d, 0x00, 0x00}}, + {1, [3]byte{0x7e, 0x00, 0x00}}, {1, [3]byte{0x7f, 0x00, 0x00}}, + {3, [3]byte{0xe2, 0x82, 0xac}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xe2, 0x80, 0x9a}}, {2, [3]byte{0xc6, 0x92, 0x00}}, + {3, [3]byte{0xe2, 0x80, 0x9e}}, {3, [3]byte{0xe2, 0x80, 0xa6}}, + {3, [3]byte{0xe2, 0x80, 0xa0}}, {3, [3]byte{0xe2, 0x80, 0xa1}}, + {2, [3]byte{0xcb, 0x86, 0x00}}, {3, [3]byte{0xe2, 0x80, 0xb0}}, + {2, [3]byte{0xc5, 0xa0, 0x00}}, {3, [3]byte{0xe2, 0x80, 0xb9}}, + {2, [3]byte{0xc5, 0x92, 0x00}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {2, [3]byte{0xc5, 0xbd, 0x00}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xe2, 0x80, 0x98}}, + {3, [3]byte{0xe2, 0x80, 0x99}}, {3, [3]byte{0xe2, 0x80, 0x9c}}, + {3, [3]byte{0xe2, 0x80, 0x9d}}, {3, [3]byte{0xe2, 0x80, 0xa2}}, + {3, [3]byte{0xe2, 0x80, 0x93}}, {3, [3]byte{0xe2, 0x80, 0x94}}, + {2, [3]byte{0xcb, 0x9c, 0x00}}, {3, [3]byte{0xe2, 0x84, 0xa2}}, + {2, [3]byte{0xc5, 0xa1, 0x00}}, {3, [3]byte{0xe2, 0x80, 0xba}}, + {2, [3]byte{0xc5, 0x93, 0x00}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {2, [3]byte{0xc5, 0xbe, 0x00}}, {2, [3]byte{0xc5, 0xb8, 0x00}}, + {2, [3]byte{0xc2, 0xa0, 0x00}}, {2, [3]byte{0xc2, 0xa1, 0x00}}, + {2, [3]byte{0xc2, 0xa2, 0x00}}, {2, [3]byte{0xc2, 0xa3, 0x00}}, + {2, [3]byte{0xc2, 0xa4, 0x00}}, {2, [3]byte{0xc2, 0xa5, 0x00}}, + {2, [3]byte{0xc2, 0xa6, 0x00}}, {2, [3]byte{0xc2, 0xa7, 0x00}}, + {2, [3]byte{0xc2, 0xa8, 0x00}}, {2, [3]byte{0xc2, 0xa9, 0x00}}, + {2, [3]byte{0xc2, 0xaa, 0x00}}, {2, [3]byte{0xc2, 0xab, 0x00}}, + {2, [3]byte{0xc2, 0xac, 0x00}}, {2, [3]byte{0xc2, 0xad, 0x00}}, + {2, [3]byte{0xc2, 0xae, 0x00}}, {2, [3]byte{0xc2, 0xaf, 0x00}}, + {2, [3]byte{0xc2, 0xb0, 0x00}}, {2, [3]byte{0xc2, 0xb1, 0x00}}, + {2, [3]byte{0xc2, 0xb2, 0x00}}, {2, [3]byte{0xc2, 0xb3, 0x00}}, + {2, [3]byte{0xc2, 0xb4, 0x00}}, {2, [3]byte{0xc2, 0xb5, 0x00}}, + {2, [3]byte{0xc2, 0xb6, 0x00}}, {2, [3]byte{0xc2, 0xb7, 0x00}}, + {2, [3]byte{0xc2, 0xb8, 0x00}}, {2, [3]byte{0xc2, 0xb9, 0x00}}, + {2, [3]byte{0xc2, 0xba, 0x00}}, {2, [3]byte{0xc2, 0xbb, 0x00}}, + {2, [3]byte{0xc2, 0xbc, 0x00}}, {2, [3]byte{0xc2, 0xbd, 0x00}}, + {2, [3]byte{0xc2, 0xbe, 0x00}}, {2, [3]byte{0xc2, 0xbf, 0x00}}, + {2, [3]byte{0xc3, 0x80, 0x00}}, {2, [3]byte{0xc3, 0x81, 0x00}}, + {2, [3]byte{0xc3, 0x82, 0x00}}, {2, [3]byte{0xc3, 0x83, 0x00}}, + {2, [3]byte{0xc3, 0x84, 0x00}}, {2, [3]byte{0xc3, 0x85, 0x00}}, + {2, [3]byte{0xc3, 0x86, 0x00}}, {2, [3]byte{0xc3, 0x87, 0x00}}, + {2, [3]byte{0xc3, 0x88, 0x00}}, {2, [3]byte{0xc3, 0x89, 0x00}}, + {2, [3]byte{0xc3, 0x8a, 0x00}}, {2, [3]byte{0xc3, 0x8b, 0x00}}, + {2, [3]byte{0xc3, 0x8c, 0x00}}, {2, [3]byte{0xc3, 0x8d, 0x00}}, + {2, [3]byte{0xc3, 0x8e, 0x00}}, {2, [3]byte{0xc3, 0x8f, 0x00}}, + {2, [3]byte{0xc3, 0x90, 0x00}}, {2, [3]byte{0xc3, 0x91, 0x00}}, + {2, [3]byte{0xc3, 0x92, 0x00}}, {2, [3]byte{0xc3, 0x93, 0x00}}, + {2, [3]byte{0xc3, 0x94, 0x00}}, {2, [3]byte{0xc3, 0x95, 0x00}}, + {2, [3]byte{0xc3, 0x96, 0x00}}, {2, [3]byte{0xc3, 0x97, 0x00}}, + {2, [3]byte{0xc3, 0x98, 0x00}}, {2, [3]byte{0xc3, 0x99, 0x00}}, + {2, [3]byte{0xc3, 0x9a, 0x00}}, {2, [3]byte{0xc3, 0x9b, 0x00}}, + {2, [3]byte{0xc3, 0x9c, 0x00}}, {2, [3]byte{0xc3, 0x9d, 0x00}}, + {2, [3]byte{0xc3, 0x9e, 0x00}}, {2, [3]byte{0xc3, 0x9f, 0x00}}, + {2, [3]byte{0xc3, 0xa0, 0x00}}, {2, [3]byte{0xc3, 0xa1, 0x00}}, + {2, [3]byte{0xc3, 0xa2, 0x00}}, {2, [3]byte{0xc3, 0xa3, 0x00}}, + {2, [3]byte{0xc3, 0xa4, 0x00}}, {2, [3]byte{0xc3, 0xa5, 0x00}}, + {2, [3]byte{0xc3, 0xa6, 0x00}}, {2, [3]byte{0xc3, 0xa7, 0x00}}, + {2, [3]byte{0xc3, 0xa8, 0x00}}, {2, [3]byte{0xc3, 0xa9, 0x00}}, + {2, [3]byte{0xc3, 0xaa, 0x00}}, {2, [3]byte{0xc3, 0xab, 0x00}}, + {2, [3]byte{0xc3, 0xac, 0x00}}, {2, [3]byte{0xc3, 0xad, 0x00}}, + {2, [3]byte{0xc3, 0xae, 0x00}}, {2, [3]byte{0xc3, 0xaf, 0x00}}, + {2, [3]byte{0xc3, 0xb0, 0x00}}, {2, [3]byte{0xc3, 0xb1, 0x00}}, + {2, [3]byte{0xc3, 0xb2, 0x00}}, {2, [3]byte{0xc3, 0xb3, 0x00}}, + {2, [3]byte{0xc3, 0xb4, 0x00}}, {2, [3]byte{0xc3, 0xb5, 0x00}}, + {2, [3]byte{0xc3, 0xb6, 0x00}}, {2, [3]byte{0xc3, 0xb7, 0x00}}, + {2, [3]byte{0xc3, 0xb8, 0x00}}, {2, [3]byte{0xc3, 0xb9, 0x00}}, + {2, [3]byte{0xc3, 0xba, 0x00}}, {2, [3]byte{0xc3, 0xbb, 0x00}}, + {2, [3]byte{0xc3, 0xbc, 0x00}}, {2, [3]byte{0xc3, 0xbd, 0x00}}, + {2, [3]byte{0xc3, 0xbe, 0x00}}, {2, [3]byte{0xc3, 0xbf, 0x00}}, + }, + encode: [256]uint32{ + 0x00000000, 0x01000001, 0x02000002, 0x03000003, 0x04000004, 0x05000005, 0x06000006, 0x07000007, + 0x08000008, 0x09000009, 0x0a00000a, 0x0b00000b, 0x0c00000c, 0x0d00000d, 0x0e00000e, 0x0f00000f, + 0x10000010, 0x11000011, 0x12000012, 0x13000013, 0x14000014, 0x15000015, 0x16000016, 0x17000017, + 0x18000018, 0x19000019, 0x1a00001a, 0x1b00001b, 0x1c00001c, 0x1d00001d, 0x1e00001e, 0x1f00001f, + 0x20000020, 0x21000021, 0x22000022, 0x23000023, 0x24000024, 0x25000025, 0x26000026, 0x27000027, + 0x28000028, 0x29000029, 0x2a00002a, 0x2b00002b, 0x2c00002c, 0x2d00002d, 0x2e00002e, 0x2f00002f, + 0x30000030, 0x31000031, 0x32000032, 0x33000033, 0x34000034, 0x35000035, 0x36000036, 0x37000037, + 0x38000038, 0x39000039, 0x3a00003a, 0x3b00003b, 0x3c00003c, 0x3d00003d, 0x3e00003e, 0x3f00003f, + 0x40000040, 0x41000041, 0x42000042, 0x43000043, 0x44000044, 0x45000045, 0x46000046, 0x47000047, + 0x48000048, 0x49000049, 0x4a00004a, 0x4b00004b, 0x4c00004c, 0x4d00004d, 0x4e00004e, 0x4f00004f, + 0x50000050, 0x51000051, 0x52000052, 0x53000053, 0x54000054, 0x55000055, 0x56000056, 0x57000057, + 0x58000058, 0x59000059, 0x5a00005a, 0x5b00005b, 0x5c00005c, 0x5d00005d, 0x5e00005e, 0x5f00005f, + 0x60000060, 0x61000061, 0x62000062, 0x63000063, 0x64000064, 0x65000065, 0x66000066, 0x67000067, + 0x68000068, 0x69000069, 0x6a00006a, 0x6b00006b, 0x6c00006c, 0x6d00006d, 0x6e00006e, 0x6f00006f, + 0x70000070, 0x71000071, 0x72000072, 0x73000073, 0x74000074, 0x75000075, 0x76000076, 0x77000077, + 0x78000078, 0x79000079, 0x7a00007a, 0x7b00007b, 0x7c00007c, 0x7d00007d, 0x7e00007e, 0x7f00007f, + 0xa00000a0, 0xa10000a1, 0xa20000a2, 0xa30000a3, 0xa40000a4, 0xa50000a5, 0xa60000a6, 0xa70000a7, + 0xa80000a8, 0xa90000a9, 0xaa0000aa, 0xab0000ab, 0xac0000ac, 0xad0000ad, 0xae0000ae, 0xaf0000af, + 0xb00000b0, 0xb10000b1, 0xb20000b2, 0xb30000b3, 0xb40000b4, 0xb50000b5, 0xb60000b6, 0xb70000b7, + 0xb80000b8, 0xb90000b9, 0xba0000ba, 0xbb0000bb, 0xbc0000bc, 0xbd0000bd, 0xbe0000be, 0xbf0000bf, + 0xc00000c0, 0xc10000c1, 0xc20000c2, 0xc30000c3, 0xc40000c4, 0xc50000c5, 0xc60000c6, 0xc70000c7, + 0xc80000c8, 0xc90000c9, 0xca0000ca, 0xcb0000cb, 0xcc0000cc, 0xcd0000cd, 0xce0000ce, 0xcf0000cf, + 0xd00000d0, 0xd10000d1, 0xd20000d2, 0xd30000d3, 0xd40000d4, 0xd50000d5, 0xd60000d6, 0xd70000d7, + 0xd80000d8, 0xd90000d9, 0xda0000da, 0xdb0000db, 0xdc0000dc, 0xdd0000dd, 0xde0000de, 0xdf0000df, + 0xe00000e0, 0xe10000e1, 0xe20000e2, 0xe30000e3, 0xe40000e4, 0xe50000e5, 0xe60000e6, 0xe70000e7, + 0xe80000e8, 0xe90000e9, 0xea0000ea, 0xeb0000eb, 0xec0000ec, 0xed0000ed, 0xee0000ee, 0xef0000ef, + 0xf00000f0, 0xf10000f1, 0xf20000f2, 0xf30000f3, 0xf40000f4, 0xf50000f5, 0xf60000f6, 0xf70000f7, + 0xf80000f8, 0xf90000f9, 0xfa0000fa, 0xfb0000fb, 0xfc0000fc, 0xfd0000fd, 0xfe0000fe, 0xff0000ff, + 0x8c000152, 0x9c000153, 0x8a000160, 0x9a000161, 0x9f000178, 0x8e00017d, 0x9e00017e, 0x83000192, + 0x880002c6, 0x980002dc, 0x96002013, 0x97002014, 0x91002018, 0x92002019, 0x8200201a, 0x9300201c, + 0x9400201d, 0x8400201e, 0x86002020, 0x87002021, 0x95002022, 0x85002026, 0x89002030, 0x8b002039, + 0x9b00203a, 0x800020ac, 0x99002122, 0x99002122, 0x99002122, 0x99002122, 0x99002122, 0x99002122, + }, +} + +// Windows1253 is the Windows 1253 encoding. +var Windows1253 *Charmap = &windows1253 + +var windows1253 = Charmap{ + name: "Windows 1253", + mib: identifier.Windows1253, + asciiSuperset: true, + low: 0x80, + replacement: 0x1a, + decode: [256]utf8Enc{ + {1, [3]byte{0x00, 0x00, 0x00}}, {1, [3]byte{0x01, 0x00, 0x00}}, + {1, [3]byte{0x02, 0x00, 0x00}}, {1, [3]byte{0x03, 0x00, 0x00}}, + {1, [3]byte{0x04, 0x00, 0x00}}, {1, [3]byte{0x05, 0x00, 0x00}}, + {1, [3]byte{0x06, 0x00, 0x00}}, {1, [3]byte{0x07, 0x00, 0x00}}, + {1, [3]byte{0x08, 0x00, 0x00}}, {1, [3]byte{0x09, 0x00, 0x00}}, + {1, [3]byte{0x0a, 0x00, 0x00}}, {1, [3]byte{0x0b, 0x00, 0x00}}, + {1, [3]byte{0x0c, 0x00, 0x00}}, {1, [3]byte{0x0d, 0x00, 0x00}}, + {1, [3]byte{0x0e, 0x00, 0x00}}, {1, [3]byte{0x0f, 0x00, 0x00}}, + {1, [3]byte{0x10, 0x00, 0x00}}, {1, [3]byte{0x11, 0x00, 0x00}}, + {1, [3]byte{0x12, 0x00, 0x00}}, {1, [3]byte{0x13, 0x00, 0x00}}, + {1, [3]byte{0x14, 0x00, 0x00}}, {1, [3]byte{0x15, 0x00, 0x00}}, + {1, [3]byte{0x16, 0x00, 0x00}}, {1, [3]byte{0x17, 0x00, 0x00}}, + {1, [3]byte{0x18, 0x00, 0x00}}, {1, [3]byte{0x19, 0x00, 0x00}}, + {1, [3]byte{0x1a, 0x00, 0x00}}, {1, [3]byte{0x1b, 0x00, 0x00}}, + {1, [3]byte{0x1c, 0x00, 0x00}}, {1, [3]byte{0x1d, 0x00, 0x00}}, + {1, [3]byte{0x1e, 0x00, 0x00}}, {1, [3]byte{0x1f, 0x00, 0x00}}, + {1, [3]byte{0x20, 0x00, 0x00}}, {1, [3]byte{0x21, 0x00, 0x00}}, + {1, [3]byte{0x22, 0x00, 0x00}}, {1, [3]byte{0x23, 0x00, 0x00}}, + {1, [3]byte{0x24, 0x00, 0x00}}, {1, [3]byte{0x25, 0x00, 0x00}}, + {1, [3]byte{0x26, 0x00, 0x00}}, {1, [3]byte{0x27, 0x00, 0x00}}, + {1, [3]byte{0x28, 0x00, 0x00}}, {1, [3]byte{0x29, 0x00, 0x00}}, + {1, [3]byte{0x2a, 0x00, 0x00}}, {1, [3]byte{0x2b, 0x00, 0x00}}, + {1, [3]byte{0x2c, 0x00, 0x00}}, {1, [3]byte{0x2d, 0x00, 0x00}}, + {1, [3]byte{0x2e, 0x00, 0x00}}, {1, [3]byte{0x2f, 0x00, 0x00}}, + {1, [3]byte{0x30, 0x00, 0x00}}, {1, [3]byte{0x31, 0x00, 0x00}}, + {1, [3]byte{0x32, 0x00, 0x00}}, {1, [3]byte{0x33, 0x00, 0x00}}, + {1, [3]byte{0x34, 0x00, 0x00}}, {1, [3]byte{0x35, 0x00, 0x00}}, + {1, [3]byte{0x36, 0x00, 0x00}}, {1, [3]byte{0x37, 0x00, 0x00}}, + {1, [3]byte{0x38, 0x00, 0x00}}, {1, [3]byte{0x39, 0x00, 0x00}}, + {1, [3]byte{0x3a, 0x00, 0x00}}, {1, [3]byte{0x3b, 0x00, 0x00}}, + {1, [3]byte{0x3c, 0x00, 0x00}}, {1, [3]byte{0x3d, 0x00, 0x00}}, + {1, [3]byte{0x3e, 0x00, 0x00}}, {1, [3]byte{0x3f, 0x00, 0x00}}, + {1, [3]byte{0x40, 0x00, 0x00}}, {1, [3]byte{0x41, 0x00, 0x00}}, + {1, [3]byte{0x42, 0x00, 0x00}}, {1, [3]byte{0x43, 0x00, 0x00}}, + {1, [3]byte{0x44, 0x00, 0x00}}, {1, [3]byte{0x45, 0x00, 0x00}}, + {1, [3]byte{0x46, 0x00, 0x00}}, {1, [3]byte{0x47, 0x00, 0x00}}, + {1, [3]byte{0x48, 0x00, 0x00}}, {1, [3]byte{0x49, 0x00, 0x00}}, + {1, [3]byte{0x4a, 0x00, 0x00}}, {1, [3]byte{0x4b, 0x00, 0x00}}, + {1, [3]byte{0x4c, 0x00, 0x00}}, {1, [3]byte{0x4d, 0x00, 0x00}}, + {1, [3]byte{0x4e, 0x00, 0x00}}, {1, [3]byte{0x4f, 0x00, 0x00}}, + {1, [3]byte{0x50, 0x00, 0x00}}, {1, [3]byte{0x51, 0x00, 0x00}}, + {1, [3]byte{0x52, 0x00, 0x00}}, {1, [3]byte{0x53, 0x00, 0x00}}, + {1, [3]byte{0x54, 0x00, 0x00}}, {1, [3]byte{0x55, 0x00, 0x00}}, + {1, [3]byte{0x56, 0x00, 0x00}}, {1, [3]byte{0x57, 0x00, 0x00}}, + {1, [3]byte{0x58, 0x00, 0x00}}, {1, [3]byte{0x59, 0x00, 0x00}}, + {1, [3]byte{0x5a, 0x00, 0x00}}, {1, [3]byte{0x5b, 0x00, 0x00}}, + {1, [3]byte{0x5c, 0x00, 0x00}}, {1, [3]byte{0x5d, 0x00, 0x00}}, + {1, [3]byte{0x5e, 0x00, 0x00}}, {1, [3]byte{0x5f, 0x00, 0x00}}, + {1, [3]byte{0x60, 0x00, 0x00}}, {1, [3]byte{0x61, 0x00, 0x00}}, + {1, [3]byte{0x62, 0x00, 0x00}}, {1, [3]byte{0x63, 0x00, 0x00}}, + {1, [3]byte{0x64, 0x00, 0x00}}, {1, [3]byte{0x65, 0x00, 0x00}}, + {1, [3]byte{0x66, 0x00, 0x00}}, {1, [3]byte{0x67, 0x00, 0x00}}, + {1, [3]byte{0x68, 0x00, 0x00}}, {1, [3]byte{0x69, 0x00, 0x00}}, + {1, [3]byte{0x6a, 0x00, 0x00}}, {1, [3]byte{0x6b, 0x00, 0x00}}, + {1, [3]byte{0x6c, 0x00, 0x00}}, {1, [3]byte{0x6d, 0x00, 0x00}}, + {1, [3]byte{0x6e, 0x00, 0x00}}, {1, [3]byte{0x6f, 0x00, 0x00}}, + {1, [3]byte{0x70, 0x00, 0x00}}, {1, [3]byte{0x71, 0x00, 0x00}}, + {1, [3]byte{0x72, 0x00, 0x00}}, {1, [3]byte{0x73, 0x00, 0x00}}, + {1, [3]byte{0x74, 0x00, 0x00}}, {1, [3]byte{0x75, 0x00, 0x00}}, + {1, [3]byte{0x76, 0x00, 0x00}}, {1, [3]byte{0x77, 0x00, 0x00}}, + {1, [3]byte{0x78, 0x00, 0x00}}, {1, [3]byte{0x79, 0x00, 0x00}}, + {1, [3]byte{0x7a, 0x00, 0x00}}, {1, [3]byte{0x7b, 0x00, 0x00}}, + {1, [3]byte{0x7c, 0x00, 0x00}}, {1, [3]byte{0x7d, 0x00, 0x00}}, + {1, [3]byte{0x7e, 0x00, 0x00}}, {1, [3]byte{0x7f, 0x00, 0x00}}, + {3, [3]byte{0xe2, 0x82, 0xac}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xe2, 0x80, 0x9a}}, {2, [3]byte{0xc6, 0x92, 0x00}}, + {3, [3]byte{0xe2, 0x80, 0x9e}}, {3, [3]byte{0xe2, 0x80, 0xa6}}, + {3, [3]byte{0xe2, 0x80, 0xa0}}, {3, [3]byte{0xe2, 0x80, 0xa1}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xe2, 0x80, 0xb0}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xe2, 0x80, 0xb9}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xe2, 0x80, 0x98}}, + {3, [3]byte{0xe2, 0x80, 0x99}}, {3, [3]byte{0xe2, 0x80, 0x9c}}, + {3, [3]byte{0xe2, 0x80, 0x9d}}, {3, [3]byte{0xe2, 0x80, 0xa2}}, + {3, [3]byte{0xe2, 0x80, 0x93}}, {3, [3]byte{0xe2, 0x80, 0x94}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xe2, 0x84, 0xa2}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xe2, 0x80, 0xba}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {2, [3]byte{0xc2, 0xa0, 0x00}}, {2, [3]byte{0xce, 0x85, 0x00}}, + {2, [3]byte{0xce, 0x86, 0x00}}, {2, [3]byte{0xc2, 0xa3, 0x00}}, + {2, [3]byte{0xc2, 0xa4, 0x00}}, {2, [3]byte{0xc2, 0xa5, 0x00}}, + {2, [3]byte{0xc2, 0xa6, 0x00}}, {2, [3]byte{0xc2, 0xa7, 0x00}}, + {2, [3]byte{0xc2, 0xa8, 0x00}}, {2, [3]byte{0xc2, 0xa9, 0x00}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {2, [3]byte{0xc2, 0xab, 0x00}}, + {2, [3]byte{0xc2, 0xac, 0x00}}, {2, [3]byte{0xc2, 0xad, 0x00}}, + {2, [3]byte{0xc2, 0xae, 0x00}}, {3, [3]byte{0xe2, 0x80, 0x95}}, + {2, [3]byte{0xc2, 0xb0, 0x00}}, {2, [3]byte{0xc2, 0xb1, 0x00}}, + {2, [3]byte{0xc2, 0xb2, 0x00}}, {2, [3]byte{0xc2, 0xb3, 0x00}}, + {2, [3]byte{0xce, 0x84, 0x00}}, {2, [3]byte{0xc2, 0xb5, 0x00}}, + {2, [3]byte{0xc2, 0xb6, 0x00}}, {2, [3]byte{0xc2, 0xb7, 0x00}}, + {2, [3]byte{0xce, 0x88, 0x00}}, {2, [3]byte{0xce, 0x89, 0x00}}, + {2, [3]byte{0xce, 0x8a, 0x00}}, {2, [3]byte{0xc2, 0xbb, 0x00}}, + {2, [3]byte{0xce, 0x8c, 0x00}}, {2, [3]byte{0xc2, 0xbd, 0x00}}, + {2, [3]byte{0xce, 0x8e, 0x00}}, {2, [3]byte{0xce, 0x8f, 0x00}}, + {2, [3]byte{0xce, 0x90, 0x00}}, {2, [3]byte{0xce, 0x91, 0x00}}, + {2, [3]byte{0xce, 0x92, 0x00}}, {2, [3]byte{0xce, 0x93, 0x00}}, + {2, [3]byte{0xce, 0x94, 0x00}}, {2, [3]byte{0xce, 0x95, 0x00}}, + {2, [3]byte{0xce, 0x96, 0x00}}, {2, [3]byte{0xce, 0x97, 0x00}}, + {2, [3]byte{0xce, 0x98, 0x00}}, {2, [3]byte{0xce, 0x99, 0x00}}, + {2, [3]byte{0xce, 0x9a, 0x00}}, {2, [3]byte{0xce, 0x9b, 0x00}}, + {2, [3]byte{0xce, 0x9c, 0x00}}, {2, [3]byte{0xce, 0x9d, 0x00}}, + {2, [3]byte{0xce, 0x9e, 0x00}}, {2, [3]byte{0xce, 0x9f, 0x00}}, + {2, [3]byte{0xce, 0xa0, 0x00}}, {2, [3]byte{0xce, 0xa1, 0x00}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {2, [3]byte{0xce, 0xa3, 0x00}}, + {2, [3]byte{0xce, 0xa4, 0x00}}, {2, [3]byte{0xce, 0xa5, 0x00}}, + {2, [3]byte{0xce, 0xa6, 0x00}}, {2, [3]byte{0xce, 0xa7, 0x00}}, + {2, [3]byte{0xce, 0xa8, 0x00}}, {2, [3]byte{0xce, 0xa9, 0x00}}, + {2, [3]byte{0xce, 0xaa, 0x00}}, {2, [3]byte{0xce, 0xab, 0x00}}, + {2, [3]byte{0xce, 0xac, 0x00}}, {2, [3]byte{0xce, 0xad, 0x00}}, + {2, [3]byte{0xce, 0xae, 0x00}}, {2, [3]byte{0xce, 0xaf, 0x00}}, + {2, [3]byte{0xce, 0xb0, 0x00}}, {2, [3]byte{0xce, 0xb1, 0x00}}, + {2, [3]byte{0xce, 0xb2, 0x00}}, {2, [3]byte{0xce, 0xb3, 0x00}}, + {2, [3]byte{0xce, 0xb4, 0x00}}, {2, [3]byte{0xce, 0xb5, 0x00}}, + {2, [3]byte{0xce, 0xb6, 0x00}}, {2, [3]byte{0xce, 0xb7, 0x00}}, + {2, [3]byte{0xce, 0xb8, 0x00}}, {2, [3]byte{0xce, 0xb9, 0x00}}, + {2, [3]byte{0xce, 0xba, 0x00}}, {2, [3]byte{0xce, 0xbb, 0x00}}, + {2, [3]byte{0xce, 0xbc, 0x00}}, {2, [3]byte{0xce, 0xbd, 0x00}}, + {2, [3]byte{0xce, 0xbe, 0x00}}, {2, [3]byte{0xce, 0xbf, 0x00}}, + {2, [3]byte{0xcf, 0x80, 0x00}}, {2, [3]byte{0xcf, 0x81, 0x00}}, + {2, [3]byte{0xcf, 0x82, 0x00}}, {2, [3]byte{0xcf, 0x83, 0x00}}, + {2, [3]byte{0xcf, 0x84, 0x00}}, {2, [3]byte{0xcf, 0x85, 0x00}}, + {2, [3]byte{0xcf, 0x86, 0x00}}, {2, [3]byte{0xcf, 0x87, 0x00}}, + {2, [3]byte{0xcf, 0x88, 0x00}}, {2, [3]byte{0xcf, 0x89, 0x00}}, + {2, [3]byte{0xcf, 0x8a, 0x00}}, {2, [3]byte{0xcf, 0x8b, 0x00}}, + {2, [3]byte{0xcf, 0x8c, 0x00}}, {2, [3]byte{0xcf, 0x8d, 0x00}}, + {2, [3]byte{0xcf, 0x8e, 0x00}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + }, + encode: [256]uint32{ + 0x00000000, 0x01000001, 0x02000002, 0x03000003, 0x04000004, 0x05000005, 0x06000006, 0x07000007, + 0x08000008, 0x09000009, 0x0a00000a, 0x0b00000b, 0x0c00000c, 0x0d00000d, 0x0e00000e, 0x0f00000f, + 0x10000010, 0x11000011, 0x12000012, 0x13000013, 0x14000014, 0x15000015, 0x16000016, 0x17000017, + 0x18000018, 0x19000019, 0x1a00001a, 0x1b00001b, 0x1c00001c, 0x1d00001d, 0x1e00001e, 0x1f00001f, + 0x20000020, 0x21000021, 0x22000022, 0x23000023, 0x24000024, 0x25000025, 0x26000026, 0x27000027, + 0x28000028, 0x29000029, 0x2a00002a, 0x2b00002b, 0x2c00002c, 0x2d00002d, 0x2e00002e, 0x2f00002f, + 0x30000030, 0x31000031, 0x32000032, 0x33000033, 0x34000034, 0x35000035, 0x36000036, 0x37000037, + 0x38000038, 0x39000039, 0x3a00003a, 0x3b00003b, 0x3c00003c, 0x3d00003d, 0x3e00003e, 0x3f00003f, + 0x40000040, 0x41000041, 0x42000042, 0x43000043, 0x44000044, 0x45000045, 0x46000046, 0x47000047, + 0x48000048, 0x49000049, 0x4a00004a, 0x4b00004b, 0x4c00004c, 0x4d00004d, 0x4e00004e, 0x4f00004f, + 0x50000050, 0x51000051, 0x52000052, 0x53000053, 0x54000054, 0x55000055, 0x56000056, 0x57000057, + 0x58000058, 0x59000059, 0x5a00005a, 0x5b00005b, 0x5c00005c, 0x5d00005d, 0x5e00005e, 0x5f00005f, + 0x60000060, 0x61000061, 0x62000062, 0x63000063, 0x64000064, 0x65000065, 0x66000066, 0x67000067, + 0x68000068, 0x69000069, 0x6a00006a, 0x6b00006b, 0x6c00006c, 0x6d00006d, 0x6e00006e, 0x6f00006f, + 0x70000070, 0x71000071, 0x72000072, 0x73000073, 0x74000074, 0x75000075, 0x76000076, 0x77000077, + 0x78000078, 0x79000079, 0x7a00007a, 0x7b00007b, 0x7c00007c, 0x7d00007d, 0x7e00007e, 0x7f00007f, + 0xa00000a0, 0xa30000a3, 0xa40000a4, 0xa50000a5, 0xa60000a6, 0xa70000a7, 0xa80000a8, 0xa90000a9, + 0xab0000ab, 0xac0000ac, 0xad0000ad, 0xae0000ae, 0xb00000b0, 0xb10000b1, 0xb20000b2, 0xb30000b3, + 0xb50000b5, 0xb60000b6, 0xb70000b7, 0xbb0000bb, 0xbd0000bd, 0x83000192, 0xb4000384, 0xa1000385, + 0xa2000386, 0xb8000388, 0xb9000389, 0xba00038a, 0xbc00038c, 0xbe00038e, 0xbf00038f, 0xc0000390, + 0xc1000391, 0xc2000392, 0xc3000393, 0xc4000394, 0xc5000395, 0xc6000396, 0xc7000397, 0xc8000398, + 0xc9000399, 0xca00039a, 0xcb00039b, 0xcc00039c, 0xcd00039d, 0xce00039e, 0xcf00039f, 0xd00003a0, + 0xd10003a1, 0xd30003a3, 0xd40003a4, 0xd50003a5, 0xd60003a6, 0xd70003a7, 0xd80003a8, 0xd90003a9, + 0xda0003aa, 0xdb0003ab, 0xdc0003ac, 0xdd0003ad, 0xde0003ae, 0xdf0003af, 0xe00003b0, 0xe10003b1, + 0xe20003b2, 0xe30003b3, 0xe40003b4, 0xe50003b5, 0xe60003b6, 0xe70003b7, 0xe80003b8, 0xe90003b9, + 0xea0003ba, 0xeb0003bb, 0xec0003bc, 0xed0003bd, 0xee0003be, 0xef0003bf, 0xf00003c0, 0xf10003c1, + 0xf20003c2, 0xf30003c3, 0xf40003c4, 0xf50003c5, 0xf60003c6, 0xf70003c7, 0xf80003c8, 0xf90003c9, + 0xfa0003ca, 0xfb0003cb, 0xfc0003cc, 0xfd0003cd, 0xfe0003ce, 0x96002013, 0x97002014, 0xaf002015, + 0x91002018, 0x92002019, 0x8200201a, 0x9300201c, 0x9400201d, 0x8400201e, 0x86002020, 0x87002021, + 0x95002022, 0x85002026, 0x89002030, 0x8b002039, 0x9b00203a, 0x800020ac, 0x99002122, 0x99002122, + 0x99002122, 0x99002122, 0x99002122, 0x99002122, 0x99002122, 0x99002122, 0x99002122, 0x99002122, + 0x99002122, 0x99002122, 0x99002122, 0x99002122, 0x99002122, 0x99002122, 0x99002122, 0x99002122, + }, +} + +// Windows1254 is the Windows 1254 encoding. +var Windows1254 *Charmap = &windows1254 + +var windows1254 = Charmap{ + name: "Windows 1254", + mib: identifier.Windows1254, + asciiSuperset: true, + low: 0x80, + replacement: 0x1a, + decode: [256]utf8Enc{ + {1, [3]byte{0x00, 0x00, 0x00}}, {1, [3]byte{0x01, 0x00, 0x00}}, + {1, [3]byte{0x02, 0x00, 0x00}}, {1, [3]byte{0x03, 0x00, 0x00}}, + {1, [3]byte{0x04, 0x00, 0x00}}, {1, [3]byte{0x05, 0x00, 0x00}}, + {1, [3]byte{0x06, 0x00, 0x00}}, {1, [3]byte{0x07, 0x00, 0x00}}, + {1, [3]byte{0x08, 0x00, 0x00}}, {1, [3]byte{0x09, 0x00, 0x00}}, + {1, [3]byte{0x0a, 0x00, 0x00}}, {1, [3]byte{0x0b, 0x00, 0x00}}, + {1, [3]byte{0x0c, 0x00, 0x00}}, {1, [3]byte{0x0d, 0x00, 0x00}}, + {1, [3]byte{0x0e, 0x00, 0x00}}, {1, [3]byte{0x0f, 0x00, 0x00}}, + {1, [3]byte{0x10, 0x00, 0x00}}, {1, [3]byte{0x11, 0x00, 0x00}}, + {1, [3]byte{0x12, 0x00, 0x00}}, {1, [3]byte{0x13, 0x00, 0x00}}, + {1, [3]byte{0x14, 0x00, 0x00}}, {1, [3]byte{0x15, 0x00, 0x00}}, + {1, [3]byte{0x16, 0x00, 0x00}}, {1, [3]byte{0x17, 0x00, 0x00}}, + {1, [3]byte{0x18, 0x00, 0x00}}, {1, [3]byte{0x19, 0x00, 0x00}}, + {1, [3]byte{0x1a, 0x00, 0x00}}, {1, [3]byte{0x1b, 0x00, 0x00}}, + {1, [3]byte{0x1c, 0x00, 0x00}}, {1, [3]byte{0x1d, 0x00, 0x00}}, + {1, [3]byte{0x1e, 0x00, 0x00}}, {1, [3]byte{0x1f, 0x00, 0x00}}, + {1, [3]byte{0x20, 0x00, 0x00}}, {1, [3]byte{0x21, 0x00, 0x00}}, + {1, [3]byte{0x22, 0x00, 0x00}}, {1, [3]byte{0x23, 0x00, 0x00}}, + {1, [3]byte{0x24, 0x00, 0x00}}, {1, [3]byte{0x25, 0x00, 0x00}}, + {1, [3]byte{0x26, 0x00, 0x00}}, {1, [3]byte{0x27, 0x00, 0x00}}, + {1, [3]byte{0x28, 0x00, 0x00}}, {1, [3]byte{0x29, 0x00, 0x00}}, + {1, [3]byte{0x2a, 0x00, 0x00}}, {1, [3]byte{0x2b, 0x00, 0x00}}, + {1, [3]byte{0x2c, 0x00, 0x00}}, {1, [3]byte{0x2d, 0x00, 0x00}}, + {1, [3]byte{0x2e, 0x00, 0x00}}, {1, [3]byte{0x2f, 0x00, 0x00}}, + {1, [3]byte{0x30, 0x00, 0x00}}, {1, [3]byte{0x31, 0x00, 0x00}}, + {1, [3]byte{0x32, 0x00, 0x00}}, {1, [3]byte{0x33, 0x00, 0x00}}, + {1, [3]byte{0x34, 0x00, 0x00}}, {1, [3]byte{0x35, 0x00, 0x00}}, + {1, [3]byte{0x36, 0x00, 0x00}}, {1, [3]byte{0x37, 0x00, 0x00}}, + {1, [3]byte{0x38, 0x00, 0x00}}, {1, [3]byte{0x39, 0x00, 0x00}}, + {1, [3]byte{0x3a, 0x00, 0x00}}, {1, [3]byte{0x3b, 0x00, 0x00}}, + {1, [3]byte{0x3c, 0x00, 0x00}}, {1, [3]byte{0x3d, 0x00, 0x00}}, + {1, [3]byte{0x3e, 0x00, 0x00}}, {1, [3]byte{0x3f, 0x00, 0x00}}, + {1, [3]byte{0x40, 0x00, 0x00}}, {1, [3]byte{0x41, 0x00, 0x00}}, + {1, [3]byte{0x42, 0x00, 0x00}}, {1, [3]byte{0x43, 0x00, 0x00}}, + {1, [3]byte{0x44, 0x00, 0x00}}, {1, [3]byte{0x45, 0x00, 0x00}}, + {1, [3]byte{0x46, 0x00, 0x00}}, {1, [3]byte{0x47, 0x00, 0x00}}, + {1, [3]byte{0x48, 0x00, 0x00}}, {1, [3]byte{0x49, 0x00, 0x00}}, + {1, [3]byte{0x4a, 0x00, 0x00}}, {1, [3]byte{0x4b, 0x00, 0x00}}, + {1, [3]byte{0x4c, 0x00, 0x00}}, {1, [3]byte{0x4d, 0x00, 0x00}}, + {1, [3]byte{0x4e, 0x00, 0x00}}, {1, [3]byte{0x4f, 0x00, 0x00}}, + {1, [3]byte{0x50, 0x00, 0x00}}, {1, [3]byte{0x51, 0x00, 0x00}}, + {1, [3]byte{0x52, 0x00, 0x00}}, {1, [3]byte{0x53, 0x00, 0x00}}, + {1, [3]byte{0x54, 0x00, 0x00}}, {1, [3]byte{0x55, 0x00, 0x00}}, + {1, [3]byte{0x56, 0x00, 0x00}}, {1, [3]byte{0x57, 0x00, 0x00}}, + {1, [3]byte{0x58, 0x00, 0x00}}, {1, [3]byte{0x59, 0x00, 0x00}}, + {1, [3]byte{0x5a, 0x00, 0x00}}, {1, [3]byte{0x5b, 0x00, 0x00}}, + {1, [3]byte{0x5c, 0x00, 0x00}}, {1, [3]byte{0x5d, 0x00, 0x00}}, + {1, [3]byte{0x5e, 0x00, 0x00}}, {1, [3]byte{0x5f, 0x00, 0x00}}, + {1, [3]byte{0x60, 0x00, 0x00}}, {1, [3]byte{0x61, 0x00, 0x00}}, + {1, [3]byte{0x62, 0x00, 0x00}}, {1, [3]byte{0x63, 0x00, 0x00}}, + {1, [3]byte{0x64, 0x00, 0x00}}, {1, [3]byte{0x65, 0x00, 0x00}}, + {1, [3]byte{0x66, 0x00, 0x00}}, {1, [3]byte{0x67, 0x00, 0x00}}, + {1, [3]byte{0x68, 0x00, 0x00}}, {1, [3]byte{0x69, 0x00, 0x00}}, + {1, [3]byte{0x6a, 0x00, 0x00}}, {1, [3]byte{0x6b, 0x00, 0x00}}, + {1, [3]byte{0x6c, 0x00, 0x00}}, {1, [3]byte{0x6d, 0x00, 0x00}}, + {1, [3]byte{0x6e, 0x00, 0x00}}, {1, [3]byte{0x6f, 0x00, 0x00}}, + {1, [3]byte{0x70, 0x00, 0x00}}, {1, [3]byte{0x71, 0x00, 0x00}}, + {1, [3]byte{0x72, 0x00, 0x00}}, {1, [3]byte{0x73, 0x00, 0x00}}, + {1, [3]byte{0x74, 0x00, 0x00}}, {1, [3]byte{0x75, 0x00, 0x00}}, + {1, [3]byte{0x76, 0x00, 0x00}}, {1, [3]byte{0x77, 0x00, 0x00}}, + {1, [3]byte{0x78, 0x00, 0x00}}, {1, [3]byte{0x79, 0x00, 0x00}}, + {1, [3]byte{0x7a, 0x00, 0x00}}, {1, [3]byte{0x7b, 0x00, 0x00}}, + {1, [3]byte{0x7c, 0x00, 0x00}}, {1, [3]byte{0x7d, 0x00, 0x00}}, + {1, [3]byte{0x7e, 0x00, 0x00}}, {1, [3]byte{0x7f, 0x00, 0x00}}, + {3, [3]byte{0xe2, 0x82, 0xac}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xe2, 0x80, 0x9a}}, {2, [3]byte{0xc6, 0x92, 0x00}}, + {3, [3]byte{0xe2, 0x80, 0x9e}}, {3, [3]byte{0xe2, 0x80, 0xa6}}, + {3, [3]byte{0xe2, 0x80, 0xa0}}, {3, [3]byte{0xe2, 0x80, 0xa1}}, + {2, [3]byte{0xcb, 0x86, 0x00}}, {3, [3]byte{0xe2, 0x80, 0xb0}}, + {2, [3]byte{0xc5, 0xa0, 0x00}}, {3, [3]byte{0xe2, 0x80, 0xb9}}, + {2, [3]byte{0xc5, 0x92, 0x00}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xe2, 0x80, 0x98}}, + {3, [3]byte{0xe2, 0x80, 0x99}}, {3, [3]byte{0xe2, 0x80, 0x9c}}, + {3, [3]byte{0xe2, 0x80, 0x9d}}, {3, [3]byte{0xe2, 0x80, 0xa2}}, + {3, [3]byte{0xe2, 0x80, 0x93}}, {3, [3]byte{0xe2, 0x80, 0x94}}, + {2, [3]byte{0xcb, 0x9c, 0x00}}, {3, [3]byte{0xe2, 0x84, 0xa2}}, + {2, [3]byte{0xc5, 0xa1, 0x00}}, {3, [3]byte{0xe2, 0x80, 0xba}}, + {2, [3]byte{0xc5, 0x93, 0x00}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {2, [3]byte{0xc5, 0xb8, 0x00}}, + {2, [3]byte{0xc2, 0xa0, 0x00}}, {2, [3]byte{0xc2, 0xa1, 0x00}}, + {2, [3]byte{0xc2, 0xa2, 0x00}}, {2, [3]byte{0xc2, 0xa3, 0x00}}, + {2, [3]byte{0xc2, 0xa4, 0x00}}, {2, [3]byte{0xc2, 0xa5, 0x00}}, + {2, [3]byte{0xc2, 0xa6, 0x00}}, {2, [3]byte{0xc2, 0xa7, 0x00}}, + {2, [3]byte{0xc2, 0xa8, 0x00}}, {2, [3]byte{0xc2, 0xa9, 0x00}}, + {2, [3]byte{0xc2, 0xaa, 0x00}}, {2, [3]byte{0xc2, 0xab, 0x00}}, + {2, [3]byte{0xc2, 0xac, 0x00}}, {2, [3]byte{0xc2, 0xad, 0x00}}, + {2, [3]byte{0xc2, 0xae, 0x00}}, {2, [3]byte{0xc2, 0xaf, 0x00}}, + {2, [3]byte{0xc2, 0xb0, 0x00}}, {2, [3]byte{0xc2, 0xb1, 0x00}}, + {2, [3]byte{0xc2, 0xb2, 0x00}}, {2, [3]byte{0xc2, 0xb3, 0x00}}, + {2, [3]byte{0xc2, 0xb4, 0x00}}, {2, [3]byte{0xc2, 0xb5, 0x00}}, + {2, [3]byte{0xc2, 0xb6, 0x00}}, {2, [3]byte{0xc2, 0xb7, 0x00}}, + {2, [3]byte{0xc2, 0xb8, 0x00}}, {2, [3]byte{0xc2, 0xb9, 0x00}}, + {2, [3]byte{0xc2, 0xba, 0x00}}, {2, [3]byte{0xc2, 0xbb, 0x00}}, + {2, [3]byte{0xc2, 0xbc, 0x00}}, {2, [3]byte{0xc2, 0xbd, 0x00}}, + {2, [3]byte{0xc2, 0xbe, 0x00}}, {2, [3]byte{0xc2, 0xbf, 0x00}}, + {2, [3]byte{0xc3, 0x80, 0x00}}, {2, [3]byte{0xc3, 0x81, 0x00}}, + {2, [3]byte{0xc3, 0x82, 0x00}}, {2, [3]byte{0xc3, 0x83, 0x00}}, + {2, [3]byte{0xc3, 0x84, 0x00}}, {2, [3]byte{0xc3, 0x85, 0x00}}, + {2, [3]byte{0xc3, 0x86, 0x00}}, {2, [3]byte{0xc3, 0x87, 0x00}}, + {2, [3]byte{0xc3, 0x88, 0x00}}, {2, [3]byte{0xc3, 0x89, 0x00}}, + {2, [3]byte{0xc3, 0x8a, 0x00}}, {2, [3]byte{0xc3, 0x8b, 0x00}}, + {2, [3]byte{0xc3, 0x8c, 0x00}}, {2, [3]byte{0xc3, 0x8d, 0x00}}, + {2, [3]byte{0xc3, 0x8e, 0x00}}, {2, [3]byte{0xc3, 0x8f, 0x00}}, + {2, [3]byte{0xc4, 0x9e, 0x00}}, {2, [3]byte{0xc3, 0x91, 0x00}}, + {2, [3]byte{0xc3, 0x92, 0x00}}, {2, [3]byte{0xc3, 0x93, 0x00}}, + {2, [3]byte{0xc3, 0x94, 0x00}}, {2, [3]byte{0xc3, 0x95, 0x00}}, + {2, [3]byte{0xc3, 0x96, 0x00}}, {2, [3]byte{0xc3, 0x97, 0x00}}, + {2, [3]byte{0xc3, 0x98, 0x00}}, {2, [3]byte{0xc3, 0x99, 0x00}}, + {2, [3]byte{0xc3, 0x9a, 0x00}}, {2, [3]byte{0xc3, 0x9b, 0x00}}, + {2, [3]byte{0xc3, 0x9c, 0x00}}, {2, [3]byte{0xc4, 0xb0, 0x00}}, + {2, [3]byte{0xc5, 0x9e, 0x00}}, {2, [3]byte{0xc3, 0x9f, 0x00}}, + {2, [3]byte{0xc3, 0xa0, 0x00}}, {2, [3]byte{0xc3, 0xa1, 0x00}}, + {2, [3]byte{0xc3, 0xa2, 0x00}}, {2, [3]byte{0xc3, 0xa3, 0x00}}, + {2, [3]byte{0xc3, 0xa4, 0x00}}, {2, [3]byte{0xc3, 0xa5, 0x00}}, + {2, [3]byte{0xc3, 0xa6, 0x00}}, {2, [3]byte{0xc3, 0xa7, 0x00}}, + {2, [3]byte{0xc3, 0xa8, 0x00}}, {2, [3]byte{0xc3, 0xa9, 0x00}}, + {2, [3]byte{0xc3, 0xaa, 0x00}}, {2, [3]byte{0xc3, 0xab, 0x00}}, + {2, [3]byte{0xc3, 0xac, 0x00}}, {2, [3]byte{0xc3, 0xad, 0x00}}, + {2, [3]byte{0xc3, 0xae, 0x00}}, {2, [3]byte{0xc3, 0xaf, 0x00}}, + {2, [3]byte{0xc4, 0x9f, 0x00}}, {2, [3]byte{0xc3, 0xb1, 0x00}}, + {2, [3]byte{0xc3, 0xb2, 0x00}}, {2, [3]byte{0xc3, 0xb3, 0x00}}, + {2, [3]byte{0xc3, 0xb4, 0x00}}, {2, [3]byte{0xc3, 0xb5, 0x00}}, + {2, [3]byte{0xc3, 0xb6, 0x00}}, {2, [3]byte{0xc3, 0xb7, 0x00}}, + {2, [3]byte{0xc3, 0xb8, 0x00}}, {2, [3]byte{0xc3, 0xb9, 0x00}}, + {2, [3]byte{0xc3, 0xba, 0x00}}, {2, [3]byte{0xc3, 0xbb, 0x00}}, + {2, [3]byte{0xc3, 0xbc, 0x00}}, {2, [3]byte{0xc4, 0xb1, 0x00}}, + {2, [3]byte{0xc5, 0x9f, 0x00}}, {2, [3]byte{0xc3, 0xbf, 0x00}}, + }, + encode: [256]uint32{ + 0x00000000, 0x01000001, 0x02000002, 0x03000003, 0x04000004, 0x05000005, 0x06000006, 0x07000007, + 0x08000008, 0x09000009, 0x0a00000a, 0x0b00000b, 0x0c00000c, 0x0d00000d, 0x0e00000e, 0x0f00000f, + 0x10000010, 0x11000011, 0x12000012, 0x13000013, 0x14000014, 0x15000015, 0x16000016, 0x17000017, + 0x18000018, 0x19000019, 0x1a00001a, 0x1b00001b, 0x1c00001c, 0x1d00001d, 0x1e00001e, 0x1f00001f, + 0x20000020, 0x21000021, 0x22000022, 0x23000023, 0x24000024, 0x25000025, 0x26000026, 0x27000027, + 0x28000028, 0x29000029, 0x2a00002a, 0x2b00002b, 0x2c00002c, 0x2d00002d, 0x2e00002e, 0x2f00002f, + 0x30000030, 0x31000031, 0x32000032, 0x33000033, 0x34000034, 0x35000035, 0x36000036, 0x37000037, + 0x38000038, 0x39000039, 0x3a00003a, 0x3b00003b, 0x3c00003c, 0x3d00003d, 0x3e00003e, 0x3f00003f, + 0x40000040, 0x41000041, 0x42000042, 0x43000043, 0x44000044, 0x45000045, 0x46000046, 0x47000047, + 0x48000048, 0x49000049, 0x4a00004a, 0x4b00004b, 0x4c00004c, 0x4d00004d, 0x4e00004e, 0x4f00004f, + 0x50000050, 0x51000051, 0x52000052, 0x53000053, 0x54000054, 0x55000055, 0x56000056, 0x57000057, + 0x58000058, 0x59000059, 0x5a00005a, 0x5b00005b, 0x5c00005c, 0x5d00005d, 0x5e00005e, 0x5f00005f, + 0x60000060, 0x61000061, 0x62000062, 0x63000063, 0x64000064, 0x65000065, 0x66000066, 0x67000067, + 0x68000068, 0x69000069, 0x6a00006a, 0x6b00006b, 0x6c00006c, 0x6d00006d, 0x6e00006e, 0x6f00006f, + 0x70000070, 0x71000071, 0x72000072, 0x73000073, 0x74000074, 0x75000075, 0x76000076, 0x77000077, + 0x78000078, 0x79000079, 0x7a00007a, 0x7b00007b, 0x7c00007c, 0x7d00007d, 0x7e00007e, 0x7f00007f, + 0xa00000a0, 0xa10000a1, 0xa20000a2, 0xa30000a3, 0xa40000a4, 0xa50000a5, 0xa60000a6, 0xa70000a7, + 0xa80000a8, 0xa90000a9, 0xaa0000aa, 0xab0000ab, 0xac0000ac, 0xad0000ad, 0xae0000ae, 0xaf0000af, + 0xb00000b0, 0xb10000b1, 0xb20000b2, 0xb30000b3, 0xb40000b4, 0xb50000b5, 0xb60000b6, 0xb70000b7, + 0xb80000b8, 0xb90000b9, 0xba0000ba, 0xbb0000bb, 0xbc0000bc, 0xbd0000bd, 0xbe0000be, 0xbf0000bf, + 0xc00000c0, 0xc10000c1, 0xc20000c2, 0xc30000c3, 0xc40000c4, 0xc50000c5, 0xc60000c6, 0xc70000c7, + 0xc80000c8, 0xc90000c9, 0xca0000ca, 0xcb0000cb, 0xcc0000cc, 0xcd0000cd, 0xce0000ce, 0xcf0000cf, + 0xd10000d1, 0xd20000d2, 0xd30000d3, 0xd40000d4, 0xd50000d5, 0xd60000d6, 0xd70000d7, 0xd80000d8, + 0xd90000d9, 0xda0000da, 0xdb0000db, 0xdc0000dc, 0xdf0000df, 0xe00000e0, 0xe10000e1, 0xe20000e2, + 0xe30000e3, 0xe40000e4, 0xe50000e5, 0xe60000e6, 0xe70000e7, 0xe80000e8, 0xe90000e9, 0xea0000ea, + 0xeb0000eb, 0xec0000ec, 0xed0000ed, 0xee0000ee, 0xef0000ef, 0xf10000f1, 0xf20000f2, 0xf30000f3, + 0xf40000f4, 0xf50000f5, 0xf60000f6, 0xf70000f7, 0xf80000f8, 0xf90000f9, 0xfa0000fa, 0xfb0000fb, + 0xfc0000fc, 0xff0000ff, 0xd000011e, 0xf000011f, 0xdd000130, 0xfd000131, 0x8c000152, 0x9c000153, + 0xde00015e, 0xfe00015f, 0x8a000160, 0x9a000161, 0x9f000178, 0x83000192, 0x880002c6, 0x980002dc, + 0x96002013, 0x97002014, 0x91002018, 0x92002019, 0x8200201a, 0x9300201c, 0x9400201d, 0x8400201e, + 0x86002020, 0x87002021, 0x95002022, 0x85002026, 0x89002030, 0x8b002039, 0x9b00203a, 0x800020ac, + 0x99002122, 0x99002122, 0x99002122, 0x99002122, 0x99002122, 0x99002122, 0x99002122, 0x99002122, + }, +} + +// Windows1255 is the Windows 1255 encoding. +var Windows1255 *Charmap = &windows1255 + +var windows1255 = Charmap{ + name: "Windows 1255", + mib: identifier.Windows1255, + asciiSuperset: true, + low: 0x80, + replacement: 0x1a, + decode: [256]utf8Enc{ + {1, [3]byte{0x00, 0x00, 0x00}}, {1, [3]byte{0x01, 0x00, 0x00}}, + {1, [3]byte{0x02, 0x00, 0x00}}, {1, [3]byte{0x03, 0x00, 0x00}}, + {1, [3]byte{0x04, 0x00, 0x00}}, {1, [3]byte{0x05, 0x00, 0x00}}, + {1, [3]byte{0x06, 0x00, 0x00}}, {1, [3]byte{0x07, 0x00, 0x00}}, + {1, [3]byte{0x08, 0x00, 0x00}}, {1, [3]byte{0x09, 0x00, 0x00}}, + {1, [3]byte{0x0a, 0x00, 0x00}}, {1, [3]byte{0x0b, 0x00, 0x00}}, + {1, [3]byte{0x0c, 0x00, 0x00}}, {1, [3]byte{0x0d, 0x00, 0x00}}, + {1, [3]byte{0x0e, 0x00, 0x00}}, {1, [3]byte{0x0f, 0x00, 0x00}}, + {1, [3]byte{0x10, 0x00, 0x00}}, {1, [3]byte{0x11, 0x00, 0x00}}, + {1, [3]byte{0x12, 0x00, 0x00}}, {1, [3]byte{0x13, 0x00, 0x00}}, + {1, [3]byte{0x14, 0x00, 0x00}}, {1, [3]byte{0x15, 0x00, 0x00}}, + {1, [3]byte{0x16, 0x00, 0x00}}, {1, [3]byte{0x17, 0x00, 0x00}}, + {1, [3]byte{0x18, 0x00, 0x00}}, {1, [3]byte{0x19, 0x00, 0x00}}, + {1, [3]byte{0x1a, 0x00, 0x00}}, {1, [3]byte{0x1b, 0x00, 0x00}}, + {1, [3]byte{0x1c, 0x00, 0x00}}, {1, [3]byte{0x1d, 0x00, 0x00}}, + {1, [3]byte{0x1e, 0x00, 0x00}}, {1, [3]byte{0x1f, 0x00, 0x00}}, + {1, [3]byte{0x20, 0x00, 0x00}}, {1, [3]byte{0x21, 0x00, 0x00}}, + {1, [3]byte{0x22, 0x00, 0x00}}, {1, [3]byte{0x23, 0x00, 0x00}}, + {1, [3]byte{0x24, 0x00, 0x00}}, {1, [3]byte{0x25, 0x00, 0x00}}, + {1, [3]byte{0x26, 0x00, 0x00}}, {1, [3]byte{0x27, 0x00, 0x00}}, + {1, [3]byte{0x28, 0x00, 0x00}}, {1, [3]byte{0x29, 0x00, 0x00}}, + {1, [3]byte{0x2a, 0x00, 0x00}}, {1, [3]byte{0x2b, 0x00, 0x00}}, + {1, [3]byte{0x2c, 0x00, 0x00}}, {1, [3]byte{0x2d, 0x00, 0x00}}, + {1, [3]byte{0x2e, 0x00, 0x00}}, {1, [3]byte{0x2f, 0x00, 0x00}}, + {1, [3]byte{0x30, 0x00, 0x00}}, {1, [3]byte{0x31, 0x00, 0x00}}, + {1, [3]byte{0x32, 0x00, 0x00}}, {1, [3]byte{0x33, 0x00, 0x00}}, + {1, [3]byte{0x34, 0x00, 0x00}}, {1, [3]byte{0x35, 0x00, 0x00}}, + {1, [3]byte{0x36, 0x00, 0x00}}, {1, [3]byte{0x37, 0x00, 0x00}}, + {1, [3]byte{0x38, 0x00, 0x00}}, {1, [3]byte{0x39, 0x00, 0x00}}, + {1, [3]byte{0x3a, 0x00, 0x00}}, {1, [3]byte{0x3b, 0x00, 0x00}}, + {1, [3]byte{0x3c, 0x00, 0x00}}, {1, [3]byte{0x3d, 0x00, 0x00}}, + {1, [3]byte{0x3e, 0x00, 0x00}}, {1, [3]byte{0x3f, 0x00, 0x00}}, + {1, [3]byte{0x40, 0x00, 0x00}}, {1, [3]byte{0x41, 0x00, 0x00}}, + {1, [3]byte{0x42, 0x00, 0x00}}, {1, [3]byte{0x43, 0x00, 0x00}}, + {1, [3]byte{0x44, 0x00, 0x00}}, {1, [3]byte{0x45, 0x00, 0x00}}, + {1, [3]byte{0x46, 0x00, 0x00}}, {1, [3]byte{0x47, 0x00, 0x00}}, + {1, [3]byte{0x48, 0x00, 0x00}}, {1, [3]byte{0x49, 0x00, 0x00}}, + {1, [3]byte{0x4a, 0x00, 0x00}}, {1, [3]byte{0x4b, 0x00, 0x00}}, + {1, [3]byte{0x4c, 0x00, 0x00}}, {1, [3]byte{0x4d, 0x00, 0x00}}, + {1, [3]byte{0x4e, 0x00, 0x00}}, {1, [3]byte{0x4f, 0x00, 0x00}}, + {1, [3]byte{0x50, 0x00, 0x00}}, {1, [3]byte{0x51, 0x00, 0x00}}, + {1, [3]byte{0x52, 0x00, 0x00}}, {1, [3]byte{0x53, 0x00, 0x00}}, + {1, [3]byte{0x54, 0x00, 0x00}}, {1, [3]byte{0x55, 0x00, 0x00}}, + {1, [3]byte{0x56, 0x00, 0x00}}, {1, [3]byte{0x57, 0x00, 0x00}}, + {1, [3]byte{0x58, 0x00, 0x00}}, {1, [3]byte{0x59, 0x00, 0x00}}, + {1, [3]byte{0x5a, 0x00, 0x00}}, {1, [3]byte{0x5b, 0x00, 0x00}}, + {1, [3]byte{0x5c, 0x00, 0x00}}, {1, [3]byte{0x5d, 0x00, 0x00}}, + {1, [3]byte{0x5e, 0x00, 0x00}}, {1, [3]byte{0x5f, 0x00, 0x00}}, + {1, [3]byte{0x60, 0x00, 0x00}}, {1, [3]byte{0x61, 0x00, 0x00}}, + {1, [3]byte{0x62, 0x00, 0x00}}, {1, [3]byte{0x63, 0x00, 0x00}}, + {1, [3]byte{0x64, 0x00, 0x00}}, {1, [3]byte{0x65, 0x00, 0x00}}, + {1, [3]byte{0x66, 0x00, 0x00}}, {1, [3]byte{0x67, 0x00, 0x00}}, + {1, [3]byte{0x68, 0x00, 0x00}}, {1, [3]byte{0x69, 0x00, 0x00}}, + {1, [3]byte{0x6a, 0x00, 0x00}}, {1, [3]byte{0x6b, 0x00, 0x00}}, + {1, [3]byte{0x6c, 0x00, 0x00}}, {1, [3]byte{0x6d, 0x00, 0x00}}, + {1, [3]byte{0x6e, 0x00, 0x00}}, {1, [3]byte{0x6f, 0x00, 0x00}}, + {1, [3]byte{0x70, 0x00, 0x00}}, {1, [3]byte{0x71, 0x00, 0x00}}, + {1, [3]byte{0x72, 0x00, 0x00}}, {1, [3]byte{0x73, 0x00, 0x00}}, + {1, [3]byte{0x74, 0x00, 0x00}}, {1, [3]byte{0x75, 0x00, 0x00}}, + {1, [3]byte{0x76, 0x00, 0x00}}, {1, [3]byte{0x77, 0x00, 0x00}}, + {1, [3]byte{0x78, 0x00, 0x00}}, {1, [3]byte{0x79, 0x00, 0x00}}, + {1, [3]byte{0x7a, 0x00, 0x00}}, {1, [3]byte{0x7b, 0x00, 0x00}}, + {1, [3]byte{0x7c, 0x00, 0x00}}, {1, [3]byte{0x7d, 0x00, 0x00}}, + {1, [3]byte{0x7e, 0x00, 0x00}}, {1, [3]byte{0x7f, 0x00, 0x00}}, + {3, [3]byte{0xe2, 0x82, 0xac}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xe2, 0x80, 0x9a}}, {2, [3]byte{0xc6, 0x92, 0x00}}, + {3, [3]byte{0xe2, 0x80, 0x9e}}, {3, [3]byte{0xe2, 0x80, 0xa6}}, + {3, [3]byte{0xe2, 0x80, 0xa0}}, {3, [3]byte{0xe2, 0x80, 0xa1}}, + {2, [3]byte{0xcb, 0x86, 0x00}}, {3, [3]byte{0xe2, 0x80, 0xb0}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xe2, 0x80, 0xb9}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xe2, 0x80, 0x98}}, + {3, [3]byte{0xe2, 0x80, 0x99}}, {3, [3]byte{0xe2, 0x80, 0x9c}}, + {3, [3]byte{0xe2, 0x80, 0x9d}}, {3, [3]byte{0xe2, 0x80, 0xa2}}, + {3, [3]byte{0xe2, 0x80, 0x93}}, {3, [3]byte{0xe2, 0x80, 0x94}}, + {2, [3]byte{0xcb, 0x9c, 0x00}}, {3, [3]byte{0xe2, 0x84, 0xa2}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xe2, 0x80, 0xba}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {2, [3]byte{0xc2, 0xa0, 0x00}}, {2, [3]byte{0xc2, 0xa1, 0x00}}, + {2, [3]byte{0xc2, 0xa2, 0x00}}, {2, [3]byte{0xc2, 0xa3, 0x00}}, + {3, [3]byte{0xe2, 0x82, 0xaa}}, {2, [3]byte{0xc2, 0xa5, 0x00}}, + {2, [3]byte{0xc2, 0xa6, 0x00}}, {2, [3]byte{0xc2, 0xa7, 0x00}}, + {2, [3]byte{0xc2, 0xa8, 0x00}}, {2, [3]byte{0xc2, 0xa9, 0x00}}, + {2, [3]byte{0xc3, 0x97, 0x00}}, {2, [3]byte{0xc2, 0xab, 0x00}}, + {2, [3]byte{0xc2, 0xac, 0x00}}, {2, [3]byte{0xc2, 0xad, 0x00}}, + {2, [3]byte{0xc2, 0xae, 0x00}}, {2, [3]byte{0xc2, 0xaf, 0x00}}, + {2, [3]byte{0xc2, 0xb0, 0x00}}, {2, [3]byte{0xc2, 0xb1, 0x00}}, + {2, [3]byte{0xc2, 0xb2, 0x00}}, {2, [3]byte{0xc2, 0xb3, 0x00}}, + {2, [3]byte{0xc2, 0xb4, 0x00}}, {2, [3]byte{0xc2, 0xb5, 0x00}}, + {2, [3]byte{0xc2, 0xb6, 0x00}}, {2, [3]byte{0xc2, 0xb7, 0x00}}, + {2, [3]byte{0xc2, 0xb8, 0x00}}, {2, [3]byte{0xc2, 0xb9, 0x00}}, + {2, [3]byte{0xc3, 0xb7, 0x00}}, {2, [3]byte{0xc2, 0xbb, 0x00}}, + {2, [3]byte{0xc2, 0xbc, 0x00}}, {2, [3]byte{0xc2, 0xbd, 0x00}}, + {2, [3]byte{0xc2, 0xbe, 0x00}}, {2, [3]byte{0xc2, 0xbf, 0x00}}, + {2, [3]byte{0xd6, 0xb0, 0x00}}, {2, [3]byte{0xd6, 0xb1, 0x00}}, + {2, [3]byte{0xd6, 0xb2, 0x00}}, {2, [3]byte{0xd6, 0xb3, 0x00}}, + {2, [3]byte{0xd6, 0xb4, 0x00}}, {2, [3]byte{0xd6, 0xb5, 0x00}}, + {2, [3]byte{0xd6, 0xb6, 0x00}}, {2, [3]byte{0xd6, 0xb7, 0x00}}, + {2, [3]byte{0xd6, 0xb8, 0x00}}, {2, [3]byte{0xd6, 0xb9, 0x00}}, + {2, [3]byte{0xd6, 0xba, 0x00}}, {2, [3]byte{0xd6, 0xbb, 0x00}}, + {2, [3]byte{0xd6, 0xbc, 0x00}}, {2, [3]byte{0xd6, 0xbd, 0x00}}, + {2, [3]byte{0xd6, 0xbe, 0x00}}, {2, [3]byte{0xd6, 0xbf, 0x00}}, + {2, [3]byte{0xd7, 0x80, 0x00}}, {2, [3]byte{0xd7, 0x81, 0x00}}, + {2, [3]byte{0xd7, 0x82, 0x00}}, {2, [3]byte{0xd7, 0x83, 0x00}}, + {2, [3]byte{0xd7, 0xb0, 0x00}}, {2, [3]byte{0xd7, 0xb1, 0x00}}, + {2, [3]byte{0xd7, 0xb2, 0x00}}, {2, [3]byte{0xd7, 0xb3, 0x00}}, + {2, [3]byte{0xd7, 0xb4, 0x00}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {2, [3]byte{0xd7, 0x90, 0x00}}, {2, [3]byte{0xd7, 0x91, 0x00}}, + {2, [3]byte{0xd7, 0x92, 0x00}}, {2, [3]byte{0xd7, 0x93, 0x00}}, + {2, [3]byte{0xd7, 0x94, 0x00}}, {2, [3]byte{0xd7, 0x95, 0x00}}, + {2, [3]byte{0xd7, 0x96, 0x00}}, {2, [3]byte{0xd7, 0x97, 0x00}}, + {2, [3]byte{0xd7, 0x98, 0x00}}, {2, [3]byte{0xd7, 0x99, 0x00}}, + {2, [3]byte{0xd7, 0x9a, 0x00}}, {2, [3]byte{0xd7, 0x9b, 0x00}}, + {2, [3]byte{0xd7, 0x9c, 0x00}}, {2, [3]byte{0xd7, 0x9d, 0x00}}, + {2, [3]byte{0xd7, 0x9e, 0x00}}, {2, [3]byte{0xd7, 0x9f, 0x00}}, + {2, [3]byte{0xd7, 0xa0, 0x00}}, {2, [3]byte{0xd7, 0xa1, 0x00}}, + {2, [3]byte{0xd7, 0xa2, 0x00}}, {2, [3]byte{0xd7, 0xa3, 0x00}}, + {2, [3]byte{0xd7, 0xa4, 0x00}}, {2, [3]byte{0xd7, 0xa5, 0x00}}, + {2, [3]byte{0xd7, 0xa6, 0x00}}, {2, [3]byte{0xd7, 0xa7, 0x00}}, + {2, [3]byte{0xd7, 0xa8, 0x00}}, {2, [3]byte{0xd7, 0xa9, 0x00}}, + {2, [3]byte{0xd7, 0xaa, 0x00}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xe2, 0x80, 0x8e}}, + {3, [3]byte{0xe2, 0x80, 0x8f}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + }, + encode: [256]uint32{ + 0x00000000, 0x01000001, 0x02000002, 0x03000003, 0x04000004, 0x05000005, 0x06000006, 0x07000007, + 0x08000008, 0x09000009, 0x0a00000a, 0x0b00000b, 0x0c00000c, 0x0d00000d, 0x0e00000e, 0x0f00000f, + 0x10000010, 0x11000011, 0x12000012, 0x13000013, 0x14000014, 0x15000015, 0x16000016, 0x17000017, + 0x18000018, 0x19000019, 0x1a00001a, 0x1b00001b, 0x1c00001c, 0x1d00001d, 0x1e00001e, 0x1f00001f, + 0x20000020, 0x21000021, 0x22000022, 0x23000023, 0x24000024, 0x25000025, 0x26000026, 0x27000027, + 0x28000028, 0x29000029, 0x2a00002a, 0x2b00002b, 0x2c00002c, 0x2d00002d, 0x2e00002e, 0x2f00002f, + 0x30000030, 0x31000031, 0x32000032, 0x33000033, 0x34000034, 0x35000035, 0x36000036, 0x37000037, + 0x38000038, 0x39000039, 0x3a00003a, 0x3b00003b, 0x3c00003c, 0x3d00003d, 0x3e00003e, 0x3f00003f, + 0x40000040, 0x41000041, 0x42000042, 0x43000043, 0x44000044, 0x45000045, 0x46000046, 0x47000047, + 0x48000048, 0x49000049, 0x4a00004a, 0x4b00004b, 0x4c00004c, 0x4d00004d, 0x4e00004e, 0x4f00004f, + 0x50000050, 0x51000051, 0x52000052, 0x53000053, 0x54000054, 0x55000055, 0x56000056, 0x57000057, + 0x58000058, 0x59000059, 0x5a00005a, 0x5b00005b, 0x5c00005c, 0x5d00005d, 0x5e00005e, 0x5f00005f, + 0x60000060, 0x61000061, 0x62000062, 0x63000063, 0x64000064, 0x65000065, 0x66000066, 0x67000067, + 0x68000068, 0x69000069, 0x6a00006a, 0x6b00006b, 0x6c00006c, 0x6d00006d, 0x6e00006e, 0x6f00006f, + 0x70000070, 0x71000071, 0x72000072, 0x73000073, 0x74000074, 0x75000075, 0x76000076, 0x77000077, + 0x78000078, 0x79000079, 0x7a00007a, 0x7b00007b, 0x7c00007c, 0x7d00007d, 0x7e00007e, 0x7f00007f, + 0xa00000a0, 0xa10000a1, 0xa20000a2, 0xa30000a3, 0xa50000a5, 0xa60000a6, 0xa70000a7, 0xa80000a8, + 0xa90000a9, 0xab0000ab, 0xac0000ac, 0xad0000ad, 0xae0000ae, 0xaf0000af, 0xb00000b0, 0xb10000b1, + 0xb20000b2, 0xb30000b3, 0xb40000b4, 0xb50000b5, 0xb60000b6, 0xb70000b7, 0xb80000b8, 0xb90000b9, + 0xbb0000bb, 0xbc0000bc, 0xbd0000bd, 0xbe0000be, 0xbf0000bf, 0xaa0000d7, 0xba0000f7, 0x83000192, + 0x880002c6, 0x980002dc, 0xc00005b0, 0xc10005b1, 0xc20005b2, 0xc30005b3, 0xc40005b4, 0xc50005b5, + 0xc60005b6, 0xc70005b7, 0xc80005b8, 0xc90005b9, 0xca0005ba, 0xcb0005bb, 0xcc0005bc, 0xcd0005bd, + 0xce0005be, 0xcf0005bf, 0xd00005c0, 0xd10005c1, 0xd20005c2, 0xd30005c3, 0xe00005d0, 0xe10005d1, + 0xe20005d2, 0xe30005d3, 0xe40005d4, 0xe50005d5, 0xe60005d6, 0xe70005d7, 0xe80005d8, 0xe90005d9, + 0xea0005da, 0xeb0005db, 0xec0005dc, 0xed0005dd, 0xee0005de, 0xef0005df, 0xf00005e0, 0xf10005e1, + 0xf20005e2, 0xf30005e3, 0xf40005e4, 0xf50005e5, 0xf60005e6, 0xf70005e7, 0xf80005e8, 0xf90005e9, + 0xfa0005ea, 0xd40005f0, 0xd50005f1, 0xd60005f2, 0xd70005f3, 0xd80005f4, 0xfd00200e, 0xfe00200f, + 0x96002013, 0x97002014, 0x91002018, 0x92002019, 0x8200201a, 0x9300201c, 0x9400201d, 0x8400201e, + 0x86002020, 0x87002021, 0x95002022, 0x85002026, 0x89002030, 0x8b002039, 0x9b00203a, 0xa40020aa, + 0x800020ac, 0x99002122, 0x99002122, 0x99002122, 0x99002122, 0x99002122, 0x99002122, 0x99002122, + 0x99002122, 0x99002122, 0x99002122, 0x99002122, 0x99002122, 0x99002122, 0x99002122, 0x99002122, + 0x99002122, 0x99002122, 0x99002122, 0x99002122, 0x99002122, 0x99002122, 0x99002122, 0x99002122, + }, +} + +// Windows1256 is the Windows 1256 encoding. +var Windows1256 *Charmap = &windows1256 + +var windows1256 = Charmap{ + name: "Windows 1256", + mib: identifier.Windows1256, + asciiSuperset: true, + low: 0x80, + replacement: 0x1a, + decode: [256]utf8Enc{ + {1, [3]byte{0x00, 0x00, 0x00}}, {1, [3]byte{0x01, 0x00, 0x00}}, + {1, [3]byte{0x02, 0x00, 0x00}}, {1, [3]byte{0x03, 0x00, 0x00}}, + {1, [3]byte{0x04, 0x00, 0x00}}, {1, [3]byte{0x05, 0x00, 0x00}}, + {1, [3]byte{0x06, 0x00, 0x00}}, {1, [3]byte{0x07, 0x00, 0x00}}, + {1, [3]byte{0x08, 0x00, 0x00}}, {1, [3]byte{0x09, 0x00, 0x00}}, + {1, [3]byte{0x0a, 0x00, 0x00}}, {1, [3]byte{0x0b, 0x00, 0x00}}, + {1, [3]byte{0x0c, 0x00, 0x00}}, {1, [3]byte{0x0d, 0x00, 0x00}}, + {1, [3]byte{0x0e, 0x00, 0x00}}, {1, [3]byte{0x0f, 0x00, 0x00}}, + {1, [3]byte{0x10, 0x00, 0x00}}, {1, [3]byte{0x11, 0x00, 0x00}}, + {1, [3]byte{0x12, 0x00, 0x00}}, {1, [3]byte{0x13, 0x00, 0x00}}, + {1, [3]byte{0x14, 0x00, 0x00}}, {1, [3]byte{0x15, 0x00, 0x00}}, + {1, [3]byte{0x16, 0x00, 0x00}}, {1, [3]byte{0x17, 0x00, 0x00}}, + {1, [3]byte{0x18, 0x00, 0x00}}, {1, [3]byte{0x19, 0x00, 0x00}}, + {1, [3]byte{0x1a, 0x00, 0x00}}, {1, [3]byte{0x1b, 0x00, 0x00}}, + {1, [3]byte{0x1c, 0x00, 0x00}}, {1, [3]byte{0x1d, 0x00, 0x00}}, + {1, [3]byte{0x1e, 0x00, 0x00}}, {1, [3]byte{0x1f, 0x00, 0x00}}, + {1, [3]byte{0x20, 0x00, 0x00}}, {1, [3]byte{0x21, 0x00, 0x00}}, + {1, [3]byte{0x22, 0x00, 0x00}}, {1, [3]byte{0x23, 0x00, 0x00}}, + {1, [3]byte{0x24, 0x00, 0x00}}, {1, [3]byte{0x25, 0x00, 0x00}}, + {1, [3]byte{0x26, 0x00, 0x00}}, {1, [3]byte{0x27, 0x00, 0x00}}, + {1, [3]byte{0x28, 0x00, 0x00}}, {1, [3]byte{0x29, 0x00, 0x00}}, + {1, [3]byte{0x2a, 0x00, 0x00}}, {1, [3]byte{0x2b, 0x00, 0x00}}, + {1, [3]byte{0x2c, 0x00, 0x00}}, {1, [3]byte{0x2d, 0x00, 0x00}}, + {1, [3]byte{0x2e, 0x00, 0x00}}, {1, [3]byte{0x2f, 0x00, 0x00}}, + {1, [3]byte{0x30, 0x00, 0x00}}, {1, [3]byte{0x31, 0x00, 0x00}}, + {1, [3]byte{0x32, 0x00, 0x00}}, {1, [3]byte{0x33, 0x00, 0x00}}, + {1, [3]byte{0x34, 0x00, 0x00}}, {1, [3]byte{0x35, 0x00, 0x00}}, + {1, [3]byte{0x36, 0x00, 0x00}}, {1, [3]byte{0x37, 0x00, 0x00}}, + {1, [3]byte{0x38, 0x00, 0x00}}, {1, [3]byte{0x39, 0x00, 0x00}}, + {1, [3]byte{0x3a, 0x00, 0x00}}, {1, [3]byte{0x3b, 0x00, 0x00}}, + {1, [3]byte{0x3c, 0x00, 0x00}}, {1, [3]byte{0x3d, 0x00, 0x00}}, + {1, [3]byte{0x3e, 0x00, 0x00}}, {1, [3]byte{0x3f, 0x00, 0x00}}, + {1, [3]byte{0x40, 0x00, 0x00}}, {1, [3]byte{0x41, 0x00, 0x00}}, + {1, [3]byte{0x42, 0x00, 0x00}}, {1, [3]byte{0x43, 0x00, 0x00}}, + {1, [3]byte{0x44, 0x00, 0x00}}, {1, [3]byte{0x45, 0x00, 0x00}}, + {1, [3]byte{0x46, 0x00, 0x00}}, {1, [3]byte{0x47, 0x00, 0x00}}, + {1, [3]byte{0x48, 0x00, 0x00}}, {1, [3]byte{0x49, 0x00, 0x00}}, + {1, [3]byte{0x4a, 0x00, 0x00}}, {1, [3]byte{0x4b, 0x00, 0x00}}, + {1, [3]byte{0x4c, 0x00, 0x00}}, {1, [3]byte{0x4d, 0x00, 0x00}}, + {1, [3]byte{0x4e, 0x00, 0x00}}, {1, [3]byte{0x4f, 0x00, 0x00}}, + {1, [3]byte{0x50, 0x00, 0x00}}, {1, [3]byte{0x51, 0x00, 0x00}}, + {1, [3]byte{0x52, 0x00, 0x00}}, {1, [3]byte{0x53, 0x00, 0x00}}, + {1, [3]byte{0x54, 0x00, 0x00}}, {1, [3]byte{0x55, 0x00, 0x00}}, + {1, [3]byte{0x56, 0x00, 0x00}}, {1, [3]byte{0x57, 0x00, 0x00}}, + {1, [3]byte{0x58, 0x00, 0x00}}, {1, [3]byte{0x59, 0x00, 0x00}}, + {1, [3]byte{0x5a, 0x00, 0x00}}, {1, [3]byte{0x5b, 0x00, 0x00}}, + {1, [3]byte{0x5c, 0x00, 0x00}}, {1, [3]byte{0x5d, 0x00, 0x00}}, + {1, [3]byte{0x5e, 0x00, 0x00}}, {1, [3]byte{0x5f, 0x00, 0x00}}, + {1, [3]byte{0x60, 0x00, 0x00}}, {1, [3]byte{0x61, 0x00, 0x00}}, + {1, [3]byte{0x62, 0x00, 0x00}}, {1, [3]byte{0x63, 0x00, 0x00}}, + {1, [3]byte{0x64, 0x00, 0x00}}, {1, [3]byte{0x65, 0x00, 0x00}}, + {1, [3]byte{0x66, 0x00, 0x00}}, {1, [3]byte{0x67, 0x00, 0x00}}, + {1, [3]byte{0x68, 0x00, 0x00}}, {1, [3]byte{0x69, 0x00, 0x00}}, + {1, [3]byte{0x6a, 0x00, 0x00}}, {1, [3]byte{0x6b, 0x00, 0x00}}, + {1, [3]byte{0x6c, 0x00, 0x00}}, {1, [3]byte{0x6d, 0x00, 0x00}}, + {1, [3]byte{0x6e, 0x00, 0x00}}, {1, [3]byte{0x6f, 0x00, 0x00}}, + {1, [3]byte{0x70, 0x00, 0x00}}, {1, [3]byte{0x71, 0x00, 0x00}}, + {1, [3]byte{0x72, 0x00, 0x00}}, {1, [3]byte{0x73, 0x00, 0x00}}, + {1, [3]byte{0x74, 0x00, 0x00}}, {1, [3]byte{0x75, 0x00, 0x00}}, + {1, [3]byte{0x76, 0x00, 0x00}}, {1, [3]byte{0x77, 0x00, 0x00}}, + {1, [3]byte{0x78, 0x00, 0x00}}, {1, [3]byte{0x79, 0x00, 0x00}}, + {1, [3]byte{0x7a, 0x00, 0x00}}, {1, [3]byte{0x7b, 0x00, 0x00}}, + {1, [3]byte{0x7c, 0x00, 0x00}}, {1, [3]byte{0x7d, 0x00, 0x00}}, + {1, [3]byte{0x7e, 0x00, 0x00}}, {1, [3]byte{0x7f, 0x00, 0x00}}, + {3, [3]byte{0xe2, 0x82, 0xac}}, {2, [3]byte{0xd9, 0xbe, 0x00}}, + {3, [3]byte{0xe2, 0x80, 0x9a}}, {2, [3]byte{0xc6, 0x92, 0x00}}, + {3, [3]byte{0xe2, 0x80, 0x9e}}, {3, [3]byte{0xe2, 0x80, 0xa6}}, + {3, [3]byte{0xe2, 0x80, 0xa0}}, {3, [3]byte{0xe2, 0x80, 0xa1}}, + {2, [3]byte{0xcb, 0x86, 0x00}}, {3, [3]byte{0xe2, 0x80, 0xb0}}, + {2, [3]byte{0xd9, 0xb9, 0x00}}, {3, [3]byte{0xe2, 0x80, 0xb9}}, + {2, [3]byte{0xc5, 0x92, 0x00}}, {2, [3]byte{0xda, 0x86, 0x00}}, + {2, [3]byte{0xda, 0x98, 0x00}}, {2, [3]byte{0xda, 0x88, 0x00}}, + {2, [3]byte{0xda, 0xaf, 0x00}}, {3, [3]byte{0xe2, 0x80, 0x98}}, + {3, [3]byte{0xe2, 0x80, 0x99}}, {3, [3]byte{0xe2, 0x80, 0x9c}}, + {3, [3]byte{0xe2, 0x80, 0x9d}}, {3, [3]byte{0xe2, 0x80, 0xa2}}, + {3, [3]byte{0xe2, 0x80, 0x93}}, {3, [3]byte{0xe2, 0x80, 0x94}}, + {2, [3]byte{0xda, 0xa9, 0x00}}, {3, [3]byte{0xe2, 0x84, 0xa2}}, + {2, [3]byte{0xda, 0x91, 0x00}}, {3, [3]byte{0xe2, 0x80, 0xba}}, + {2, [3]byte{0xc5, 0x93, 0x00}}, {3, [3]byte{0xe2, 0x80, 0x8c}}, + {3, [3]byte{0xe2, 0x80, 0x8d}}, {2, [3]byte{0xda, 0xba, 0x00}}, + {2, [3]byte{0xc2, 0xa0, 0x00}}, {2, [3]byte{0xd8, 0x8c, 0x00}}, + {2, [3]byte{0xc2, 0xa2, 0x00}}, {2, [3]byte{0xc2, 0xa3, 0x00}}, + {2, [3]byte{0xc2, 0xa4, 0x00}}, {2, [3]byte{0xc2, 0xa5, 0x00}}, + {2, [3]byte{0xc2, 0xa6, 0x00}}, {2, [3]byte{0xc2, 0xa7, 0x00}}, + {2, [3]byte{0xc2, 0xa8, 0x00}}, {2, [3]byte{0xc2, 0xa9, 0x00}}, + {2, [3]byte{0xda, 0xbe, 0x00}}, {2, [3]byte{0xc2, 0xab, 0x00}}, + {2, [3]byte{0xc2, 0xac, 0x00}}, {2, [3]byte{0xc2, 0xad, 0x00}}, + {2, [3]byte{0xc2, 0xae, 0x00}}, {2, [3]byte{0xc2, 0xaf, 0x00}}, + {2, [3]byte{0xc2, 0xb0, 0x00}}, {2, [3]byte{0xc2, 0xb1, 0x00}}, + {2, [3]byte{0xc2, 0xb2, 0x00}}, {2, [3]byte{0xc2, 0xb3, 0x00}}, + {2, [3]byte{0xc2, 0xb4, 0x00}}, {2, [3]byte{0xc2, 0xb5, 0x00}}, + {2, [3]byte{0xc2, 0xb6, 0x00}}, {2, [3]byte{0xc2, 0xb7, 0x00}}, + {2, [3]byte{0xc2, 0xb8, 0x00}}, {2, [3]byte{0xc2, 0xb9, 0x00}}, + {2, [3]byte{0xd8, 0x9b, 0x00}}, {2, [3]byte{0xc2, 0xbb, 0x00}}, + {2, [3]byte{0xc2, 0xbc, 0x00}}, {2, [3]byte{0xc2, 0xbd, 0x00}}, + {2, [3]byte{0xc2, 0xbe, 0x00}}, {2, [3]byte{0xd8, 0x9f, 0x00}}, + {2, [3]byte{0xdb, 0x81, 0x00}}, {2, [3]byte{0xd8, 0xa1, 0x00}}, + {2, [3]byte{0xd8, 0xa2, 0x00}}, {2, [3]byte{0xd8, 0xa3, 0x00}}, + {2, [3]byte{0xd8, 0xa4, 0x00}}, {2, [3]byte{0xd8, 0xa5, 0x00}}, + {2, [3]byte{0xd8, 0xa6, 0x00}}, {2, [3]byte{0xd8, 0xa7, 0x00}}, + {2, [3]byte{0xd8, 0xa8, 0x00}}, {2, [3]byte{0xd8, 0xa9, 0x00}}, + {2, [3]byte{0xd8, 0xaa, 0x00}}, {2, [3]byte{0xd8, 0xab, 0x00}}, + {2, [3]byte{0xd8, 0xac, 0x00}}, {2, [3]byte{0xd8, 0xad, 0x00}}, + {2, [3]byte{0xd8, 0xae, 0x00}}, {2, [3]byte{0xd8, 0xaf, 0x00}}, + {2, [3]byte{0xd8, 0xb0, 0x00}}, {2, [3]byte{0xd8, 0xb1, 0x00}}, + {2, [3]byte{0xd8, 0xb2, 0x00}}, {2, [3]byte{0xd8, 0xb3, 0x00}}, + {2, [3]byte{0xd8, 0xb4, 0x00}}, {2, [3]byte{0xd8, 0xb5, 0x00}}, + {2, [3]byte{0xd8, 0xb6, 0x00}}, {2, [3]byte{0xc3, 0x97, 0x00}}, + {2, [3]byte{0xd8, 0xb7, 0x00}}, {2, [3]byte{0xd8, 0xb8, 0x00}}, + {2, [3]byte{0xd8, 0xb9, 0x00}}, {2, [3]byte{0xd8, 0xba, 0x00}}, + {2, [3]byte{0xd9, 0x80, 0x00}}, {2, [3]byte{0xd9, 0x81, 0x00}}, + {2, [3]byte{0xd9, 0x82, 0x00}}, {2, [3]byte{0xd9, 0x83, 0x00}}, + {2, [3]byte{0xc3, 0xa0, 0x00}}, {2, [3]byte{0xd9, 0x84, 0x00}}, + {2, [3]byte{0xc3, 0xa2, 0x00}}, {2, [3]byte{0xd9, 0x85, 0x00}}, + {2, [3]byte{0xd9, 0x86, 0x00}}, {2, [3]byte{0xd9, 0x87, 0x00}}, + {2, [3]byte{0xd9, 0x88, 0x00}}, {2, [3]byte{0xc3, 0xa7, 0x00}}, + {2, [3]byte{0xc3, 0xa8, 0x00}}, {2, [3]byte{0xc3, 0xa9, 0x00}}, + {2, [3]byte{0xc3, 0xaa, 0x00}}, {2, [3]byte{0xc3, 0xab, 0x00}}, + {2, [3]byte{0xd9, 0x89, 0x00}}, {2, [3]byte{0xd9, 0x8a, 0x00}}, + {2, [3]byte{0xc3, 0xae, 0x00}}, {2, [3]byte{0xc3, 0xaf, 0x00}}, + {2, [3]byte{0xd9, 0x8b, 0x00}}, {2, [3]byte{0xd9, 0x8c, 0x00}}, + {2, [3]byte{0xd9, 0x8d, 0x00}}, {2, [3]byte{0xd9, 0x8e, 0x00}}, + {2, [3]byte{0xc3, 0xb4, 0x00}}, {2, [3]byte{0xd9, 0x8f, 0x00}}, + {2, [3]byte{0xd9, 0x90, 0x00}}, {2, [3]byte{0xc3, 0xb7, 0x00}}, + {2, [3]byte{0xd9, 0x91, 0x00}}, {2, [3]byte{0xc3, 0xb9, 0x00}}, + {2, [3]byte{0xd9, 0x92, 0x00}}, {2, [3]byte{0xc3, 0xbb, 0x00}}, + {2, [3]byte{0xc3, 0xbc, 0x00}}, {3, [3]byte{0xe2, 0x80, 0x8e}}, + {3, [3]byte{0xe2, 0x80, 0x8f}}, {2, [3]byte{0xdb, 0x92, 0x00}}, + }, + encode: [256]uint32{ + 0x00000000, 0x01000001, 0x02000002, 0x03000003, 0x04000004, 0x05000005, 0x06000006, 0x07000007, + 0x08000008, 0x09000009, 0x0a00000a, 0x0b00000b, 0x0c00000c, 0x0d00000d, 0x0e00000e, 0x0f00000f, + 0x10000010, 0x11000011, 0x12000012, 0x13000013, 0x14000014, 0x15000015, 0x16000016, 0x17000017, + 0x18000018, 0x19000019, 0x1a00001a, 0x1b00001b, 0x1c00001c, 0x1d00001d, 0x1e00001e, 0x1f00001f, + 0x20000020, 0x21000021, 0x22000022, 0x23000023, 0x24000024, 0x25000025, 0x26000026, 0x27000027, + 0x28000028, 0x29000029, 0x2a00002a, 0x2b00002b, 0x2c00002c, 0x2d00002d, 0x2e00002e, 0x2f00002f, + 0x30000030, 0x31000031, 0x32000032, 0x33000033, 0x34000034, 0x35000035, 0x36000036, 0x37000037, + 0x38000038, 0x39000039, 0x3a00003a, 0x3b00003b, 0x3c00003c, 0x3d00003d, 0x3e00003e, 0x3f00003f, + 0x40000040, 0x41000041, 0x42000042, 0x43000043, 0x44000044, 0x45000045, 0x46000046, 0x47000047, + 0x48000048, 0x49000049, 0x4a00004a, 0x4b00004b, 0x4c00004c, 0x4d00004d, 0x4e00004e, 0x4f00004f, + 0x50000050, 0x51000051, 0x52000052, 0x53000053, 0x54000054, 0x55000055, 0x56000056, 0x57000057, + 0x58000058, 0x59000059, 0x5a00005a, 0x5b00005b, 0x5c00005c, 0x5d00005d, 0x5e00005e, 0x5f00005f, + 0x60000060, 0x61000061, 0x62000062, 0x63000063, 0x64000064, 0x65000065, 0x66000066, 0x67000067, + 0x68000068, 0x69000069, 0x6a00006a, 0x6b00006b, 0x6c00006c, 0x6d00006d, 0x6e00006e, 0x6f00006f, + 0x70000070, 0x71000071, 0x72000072, 0x73000073, 0x74000074, 0x75000075, 0x76000076, 0x77000077, + 0x78000078, 0x79000079, 0x7a00007a, 0x7b00007b, 0x7c00007c, 0x7d00007d, 0x7e00007e, 0x7f00007f, + 0xa00000a0, 0xa20000a2, 0xa30000a3, 0xa40000a4, 0xa50000a5, 0xa60000a6, 0xa70000a7, 0xa80000a8, + 0xa90000a9, 0xab0000ab, 0xac0000ac, 0xad0000ad, 0xae0000ae, 0xaf0000af, 0xb00000b0, 0xb10000b1, + 0xb20000b2, 0xb30000b3, 0xb40000b4, 0xb50000b5, 0xb60000b6, 0xb70000b7, 0xb80000b8, 0xb90000b9, + 0xbb0000bb, 0xbc0000bc, 0xbd0000bd, 0xbe0000be, 0xd70000d7, 0xe00000e0, 0xe20000e2, 0xe70000e7, + 0xe80000e8, 0xe90000e9, 0xea0000ea, 0xeb0000eb, 0xee0000ee, 0xef0000ef, 0xf40000f4, 0xf70000f7, + 0xf90000f9, 0xfb0000fb, 0xfc0000fc, 0x8c000152, 0x9c000153, 0x83000192, 0x880002c6, 0xa100060c, + 0xba00061b, 0xbf00061f, 0xc1000621, 0xc2000622, 0xc3000623, 0xc4000624, 0xc5000625, 0xc6000626, + 0xc7000627, 0xc8000628, 0xc9000629, 0xca00062a, 0xcb00062b, 0xcc00062c, 0xcd00062d, 0xce00062e, + 0xcf00062f, 0xd0000630, 0xd1000631, 0xd2000632, 0xd3000633, 0xd4000634, 0xd5000635, 0xd6000636, + 0xd8000637, 0xd9000638, 0xda000639, 0xdb00063a, 0xdc000640, 0xdd000641, 0xde000642, 0xdf000643, + 0xe1000644, 0xe3000645, 0xe4000646, 0xe5000647, 0xe6000648, 0xec000649, 0xed00064a, 0xf000064b, + 0xf100064c, 0xf200064d, 0xf300064e, 0xf500064f, 0xf6000650, 0xf8000651, 0xfa000652, 0x8a000679, + 0x8100067e, 0x8d000686, 0x8f000688, 0x9a000691, 0x8e000698, 0x980006a9, 0x900006af, 0x9f0006ba, + 0xaa0006be, 0xc00006c1, 0xff0006d2, 0x9d00200c, 0x9e00200d, 0xfd00200e, 0xfe00200f, 0x96002013, + 0x97002014, 0x91002018, 0x92002019, 0x8200201a, 0x9300201c, 0x9400201d, 0x8400201e, 0x86002020, + 0x87002021, 0x95002022, 0x85002026, 0x89002030, 0x8b002039, 0x9b00203a, 0x800020ac, 0x99002122, + }, +} + +// Windows1257 is the Windows 1257 encoding. +var Windows1257 *Charmap = &windows1257 + +var windows1257 = Charmap{ + name: "Windows 1257", + mib: identifier.Windows1257, + asciiSuperset: true, + low: 0x80, + replacement: 0x1a, + decode: [256]utf8Enc{ + {1, [3]byte{0x00, 0x00, 0x00}}, {1, [3]byte{0x01, 0x00, 0x00}}, + {1, [3]byte{0x02, 0x00, 0x00}}, {1, [3]byte{0x03, 0x00, 0x00}}, + {1, [3]byte{0x04, 0x00, 0x00}}, {1, [3]byte{0x05, 0x00, 0x00}}, + {1, [3]byte{0x06, 0x00, 0x00}}, {1, [3]byte{0x07, 0x00, 0x00}}, + {1, [3]byte{0x08, 0x00, 0x00}}, {1, [3]byte{0x09, 0x00, 0x00}}, + {1, [3]byte{0x0a, 0x00, 0x00}}, {1, [3]byte{0x0b, 0x00, 0x00}}, + {1, [3]byte{0x0c, 0x00, 0x00}}, {1, [3]byte{0x0d, 0x00, 0x00}}, + {1, [3]byte{0x0e, 0x00, 0x00}}, {1, [3]byte{0x0f, 0x00, 0x00}}, + {1, [3]byte{0x10, 0x00, 0x00}}, {1, [3]byte{0x11, 0x00, 0x00}}, + {1, [3]byte{0x12, 0x00, 0x00}}, {1, [3]byte{0x13, 0x00, 0x00}}, + {1, [3]byte{0x14, 0x00, 0x00}}, {1, [3]byte{0x15, 0x00, 0x00}}, + {1, [3]byte{0x16, 0x00, 0x00}}, {1, [3]byte{0x17, 0x00, 0x00}}, + {1, [3]byte{0x18, 0x00, 0x00}}, {1, [3]byte{0x19, 0x00, 0x00}}, + {1, [3]byte{0x1a, 0x00, 0x00}}, {1, [3]byte{0x1b, 0x00, 0x00}}, + {1, [3]byte{0x1c, 0x00, 0x00}}, {1, [3]byte{0x1d, 0x00, 0x00}}, + {1, [3]byte{0x1e, 0x00, 0x00}}, {1, [3]byte{0x1f, 0x00, 0x00}}, + {1, [3]byte{0x20, 0x00, 0x00}}, {1, [3]byte{0x21, 0x00, 0x00}}, + {1, [3]byte{0x22, 0x00, 0x00}}, {1, [3]byte{0x23, 0x00, 0x00}}, + {1, [3]byte{0x24, 0x00, 0x00}}, {1, [3]byte{0x25, 0x00, 0x00}}, + {1, [3]byte{0x26, 0x00, 0x00}}, {1, [3]byte{0x27, 0x00, 0x00}}, + {1, [3]byte{0x28, 0x00, 0x00}}, {1, [3]byte{0x29, 0x00, 0x00}}, + {1, [3]byte{0x2a, 0x00, 0x00}}, {1, [3]byte{0x2b, 0x00, 0x00}}, + {1, [3]byte{0x2c, 0x00, 0x00}}, {1, [3]byte{0x2d, 0x00, 0x00}}, + {1, [3]byte{0x2e, 0x00, 0x00}}, {1, [3]byte{0x2f, 0x00, 0x00}}, + {1, [3]byte{0x30, 0x00, 0x00}}, {1, [3]byte{0x31, 0x00, 0x00}}, + {1, [3]byte{0x32, 0x00, 0x00}}, {1, [3]byte{0x33, 0x00, 0x00}}, + {1, [3]byte{0x34, 0x00, 0x00}}, {1, [3]byte{0x35, 0x00, 0x00}}, + {1, [3]byte{0x36, 0x00, 0x00}}, {1, [3]byte{0x37, 0x00, 0x00}}, + {1, [3]byte{0x38, 0x00, 0x00}}, {1, [3]byte{0x39, 0x00, 0x00}}, + {1, [3]byte{0x3a, 0x00, 0x00}}, {1, [3]byte{0x3b, 0x00, 0x00}}, + {1, [3]byte{0x3c, 0x00, 0x00}}, {1, [3]byte{0x3d, 0x00, 0x00}}, + {1, [3]byte{0x3e, 0x00, 0x00}}, {1, [3]byte{0x3f, 0x00, 0x00}}, + {1, [3]byte{0x40, 0x00, 0x00}}, {1, [3]byte{0x41, 0x00, 0x00}}, + {1, [3]byte{0x42, 0x00, 0x00}}, {1, [3]byte{0x43, 0x00, 0x00}}, + {1, [3]byte{0x44, 0x00, 0x00}}, {1, [3]byte{0x45, 0x00, 0x00}}, + {1, [3]byte{0x46, 0x00, 0x00}}, {1, [3]byte{0x47, 0x00, 0x00}}, + {1, [3]byte{0x48, 0x00, 0x00}}, {1, [3]byte{0x49, 0x00, 0x00}}, + {1, [3]byte{0x4a, 0x00, 0x00}}, {1, [3]byte{0x4b, 0x00, 0x00}}, + {1, [3]byte{0x4c, 0x00, 0x00}}, {1, [3]byte{0x4d, 0x00, 0x00}}, + {1, [3]byte{0x4e, 0x00, 0x00}}, {1, [3]byte{0x4f, 0x00, 0x00}}, + {1, [3]byte{0x50, 0x00, 0x00}}, {1, [3]byte{0x51, 0x00, 0x00}}, + {1, [3]byte{0x52, 0x00, 0x00}}, {1, [3]byte{0x53, 0x00, 0x00}}, + {1, [3]byte{0x54, 0x00, 0x00}}, {1, [3]byte{0x55, 0x00, 0x00}}, + {1, [3]byte{0x56, 0x00, 0x00}}, {1, [3]byte{0x57, 0x00, 0x00}}, + {1, [3]byte{0x58, 0x00, 0x00}}, {1, [3]byte{0x59, 0x00, 0x00}}, + {1, [3]byte{0x5a, 0x00, 0x00}}, {1, [3]byte{0x5b, 0x00, 0x00}}, + {1, [3]byte{0x5c, 0x00, 0x00}}, {1, [3]byte{0x5d, 0x00, 0x00}}, + {1, [3]byte{0x5e, 0x00, 0x00}}, {1, [3]byte{0x5f, 0x00, 0x00}}, + {1, [3]byte{0x60, 0x00, 0x00}}, {1, [3]byte{0x61, 0x00, 0x00}}, + {1, [3]byte{0x62, 0x00, 0x00}}, {1, [3]byte{0x63, 0x00, 0x00}}, + {1, [3]byte{0x64, 0x00, 0x00}}, {1, [3]byte{0x65, 0x00, 0x00}}, + {1, [3]byte{0x66, 0x00, 0x00}}, {1, [3]byte{0x67, 0x00, 0x00}}, + {1, [3]byte{0x68, 0x00, 0x00}}, {1, [3]byte{0x69, 0x00, 0x00}}, + {1, [3]byte{0x6a, 0x00, 0x00}}, {1, [3]byte{0x6b, 0x00, 0x00}}, + {1, [3]byte{0x6c, 0x00, 0x00}}, {1, [3]byte{0x6d, 0x00, 0x00}}, + {1, [3]byte{0x6e, 0x00, 0x00}}, {1, [3]byte{0x6f, 0x00, 0x00}}, + {1, [3]byte{0x70, 0x00, 0x00}}, {1, [3]byte{0x71, 0x00, 0x00}}, + {1, [3]byte{0x72, 0x00, 0x00}}, {1, [3]byte{0x73, 0x00, 0x00}}, + {1, [3]byte{0x74, 0x00, 0x00}}, {1, [3]byte{0x75, 0x00, 0x00}}, + {1, [3]byte{0x76, 0x00, 0x00}}, {1, [3]byte{0x77, 0x00, 0x00}}, + {1, [3]byte{0x78, 0x00, 0x00}}, {1, [3]byte{0x79, 0x00, 0x00}}, + {1, [3]byte{0x7a, 0x00, 0x00}}, {1, [3]byte{0x7b, 0x00, 0x00}}, + {1, [3]byte{0x7c, 0x00, 0x00}}, {1, [3]byte{0x7d, 0x00, 0x00}}, + {1, [3]byte{0x7e, 0x00, 0x00}}, {1, [3]byte{0x7f, 0x00, 0x00}}, + {3, [3]byte{0xe2, 0x82, 0xac}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xe2, 0x80, 0x9a}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xe2, 0x80, 0x9e}}, {3, [3]byte{0xe2, 0x80, 0xa6}}, + {3, [3]byte{0xe2, 0x80, 0xa0}}, {3, [3]byte{0xe2, 0x80, 0xa1}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xe2, 0x80, 0xb0}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xe2, 0x80, 0xb9}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {2, [3]byte{0xc2, 0xa8, 0x00}}, + {2, [3]byte{0xcb, 0x87, 0x00}}, {2, [3]byte{0xc2, 0xb8, 0x00}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xe2, 0x80, 0x98}}, + {3, [3]byte{0xe2, 0x80, 0x99}}, {3, [3]byte{0xe2, 0x80, 0x9c}}, + {3, [3]byte{0xe2, 0x80, 0x9d}}, {3, [3]byte{0xe2, 0x80, 0xa2}}, + {3, [3]byte{0xe2, 0x80, 0x93}}, {3, [3]byte{0xe2, 0x80, 0x94}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xe2, 0x84, 0xa2}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xe2, 0x80, 0xba}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {2, [3]byte{0xc2, 0xaf, 0x00}}, + {2, [3]byte{0xcb, 0x9b, 0x00}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {2, [3]byte{0xc2, 0xa0, 0x00}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {2, [3]byte{0xc2, 0xa2, 0x00}}, {2, [3]byte{0xc2, 0xa3, 0x00}}, + {2, [3]byte{0xc2, 0xa4, 0x00}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {2, [3]byte{0xc2, 0xa6, 0x00}}, {2, [3]byte{0xc2, 0xa7, 0x00}}, + {2, [3]byte{0xc3, 0x98, 0x00}}, {2, [3]byte{0xc2, 0xa9, 0x00}}, + {2, [3]byte{0xc5, 0x96, 0x00}}, {2, [3]byte{0xc2, 0xab, 0x00}}, + {2, [3]byte{0xc2, 0xac, 0x00}}, {2, [3]byte{0xc2, 0xad, 0x00}}, + {2, [3]byte{0xc2, 0xae, 0x00}}, {2, [3]byte{0xc3, 0x86, 0x00}}, + {2, [3]byte{0xc2, 0xb0, 0x00}}, {2, [3]byte{0xc2, 0xb1, 0x00}}, + {2, [3]byte{0xc2, 0xb2, 0x00}}, {2, [3]byte{0xc2, 0xb3, 0x00}}, + {2, [3]byte{0xc2, 0xb4, 0x00}}, {2, [3]byte{0xc2, 0xb5, 0x00}}, + {2, [3]byte{0xc2, 0xb6, 0x00}}, {2, [3]byte{0xc2, 0xb7, 0x00}}, + {2, [3]byte{0xc3, 0xb8, 0x00}}, {2, [3]byte{0xc2, 0xb9, 0x00}}, + {2, [3]byte{0xc5, 0x97, 0x00}}, {2, [3]byte{0xc2, 0xbb, 0x00}}, + {2, [3]byte{0xc2, 0xbc, 0x00}}, {2, [3]byte{0xc2, 0xbd, 0x00}}, + {2, [3]byte{0xc2, 0xbe, 0x00}}, {2, [3]byte{0xc3, 0xa6, 0x00}}, + {2, [3]byte{0xc4, 0x84, 0x00}}, {2, [3]byte{0xc4, 0xae, 0x00}}, + {2, [3]byte{0xc4, 0x80, 0x00}}, {2, [3]byte{0xc4, 0x86, 0x00}}, + {2, [3]byte{0xc3, 0x84, 0x00}}, {2, [3]byte{0xc3, 0x85, 0x00}}, + {2, [3]byte{0xc4, 0x98, 0x00}}, {2, [3]byte{0xc4, 0x92, 0x00}}, + {2, [3]byte{0xc4, 0x8c, 0x00}}, {2, [3]byte{0xc3, 0x89, 0x00}}, + {2, [3]byte{0xc5, 0xb9, 0x00}}, {2, [3]byte{0xc4, 0x96, 0x00}}, + {2, [3]byte{0xc4, 0xa2, 0x00}}, {2, [3]byte{0xc4, 0xb6, 0x00}}, + {2, [3]byte{0xc4, 0xaa, 0x00}}, {2, [3]byte{0xc4, 0xbb, 0x00}}, + {2, [3]byte{0xc5, 0xa0, 0x00}}, {2, [3]byte{0xc5, 0x83, 0x00}}, + {2, [3]byte{0xc5, 0x85, 0x00}}, {2, [3]byte{0xc3, 0x93, 0x00}}, + {2, [3]byte{0xc5, 0x8c, 0x00}}, {2, [3]byte{0xc3, 0x95, 0x00}}, + {2, [3]byte{0xc3, 0x96, 0x00}}, {2, [3]byte{0xc3, 0x97, 0x00}}, + {2, [3]byte{0xc5, 0xb2, 0x00}}, {2, [3]byte{0xc5, 0x81, 0x00}}, + {2, [3]byte{0xc5, 0x9a, 0x00}}, {2, [3]byte{0xc5, 0xaa, 0x00}}, + {2, [3]byte{0xc3, 0x9c, 0x00}}, {2, [3]byte{0xc5, 0xbb, 0x00}}, + {2, [3]byte{0xc5, 0xbd, 0x00}}, {2, [3]byte{0xc3, 0x9f, 0x00}}, + {2, [3]byte{0xc4, 0x85, 0x00}}, {2, [3]byte{0xc4, 0xaf, 0x00}}, + {2, [3]byte{0xc4, 0x81, 0x00}}, {2, [3]byte{0xc4, 0x87, 0x00}}, + {2, [3]byte{0xc3, 0xa4, 0x00}}, {2, [3]byte{0xc3, 0xa5, 0x00}}, + {2, [3]byte{0xc4, 0x99, 0x00}}, {2, [3]byte{0xc4, 0x93, 0x00}}, + {2, [3]byte{0xc4, 0x8d, 0x00}}, {2, [3]byte{0xc3, 0xa9, 0x00}}, + {2, [3]byte{0xc5, 0xba, 0x00}}, {2, [3]byte{0xc4, 0x97, 0x00}}, + {2, [3]byte{0xc4, 0xa3, 0x00}}, {2, [3]byte{0xc4, 0xb7, 0x00}}, + {2, [3]byte{0xc4, 0xab, 0x00}}, {2, [3]byte{0xc4, 0xbc, 0x00}}, + {2, [3]byte{0xc5, 0xa1, 0x00}}, {2, [3]byte{0xc5, 0x84, 0x00}}, + {2, [3]byte{0xc5, 0x86, 0x00}}, {2, [3]byte{0xc3, 0xb3, 0x00}}, + {2, [3]byte{0xc5, 0x8d, 0x00}}, {2, [3]byte{0xc3, 0xb5, 0x00}}, + {2, [3]byte{0xc3, 0xb6, 0x00}}, {2, [3]byte{0xc3, 0xb7, 0x00}}, + {2, [3]byte{0xc5, 0xb3, 0x00}}, {2, [3]byte{0xc5, 0x82, 0x00}}, + {2, [3]byte{0xc5, 0x9b, 0x00}}, {2, [3]byte{0xc5, 0xab, 0x00}}, + {2, [3]byte{0xc3, 0xbc, 0x00}}, {2, [3]byte{0xc5, 0xbc, 0x00}}, + {2, [3]byte{0xc5, 0xbe, 0x00}}, {2, [3]byte{0xcb, 0x99, 0x00}}, + }, + encode: [256]uint32{ + 0x00000000, 0x01000001, 0x02000002, 0x03000003, 0x04000004, 0x05000005, 0x06000006, 0x07000007, + 0x08000008, 0x09000009, 0x0a00000a, 0x0b00000b, 0x0c00000c, 0x0d00000d, 0x0e00000e, 0x0f00000f, + 0x10000010, 0x11000011, 0x12000012, 0x13000013, 0x14000014, 0x15000015, 0x16000016, 0x17000017, + 0x18000018, 0x19000019, 0x1a00001a, 0x1b00001b, 0x1c00001c, 0x1d00001d, 0x1e00001e, 0x1f00001f, + 0x20000020, 0x21000021, 0x22000022, 0x23000023, 0x24000024, 0x25000025, 0x26000026, 0x27000027, + 0x28000028, 0x29000029, 0x2a00002a, 0x2b00002b, 0x2c00002c, 0x2d00002d, 0x2e00002e, 0x2f00002f, + 0x30000030, 0x31000031, 0x32000032, 0x33000033, 0x34000034, 0x35000035, 0x36000036, 0x37000037, + 0x38000038, 0x39000039, 0x3a00003a, 0x3b00003b, 0x3c00003c, 0x3d00003d, 0x3e00003e, 0x3f00003f, + 0x40000040, 0x41000041, 0x42000042, 0x43000043, 0x44000044, 0x45000045, 0x46000046, 0x47000047, + 0x48000048, 0x49000049, 0x4a00004a, 0x4b00004b, 0x4c00004c, 0x4d00004d, 0x4e00004e, 0x4f00004f, + 0x50000050, 0x51000051, 0x52000052, 0x53000053, 0x54000054, 0x55000055, 0x56000056, 0x57000057, + 0x58000058, 0x59000059, 0x5a00005a, 0x5b00005b, 0x5c00005c, 0x5d00005d, 0x5e00005e, 0x5f00005f, + 0x60000060, 0x61000061, 0x62000062, 0x63000063, 0x64000064, 0x65000065, 0x66000066, 0x67000067, + 0x68000068, 0x69000069, 0x6a00006a, 0x6b00006b, 0x6c00006c, 0x6d00006d, 0x6e00006e, 0x6f00006f, + 0x70000070, 0x71000071, 0x72000072, 0x73000073, 0x74000074, 0x75000075, 0x76000076, 0x77000077, + 0x78000078, 0x79000079, 0x7a00007a, 0x7b00007b, 0x7c00007c, 0x7d00007d, 0x7e00007e, 0x7f00007f, + 0xa00000a0, 0xa20000a2, 0xa30000a3, 0xa40000a4, 0xa60000a6, 0xa70000a7, 0x8d0000a8, 0xa90000a9, + 0xab0000ab, 0xac0000ac, 0xad0000ad, 0xae0000ae, 0x9d0000af, 0xb00000b0, 0xb10000b1, 0xb20000b2, + 0xb30000b3, 0xb40000b4, 0xb50000b5, 0xb60000b6, 0xb70000b7, 0x8f0000b8, 0xb90000b9, 0xbb0000bb, + 0xbc0000bc, 0xbd0000bd, 0xbe0000be, 0xc40000c4, 0xc50000c5, 0xaf0000c6, 0xc90000c9, 0xd30000d3, + 0xd50000d5, 0xd60000d6, 0xd70000d7, 0xa80000d8, 0xdc0000dc, 0xdf0000df, 0xe40000e4, 0xe50000e5, + 0xbf0000e6, 0xe90000e9, 0xf30000f3, 0xf50000f5, 0xf60000f6, 0xf70000f7, 0xb80000f8, 0xfc0000fc, + 0xc2000100, 0xe2000101, 0xc0000104, 0xe0000105, 0xc3000106, 0xe3000107, 0xc800010c, 0xe800010d, + 0xc7000112, 0xe7000113, 0xcb000116, 0xeb000117, 0xc6000118, 0xe6000119, 0xcc000122, 0xec000123, + 0xce00012a, 0xee00012b, 0xc100012e, 0xe100012f, 0xcd000136, 0xed000137, 0xcf00013b, 0xef00013c, + 0xd9000141, 0xf9000142, 0xd1000143, 0xf1000144, 0xd2000145, 0xf2000146, 0xd400014c, 0xf400014d, + 0xaa000156, 0xba000157, 0xda00015a, 0xfa00015b, 0xd0000160, 0xf0000161, 0xdb00016a, 0xfb00016b, + 0xd8000172, 0xf8000173, 0xca000179, 0xea00017a, 0xdd00017b, 0xfd00017c, 0xde00017d, 0xfe00017e, + 0x8e0002c7, 0xff0002d9, 0x9e0002db, 0x96002013, 0x97002014, 0x91002018, 0x92002019, 0x8200201a, + 0x9300201c, 0x9400201d, 0x8400201e, 0x86002020, 0x87002021, 0x95002022, 0x85002026, 0x89002030, + 0x8b002039, 0x9b00203a, 0x800020ac, 0x99002122, 0x99002122, 0x99002122, 0x99002122, 0x99002122, + 0x99002122, 0x99002122, 0x99002122, 0x99002122, 0x99002122, 0x99002122, 0x99002122, 0x99002122, + }, +} + +// Windows1258 is the Windows 1258 encoding. +var Windows1258 *Charmap = &windows1258 + +var windows1258 = Charmap{ + name: "Windows 1258", + mib: identifier.Windows1258, + asciiSuperset: true, + low: 0x80, + replacement: 0x1a, + decode: [256]utf8Enc{ + {1, [3]byte{0x00, 0x00, 0x00}}, {1, [3]byte{0x01, 0x00, 0x00}}, + {1, [3]byte{0x02, 0x00, 0x00}}, {1, [3]byte{0x03, 0x00, 0x00}}, + {1, [3]byte{0x04, 0x00, 0x00}}, {1, [3]byte{0x05, 0x00, 0x00}}, + {1, [3]byte{0x06, 0x00, 0x00}}, {1, [3]byte{0x07, 0x00, 0x00}}, + {1, [3]byte{0x08, 0x00, 0x00}}, {1, [3]byte{0x09, 0x00, 0x00}}, + {1, [3]byte{0x0a, 0x00, 0x00}}, {1, [3]byte{0x0b, 0x00, 0x00}}, + {1, [3]byte{0x0c, 0x00, 0x00}}, {1, [3]byte{0x0d, 0x00, 0x00}}, + {1, [3]byte{0x0e, 0x00, 0x00}}, {1, [3]byte{0x0f, 0x00, 0x00}}, + {1, [3]byte{0x10, 0x00, 0x00}}, {1, [3]byte{0x11, 0x00, 0x00}}, + {1, [3]byte{0x12, 0x00, 0x00}}, {1, [3]byte{0x13, 0x00, 0x00}}, + {1, [3]byte{0x14, 0x00, 0x00}}, {1, [3]byte{0x15, 0x00, 0x00}}, + {1, [3]byte{0x16, 0x00, 0x00}}, {1, [3]byte{0x17, 0x00, 0x00}}, + {1, [3]byte{0x18, 0x00, 0x00}}, {1, [3]byte{0x19, 0x00, 0x00}}, + {1, [3]byte{0x1a, 0x00, 0x00}}, {1, [3]byte{0x1b, 0x00, 0x00}}, + {1, [3]byte{0x1c, 0x00, 0x00}}, {1, [3]byte{0x1d, 0x00, 0x00}}, + {1, [3]byte{0x1e, 0x00, 0x00}}, {1, [3]byte{0x1f, 0x00, 0x00}}, + {1, [3]byte{0x20, 0x00, 0x00}}, {1, [3]byte{0x21, 0x00, 0x00}}, + {1, [3]byte{0x22, 0x00, 0x00}}, {1, [3]byte{0x23, 0x00, 0x00}}, + {1, [3]byte{0x24, 0x00, 0x00}}, {1, [3]byte{0x25, 0x00, 0x00}}, + {1, [3]byte{0x26, 0x00, 0x00}}, {1, [3]byte{0x27, 0x00, 0x00}}, + {1, [3]byte{0x28, 0x00, 0x00}}, {1, [3]byte{0x29, 0x00, 0x00}}, + {1, [3]byte{0x2a, 0x00, 0x00}}, {1, [3]byte{0x2b, 0x00, 0x00}}, + {1, [3]byte{0x2c, 0x00, 0x00}}, {1, [3]byte{0x2d, 0x00, 0x00}}, + {1, [3]byte{0x2e, 0x00, 0x00}}, {1, [3]byte{0x2f, 0x00, 0x00}}, + {1, [3]byte{0x30, 0x00, 0x00}}, {1, [3]byte{0x31, 0x00, 0x00}}, + {1, [3]byte{0x32, 0x00, 0x00}}, {1, [3]byte{0x33, 0x00, 0x00}}, + {1, [3]byte{0x34, 0x00, 0x00}}, {1, [3]byte{0x35, 0x00, 0x00}}, + {1, [3]byte{0x36, 0x00, 0x00}}, {1, [3]byte{0x37, 0x00, 0x00}}, + {1, [3]byte{0x38, 0x00, 0x00}}, {1, [3]byte{0x39, 0x00, 0x00}}, + {1, [3]byte{0x3a, 0x00, 0x00}}, {1, [3]byte{0x3b, 0x00, 0x00}}, + {1, [3]byte{0x3c, 0x00, 0x00}}, {1, [3]byte{0x3d, 0x00, 0x00}}, + {1, [3]byte{0x3e, 0x00, 0x00}}, {1, [3]byte{0x3f, 0x00, 0x00}}, + {1, [3]byte{0x40, 0x00, 0x00}}, {1, [3]byte{0x41, 0x00, 0x00}}, + {1, [3]byte{0x42, 0x00, 0x00}}, {1, [3]byte{0x43, 0x00, 0x00}}, + {1, [3]byte{0x44, 0x00, 0x00}}, {1, [3]byte{0x45, 0x00, 0x00}}, + {1, [3]byte{0x46, 0x00, 0x00}}, {1, [3]byte{0x47, 0x00, 0x00}}, + {1, [3]byte{0x48, 0x00, 0x00}}, {1, [3]byte{0x49, 0x00, 0x00}}, + {1, [3]byte{0x4a, 0x00, 0x00}}, {1, [3]byte{0x4b, 0x00, 0x00}}, + {1, [3]byte{0x4c, 0x00, 0x00}}, {1, [3]byte{0x4d, 0x00, 0x00}}, + {1, [3]byte{0x4e, 0x00, 0x00}}, {1, [3]byte{0x4f, 0x00, 0x00}}, + {1, [3]byte{0x50, 0x00, 0x00}}, {1, [3]byte{0x51, 0x00, 0x00}}, + {1, [3]byte{0x52, 0x00, 0x00}}, {1, [3]byte{0x53, 0x00, 0x00}}, + {1, [3]byte{0x54, 0x00, 0x00}}, {1, [3]byte{0x55, 0x00, 0x00}}, + {1, [3]byte{0x56, 0x00, 0x00}}, {1, [3]byte{0x57, 0x00, 0x00}}, + {1, [3]byte{0x58, 0x00, 0x00}}, {1, [3]byte{0x59, 0x00, 0x00}}, + {1, [3]byte{0x5a, 0x00, 0x00}}, {1, [3]byte{0x5b, 0x00, 0x00}}, + {1, [3]byte{0x5c, 0x00, 0x00}}, {1, [3]byte{0x5d, 0x00, 0x00}}, + {1, [3]byte{0x5e, 0x00, 0x00}}, {1, [3]byte{0x5f, 0x00, 0x00}}, + {1, [3]byte{0x60, 0x00, 0x00}}, {1, [3]byte{0x61, 0x00, 0x00}}, + {1, [3]byte{0x62, 0x00, 0x00}}, {1, [3]byte{0x63, 0x00, 0x00}}, + {1, [3]byte{0x64, 0x00, 0x00}}, {1, [3]byte{0x65, 0x00, 0x00}}, + {1, [3]byte{0x66, 0x00, 0x00}}, {1, [3]byte{0x67, 0x00, 0x00}}, + {1, [3]byte{0x68, 0x00, 0x00}}, {1, [3]byte{0x69, 0x00, 0x00}}, + {1, [3]byte{0x6a, 0x00, 0x00}}, {1, [3]byte{0x6b, 0x00, 0x00}}, + {1, [3]byte{0x6c, 0x00, 0x00}}, {1, [3]byte{0x6d, 0x00, 0x00}}, + {1, [3]byte{0x6e, 0x00, 0x00}}, {1, [3]byte{0x6f, 0x00, 0x00}}, + {1, [3]byte{0x70, 0x00, 0x00}}, {1, [3]byte{0x71, 0x00, 0x00}}, + {1, [3]byte{0x72, 0x00, 0x00}}, {1, [3]byte{0x73, 0x00, 0x00}}, + {1, [3]byte{0x74, 0x00, 0x00}}, {1, [3]byte{0x75, 0x00, 0x00}}, + {1, [3]byte{0x76, 0x00, 0x00}}, {1, [3]byte{0x77, 0x00, 0x00}}, + {1, [3]byte{0x78, 0x00, 0x00}}, {1, [3]byte{0x79, 0x00, 0x00}}, + {1, [3]byte{0x7a, 0x00, 0x00}}, {1, [3]byte{0x7b, 0x00, 0x00}}, + {1, [3]byte{0x7c, 0x00, 0x00}}, {1, [3]byte{0x7d, 0x00, 0x00}}, + {1, [3]byte{0x7e, 0x00, 0x00}}, {1, [3]byte{0x7f, 0x00, 0x00}}, + {3, [3]byte{0xe2, 0x82, 0xac}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xe2, 0x80, 0x9a}}, {2, [3]byte{0xc6, 0x92, 0x00}}, + {3, [3]byte{0xe2, 0x80, 0x9e}}, {3, [3]byte{0xe2, 0x80, 0xa6}}, + {3, [3]byte{0xe2, 0x80, 0xa0}}, {3, [3]byte{0xe2, 0x80, 0xa1}}, + {2, [3]byte{0xcb, 0x86, 0x00}}, {3, [3]byte{0xe2, 0x80, 0xb0}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xe2, 0x80, 0xb9}}, + {2, [3]byte{0xc5, 0x92, 0x00}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xe2, 0x80, 0x98}}, + {3, [3]byte{0xe2, 0x80, 0x99}}, {3, [3]byte{0xe2, 0x80, 0x9c}}, + {3, [3]byte{0xe2, 0x80, 0x9d}}, {3, [3]byte{0xe2, 0x80, 0xa2}}, + {3, [3]byte{0xe2, 0x80, 0x93}}, {3, [3]byte{0xe2, 0x80, 0x94}}, + {2, [3]byte{0xcb, 0x9c, 0x00}}, {3, [3]byte{0xe2, 0x84, 0xa2}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xe2, 0x80, 0xba}}, + {2, [3]byte{0xc5, 0x93, 0x00}}, {3, [3]byte{0xef, 0xbf, 0xbd}}, + {3, [3]byte{0xef, 0xbf, 0xbd}}, {2, [3]byte{0xc5, 0xb8, 0x00}}, + {2, [3]byte{0xc2, 0xa0, 0x00}}, {2, [3]byte{0xc2, 0xa1, 0x00}}, + {2, [3]byte{0xc2, 0xa2, 0x00}}, {2, [3]byte{0xc2, 0xa3, 0x00}}, + {2, [3]byte{0xc2, 0xa4, 0x00}}, {2, [3]byte{0xc2, 0xa5, 0x00}}, + {2, [3]byte{0xc2, 0xa6, 0x00}}, {2, [3]byte{0xc2, 0xa7, 0x00}}, + {2, [3]byte{0xc2, 0xa8, 0x00}}, {2, [3]byte{0xc2, 0xa9, 0x00}}, + {2, [3]byte{0xc2, 0xaa, 0x00}}, {2, [3]byte{0xc2, 0xab, 0x00}}, + {2, [3]byte{0xc2, 0xac, 0x00}}, {2, [3]byte{0xc2, 0xad, 0x00}}, + {2, [3]byte{0xc2, 0xae, 0x00}}, {2, [3]byte{0xc2, 0xaf, 0x00}}, + {2, [3]byte{0xc2, 0xb0, 0x00}}, {2, [3]byte{0xc2, 0xb1, 0x00}}, + {2, [3]byte{0xc2, 0xb2, 0x00}}, {2, [3]byte{0xc2, 0xb3, 0x00}}, + {2, [3]byte{0xc2, 0xb4, 0x00}}, {2, [3]byte{0xc2, 0xb5, 0x00}}, + {2, [3]byte{0xc2, 0xb6, 0x00}}, {2, [3]byte{0xc2, 0xb7, 0x00}}, + {2, [3]byte{0xc2, 0xb8, 0x00}}, {2, [3]byte{0xc2, 0xb9, 0x00}}, + {2, [3]byte{0xc2, 0xba, 0x00}}, {2, [3]byte{0xc2, 0xbb, 0x00}}, + {2, [3]byte{0xc2, 0xbc, 0x00}}, {2, [3]byte{0xc2, 0xbd, 0x00}}, + {2, [3]byte{0xc2, 0xbe, 0x00}}, {2, [3]byte{0xc2, 0xbf, 0x00}}, + {2, [3]byte{0xc3, 0x80, 0x00}}, {2, [3]byte{0xc3, 0x81, 0x00}}, + {2, [3]byte{0xc3, 0x82, 0x00}}, {2, [3]byte{0xc4, 0x82, 0x00}}, + {2, [3]byte{0xc3, 0x84, 0x00}}, {2, [3]byte{0xc3, 0x85, 0x00}}, + {2, [3]byte{0xc3, 0x86, 0x00}}, {2, [3]byte{0xc3, 0x87, 0x00}}, + {2, [3]byte{0xc3, 0x88, 0x00}}, {2, [3]byte{0xc3, 0x89, 0x00}}, + {2, [3]byte{0xc3, 0x8a, 0x00}}, {2, [3]byte{0xc3, 0x8b, 0x00}}, + {2, [3]byte{0xcc, 0x80, 0x00}}, {2, [3]byte{0xc3, 0x8d, 0x00}}, + {2, [3]byte{0xc3, 0x8e, 0x00}}, {2, [3]byte{0xc3, 0x8f, 0x00}}, + {2, [3]byte{0xc4, 0x90, 0x00}}, {2, [3]byte{0xc3, 0x91, 0x00}}, + {2, [3]byte{0xcc, 0x89, 0x00}}, {2, [3]byte{0xc3, 0x93, 0x00}}, + {2, [3]byte{0xc3, 0x94, 0x00}}, {2, [3]byte{0xc6, 0xa0, 0x00}}, + {2, [3]byte{0xc3, 0x96, 0x00}}, {2, [3]byte{0xc3, 0x97, 0x00}}, + {2, [3]byte{0xc3, 0x98, 0x00}}, {2, [3]byte{0xc3, 0x99, 0x00}}, + {2, [3]byte{0xc3, 0x9a, 0x00}}, {2, [3]byte{0xc3, 0x9b, 0x00}}, + {2, [3]byte{0xc3, 0x9c, 0x00}}, {2, [3]byte{0xc6, 0xaf, 0x00}}, + {2, [3]byte{0xcc, 0x83, 0x00}}, {2, [3]byte{0xc3, 0x9f, 0x00}}, + {2, [3]byte{0xc3, 0xa0, 0x00}}, {2, [3]byte{0xc3, 0xa1, 0x00}}, + {2, [3]byte{0xc3, 0xa2, 0x00}}, {2, [3]byte{0xc4, 0x83, 0x00}}, + {2, [3]byte{0xc3, 0xa4, 0x00}}, {2, [3]byte{0xc3, 0xa5, 0x00}}, + {2, [3]byte{0xc3, 0xa6, 0x00}}, {2, [3]byte{0xc3, 0xa7, 0x00}}, + {2, [3]byte{0xc3, 0xa8, 0x00}}, {2, [3]byte{0xc3, 0xa9, 0x00}}, + {2, [3]byte{0xc3, 0xaa, 0x00}}, {2, [3]byte{0xc3, 0xab, 0x00}}, + {2, [3]byte{0xcc, 0x81, 0x00}}, {2, [3]byte{0xc3, 0xad, 0x00}}, + {2, [3]byte{0xc3, 0xae, 0x00}}, {2, [3]byte{0xc3, 0xaf, 0x00}}, + {2, [3]byte{0xc4, 0x91, 0x00}}, {2, [3]byte{0xc3, 0xb1, 0x00}}, + {2, [3]byte{0xcc, 0xa3, 0x00}}, {2, [3]byte{0xc3, 0xb3, 0x00}}, + {2, [3]byte{0xc3, 0xb4, 0x00}}, {2, [3]byte{0xc6, 0xa1, 0x00}}, + {2, [3]byte{0xc3, 0xb6, 0x00}}, {2, [3]byte{0xc3, 0xb7, 0x00}}, + {2, [3]byte{0xc3, 0xb8, 0x00}}, {2, [3]byte{0xc3, 0xb9, 0x00}}, + {2, [3]byte{0xc3, 0xba, 0x00}}, {2, [3]byte{0xc3, 0xbb, 0x00}}, + {2, [3]byte{0xc3, 0xbc, 0x00}}, {2, [3]byte{0xc6, 0xb0, 0x00}}, + {3, [3]byte{0xe2, 0x82, 0xab}}, {2, [3]byte{0xc3, 0xbf, 0x00}}, + }, + encode: [256]uint32{ + 0x00000000, 0x01000001, 0x02000002, 0x03000003, 0x04000004, 0x05000005, 0x06000006, 0x07000007, + 0x08000008, 0x09000009, 0x0a00000a, 0x0b00000b, 0x0c00000c, 0x0d00000d, 0x0e00000e, 0x0f00000f, + 0x10000010, 0x11000011, 0x12000012, 0x13000013, 0x14000014, 0x15000015, 0x16000016, 0x17000017, + 0x18000018, 0x19000019, 0x1a00001a, 0x1b00001b, 0x1c00001c, 0x1d00001d, 0x1e00001e, 0x1f00001f, + 0x20000020, 0x21000021, 0x22000022, 0x23000023, 0x24000024, 0x25000025, 0x26000026, 0x27000027, + 0x28000028, 0x29000029, 0x2a00002a, 0x2b00002b, 0x2c00002c, 0x2d00002d, 0x2e00002e, 0x2f00002f, + 0x30000030, 0x31000031, 0x32000032, 0x33000033, 0x34000034, 0x35000035, 0x36000036, 0x37000037, + 0x38000038, 0x39000039, 0x3a00003a, 0x3b00003b, 0x3c00003c, 0x3d00003d, 0x3e00003e, 0x3f00003f, + 0x40000040, 0x41000041, 0x42000042, 0x43000043, 0x44000044, 0x45000045, 0x46000046, 0x47000047, + 0x48000048, 0x49000049, 0x4a00004a, 0x4b00004b, 0x4c00004c, 0x4d00004d, 0x4e00004e, 0x4f00004f, + 0x50000050, 0x51000051, 0x52000052, 0x53000053, 0x54000054, 0x55000055, 0x56000056, 0x57000057, + 0x58000058, 0x59000059, 0x5a00005a, 0x5b00005b, 0x5c00005c, 0x5d00005d, 0x5e00005e, 0x5f00005f, + 0x60000060, 0x61000061, 0x62000062, 0x63000063, 0x64000064, 0x65000065, 0x66000066, 0x67000067, + 0x68000068, 0x69000069, 0x6a00006a, 0x6b00006b, 0x6c00006c, 0x6d00006d, 0x6e00006e, 0x6f00006f, + 0x70000070, 0x71000071, 0x72000072, 0x73000073, 0x74000074, 0x75000075, 0x76000076, 0x77000077, + 0x78000078, 0x79000079, 0x7a00007a, 0x7b00007b, 0x7c00007c, 0x7d00007d, 0x7e00007e, 0x7f00007f, + 0xa00000a0, 0xa10000a1, 0xa20000a2, 0xa30000a3, 0xa40000a4, 0xa50000a5, 0xa60000a6, 0xa70000a7, + 0xa80000a8, 0xa90000a9, 0xaa0000aa, 0xab0000ab, 0xac0000ac, 0xad0000ad, 0xae0000ae, 0xaf0000af, + 0xb00000b0, 0xb10000b1, 0xb20000b2, 0xb30000b3, 0xb40000b4, 0xb50000b5, 0xb60000b6, 0xb70000b7, + 0xb80000b8, 0xb90000b9, 0xba0000ba, 0xbb0000bb, 0xbc0000bc, 0xbd0000bd, 0xbe0000be, 0xbf0000bf, + 0xc00000c0, 0xc10000c1, 0xc20000c2, 0xc40000c4, 0xc50000c5, 0xc60000c6, 0xc70000c7, 0xc80000c8, + 0xc90000c9, 0xca0000ca, 0xcb0000cb, 0xcd0000cd, 0xce0000ce, 0xcf0000cf, 0xd10000d1, 0xd30000d3, + 0xd40000d4, 0xd60000d6, 0xd70000d7, 0xd80000d8, 0xd90000d9, 0xda0000da, 0xdb0000db, 0xdc0000dc, + 0xdf0000df, 0xe00000e0, 0xe10000e1, 0xe20000e2, 0xe40000e4, 0xe50000e5, 0xe60000e6, 0xe70000e7, + 0xe80000e8, 0xe90000e9, 0xea0000ea, 0xeb0000eb, 0xed0000ed, 0xee0000ee, 0xef0000ef, 0xf10000f1, + 0xf30000f3, 0xf40000f4, 0xf60000f6, 0xf70000f7, 0xf80000f8, 0xf90000f9, 0xfa0000fa, 0xfb0000fb, + 0xfc0000fc, 0xff0000ff, 0xc3000102, 0xe3000103, 0xd0000110, 0xf0000111, 0x8c000152, 0x9c000153, + 0x9f000178, 0x83000192, 0xd50001a0, 0xf50001a1, 0xdd0001af, 0xfd0001b0, 0x880002c6, 0x980002dc, + 0xcc000300, 0xec000301, 0xde000303, 0xd2000309, 0xf2000323, 0x96002013, 0x97002014, 0x91002018, + 0x92002019, 0x8200201a, 0x9300201c, 0x9400201d, 0x8400201e, 0x86002020, 0x87002021, 0x95002022, + 0x85002026, 0x89002030, 0x8b002039, 0x9b00203a, 0xfe0020ab, 0x800020ac, 0x99002122, 0x99002122, + 0x99002122, 0x99002122, 0x99002122, 0x99002122, 0x99002122, 0x99002122, 0x99002122, 0x99002122, + }, +} + +// XUserDefined is the X-User-Defined encoding. +// +// It is defined at http://encoding.spec.whatwg.org/#x-user-defined +var XUserDefined *Charmap = &xUserDefined + +var xUserDefined = Charmap{ + name: "X-User-Defined", + mib: identifier.XUserDefined, + asciiSuperset: true, + low: 0x80, + replacement: 0x1a, + decode: [256]utf8Enc{ + {1, [3]byte{0x00, 0x00, 0x00}}, {1, [3]byte{0x01, 0x00, 0x00}}, + {1, [3]byte{0x02, 0x00, 0x00}}, {1, [3]byte{0x03, 0x00, 0x00}}, + {1, [3]byte{0x04, 0x00, 0x00}}, {1, [3]byte{0x05, 0x00, 0x00}}, + {1, [3]byte{0x06, 0x00, 0x00}}, {1, [3]byte{0x07, 0x00, 0x00}}, + {1, [3]byte{0x08, 0x00, 0x00}}, {1, [3]byte{0x09, 0x00, 0x00}}, + {1, [3]byte{0x0a, 0x00, 0x00}}, {1, [3]byte{0x0b, 0x00, 0x00}}, + {1, [3]byte{0x0c, 0x00, 0x00}}, {1, [3]byte{0x0d, 0x00, 0x00}}, + {1, [3]byte{0x0e, 0x00, 0x00}}, {1, [3]byte{0x0f, 0x00, 0x00}}, + {1, [3]byte{0x10, 0x00, 0x00}}, {1, [3]byte{0x11, 0x00, 0x00}}, + {1, [3]byte{0x12, 0x00, 0x00}}, {1, [3]byte{0x13, 0x00, 0x00}}, + {1, [3]byte{0x14, 0x00, 0x00}}, {1, [3]byte{0x15, 0x00, 0x00}}, + {1, [3]byte{0x16, 0x00, 0x00}}, {1, [3]byte{0x17, 0x00, 0x00}}, + {1, [3]byte{0x18, 0x00, 0x00}}, {1, [3]byte{0x19, 0x00, 0x00}}, + {1, [3]byte{0x1a, 0x00, 0x00}}, {1, [3]byte{0x1b, 0x00, 0x00}}, + {1, [3]byte{0x1c, 0x00, 0x00}}, {1, [3]byte{0x1d, 0x00, 0x00}}, + {1, [3]byte{0x1e, 0x00, 0x00}}, {1, [3]byte{0x1f, 0x00, 0x00}}, + {1, [3]byte{0x20, 0x00, 0x00}}, {1, [3]byte{0x21, 0x00, 0x00}}, + {1, [3]byte{0x22, 0x00, 0x00}}, {1, [3]byte{0x23, 0x00, 0x00}}, + {1, [3]byte{0x24, 0x00, 0x00}}, {1, [3]byte{0x25, 0x00, 0x00}}, + {1, [3]byte{0x26, 0x00, 0x00}}, {1, [3]byte{0x27, 0x00, 0x00}}, + {1, [3]byte{0x28, 0x00, 0x00}}, {1, [3]byte{0x29, 0x00, 0x00}}, + {1, [3]byte{0x2a, 0x00, 0x00}}, {1, [3]byte{0x2b, 0x00, 0x00}}, + {1, [3]byte{0x2c, 0x00, 0x00}}, {1, [3]byte{0x2d, 0x00, 0x00}}, + {1, [3]byte{0x2e, 0x00, 0x00}}, {1, [3]byte{0x2f, 0x00, 0x00}}, + {1, [3]byte{0x30, 0x00, 0x00}}, {1, [3]byte{0x31, 0x00, 0x00}}, + {1, [3]byte{0x32, 0x00, 0x00}}, {1, [3]byte{0x33, 0x00, 0x00}}, + {1, [3]byte{0x34, 0x00, 0x00}}, {1, [3]byte{0x35, 0x00, 0x00}}, + {1, [3]byte{0x36, 0x00, 0x00}}, {1, [3]byte{0x37, 0x00, 0x00}}, + {1, [3]byte{0x38, 0x00, 0x00}}, {1, [3]byte{0x39, 0x00, 0x00}}, + {1, [3]byte{0x3a, 0x00, 0x00}}, {1, [3]byte{0x3b, 0x00, 0x00}}, + {1, [3]byte{0x3c, 0x00, 0x00}}, {1, [3]byte{0x3d, 0x00, 0x00}}, + {1, [3]byte{0x3e, 0x00, 0x00}}, {1, [3]byte{0x3f, 0x00, 0x00}}, + {1, [3]byte{0x40, 0x00, 0x00}}, {1, [3]byte{0x41, 0x00, 0x00}}, + {1, [3]byte{0x42, 0x00, 0x00}}, {1, [3]byte{0x43, 0x00, 0x00}}, + {1, [3]byte{0x44, 0x00, 0x00}}, {1, [3]byte{0x45, 0x00, 0x00}}, + {1, [3]byte{0x46, 0x00, 0x00}}, {1, [3]byte{0x47, 0x00, 0x00}}, + {1, [3]byte{0x48, 0x00, 0x00}}, {1, [3]byte{0x49, 0x00, 0x00}}, + {1, [3]byte{0x4a, 0x00, 0x00}}, {1, [3]byte{0x4b, 0x00, 0x00}}, + {1, [3]byte{0x4c, 0x00, 0x00}}, {1, [3]byte{0x4d, 0x00, 0x00}}, + {1, [3]byte{0x4e, 0x00, 0x00}}, {1, [3]byte{0x4f, 0x00, 0x00}}, + {1, [3]byte{0x50, 0x00, 0x00}}, {1, [3]byte{0x51, 0x00, 0x00}}, + {1, [3]byte{0x52, 0x00, 0x00}}, {1, [3]byte{0x53, 0x00, 0x00}}, + {1, [3]byte{0x54, 0x00, 0x00}}, {1, [3]byte{0x55, 0x00, 0x00}}, + {1, [3]byte{0x56, 0x00, 0x00}}, {1, [3]byte{0x57, 0x00, 0x00}}, + {1, [3]byte{0x58, 0x00, 0x00}}, {1, [3]byte{0x59, 0x00, 0x00}}, + {1, [3]byte{0x5a, 0x00, 0x00}}, {1, [3]byte{0x5b, 0x00, 0x00}}, + {1, [3]byte{0x5c, 0x00, 0x00}}, {1, [3]byte{0x5d, 0x00, 0x00}}, + {1, [3]byte{0x5e, 0x00, 0x00}}, {1, [3]byte{0x5f, 0x00, 0x00}}, + {1, [3]byte{0x60, 0x00, 0x00}}, {1, [3]byte{0x61, 0x00, 0x00}}, + {1, [3]byte{0x62, 0x00, 0x00}}, {1, [3]byte{0x63, 0x00, 0x00}}, + {1, [3]byte{0x64, 0x00, 0x00}}, {1, [3]byte{0x65, 0x00, 0x00}}, + {1, [3]byte{0x66, 0x00, 0x00}}, {1, [3]byte{0x67, 0x00, 0x00}}, + {1, [3]byte{0x68, 0x00, 0x00}}, {1, [3]byte{0x69, 0x00, 0x00}}, + {1, [3]byte{0x6a, 0x00, 0x00}}, {1, [3]byte{0x6b, 0x00, 0x00}}, + {1, [3]byte{0x6c, 0x00, 0x00}}, {1, [3]byte{0x6d, 0x00, 0x00}}, + {1, [3]byte{0x6e, 0x00, 0x00}}, {1, [3]byte{0x6f, 0x00, 0x00}}, + {1, [3]byte{0x70, 0x00, 0x00}}, {1, [3]byte{0x71, 0x00, 0x00}}, + {1, [3]byte{0x72, 0x00, 0x00}}, {1, [3]byte{0x73, 0x00, 0x00}}, + {1, [3]byte{0x74, 0x00, 0x00}}, {1, [3]byte{0x75, 0x00, 0x00}}, + {1, [3]byte{0x76, 0x00, 0x00}}, {1, [3]byte{0x77, 0x00, 0x00}}, + {1, [3]byte{0x78, 0x00, 0x00}}, {1, [3]byte{0x79, 0x00, 0x00}}, + {1, [3]byte{0x7a, 0x00, 0x00}}, {1, [3]byte{0x7b, 0x00, 0x00}}, + {1, [3]byte{0x7c, 0x00, 0x00}}, {1, [3]byte{0x7d, 0x00, 0x00}}, + {1, [3]byte{0x7e, 0x00, 0x00}}, {1, [3]byte{0x7f, 0x00, 0x00}}, + {3, [3]byte{0xef, 0x9e, 0x80}}, {3, [3]byte{0xef, 0x9e, 0x81}}, + {3, [3]byte{0xef, 0x9e, 0x82}}, {3, [3]byte{0xef, 0x9e, 0x83}}, + {3, [3]byte{0xef, 0x9e, 0x84}}, {3, [3]byte{0xef, 0x9e, 0x85}}, + {3, [3]byte{0xef, 0x9e, 0x86}}, {3, [3]byte{0xef, 0x9e, 0x87}}, + {3, [3]byte{0xef, 0x9e, 0x88}}, {3, [3]byte{0xef, 0x9e, 0x89}}, + {3, [3]byte{0xef, 0x9e, 0x8a}}, {3, [3]byte{0xef, 0x9e, 0x8b}}, + {3, [3]byte{0xef, 0x9e, 0x8c}}, {3, [3]byte{0xef, 0x9e, 0x8d}}, + {3, [3]byte{0xef, 0x9e, 0x8e}}, {3, [3]byte{0xef, 0x9e, 0x8f}}, + {3, [3]byte{0xef, 0x9e, 0x90}}, {3, [3]byte{0xef, 0x9e, 0x91}}, + {3, [3]byte{0xef, 0x9e, 0x92}}, {3, [3]byte{0xef, 0x9e, 0x93}}, + {3, [3]byte{0xef, 0x9e, 0x94}}, {3, [3]byte{0xef, 0x9e, 0x95}}, + {3, [3]byte{0xef, 0x9e, 0x96}}, {3, [3]byte{0xef, 0x9e, 0x97}}, + {3, [3]byte{0xef, 0x9e, 0x98}}, {3, [3]byte{0xef, 0x9e, 0x99}}, + {3, [3]byte{0xef, 0x9e, 0x9a}}, {3, [3]byte{0xef, 0x9e, 0x9b}}, + {3, [3]byte{0xef, 0x9e, 0x9c}}, {3, [3]byte{0xef, 0x9e, 0x9d}}, + {3, [3]byte{0xef, 0x9e, 0x9e}}, {3, [3]byte{0xef, 0x9e, 0x9f}}, + {3, [3]byte{0xef, 0x9e, 0xa0}}, {3, [3]byte{0xef, 0x9e, 0xa1}}, + {3, [3]byte{0xef, 0x9e, 0xa2}}, {3, [3]byte{0xef, 0x9e, 0xa3}}, + {3, [3]byte{0xef, 0x9e, 0xa4}}, {3, [3]byte{0xef, 0x9e, 0xa5}}, + {3, [3]byte{0xef, 0x9e, 0xa6}}, {3, [3]byte{0xef, 0x9e, 0xa7}}, + {3, [3]byte{0xef, 0x9e, 0xa8}}, {3, [3]byte{0xef, 0x9e, 0xa9}}, + {3, [3]byte{0xef, 0x9e, 0xaa}}, {3, [3]byte{0xef, 0x9e, 0xab}}, + {3, [3]byte{0xef, 0x9e, 0xac}}, {3, [3]byte{0xef, 0x9e, 0xad}}, + {3, [3]byte{0xef, 0x9e, 0xae}}, {3, [3]byte{0xef, 0x9e, 0xaf}}, + {3, [3]byte{0xef, 0x9e, 0xb0}}, {3, [3]byte{0xef, 0x9e, 0xb1}}, + {3, [3]byte{0xef, 0x9e, 0xb2}}, {3, [3]byte{0xef, 0x9e, 0xb3}}, + {3, [3]byte{0xef, 0x9e, 0xb4}}, {3, [3]byte{0xef, 0x9e, 0xb5}}, + {3, [3]byte{0xef, 0x9e, 0xb6}}, {3, [3]byte{0xef, 0x9e, 0xb7}}, + {3, [3]byte{0xef, 0x9e, 0xb8}}, {3, [3]byte{0xef, 0x9e, 0xb9}}, + {3, [3]byte{0xef, 0x9e, 0xba}}, {3, [3]byte{0xef, 0x9e, 0xbb}}, + {3, [3]byte{0xef, 0x9e, 0xbc}}, {3, [3]byte{0xef, 0x9e, 0xbd}}, + {3, [3]byte{0xef, 0x9e, 0xbe}}, {3, [3]byte{0xef, 0x9e, 0xbf}}, + {3, [3]byte{0xef, 0x9f, 0x80}}, {3, [3]byte{0xef, 0x9f, 0x81}}, + {3, [3]byte{0xef, 0x9f, 0x82}}, {3, [3]byte{0xef, 0x9f, 0x83}}, + {3, [3]byte{0xef, 0x9f, 0x84}}, {3, [3]byte{0xef, 0x9f, 0x85}}, + {3, [3]byte{0xef, 0x9f, 0x86}}, {3, [3]byte{0xef, 0x9f, 0x87}}, + {3, [3]byte{0xef, 0x9f, 0x88}}, {3, [3]byte{0xef, 0x9f, 0x89}}, + {3, [3]byte{0xef, 0x9f, 0x8a}}, {3, [3]byte{0xef, 0x9f, 0x8b}}, + {3, [3]byte{0xef, 0x9f, 0x8c}}, {3, [3]byte{0xef, 0x9f, 0x8d}}, + {3, [3]byte{0xef, 0x9f, 0x8e}}, {3, [3]byte{0xef, 0x9f, 0x8f}}, + {3, [3]byte{0xef, 0x9f, 0x90}}, {3, [3]byte{0xef, 0x9f, 0x91}}, + {3, [3]byte{0xef, 0x9f, 0x92}}, {3, [3]byte{0xef, 0x9f, 0x93}}, + {3, [3]byte{0xef, 0x9f, 0x94}}, {3, [3]byte{0xef, 0x9f, 0x95}}, + {3, [3]byte{0xef, 0x9f, 0x96}}, {3, [3]byte{0xef, 0x9f, 0x97}}, + {3, [3]byte{0xef, 0x9f, 0x98}}, {3, [3]byte{0xef, 0x9f, 0x99}}, + {3, [3]byte{0xef, 0x9f, 0x9a}}, {3, [3]byte{0xef, 0x9f, 0x9b}}, + {3, [3]byte{0xef, 0x9f, 0x9c}}, {3, [3]byte{0xef, 0x9f, 0x9d}}, + {3, [3]byte{0xef, 0x9f, 0x9e}}, {3, [3]byte{0xef, 0x9f, 0x9f}}, + {3, [3]byte{0xef, 0x9f, 0xa0}}, {3, [3]byte{0xef, 0x9f, 0xa1}}, + {3, [3]byte{0xef, 0x9f, 0xa2}}, {3, [3]byte{0xef, 0x9f, 0xa3}}, + {3, [3]byte{0xef, 0x9f, 0xa4}}, {3, [3]byte{0xef, 0x9f, 0xa5}}, + {3, [3]byte{0xef, 0x9f, 0xa6}}, {3, [3]byte{0xef, 0x9f, 0xa7}}, + {3, [3]byte{0xef, 0x9f, 0xa8}}, {3, [3]byte{0xef, 0x9f, 0xa9}}, + {3, [3]byte{0xef, 0x9f, 0xaa}}, {3, [3]byte{0xef, 0x9f, 0xab}}, + {3, [3]byte{0xef, 0x9f, 0xac}}, {3, [3]byte{0xef, 0x9f, 0xad}}, + {3, [3]byte{0xef, 0x9f, 0xae}}, {3, [3]byte{0xef, 0x9f, 0xaf}}, + {3, [3]byte{0xef, 0x9f, 0xb0}}, {3, [3]byte{0xef, 0x9f, 0xb1}}, + {3, [3]byte{0xef, 0x9f, 0xb2}}, {3, [3]byte{0xef, 0x9f, 0xb3}}, + {3, [3]byte{0xef, 0x9f, 0xb4}}, {3, [3]byte{0xef, 0x9f, 0xb5}}, + {3, [3]byte{0xef, 0x9f, 0xb6}}, {3, [3]byte{0xef, 0x9f, 0xb7}}, + {3, [3]byte{0xef, 0x9f, 0xb8}}, {3, [3]byte{0xef, 0x9f, 0xb9}}, + {3, [3]byte{0xef, 0x9f, 0xba}}, {3, [3]byte{0xef, 0x9f, 0xbb}}, + {3, [3]byte{0xef, 0x9f, 0xbc}}, {3, [3]byte{0xef, 0x9f, 0xbd}}, + {3, [3]byte{0xef, 0x9f, 0xbe}}, {3, [3]byte{0xef, 0x9f, 0xbf}}, + }, + encode: [256]uint32{ + 0x00000000, 0x01000001, 0x02000002, 0x03000003, 0x04000004, 0x05000005, 0x06000006, 0x07000007, + 0x08000008, 0x09000009, 0x0a00000a, 0x0b00000b, 0x0c00000c, 0x0d00000d, 0x0e00000e, 0x0f00000f, + 0x10000010, 0x11000011, 0x12000012, 0x13000013, 0x14000014, 0x15000015, 0x16000016, 0x17000017, + 0x18000018, 0x19000019, 0x1a00001a, 0x1b00001b, 0x1c00001c, 0x1d00001d, 0x1e00001e, 0x1f00001f, + 0x20000020, 0x21000021, 0x22000022, 0x23000023, 0x24000024, 0x25000025, 0x26000026, 0x27000027, + 0x28000028, 0x29000029, 0x2a00002a, 0x2b00002b, 0x2c00002c, 0x2d00002d, 0x2e00002e, 0x2f00002f, + 0x30000030, 0x31000031, 0x32000032, 0x33000033, 0x34000034, 0x35000035, 0x36000036, 0x37000037, + 0x38000038, 0x39000039, 0x3a00003a, 0x3b00003b, 0x3c00003c, 0x3d00003d, 0x3e00003e, 0x3f00003f, + 0x40000040, 0x41000041, 0x42000042, 0x43000043, 0x44000044, 0x45000045, 0x46000046, 0x47000047, + 0x48000048, 0x49000049, 0x4a00004a, 0x4b00004b, 0x4c00004c, 0x4d00004d, 0x4e00004e, 0x4f00004f, + 0x50000050, 0x51000051, 0x52000052, 0x53000053, 0x54000054, 0x55000055, 0x56000056, 0x57000057, + 0x58000058, 0x59000059, 0x5a00005a, 0x5b00005b, 0x5c00005c, 0x5d00005d, 0x5e00005e, 0x5f00005f, + 0x60000060, 0x61000061, 0x62000062, 0x63000063, 0x64000064, 0x65000065, 0x66000066, 0x67000067, + 0x68000068, 0x69000069, 0x6a00006a, 0x6b00006b, 0x6c00006c, 0x6d00006d, 0x6e00006e, 0x6f00006f, + 0x70000070, 0x71000071, 0x72000072, 0x73000073, 0x74000074, 0x75000075, 0x76000076, 0x77000077, + 0x78000078, 0x79000079, 0x7a00007a, 0x7b00007b, 0x7c00007c, 0x7d00007d, 0x7e00007e, 0x7f00007f, + 0x8000f780, 0x8100f781, 0x8200f782, 0x8300f783, 0x8400f784, 0x8500f785, 0x8600f786, 0x8700f787, + 0x8800f788, 0x8900f789, 0x8a00f78a, 0x8b00f78b, 0x8c00f78c, 0x8d00f78d, 0x8e00f78e, 0x8f00f78f, + 0x9000f790, 0x9100f791, 0x9200f792, 0x9300f793, 0x9400f794, 0x9500f795, 0x9600f796, 0x9700f797, + 0x9800f798, 0x9900f799, 0x9a00f79a, 0x9b00f79b, 0x9c00f79c, 0x9d00f79d, 0x9e00f79e, 0x9f00f79f, + 0xa000f7a0, 0xa100f7a1, 0xa200f7a2, 0xa300f7a3, 0xa400f7a4, 0xa500f7a5, 0xa600f7a6, 0xa700f7a7, + 0xa800f7a8, 0xa900f7a9, 0xaa00f7aa, 0xab00f7ab, 0xac00f7ac, 0xad00f7ad, 0xae00f7ae, 0xaf00f7af, + 0xb000f7b0, 0xb100f7b1, 0xb200f7b2, 0xb300f7b3, 0xb400f7b4, 0xb500f7b5, 0xb600f7b6, 0xb700f7b7, + 0xb800f7b8, 0xb900f7b9, 0xba00f7ba, 0xbb00f7bb, 0xbc00f7bc, 0xbd00f7bd, 0xbe00f7be, 0xbf00f7bf, + 0xc000f7c0, 0xc100f7c1, 0xc200f7c2, 0xc300f7c3, 0xc400f7c4, 0xc500f7c5, 0xc600f7c6, 0xc700f7c7, + 0xc800f7c8, 0xc900f7c9, 0xca00f7ca, 0xcb00f7cb, 0xcc00f7cc, 0xcd00f7cd, 0xce00f7ce, 0xcf00f7cf, + 0xd000f7d0, 0xd100f7d1, 0xd200f7d2, 0xd300f7d3, 0xd400f7d4, 0xd500f7d5, 0xd600f7d6, 0xd700f7d7, + 0xd800f7d8, 0xd900f7d9, 0xda00f7da, 0xdb00f7db, 0xdc00f7dc, 0xdd00f7dd, 0xde00f7de, 0xdf00f7df, + 0xe000f7e0, 0xe100f7e1, 0xe200f7e2, 0xe300f7e3, 0xe400f7e4, 0xe500f7e5, 0xe600f7e6, 0xe700f7e7, + 0xe800f7e8, 0xe900f7e9, 0xea00f7ea, 0xeb00f7eb, 0xec00f7ec, 0xed00f7ed, 0xee00f7ee, 0xef00f7ef, + 0xf000f7f0, 0xf100f7f1, 0xf200f7f2, 0xf300f7f3, 0xf400f7f4, 0xf500f7f5, 0xf600f7f6, 0xf700f7f7, + 0xf800f7f8, 0xf900f7f9, 0xfa00f7fa, 0xfb00f7fb, 0xfc00f7fc, 0xfd00f7fd, 0xfe00f7fe, 0xff00f7ff, + }, +} +var listAll = []encoding.Encoding{ + CodePage037, + CodePage437, + CodePage850, + CodePage852, + CodePage855, + CodePage858, + CodePage860, + CodePage862, + CodePage863, + CodePage865, + CodePage866, + CodePage1047, + CodePage1140, + ISO8859_1, + ISO8859_2, + ISO8859_3, + ISO8859_4, + ISO8859_5, + ISO8859_6, + ISO8859_6E, + ISO8859_6I, + ISO8859_7, + ISO8859_8, + ISO8859_8E, + ISO8859_8I, + ISO8859_9, + ISO8859_10, + ISO8859_13, + ISO8859_14, + ISO8859_15, + ISO8859_16, + KOI8R, + KOI8U, + Macintosh, + MacintoshCyrillic, + Windows874, + Windows1250, + Windows1251, + Windows1252, + Windows1253, + Windows1254, + Windows1255, + Windows1256, + Windows1257, + Windows1258, + XUserDefined, +} + +// Total table size 87024 bytes (84KiB); checksum: 811C9DC5 diff --git a/vendor/vendor.json b/vendor/vendor.json index eecc75aff..bb1623f04 100644 --- a/vendor/vendor.json +++ b/vendor/vendor.json @@ -344,6 +344,12 @@ "revision": "931915c3a2ca2661373f0b25bbedfee9e1958d2b", "revisionTime": "2017-09-08T20:15:21Z" }, + { + "checksumSHA1": "NLTyYVX4dn8jV1iad7p494AiZ8E=", + "path": "github.com/renier/xmlrpc", + "revision": "ce4a1a486c03a3c6e1816df25b8c559d1879d380", + "revisionTime": "2017-07-08T15:45:48Z" + }, { "checksumSHA1": "iscXwx3+hPMLz1v8ul05R1gnUg4=", "path": "github.com/robertkrimen/otto", @@ -392,6 +398,42 @@ "revision": "a813c59b1b4471ff7ecd3b533bac2f7e7d178784", "revisionTime": "2017-08-18T08:51:46Z" }, + { + "checksumSHA1": "KeNIYJQUdE6o196SaYuLMmjEPZM=", + "path": "github.com/softlayer/softlayer-go/config", + "revision": "5e1c8cccc730778a87ca5a0c5348fcfddc02cee2", + "revisionTime": "2017-08-04T16:05:55Z" + }, + { + "checksumSHA1": "MuNEBvc3lQsRvDc0yiDr1jzBNfo=", + "path": "github.com/softlayer/softlayer-go/datatypes", + "revision": "5e1c8cccc730778a87ca5a0c5348fcfddc02cee2", + "revisionTime": "2017-08-04T16:05:55Z" + }, + { + "checksumSHA1": "2UnaaOo4TreSegFy3tNtQ3NRv18=", + "path": "github.com/softlayer/softlayer-go/filter", + "revision": "5e1c8cccc730778a87ca5a0c5348fcfddc02cee2", + "revisionTime": "2017-08-04T16:05:55Z" + }, + { + "checksumSHA1": "gCS7XyVNzhkJ3kFMmvMsIcWYBF8=", + "path": "github.com/softlayer/softlayer-go/services", + "revision": "5e1c8cccc730778a87ca5a0c5348fcfddc02cee2", + "revisionTime": "2017-08-04T16:05:55Z" + }, + { + "checksumSHA1": "LQb5KAfCUO+lLcdddN3lQpRs0xE=", + "path": "github.com/softlayer/softlayer-go/session", + "revision": "5e1c8cccc730778a87ca5a0c5348fcfddc02cee2", + "revisionTime": "2017-08-04T16:05:55Z" + }, + { + "checksumSHA1": "rRLFLMdzIFBSVSNDy34s01ZYGjs=", + "path": "github.com/softlayer/softlayer-go/sl", + "revision": "5e1c8cccc730778a87ca5a0c5348fcfddc02cee2", + "revisionTime": "2017-08-04T16:05:55Z" + }, { "checksumSHA1": "Dsu5YKdxGeL3Q2VkQ3kuMuebFDc=", "path": "github.com/tdewolff/buffer", @@ -494,6 +536,12 @@ "revision": "2910a502d2bf9e43193af9d68ca516529614eed3", "revisionTime": "2016-07-21T22:28:28Z" }, + { + "checksumSHA1": "HgcUFTOQF5jOYtTIj5obR3GVN9A=", + "path": "golang.org/x/text/encoding/charmap", + "revision": "3bd178b88a8180be2df394a1fbb81313916f0e7b", + "revisionTime": "2017-07-29T23:24:55Z" + }, { "checksumSHA1": "zeHyHebIZl1tGuwGllIhjfci+wI=", "path": "golang.org/x/text/encoding/internal",