diff --git a/packages/google-cloud-securitycenter/protos/google/cloud/securitycenter/v1/indicator.proto b/packages/google-cloud-securitycenter/protos/google/cloud/securitycenter/v1/indicator.proto index e14e57abc05..1cbfdfa2c9a 100644 --- a/packages/google-cloud-securitycenter/protos/google/cloud/securitycenter/v1/indicator.proto +++ b/packages/google-cloud-securitycenter/protos/google/cloud/securitycenter/v1/indicator.proto @@ -76,4 +76,7 @@ message Indicator { // The list of matched signatures indicating that the given // process is present in the environment. repeated ProcessSignature signatures = 3; + + // The list of URIs associated to the Findings. + repeated string uris = 4; } diff --git a/packages/google-cloud-securitycenter/protos/google/cloud/securitycenter/v1/mitre_attack.proto b/packages/google-cloud-securitycenter/protos/google/cloud/securitycenter/v1/mitre_attack.proto index 65ec70aedb4..ba654822b09 100644 --- a/packages/google-cloud-securitycenter/protos/google/cloud/securitycenter/v1/mitre_attack.proto +++ b/packages/google-cloud-securitycenter/protos/google/cloud/securitycenter/v1/mitre_attack.proto @@ -177,6 +177,12 @@ message MitreAttack { // T1046 NETWORK_SERVICE_DISCOVERY = 32; + + // T1134 + ACCESS_TOKEN_MANIPULATION = 33; + + // T1548 + ABUSE_ELEVATION_CONTROL_MECHANISM = 34; } // The MITRE ATT&CK tactic most closely represented by this finding, if any. diff --git a/packages/google-cloud-securitycenter/protos/google/cloud/securitycenter/v1beta1/asset.proto b/packages/google-cloud-securitycenter/protos/google/cloud/securitycenter/v1beta1/asset.proto index b73f7d5bc1f..415e7a2f094 100644 --- a/packages/google-cloud-securitycenter/protos/google/cloud/securitycenter/v1beta1/asset.proto +++ b/packages/google-cloud-securitycenter/protos/google/cloud/securitycenter/v1beta1/asset.proto @@ -21,7 +21,6 @@ import "google/api/resource.proto"; import "google/cloud/securitycenter/v1beta1/security_marks.proto"; import "google/protobuf/struct.proto"; import "google/protobuf/timestamp.proto"; -import "google/api/annotations.proto"; option go_package = "google.golang.org/genproto/googleapis/cloud/securitycenter/v1beta1;securitycenter"; option java_multiple_files = true; diff --git a/packages/google-cloud-securitycenter/protos/google/cloud/securitycenter/v1beta1/finding.proto b/packages/google-cloud-securitycenter/protos/google/cloud/securitycenter/v1beta1/finding.proto index 647b3b43219..768bf411c7e 100644 --- a/packages/google-cloud-securitycenter/protos/google/cloud/securitycenter/v1beta1/finding.proto +++ b/packages/google-cloud-securitycenter/protos/google/cloud/securitycenter/v1beta1/finding.proto @@ -16,7 +16,6 @@ syntax = "proto3"; package google.cloud.securitycenter.v1beta1; -import "google/api/annotations.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; import "google/cloud/securitycenter/v1beta1/security_marks.proto"; diff --git a/packages/google-cloud-securitycenter/protos/google/cloud/securitycenter/v1beta1/organization_settings.proto b/packages/google-cloud-securitycenter/protos/google/cloud/securitycenter/v1beta1/organization_settings.proto index 88b2008a190..b447bf6e39d 100644 --- a/packages/google-cloud-securitycenter/protos/google/cloud/securitycenter/v1beta1/organization_settings.proto +++ b/packages/google-cloud-securitycenter/protos/google/cloud/securitycenter/v1beta1/organization_settings.proto @@ -17,7 +17,6 @@ syntax = "proto3"; package google.cloud.securitycenter.v1beta1; import "google/api/resource.proto"; -import "google/api/annotations.proto"; option go_package = "google.golang.org/genproto/googleapis/cloud/securitycenter/v1beta1;securitycenter"; option java_multiple_files = true; diff --git a/packages/google-cloud-securitycenter/protos/google/cloud/securitycenter/v1beta1/run_asset_discovery_response.proto b/packages/google-cloud-securitycenter/protos/google/cloud/securitycenter/v1beta1/run_asset_discovery_response.proto index 20d3b25b10f..cab92d902c3 100644 --- a/packages/google-cloud-securitycenter/protos/google/cloud/securitycenter/v1beta1/run_asset_discovery_response.proto +++ b/packages/google-cloud-securitycenter/protos/google/cloud/securitycenter/v1beta1/run_asset_discovery_response.proto @@ -17,7 +17,6 @@ syntax = "proto3"; package google.cloud.securitycenter.v1beta1; import "google/protobuf/duration.proto"; -import "google/api/annotations.proto"; option go_package = "google.golang.org/genproto/googleapis/cloud/securitycenter/v1beta1;securitycenter"; option java_multiple_files = true; diff --git a/packages/google-cloud-securitycenter/protos/google/cloud/securitycenter/v1beta1/security_marks.proto b/packages/google-cloud-securitycenter/protos/google/cloud/securitycenter/v1beta1/security_marks.proto index 2547c3063cc..f1dc88d7cd4 100644 --- a/packages/google-cloud-securitycenter/protos/google/cloud/securitycenter/v1beta1/security_marks.proto +++ b/packages/google-cloud-securitycenter/protos/google/cloud/securitycenter/v1beta1/security_marks.proto @@ -17,7 +17,6 @@ syntax = "proto3"; package google.cloud.securitycenter.v1beta1; import "google/api/resource.proto"; -import "google/api/annotations.proto"; option go_package = "google.golang.org/genproto/googleapis/cloud/securitycenter/v1beta1;securitycenter"; option java_multiple_files = true; diff --git a/packages/google-cloud-securitycenter/protos/google/cloud/securitycenter/v1beta1/securitycenter_service.proto b/packages/google-cloud-securitycenter/protos/google/cloud/securitycenter/v1beta1/securitycenter_service.proto index 351c1f4a366..55276ef7f1c 100644 --- a/packages/google-cloud-securitycenter/protos/google/cloud/securitycenter/v1beta1/securitycenter_service.proto +++ b/packages/google-cloud-securitycenter/protos/google/cloud/securitycenter/v1beta1/securitycenter_service.proto @@ -29,7 +29,6 @@ import "google/iam/v1/iam_policy.proto"; import "google/iam/v1/policy.proto"; import "google/longrunning/operations.proto"; import "google/protobuf/duration.proto"; -import "google/protobuf/empty.proto"; import "google/protobuf/field_mask.proto"; import "google/protobuf/struct.proto"; import "google/protobuf/timestamp.proto"; diff --git a/packages/google-cloud-securitycenter/protos/google/cloud/securitycenter/v1beta1/source.proto b/packages/google-cloud-securitycenter/protos/google/cloud/securitycenter/v1beta1/source.proto index fb1e6c6a404..a4a49749ed3 100644 --- a/packages/google-cloud-securitycenter/protos/google/cloud/securitycenter/v1beta1/source.proto +++ b/packages/google-cloud-securitycenter/protos/google/cloud/securitycenter/v1beta1/source.proto @@ -17,7 +17,6 @@ syntax = "proto3"; package google.cloud.securitycenter.v1beta1; import "google/api/resource.proto"; -import "google/api/annotations.proto"; option go_package = "google.golang.org/genproto/googleapis/cloud/securitycenter/v1beta1;securitycenter"; option java_multiple_files = true; diff --git a/packages/google-cloud-securitycenter/protos/google/cloud/securitycenter/v1p1beta1/asset.proto b/packages/google-cloud-securitycenter/protos/google/cloud/securitycenter/v1p1beta1/asset.proto index 9ee30783f7f..45fdcbf5a5a 100644 --- a/packages/google-cloud-securitycenter/protos/google/cloud/securitycenter/v1p1beta1/asset.proto +++ b/packages/google-cloud-securitycenter/protos/google/cloud/securitycenter/v1p1beta1/asset.proto @@ -21,7 +21,6 @@ import "google/cloud/securitycenter/v1p1beta1/folder.proto"; import "google/cloud/securitycenter/v1p1beta1/security_marks.proto"; import "google/protobuf/struct.proto"; import "google/protobuf/timestamp.proto"; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.SecurityCenter.V1P1Beta1"; option go_package = "google.golang.org/genproto/googleapis/cloud/securitycenter/v1p1beta1;securitycenter"; diff --git a/packages/google-cloud-securitycenter/protos/google/cloud/securitycenter/v1p1beta1/finding.proto b/packages/google-cloud-securitycenter/protos/google/cloud/securitycenter/v1p1beta1/finding.proto index 572a368f8e0..5edd3d86296 100644 --- a/packages/google-cloud-securitycenter/protos/google/cloud/securitycenter/v1p1beta1/finding.proto +++ b/packages/google-cloud-securitycenter/protos/google/cloud/securitycenter/v1p1beta1/finding.proto @@ -21,7 +21,6 @@ import "google/api/resource.proto"; import "google/cloud/securitycenter/v1p1beta1/security_marks.proto"; import "google/protobuf/struct.proto"; import "google/protobuf/timestamp.proto"; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.SecurityCenter.V1P1Beta1"; option go_package = "google.golang.org/genproto/googleapis/cloud/securitycenter/v1p1beta1;securitycenter"; diff --git a/packages/google-cloud-securitycenter/protos/google/cloud/securitycenter/v1p1beta1/folder.proto b/packages/google-cloud-securitycenter/protos/google/cloud/securitycenter/v1p1beta1/folder.proto index ec6df5edda3..28a587163c1 100644 --- a/packages/google-cloud-securitycenter/protos/google/cloud/securitycenter/v1p1beta1/folder.proto +++ b/packages/google-cloud-securitycenter/protos/google/cloud/securitycenter/v1p1beta1/folder.proto @@ -16,7 +16,6 @@ syntax = "proto3"; package google.cloud.securitycenter.v1p1beta1; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.SecurityCenter.V1P1Beta1"; option go_package = "google.golang.org/genproto/googleapis/cloud/securitycenter/v1p1beta1;securitycenter"; diff --git a/packages/google-cloud-securitycenter/protos/google/cloud/securitycenter/v1p1beta1/notification_config.proto b/packages/google-cloud-securitycenter/protos/google/cloud/securitycenter/v1p1beta1/notification_config.proto index be5f6e0f532..faaab37b102 100644 --- a/packages/google-cloud-securitycenter/protos/google/cloud/securitycenter/v1p1beta1/notification_config.proto +++ b/packages/google-cloud-securitycenter/protos/google/cloud/securitycenter/v1p1beta1/notification_config.proto @@ -18,7 +18,6 @@ package google.cloud.securitycenter.v1p1beta1; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.SecurityCenter.V1P1Beta1"; option go_package = "google.golang.org/genproto/googleapis/cloud/securitycenter/v1p1beta1;securitycenter"; diff --git a/packages/google-cloud-securitycenter/protos/google/cloud/securitycenter/v1p1beta1/notification_message.proto b/packages/google-cloud-securitycenter/protos/google/cloud/securitycenter/v1p1beta1/notification_message.proto index 5e671dd01d0..78a3e781f12 100644 --- a/packages/google-cloud-securitycenter/protos/google/cloud/securitycenter/v1p1beta1/notification_message.proto +++ b/packages/google-cloud-securitycenter/protos/google/cloud/securitycenter/v1p1beta1/notification_message.proto @@ -18,7 +18,6 @@ package google.cloud.securitycenter.v1p1beta1; import "google/cloud/securitycenter/v1p1beta1/finding.proto"; import "google/cloud/securitycenter/v1p1beta1/resource.proto"; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.SecurityCenter.V1P1Beta1"; option go_package = "google.golang.org/genproto/googleapis/cloud/securitycenter/v1p1beta1;securitycenter"; diff --git a/packages/google-cloud-securitycenter/protos/google/cloud/securitycenter/v1p1beta1/organization_settings.proto b/packages/google-cloud-securitycenter/protos/google/cloud/securitycenter/v1p1beta1/organization_settings.proto index ad36d58a17b..b80f046d6b8 100644 --- a/packages/google-cloud-securitycenter/protos/google/cloud/securitycenter/v1p1beta1/organization_settings.proto +++ b/packages/google-cloud-securitycenter/protos/google/cloud/securitycenter/v1p1beta1/organization_settings.proto @@ -17,7 +17,6 @@ syntax = "proto3"; package google.cloud.securitycenter.v1p1beta1; import "google/api/resource.proto"; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.SecurityCenter.V1P1Beta1"; option go_package = "google.golang.org/genproto/googleapis/cloud/securitycenter/v1p1beta1;securitycenter"; diff --git a/packages/google-cloud-securitycenter/protos/google/cloud/securitycenter/v1p1beta1/resource.proto b/packages/google-cloud-securitycenter/protos/google/cloud/securitycenter/v1p1beta1/resource.proto index 0fe2d362a6e..3b2d2d437e8 100644 --- a/packages/google-cloud-securitycenter/protos/google/cloud/securitycenter/v1p1beta1/resource.proto +++ b/packages/google-cloud-securitycenter/protos/google/cloud/securitycenter/v1p1beta1/resource.proto @@ -18,7 +18,6 @@ package google.cloud.securitycenter.v1p1beta1; import "google/api/field_behavior.proto"; import "google/cloud/securitycenter/v1p1beta1/folder.proto"; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.SecurityCenter.V1P1Beta1"; option go_package = "google.golang.org/genproto/googleapis/cloud/securitycenter/v1p1beta1;securitycenter"; diff --git a/packages/google-cloud-securitycenter/protos/google/cloud/securitycenter/v1p1beta1/run_asset_discovery_response.proto b/packages/google-cloud-securitycenter/protos/google/cloud/securitycenter/v1p1beta1/run_asset_discovery_response.proto index d867d201fae..835e33fbdf1 100644 --- a/packages/google-cloud-securitycenter/protos/google/cloud/securitycenter/v1p1beta1/run_asset_discovery_response.proto +++ b/packages/google-cloud-securitycenter/protos/google/cloud/securitycenter/v1p1beta1/run_asset_discovery_response.proto @@ -17,7 +17,6 @@ syntax = "proto3"; package google.cloud.securitycenter.v1p1beta1; import "google/protobuf/duration.proto"; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.SecurityCenter.V1P1Beta1"; option go_package = "google.golang.org/genproto/googleapis/cloud/securitycenter/v1p1beta1;securitycenter"; diff --git a/packages/google-cloud-securitycenter/protos/google/cloud/securitycenter/v1p1beta1/security_marks.proto b/packages/google-cloud-securitycenter/protos/google/cloud/securitycenter/v1p1beta1/security_marks.proto index 22db26cbad3..2245605b3e4 100644 --- a/packages/google-cloud-securitycenter/protos/google/cloud/securitycenter/v1p1beta1/security_marks.proto +++ b/packages/google-cloud-securitycenter/protos/google/cloud/securitycenter/v1p1beta1/security_marks.proto @@ -17,7 +17,6 @@ syntax = "proto3"; package google.cloud.securitycenter.v1p1beta1; import "google/api/resource.proto"; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.SecurityCenter.V1P1Beta1"; option go_package = "google.golang.org/genproto/googleapis/cloud/securitycenter/v1p1beta1;securitycenter"; diff --git a/packages/google-cloud-securitycenter/protos/google/cloud/securitycenter/v1p1beta1/source.proto b/packages/google-cloud-securitycenter/protos/google/cloud/securitycenter/v1p1beta1/source.proto index 5f36167ad16..e2a55659556 100644 --- a/packages/google-cloud-securitycenter/protos/google/cloud/securitycenter/v1p1beta1/source.proto +++ b/packages/google-cloud-securitycenter/protos/google/cloud/securitycenter/v1p1beta1/source.proto @@ -17,7 +17,6 @@ syntax = "proto3"; package google.cloud.securitycenter.v1p1beta1; import "google/api/resource.proto"; -import "google/api/annotations.proto"; option csharp_namespace = "Google.Cloud.SecurityCenter.V1P1Beta1"; option go_package = "google.golang.org/genproto/googleapis/cloud/securitycenter/v1p1beta1;securitycenter"; diff --git a/packages/google-cloud-securitycenter/protos/protos.d.ts b/packages/google-cloud-securitycenter/protos/protos.d.ts index 9be638911b6..86a6ce6ec78 100644 --- a/packages/google-cloud-securitycenter/protos/protos.d.ts +++ b/packages/google-cloud-securitycenter/protos/protos.d.ts @@ -2398,6 +2398,9 @@ export namespace google { /** Indicator signatures */ signatures?: (google.cloud.securitycenter.v1.Indicator.IProcessSignature[]|null); + + /** Indicator uris */ + uris?: (string[]|null); } /** Represents an Indicator. */ @@ -2418,6 +2421,9 @@ export namespace google { /** Indicator signatures. */ public signatures: google.cloud.securitycenter.v1.Indicator.IProcessSignature[]; + /** Indicator uris. */ + public uris: string[]; + /** * Creates a new Indicator instance using the specified properties. * @param [properties] Properties to set @@ -3924,7 +3930,9 @@ export namespace google { DATA_DESTRUCTION = 29, DOMAIN_POLICY_MODIFICATION = 30, IMPAIR_DEFENSES = 31, - NETWORK_SERVICE_DISCOVERY = 32 + NETWORK_SERVICE_DISCOVERY = 32, + ACCESS_TOKEN_MANIPULATION = 33, + ABUSE_ELEVATION_CONTROL_MECHANISM = 34 } } diff --git a/packages/google-cloud-securitycenter/protos/protos.js b/packages/google-cloud-securitycenter/protos/protos.js index 09c32d1e282..3d8284443c5 100644 --- a/packages/google-cloud-securitycenter/protos/protos.js +++ b/packages/google-cloud-securitycenter/protos/protos.js @@ -6533,6 +6533,7 @@ * @property {Array.|null} [ipAddresses] Indicator ipAddresses * @property {Array.|null} [domains] Indicator domains * @property {Array.|null} [signatures] Indicator signatures + * @property {Array.|null} [uris] Indicator uris */ /** @@ -6547,6 +6548,7 @@ this.ipAddresses = []; this.domains = []; this.signatures = []; + this.uris = []; if (properties) for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) if (properties[keys[i]] != null) @@ -6577,6 +6579,14 @@ */ Indicator.prototype.signatures = $util.emptyArray; + /** + * Indicator uris. + * @member {Array.} uris + * @memberof google.cloud.securitycenter.v1.Indicator + * @instance + */ + Indicator.prototype.uris = $util.emptyArray; + /** * Creates a new Indicator instance using the specified properties. * @function create @@ -6610,6 +6620,9 @@ if (message.signatures != null && message.signatures.length) for (var i = 0; i < message.signatures.length; ++i) $root.google.cloud.securitycenter.v1.Indicator.ProcessSignature.encode(message.signatures[i], writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); + if (message.uris != null && message.uris.length) + for (var i = 0; i < message.uris.length; ++i) + writer.uint32(/* id 4, wireType 2 =*/34).string(message.uris[i]); return writer; }; @@ -6659,6 +6672,11 @@ message.signatures = []; message.signatures.push($root.google.cloud.securitycenter.v1.Indicator.ProcessSignature.decode(reader, reader.uint32())); break; + case 4: + if (!(message.uris && message.uris.length)) + message.uris = []; + message.uris.push(reader.string()); + break; default: reader.skipType(tag & 7); break; @@ -6717,6 +6735,13 @@ return "signatures." + error; } } + if (message.uris != null && message.hasOwnProperty("uris")) { + if (!Array.isArray(message.uris)) + return "uris: array expected"; + for (var i = 0; i < message.uris.length; ++i) + if (!$util.isString(message.uris[i])) + return "uris: string[] expected"; + } return null; }; @@ -6756,6 +6781,13 @@ message.signatures[i] = $root.google.cloud.securitycenter.v1.Indicator.ProcessSignature.fromObject(object.signatures[i]); } } + if (object.uris) { + if (!Array.isArray(object.uris)) + throw TypeError(".google.cloud.securitycenter.v1.Indicator.uris: array expected"); + message.uris = []; + for (var i = 0; i < object.uris.length; ++i) + message.uris[i] = String(object.uris[i]); + } return message; }; @@ -6776,6 +6808,7 @@ object.ipAddresses = []; object.domains = []; object.signatures = []; + object.uris = []; } if (message.ipAddresses && message.ipAddresses.length) { object.ipAddresses = []; @@ -6792,6 +6825,11 @@ for (var j = 0; j < message.signatures.length; ++j) object.signatures[j] = $root.google.cloud.securitycenter.v1.Indicator.ProcessSignature.toObject(message.signatures[j], options); } + if (message.uris && message.uris.length) { + object.uris = []; + for (var j = 0; j < message.uris.length; ++j) + object.uris[j] = message.uris[j]; + } return object; }; @@ -10245,6 +10283,8 @@ case 30: case 31: case 32: + case 33: + case 34: break; } } @@ -10313,6 +10353,8 @@ case 30: case 31: case 32: + case 33: + case 34: break; } } @@ -10535,6 +10577,14 @@ case 32: message.primaryTechniques[i] = 32; break; + case "ACCESS_TOKEN_MANIPULATION": + case 33: + message.primaryTechniques[i] = 33; + break; + case "ABUSE_ELEVATION_CONTROL_MECHANISM": + case 34: + message.primaryTechniques[i] = 34; + break; } } if (object.additionalTactics) { @@ -10745,6 +10795,14 @@ case 32: message.additionalTechniques[i] = 32; break; + case "ACCESS_TOKEN_MANIPULATION": + case 33: + message.additionalTechniques[i] = 33; + break; + case "ABUSE_ELEVATION_CONTROL_MECHANISM": + case 34: + message.additionalTechniques[i] = 34; + break; } } if (object.version != null) @@ -10884,6 +10942,8 @@ * @property {number} DOMAIN_POLICY_MODIFICATION=30 DOMAIN_POLICY_MODIFICATION value * @property {number} IMPAIR_DEFENSES=31 IMPAIR_DEFENSES value * @property {number} NETWORK_SERVICE_DISCOVERY=32 NETWORK_SERVICE_DISCOVERY value + * @property {number} ACCESS_TOKEN_MANIPULATION=33 ACCESS_TOKEN_MANIPULATION value + * @property {number} ABUSE_ELEVATION_CONTROL_MECHANISM=34 ABUSE_ELEVATION_CONTROL_MECHANISM value */ MitreAttack.Technique = (function() { var valuesById = {}, values = Object.create(valuesById); @@ -10920,6 +10980,8 @@ values[valuesById[30] = "DOMAIN_POLICY_MODIFICATION"] = 30; values[valuesById[31] = "IMPAIR_DEFENSES"] = 31; values[valuesById[32] = "NETWORK_SERVICE_DISCOVERY"] = 32; + values[valuesById[33] = "ACCESS_TOKEN_MANIPULATION"] = 33; + values[valuesById[34] = "ABUSE_ELEVATION_CONTROL_MECHANISM"] = 34; return values; })(); diff --git a/packages/google-cloud-securitycenter/protos/protos.json b/packages/google-cloud-securitycenter/protos/protos.json index 7d91a1f6685..d59a89de0ea 100644 --- a/packages/google-cloud-securitycenter/protos/protos.json +++ b/packages/google-cloud-securitycenter/protos/protos.json @@ -649,6 +649,11 @@ "rule": "repeated", "type": "ProcessSignature", "id": 3 + }, + "uris": { + "rule": "repeated", + "type": "string", + "id": 4 } }, "nested": { @@ -974,7 +979,9 @@ "DATA_DESTRUCTION": 29, "DOMAIN_POLICY_MODIFICATION": 30, "IMPAIR_DEFENSES": 31, - "NETWORK_SERVICE_DISCOVERY": 32 + "NETWORK_SERVICE_DISCOVERY": 32, + "ACCESS_TOKEN_MANIPULATION": 33, + "ABUSE_ELEVATION_CONTROL_MECHANISM": 34 } } }