Repository: clouditor/clouditor
Pull request #294 (2021-08-04 11:25:28)

Fix voc files
Changes in this PR: 
- voc file naming changed from camleCase to snake_case
- variable names of Slices changed to plural (in case of 'y' to 'ies': functionality - functionalities)

codecov[bot]: # [Codecov](https://codecov.io/gh/clouditor/clouditor/pull/294?src=pr&el=h1&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=clouditor) Report
> Merging [#294](https://codecov.io/gh/clouditor/clouditor/pull/294?src=pr&el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=clouditor) (c87fa6a) into [main](https://codecov.io/gh/clouditor/clouditor/commit/3521ccf961d807c78632096f721b12ae3e175587?el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=clouditor) (3521ccf) will **not change** coverage.
> The diff coverage is `100.00%`.

[![Impacted file tree graph](https://codecov.io/gh/clouditor/clouditor/pull/294/graphs/tree.svg?width=650&height=150&src=pr&token=syrXsw5LTX&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=clouditor)](https://codecov.io/gh/clouditor/clouditor/pull/294?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=clouditor)

```diff
@@           Coverage Diff           @@
##             main     #294   +/-   ##
=======================================
  Coverage   61.65%   61.65%           
=======================================
  Files          33       33           
  Lines        1875     1875           
=======================================
  Hits         1156     1156           
  Misses        598      598           
  Partials      121      121           
```

| Flag | Coverage Δ | |
|---|---|---|
| unittests | `61.65% <100.00%> (ø)` | |

Flags with carried forward coverage won't be shown. [Click here](https://docs.codecov.io/docs/carryforward-flags?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=clouditor#carryforward-flags-in-the-pull-request-comment) to find out more.

| [Impacted Files](https://codecov.io/gh/clouditor/clouditor/pull/294?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=clouditor) | Coverage Δ | |
|---|---|---|
| [service/discovery/aws/storage.go](https://codecov.io/gh/clouditor/clouditor/pull/294/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=clouditor#diff-c2VydmljZS9kaXNjb3ZlcnkvYXdzL3N0b3JhZ2UuZ28=) | `88.69% <100.00%> (ø)` | |
| [service/discovery/azure/iac\_template.go](https://codecov.io/gh/clouditor/clouditor/pull/294/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=clouditor#diff-c2VydmljZS9kaXNjb3ZlcnkvYXp1cmUvaWFjX3RlbXBsYXRlLmdv) | `77.71% <100.00%> (ø)` | |
| [service/discovery/azure/network.go](https://codecov.io/gh/clouditor/clouditor/pull/294/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=clouditor#diff-c2VydmljZS9kaXNjb3ZlcnkvYXp1cmUvbmV0d29yay5nbw==) | `81.90% <100.00%> (ø)` | |
| [service/discovery/azure/storage.go](https://codecov.io/gh/clouditor/clouditor/pull/294/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=clouditor#diff-c2VydmljZS9kaXNjb3ZlcnkvYXp1cmUvc3RvcmFnZS5nbw==) | `83.67% <100.00%> (ø)` | |
| [service/discovery/k8s/network.go](https://codecov.io/gh/clouditor/clouditor/pull/294/diff?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=clouditor#diff-c2VydmljZS9kaXNjb3ZlcnkvazhzL25ldHdvcmsuZ28=) | `90.32% <100.00%> (ø)` | |

------

[Continue to review full report at Codecov](https://codecov.io/gh/clouditor/clouditor/pull/294?src=pr&el=continue&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=clouditor).
> **Legend** - [Click here to learn more](https://docs.codecov.io/docs/codecov-delta?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=clouditor)
> `Δ = absolute <relative> (impact)`, `ø = not affected`, `? = missing data`
> Powered by [Codecov](https://codecov.io/gh/clouditor/clouditor/pull/294?src=pr&el=footer&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=clouditor). Last update [3521ccf...c87fa6a](https://codecov.io/gh/clouditor/clouditor/pull/294?src=pr&el=lastupdated&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=clouditor). Read the [comment docs](https://docs.codecov.io/docs/pull-request-comments?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=clouditor).


Patch:
diff --git a/.vscode/launch.json b/.vscode/launch.json
index 611b65b0..a275e77b 100644
--- a/.vscode/launch.json
+++ b/.vscode/launch.json
@@ -11,8 +11,7 @@
             "mode": "auto",
             "program": "${workspaceFolder}/cmd/engine/engine.go",
             "env": {},
-            "args": ["--db-in-memory"],
             "preLaunchTask": "go: generate"
         }
     ]
-}
\ No newline at end of file
+}
diff --git a/service/discovery/aws/storage.go b/service/discovery/aws/storage.go
index 5431fedd..7fb7f25b 100644
--- a/service/discovery/aws/storage.go
+++ b/service/discovery/aws/storage.go
@@ -222,9 +222,9 @@ func (d *awsS3Discovery) getEncryptionAtRest(bucket string) (e *voc.AtRestEncryp
 	}
 	e.Algorithm = string(resp.ServerSideEncryptionConfiguration.Rules[0].ApplyServerSideEncryptionByDefault.SSEAlgorithm)
 	if e.Algorithm == string(types.ServerSideEncryptionAes256) {
-		e.Keymanager = "SSE-S3"
+		e.KeyManager = "SSE-S3"
 	} else {
-		e.Keymanager = "SSE-KMS"
+		e.KeyManager = "SSE-KMS"
 	}
 	e.Enabled = true
 	return
diff --git a/service/discovery/azure/iac_template.go b/service/discovery/azure/iac_template.go
index a6be358f..85e63a61 100644
--- a/service/discovery/azure/iac_template.go
+++ b/service/discovery/azure/iac_template.go
@@ -222,7 +222,7 @@ func (d *azureIacTemplateDiscovery) createStorageResource(resourceValue map[stri
 				Type:         []string{"ObjectStorage", "Storage", "Resource"},
 			},
 			AtRestEncryption: &voc.AtRestEncryption{
-				Keymanager: getStorageKeySource(resourceValue),
+				KeyManager: getStorageKeySource(resourceValue),
 				Algorithm:  "AES-265", // seems to be always AWS-256,
 				Enabled:    blobServiceEncryptionEnabled(resourceValue),
 			},
@@ -316,7 +316,7 @@ func (d *azureIacTemplateDiscovery) createLBResource(resourceValue map[string]in
 			Inbound:         false,
 			RestrictedPorts: "",
 		},
-		HttpEndpoint: &[]voc.HttpEndpoint{},
+		HttpEndpoints: &[]voc.HttpEndpoint{},
 		// // TODO(all): Do we need the httpEndpoint?
 		// HttpEndpoint: &voc.HttpEndpoint{},
 	}
diff --git a/service/discovery/azure/network.go b/service/discovery/azure/network.go
index b55dde10..9df0a84e 100644
--- a/service/discovery/azure/network.go
+++ b/service/discovery/azure/network.go
@@ -150,7 +150,7 @@ func (d *azureNetworkDiscovery) handleLoadBalancer(lb *network.LoadBalancer) voc
 		// TODO: do we need the AccessRestriction for load balancers?
 		AccessRestriction: &voc.AccessRestriction{},
 		// TODO: do we need the httpEndpoint for load balancers?
-		HttpEndpoint: &[]voc.HttpEndpoint{},
+		HttpEndpoints: &[]voc.HttpEndpoint{},
 	}
 }
 
diff --git a/service/discovery/azure/storage.go b/service/discovery/azure/storage.go
index 25e6eee3..5de57f12 100644
--- a/service/discovery/azure/storage.go
+++ b/service/discovery/azure/storage.go
@@ -111,7 +111,7 @@ func handleStorageAccount(account *storage.Account) voc.IsStorage {
 				Type:         []string{"ObjectStorage", "Storage", "Resource"},
 			},
 			AtRestEncryption: &voc.AtRestEncryption{
-				Keymanager: string(account.Encryption.KeySource),
+				KeyManager: string(account.Encryption.KeySource),
 				Algorithm:  "AES-265", // seems to be always AES-256
 				Enabled:    to.Bool(account.Encryption.Services.Blob.Enabled),
 			},
diff --git a/service/discovery/k8s/network.go b/service/discovery/k8s/network.go
index 959d9cf2..3b378164 100644
--- a/service/discovery/k8s/network.go
+++ b/service/discovery/k8s/network.go
@@ -125,7 +125,7 @@ func (k k8sNetworkDiscovery) handleIngress(ingress *v1.Ingress) voc.IsNetwork {
 		},
 		// TODO(oxisto): fill out access restrictions
 		AccessRestriction: &voc.AccessRestriction{},
-		HttpEndpoint:      &[]voc.HttpEndpoint{},
+		HttpEndpoints:     &[]voc.HttpEndpoint{},
 	}
 
 	for _, rule := range ingress.Spec.Rules {
@@ -161,7 +161,7 @@ func (k k8sNetworkDiscovery) handleIngress(ingress *v1.Ingress) voc.IsNetwork {
 			// 	TransportEncryption: te,
 			// }
 
-			*lb.HttpEndpoint = append(*lb.HttpEndpoint, http)
+			*lb.HttpEndpoints = append(*lb.HttpEndpoints, http)
 		}
 	}
 
diff --git a/voc/aBAC.go b/voc/abac.go
similarity index 100%
rename from voc/aBAC.go
rename to voc/abac.go
diff --git a/voc/accessRestriction.go b/voc/access_restriction.go
similarity index 100%
rename from voc/accessRestriction.go
rename to voc/access_restriction.go
diff --git a/voc/application.go b/voc/application.go
index 5f54338d..b6180998 100644
--- a/voc/application.go
+++ b/voc/application.go
@@ -28,7 +28,7 @@ package voc
 type Application struct {
 
 	Compute	[]ResourceID `json:"Compute"`
-	Functionality	*[]Functionality `json:"functionality"`
+	Functionalities	*[]Functionality `json:"functionalities"`
 	ProgrammingLanguage	string `json:"programmingLanguage"`
 	TranslationUnits	[]string `json:"translationUnits"`
 }
diff --git a/voc/atRestEncryption.go b/voc/at_rest_encryption.go
similarity index 97%
rename from voc/atRestEncryption.go
rename to voc/at_rest_encryption.go
index 689b66f3..a9b0f7ca 100644
--- a/voc/atRestEncryption.go
+++ b/voc/at_rest_encryption.go
@@ -27,7 +27,7 @@ package voc
 
 type AtRestEncryption struct {
 	*Confidentiality
-	Keymanager	string `json:"keymanager"`
+	KeyManager	string `json:"keyManager"`
 	Algorithm	string `json:"algorithm"`
 	Enabled	bool `json:"enabled"`
 }
diff --git a/voc/blockStorage.go b/voc/block_storage.go
similarity index 100%
rename from voc/blockStorage.go
rename to voc/block_storage.go
diff --git a/voc/certificateBasedAuthentication.go b/voc/certificate_based_authentication.go
similarity index 100%
rename from voc/certificateBasedAuthentication.go
rename to voc/certificate_based_authentication.go
diff --git a/voc/cICDService.go b/voc/cicd_service.go
similarity index 100%
rename from voc/cICDService.go
rename to voc/cicd_service.go
diff --git a/voc/cloudResource.go.backup b/voc/cloudResource.go.backup
deleted file mode 100644
index f90dd71f..00000000
--- a/voc/cloudResource.go.backup
+++ /dev/null
@@ -1,14 +0,0 @@
-package voc
-
-type CloudResource struct {
-
-	GeoLocation	*GeoLocation `json:"geoLocation"`
-	Labels	map[string]string `json:"labels"`
-}
-
-func NewCloudResource(labels map[string]string) *CloudResource{
-	return &CloudResource{
-		GeoLocation: TODO get propertyName stuff,
-		Labels:	labels,
-	}
-}
\ No newline at end of file
diff --git a/voc/cloudResourceGroup.go b/voc/cloud_resource_group.go
similarity index 95%
rename from voc/cloudResourceGroup.go
rename to voc/cloud_resource_group.go
index 178f8638..bb35f324 100644
--- a/voc/cloudResourceGroup.go
+++ b/voc/cloud_resource_group.go
@@ -27,6 +27,6 @@ package voc
 
 type CloudResourceGroup struct {
 
-	CloudResource	*[]CloudResource `json:"cloudResource"`
+	CloudResources	*[]CloudResource `json:"cloudResources"`
 }
 
diff --git a/voc/cloudSDK.go b/voc/cloud_sdk.go
similarity index 100%
rename from voc/cloudSDK.go
rename to voc/cloud_sdk.go
diff --git a/voc/container.go b/voc/container.go
index e0fcb99d..91cfb85a 100644
--- a/voc/container.go
+++ b/voc/container.go
@@ -28,5 +28,6 @@ package voc
 type Container struct {
 	*Compute
 	Image	[]ResourceID `json:"image"`
+	NetworkInterface	[]ResourceID `json:"networkInterface"`
 }
 
diff --git a/voc/containerImage.go b/voc/container_image.go
similarity index 100%
rename from voc/containerImage.go
rename to voc/container_image.go
diff --git a/voc/containerOrchestration.go b/voc/container_orchestration.go
similarity index 96%
rename from voc/containerOrchestration.go
rename to voc/container_orchestration.go
index 390cad9e..10c88c32 100644
--- a/voc/containerOrchestration.go
+++ b/voc/container_orchestration.go
@@ -27,7 +27,7 @@ package voc
 
 type ContainerOrchestration struct {
 	*CloudResource
-	Container	[]ResourceID `json:"container"`
+	Containers	[]ResourceID `json:"containers"`
 	ResourceLogging	[]ResourceID `json:"resourceLogging"`
 	ManagementUrl	string `json:"managementUrl"`
 }
diff --git a/voc/containerRegistry.go b/voc/container_registry.go
similarity index 100%
rename from voc/containerRegistry.go
rename to voc/container_registry.go
diff --git a/voc/customerKeyEncryption.go b/voc/customer_key_encryption.go
similarity index 100%
rename from voc/customerKeyEncryption.go
rename to voc/customer_key_encryption.go
diff --git a/voc/dDoSProtection.go b/voc/d_do_s_protection.go
similarity index 100%
rename from voc/dDoSProtection.go
rename to voc/d_do_s_protection.go
diff --git a/voc/database_connect.go b/voc/database_connect.go
new file mode 100644
index 00000000..b51247c0
--- /dev/null
+++ b/voc/database_connect.go
@@ -0,0 +1,31 @@
+// Copyright 2021 Fraunhofer AISEC
+//
+// 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.
+//
+//           $$\                           $$\ $$\   $$\
+//           $$ |                          $$ |\__|  $$ |
+//  $$$$$$$\ $$ | $$$$$$\  $$\   $$\  $$$$$$$ |$$\ $$$$$$\    $$$$$$\   $$$$$$\
+// $$  _____|$$ |$$  __$$\ $$ |  $$ |$$  __$$ |$$ |\_$$  _|  $$  __$$\ $$  __$$\
+// $$ /      $$ |$$ /  $$ |$$ |  $$ |$$ /  $$ |$$ |  $$ |    $$ /  $$ |$$ | \__|
+// $$ |      $$ |$$ |  $$ |$$ |  $$ |$$ |  $$ |$$ |  $$ |$$\ $$ |  $$ |$$ |
+// \$$$$$$\  $$ |\$$$$$   |\$$$$$   |\$$$$$$  |$$ |  \$$$   |\$$$$$   |$$ |
+//  \_______|\__| \______/  \______/  \_______|\__|   \____/  \______/ \__|
+//
+// This file is part of Clouditor Community Edition.
+
+package voc
+
+type DatabaseConnect struct {
+	*DatabaseOperation
+}
+
diff --git a/voc/database_operation.go b/voc/database_operation.go
new file mode 100644
index 00000000..18f7a276
--- /dev/null
+++ b/voc/database_operation.go
@@ -0,0 +1,33 @@
+// Copyright 2021 Fraunhofer AISEC
+//
+// 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.
+//
+//           $$\                           $$\ $$\   $$\
+//           $$ |                          $$ |\__|  $$ |
+//  $$$$$$$\ $$ | $$$$$$\  $$\   $$\  $$$$$$$ |$$\ $$$$$$\    $$$$$$\   $$$$$$\
+// $$  _____|$$ |$$  __$$\ $$ |  $$ |$$  __$$ |$$ |\_$$  _|  $$  __$$\ $$  __$$\
+// $$ /      $$ |$$ /  $$ |$$ |  $$ |$$ /  $$ |$$ |  $$ |    $$ /  $$ |$$ | \__|
+// $$ |      $$ |$$ |  $$ |$$ |  $$ |$$ |  $$ |$$ |  $$ |$$\ $$ |  $$ |$$ |
+// \$$$$$$\  $$ |\$$$$$   |\$$$$$   |\$$$$$$  |$$ |  \$$$   |\$$$$$   |$$ |
+//  \_______|\__| \______/  \______/  \_______|\__|   \____/  \______/ \__|
+//
+// This file is part of Clouditor Community Edition.
+
+package voc
+
+type DatabaseOperation struct {
+	*Functionality
+	DatabaseService	[]ResourceID `json:"databaseService"`
+	Call	string `json:"call"`
+}
+
diff --git a/voc/database_query.go b/voc/database_query.go
new file mode 100644
index 00000000..f5ef5fb5
--- /dev/null
+++ b/voc/database_query.go
@@ -0,0 +1,32 @@
+// Copyright 2021 Fraunhofer AISEC
+//
+// 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.
+//
+//           $$\                           $$\ $$\   $$\
+//           $$ |                          $$ |\__|  $$ |
+//  $$$$$$$\ $$ | $$$$$$\  $$\   $$\  $$$$$$$ |$$\ $$$$$$\    $$$$$$\   $$$$$$\
+// $$  _____|$$ |$$  __$$\ $$ |  $$ |$$  __$$ |$$ |\_$$  _|  $$  __$$\ $$  __$$\
+// $$ /      $$ |$$ /  $$ |$$ |  $$ |$$ /  $$ |$$ |  $$ |    $$ /  $$ |$$ | \__|
+// $$ |      $$ |$$ |  $$ |$$ |  $$ |$$ |  $$ |$$ |  $$ |$$\ $$ |  $$ |$$ |
+// \$$$$$$\  $$ |\$$$$$   |\$$$$$   |\$$$$$$  |$$ |  \$$$   |\$$$$$   |$$ |
+//  \_______|\__| \______/  \______/  \_______|\__|   \____/  \______/ \__|
+//
+// This file is part of Clouditor Community Edition.
+
+package voc
+
+type DatabaseQuery struct {
+	*DatabaseOperation
+	Modify	bool `json:"modify"`
+}
+
diff --git a/voc/databaseService.go b/voc/database_service.go
similarity index 98%
rename from voc/databaseService.go
rename to voc/database_service.go
index 884a76e5..7fbf2cb7 100644
--- a/voc/databaseService.go
+++ b/voc/database_service.go
@@ -26,6 +26,6 @@
 package voc
 
 type DatabaseService struct {
-	*CloudResource
+	*NetworkService
 }
 
diff --git a/voc/deviceProvisioningService.go b/voc/device_provisioning_service.go
similarity index 100%
rename from voc/deviceProvisioningService.go
rename to voc/device_provisioning_service.go
diff --git a/voc/document_database_service.go b/voc/document_database_service.go
new file mode 100644
index 00000000..bad401ec
--- /dev/null
+++ b/voc/document_database_service.go
@@ -0,0 +1,31 @@
+// Copyright 2021 Fraunhofer AISEC
+//
+// 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.
+//
+//           $$\                           $$\ $$\   $$\
+//           $$ |                          $$ |\__|  $$ |
+//  $$$$$$$\ $$ | $$$$$$\  $$\   $$\  $$$$$$$ |$$\ $$$$$$\    $$$$$$\   $$$$$$\
+// $$  _____|$$ |$$  __$$\ $$ |  $$ |$$  __$$ |$$ |\_$$  _|  $$  __$$\ $$  __$$\
+// $$ /      $$ |$$ /  $$ |$$ |  $$ |$$ /  $$ |$$ |  $$ |    $$ /  $$ |$$ | \__|
+// $$ |      $$ |$$ |  $$ |$$ |  $$ |$$ |  $$ |$$ |  $$ |$$\ $$ |  $$ |$$ |
+// \$$$$$$\  $$ |\$$$$$   |\$$$$$   |\$$$$$$  |$$ |  \$$$   |\$$$$$   |$$ |
+//  \_______|\__| \______/  \______/  \_______|\__|   \____/  \______/ \__|
+//
+// This file is part of Clouditor Community Edition.
+
+package voc
+
+type DocumentDatabaseService struct {
+	*DatabaseService
+}
+
diff --git a/voc/fileStorage.go b/voc/file_storage.go
similarity index 100%
rename from voc/fileStorage.go
rename to voc/file_storage.go
diff --git a/voc/geoLocation.go b/voc/geo_location.go
similarity index 100%
rename from voc/geoLocation.go
rename to voc/geo_location.go
diff --git a/voc/httpClientLibrary.go b/voc/http_client_library.go
similarity index 100%
rename from voc/httpClientLibrary.go
rename to voc/http_client_library.go
diff --git a/voc/httpEndpoint.go b/voc/http_endpoint.go
similarity index 100%
rename from voc/httpEndpoint.go
rename to voc/http_endpoint.go
diff --git a/voc/httpRequest.go b/voc/http_request.go
similarity index 100%
rename from voc/httpRequest.go
rename to voc/http_request.go
diff --git a/voc/httpRequestHandler.go b/voc/http_request_handler.go
similarity index 96%
rename from voc/httpRequestHandler.go
rename to voc/http_request_handler.go
index f0ed7eb2..3450b3cd 100644
--- a/voc/httpRequestHandler.go
+++ b/voc/http_request_handler.go
@@ -28,7 +28,7 @@ package voc
 type HttpRequestHandler struct {
 	*Functionality
 	Application	*Application `json:"application"`
-	HttpEndpoint	*[]HttpEndpoint `json:"httpEndpoint"`
+	HttpEndpoints	*[]HttpEndpoint `json:"httpEndpoints"`
 	Path	string `json:"path"`
 }
 
diff --git a/voc/httpServer.go b/voc/http_server.go
similarity index 100%
rename from voc/httpServer.go
rename to voc/http_server.go
diff --git a/voc/identityManagement.go b/voc/identity_management.go
similarity index 100%
rename from voc/identityManagement.go
rename to voc/identity_management.go
index fc1586c8..21c6c172 100644
--- a/voc/identityManagement.go
+++ b/voc/identity_management.go
@@ -27,7 +27,7 @@ package voc
 
 type IdentityManagement struct {
 	*CloudResource
-	Authenticity	*Authenticity `json:"authenticity"`
 	Authorization	*Authorization `json:"authorization"`
+	Authenticity	*Authenticity `json:"authenticity"`
 }
 
diff --git a/voc/infrastructureLogging.go b/voc/infrastructure_logging.go
similarity index 100%
rename from voc/infrastructureLogging.go
rename to voc/infrastructure_logging.go
diff --git a/voc/ioT.go b/voc/io_t.go
similarity index 100%
rename from voc/ioT.go
rename to voc/io_t.go
diff --git a/voc/keyValueDatabaseService.go b/voc/key_value_database_service.go
similarity index 100%
rename from voc/keyValueDatabaseService.go
rename to voc/key_value_database_service.go
diff --git a/voc/keyValueDB.go b/voc/key_value_db.go
similarity index 100%
rename from voc/keyValueDB.go
rename to voc/key_value_db.go
diff --git a/voc/loadBalancer.go b/voc/load_balancer.go
similarity index 86%
rename from voc/loadBalancer.go
rename to voc/load_balancer.go
index bb95f203..93f865a4 100644
--- a/voc/loadBalancer.go
+++ b/voc/load_balancer.go
@@ -27,7 +27,9 @@ package voc
 
 type LoadBalancer struct {
 	*NetworkService
-	AccessRestriction *AccessRestriction `json:"accessRestriction"`
-	HttpEndpoint      *[]HttpEndpoint    `json:"httpEndpoint"`
-	Url               string             `json:"url"`
+	NetworkServices	[]ResourceID `json:"networkServices"`
+	AccessRestriction	*AccessRestriction `json:"accessRestriction"`
+	HttpEndpoints	*[]HttpEndpoint `json:"httpEndpoints"`
+	Url	string `json:"url"`
 }
+


Test patch:
diff --git a/service/discovery/aws/storage_test.go b/service/discovery/aws/storage_test.go
index a76815db..cebf75bc 100644
--- a/service/discovery/aws/storage_test.go
+++ b/service/discovery/aws/storage_test.go
@@ -335,14 +335,14 @@ func TestGetEncryptionAtRest(t *testing.T) {
 	assert.Nil(t, err)
 	assert.True(t, encryptionAtRest.Enabled)
 	assert.Equal(t, "AES256", encryptionAtRest.Algorithm)
-	assert.Equal(t, "SSE-S3", encryptionAtRest.Keymanager)
+	assert.Equal(t, "SSE-S3", encryptionAtRest.KeyManager)
 
 	// Second case: SSE-KMS encryption
 	encryptionAtRest, err = d.getEncryptionAtRest(mockBucket2)
 	assert.Nil(t, err)
 	assert.True(t, encryptionAtRest.Enabled)
 	assert.Equal(t, "aws:kms", encryptionAtRest.Algorithm)
-	assert.Equal(t, "SSE-KMS", encryptionAtRest.Keymanager)
+	assert.Equal(t, "SSE-KMS", encryptionAtRest.KeyManager)
 
 	// Third case: No encryption
 	encryptionAtRest, err = d.getEncryptionAtRest("mockbucket3")
diff --git a/service/discovery/k8s/network_test.go b/service/discovery/k8s/network_test.go
index 5c1aa477..c117bb98 100644
--- a/service/discovery/k8s/network_test.go
+++ b/service/discovery/k8s/network_test.go
@@ -107,13 +107,13 @@ func TestListIngresses(t *testing.T) {
 	assert.True(t, ok)
 	assert.Equal(t, "my-ingress", lb.Name)
 	assert.Equal(t, "/namespaces/my-namespace/ingresses/my-ingress", string(lb.ID))
-	assert.Equal(t, "http://myhost/test", string((*lb.HttpEndpoint)[0].Url))
+	assert.Equal(t, "http://myhost/test", string((*lb.HttpEndpoints)[0].Url))
 
 	lb, ok = list[2].(*voc.LoadBalancer)
 
 	assert.True(t, ok)
 	assert.Equal(t, "my-other-ingress", lb.Name)
 	assert.Equal(t, "/namespaces/my-namespace/ingresses/my-other-ingress", string(lb.ID))
-	assert.Equal(t, "https://myhost/test", string((*lb.HttpEndpoint)[0].Url))
-	assert.NotNil(t, (*lb.HttpEndpoint)[0].TransportEncryption)
+	assert.Equal(t, "https://myhost/test", string((*lb.HttpEndpoints)[0].Url))
+	assert.NotNil(t, (*lb.HttpEndpoints)[0].TransportEncryption)
 }