aboutsummaryrefslogtreecommitdiffstats
path: root/src/k8splugin/api/model.go
blob: 0e4863c460f2d6962b3c70d599ab4c8de59e743a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
/*
Copyright 2018 Intel Corporation.
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 api

// CreateVnfRequest contains the VNF creation request parameters
type CreateVnfRequest struct {
	CloudRegionID string                   `json:"cloud_region_id"`
	CsarID        string                   `json:"csar_id"`
	OOFParams     []map[string]interface{} `json:"oof_parameters"`
	NetworkParams NetworkParameters        `json:"network_parameters"`
	Namespace     string                   `json:"namespace"`
	Name          string                   `json:"vnf_instance_name"`
	Description   string                   `json:"vnf_instance_description"`
}

// CreateVnfResponse contains the VNF creation response parameters
type CreateVnfResponse struct {
	VNFID         string              `json:"vnf_id"`
	CloudRegionID string              `json:"cloud_region_id"`
	Namespace     string              `json:"namespace"`
	VNFComponents map[string][]string `json:"vnf_components"`
}

// ListVnfsResponse contains the list of VNFs response parameters
type ListVnfsResponse struct {
	VNFs []string `json:"vnf_id_list"`
}

// NetworkParameters contains the networking info required by the VNF instance
type NetworkParameters struct {
	OAMI OAMIPParams `json:"oam_ip_address"`
	// Add other network parameters if necessary.
}

// OAMIPParams contains the management networking info required by the VNF instance
type OAMIPParams struct {
	ConnectionPoint string `json:"connection_point"`
	IPAddress       string `json:"ip_address"`
	WorkLoadName    string `json:"workload_name"`
}

// UpdateVnfRequest contains the VNF creation parameters
type UpdateVnfRequest struct {
	CloudRegionID string                   `json:"cloud_region_id"`
	CsarID        string                   `json:"csar_id"`
	OOFParams     []map[string]interface{} `json:"oof_parameters"`
	NetworkParams NetworkParameters        `json:"network_parameters"`
	Namespace     string                   `json:"namespace"`
	Name          string                   `json:"vnf_instance_name"`
	Description   string                   `json:"vnf_instance_description"`
}

// UpdateVnfResponse contains the VNF update response parameters
type UpdateVnfResponse struct {
	DeploymentID string `json:"vnf_id"`
	Name         string `json:"name"`
}

// GetVnfResponse returns information about a specific VNF instance
type GetVnfResponse struct {
	VNFID         string              `json:"vnf_id"`
	CloudRegionID string              `json:"cloud_region_id"`
	Namespace     string              `json:"namespace"`
	VNFComponents map[string][]string `json:"vnf_components"`
}