Bumps the go-deps group with 10 updates: | Package | From | To | | --- | --- | --- | | [cloud.google.com/go/compute](https://github.com/googleapis/google-cloud-go) | `1.23.1` | `1.23.3` | | [cloud.google.com/go/storage](https://github.com/googleapis/google-cloud-go) | `1.33.0` | `1.35.1` | | [github.com/aws/aws-sdk-go](https://github.com/aws/aws-sdk-go) | `1.45.27` | `1.47.9` | | [github.com/hashicorp/go-retryablehttp](https://github.com/hashicorp/go-retryablehttp) | `0.7.4` | `0.7.5` | | [github.com/labstack/echo/v4](https://github.com/labstack/echo) | `4.11.2` | `4.11.3` | | [github.com/labstack/gommon](https://github.com/labstack/gommon) | `0.4.0` | `0.4.1` | | [github.com/openshift-online/ocm-sdk-go](https://github.com/openshift-online/ocm-sdk-go) | `0.1.374` | `0.1.385` | | [github.com/osbuild/images](https://github.com/osbuild/images) | `0.12.0` | `0.15.0` | | [github.com/spf13/cobra](https://github.com/spf13/cobra) | `1.7.0` | `1.8.0` | | [golang.org/x/oauth2](https://github.com/golang/oauth2) | `0.13.0` | `0.14.0` | Updates `cloud.google.com/go/compute` from 1.23.1 to 1.23.3 - [Release notes](https://github.com/googleapis/google-cloud-go/releases) - [Changelog](https://github.com/googleapis/google-cloud-go/blob/main/documentai/CHANGES.md) - [Commits](https://github.com/googleapis/google-cloud-go/compare/pubsub/v1.23.1...compute/v1.23.3) Updates `cloud.google.com/go/storage` from 1.33.0 to 1.35.1 - [Release notes](https://github.com/googleapis/google-cloud-go/releases) - [Changelog](https://github.com/googleapis/google-cloud-go/blob/main/CHANGES.md) - [Commits](https://github.com/googleapis/google-cloud-go/compare/pubsub/v1.33.0...storage/v1.35.1) Updates `github.com/aws/aws-sdk-go` from 1.45.27 to 1.47.9 - [Release notes](https://github.com/aws/aws-sdk-go/releases) - [Commits](https://github.com/aws/aws-sdk-go/compare/v1.45.27...v1.47.9) Updates `github.com/hashicorp/go-retryablehttp` from 0.7.4 to 0.7.5 - [Changelog](https://github.com/hashicorp/go-retryablehttp/blob/main/CHANGELOG.md) - [Commits](https://github.com/hashicorp/go-retryablehttp/compare/v0.7.4...v0.7.5) Updates `github.com/labstack/echo/v4` from 4.11.2 to 4.11.3 - [Release notes](https://github.com/labstack/echo/releases) - [Changelog](https://github.com/labstack/echo/blob/master/CHANGELOG.md) - [Commits](https://github.com/labstack/echo/compare/v4.11.2...v4.11.3) Updates `github.com/labstack/gommon` from 0.4.0 to 0.4.1 - [Release notes](https://github.com/labstack/gommon/releases) - [Commits](https://github.com/labstack/gommon/compare/v0.4.0...v0.4.1) Updates `github.com/openshift-online/ocm-sdk-go` from 0.1.374 to 0.1.385 - [Release notes](https://github.com/openshift-online/ocm-sdk-go/releases) - [Changelog](https://github.com/openshift-online/ocm-sdk-go/blob/main/CHANGES.md) - [Commits](https://github.com/openshift-online/ocm-sdk-go/compare/v0.1.374...v0.1.385) Updates `github.com/osbuild/images` from 0.12.0 to 0.15.0 - [Release notes](https://github.com/osbuild/images/releases) - [Commits](https://github.com/osbuild/images/compare/v0.12.0...v0.15.0) Updates `github.com/spf13/cobra` from 1.7.0 to 1.8.0 - [Release notes](https://github.com/spf13/cobra/releases) - [Commits](https://github.com/spf13/cobra/compare/v1.7.0...v1.8.0) Updates `golang.org/x/oauth2` from 0.13.0 to 0.14.0 - [Commits](https://github.com/golang/oauth2/compare/v0.13.0...v0.14.0) --- updated-dependencies: - dependency-name: cloud.google.com/go/compute dependency-type: direct:production update-type: version-update:semver-patch dependency-group: go-deps - dependency-name: cloud.google.com/go/storage dependency-type: direct:production update-type: version-update:semver-minor dependency-group: go-deps - dependency-name: github.com/aws/aws-sdk-go dependency-type: direct:production update-type: version-update:semver-minor dependency-group: go-deps - dependency-name: github.com/hashicorp/go-retryablehttp dependency-type: direct:production update-type: version-update:semver-patch dependency-group: go-deps - dependency-name: github.com/labstack/echo/v4 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: go-deps - dependency-name: github.com/labstack/gommon dependency-type: direct:production update-type: version-update:semver-patch dependency-group: go-deps - dependency-name: github.com/openshift-online/ocm-sdk-go dependency-type: direct:production update-type: version-update:semver-patch dependency-group: go-deps - dependency-name: github.com/osbuild/images dependency-type: direct:production update-type: version-update:semver-minor dependency-group: go-deps - dependency-name: github.com/spf13/cobra dependency-type: direct:production update-type: version-update:semver-minor dependency-group: go-deps - dependency-name: golang.org/x/oauth2 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: go-deps ... Signed-off-by: dependabot[bot] <support@github.com>
227 lines
6.1 KiB
Go
227 lines
6.1 KiB
Go
/*
|
|
Copyright (c) 2015-2023 VMware, Inc. All Rights Reserved.
|
|
|
|
Licensed under the Apache License, Version 2.0 (the "License");
|
|
you may not use this file except in compliance with the License.
|
|
You may obtain a copy of the License at
|
|
|
|
http://www.apache.org/licenses/LICENSE-2.0
|
|
|
|
Unless required by applicable law or agreed to in writing, software
|
|
distributed under the License is distributed on an "AS IS" BASIS,
|
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
See the License for the specific language governing permissions and
|
|
limitations under the License.
|
|
*/
|
|
|
|
package ovf
|
|
|
|
import (
|
|
"fmt"
|
|
)
|
|
|
|
type Envelope struct {
|
|
References []File `xml:"References>File"`
|
|
|
|
// Package level meta-data
|
|
Annotation *AnnotationSection `xml:"AnnotationSection"`
|
|
Product *ProductSection `xml:"ProductSection"`
|
|
Network *NetworkSection `xml:"NetworkSection"`
|
|
Disk *DiskSection `xml:"DiskSection"`
|
|
OperatingSystem *OperatingSystemSection `xml:"OperatingSystemSection"`
|
|
Eula *EulaSection `xml:"EulaSection"`
|
|
VirtualHardware *VirtualHardwareSection `xml:"VirtualHardwareSection"`
|
|
ResourceAllocation *ResourceAllocationSection `xml:"ResourceAllocationSection"`
|
|
DeploymentOption *DeploymentOptionSection `xml:"DeploymentOptionSection"`
|
|
|
|
// Content: A VirtualSystem or a VirtualSystemCollection
|
|
VirtualSystem *VirtualSystem `xml:"VirtualSystem"`
|
|
}
|
|
|
|
type VirtualSystem struct {
|
|
Content
|
|
|
|
Annotation []AnnotationSection `xml:"AnnotationSection"`
|
|
Product []ProductSection `xml:"ProductSection"`
|
|
OperatingSystem []OperatingSystemSection `xml:"OperatingSystemSection"`
|
|
Eula []EulaSection `xml:"EulaSection"`
|
|
VirtualHardware []VirtualHardwareSection `xml:"VirtualHardwareSection"`
|
|
}
|
|
|
|
type File struct {
|
|
ID string `xml:"id,attr"`
|
|
Href string `xml:"href,attr"`
|
|
Size uint `xml:"size,attr"`
|
|
Compression *string `xml:"compression,attr"`
|
|
ChunkSize *int `xml:"chunkSize,attr"`
|
|
}
|
|
|
|
type Content struct {
|
|
ID string `xml:"id,attr"`
|
|
Info string `xml:"Info"`
|
|
Name *string `xml:"Name"`
|
|
}
|
|
|
|
type Section struct {
|
|
Required *bool `xml:"required,attr"`
|
|
Info string `xml:"Info"`
|
|
Category string `xml:"Category"`
|
|
}
|
|
|
|
type AnnotationSection struct {
|
|
Section
|
|
|
|
Annotation string `xml:"Annotation"`
|
|
}
|
|
|
|
type ProductSection struct {
|
|
Section
|
|
|
|
Class *string `xml:"class,attr"`
|
|
Instance *string `xml:"instance,attr"`
|
|
|
|
Product string `xml:"Product"`
|
|
Vendor string `xml:"Vendor"`
|
|
Version string `xml:"Version"`
|
|
FullVersion string `xml:"FullVersion"`
|
|
ProductURL string `xml:"ProductUrl"`
|
|
VendorURL string `xml:"VendorUrl"`
|
|
AppURL string `xml:"AppUrl"`
|
|
Property []Property `xml:"Property"`
|
|
}
|
|
|
|
func (p ProductSection) Key(prop Property) string {
|
|
// From OVF spec, section 9.5.1:
|
|
// key-value-env = [class-value "."] key-value-prod ["." instance-value]
|
|
|
|
k := prop.Key
|
|
if p.Class != nil {
|
|
k = fmt.Sprintf("%s.%s", *p.Class, k)
|
|
}
|
|
if p.Instance != nil {
|
|
k = fmt.Sprintf("%s.%s", k, *p.Instance)
|
|
}
|
|
return k
|
|
}
|
|
|
|
type Property struct {
|
|
Key string `xml:"key,attr"`
|
|
Type string `xml:"type,attr"`
|
|
Qualifiers *string `xml:"qualifiers,attr"`
|
|
UserConfigurable *bool `xml:"userConfigurable,attr"`
|
|
Default *string `xml:"value,attr"`
|
|
Password *bool `xml:"password,attr"`
|
|
|
|
Label *string `xml:"Label"`
|
|
Description *string `xml:"Description"`
|
|
|
|
Values []PropertyConfigurationValue `xml:"Value"`
|
|
}
|
|
|
|
type PropertyConfigurationValue struct {
|
|
Value string `xml:"value,attr"`
|
|
Configuration *string `xml:"configuration,attr"`
|
|
}
|
|
|
|
type NetworkSection struct {
|
|
Section
|
|
|
|
Networks []Network `xml:"Network"`
|
|
}
|
|
|
|
type Network struct {
|
|
Name string `xml:"name,attr"`
|
|
|
|
Description string `xml:"Description"`
|
|
}
|
|
|
|
type DiskSection struct {
|
|
Section
|
|
|
|
Disks []VirtualDiskDesc `xml:"Disk"`
|
|
}
|
|
|
|
type VirtualDiskDesc struct {
|
|
DiskID string `xml:"diskId,attr"`
|
|
FileRef *string `xml:"fileRef,attr"`
|
|
Capacity string `xml:"capacity,attr"`
|
|
CapacityAllocationUnits *string `xml:"capacityAllocationUnits,attr"`
|
|
Format *string `xml:"format,attr"`
|
|
PopulatedSize *int `xml:"populatedSize,attr"`
|
|
ParentRef *string `xml:"parentRef,attr"`
|
|
}
|
|
|
|
type OperatingSystemSection struct {
|
|
Section
|
|
|
|
ID int16 `xml:"id,attr"`
|
|
Version *string `xml:"version,attr"`
|
|
OSType *string `xml:"osType,attr"`
|
|
|
|
Description *string `xml:"Description"`
|
|
}
|
|
|
|
type EulaSection struct {
|
|
Section
|
|
|
|
License string `xml:"License"`
|
|
}
|
|
|
|
type Config struct {
|
|
Required *bool `xml:"required,attr"`
|
|
Key string `xml:"key,attr"`
|
|
Value string `xml:"value,attr"`
|
|
}
|
|
|
|
type VirtualHardwareSection struct {
|
|
Section
|
|
|
|
ID *string `xml:"id,attr"`
|
|
Transport *string `xml:"transport,attr"`
|
|
|
|
System *VirtualSystemSettingData `xml:"System"`
|
|
Item []ResourceAllocationSettingData `xml:"Item"`
|
|
StorageItem []StorageAllocationSettingData `xml:"StorageItem"`
|
|
Config []Config `xml:"Config"`
|
|
ExtraConfig []Config `xml:"ExtraConfig"`
|
|
}
|
|
|
|
type VirtualSystemSettingData struct {
|
|
CIMVirtualSystemSettingData
|
|
}
|
|
|
|
type ResourceAllocationSettingData struct {
|
|
CIMResourceAllocationSettingData
|
|
|
|
Required *bool `xml:"required,attr"`
|
|
Configuration *string `xml:"configuration,attr"`
|
|
Bound *string `xml:"bound,attr"`
|
|
}
|
|
|
|
type StorageAllocationSettingData struct {
|
|
CIMStorageAllocationSettingData
|
|
|
|
Required *bool `xml:"required,attr"`
|
|
Configuration *string `xml:"configuration,attr"`
|
|
Bound *string `xml:"bound,attr"`
|
|
}
|
|
|
|
type ResourceAllocationSection struct {
|
|
Section
|
|
|
|
Item []ResourceAllocationSettingData `xml:"Item"`
|
|
}
|
|
|
|
type DeploymentOptionSection struct {
|
|
Section
|
|
|
|
Configuration []DeploymentOptionConfiguration `xml:"Configuration"`
|
|
}
|
|
|
|
type DeploymentOptionConfiguration struct {
|
|
ID string `xml:"id,attr"`
|
|
Default *bool `xml:"default,attr"`
|
|
|
|
Label string `xml:"Label"`
|
|
Description string `xml:"Description"`
|
|
}
|