diff --git a/sdk/containerinstance/Azure.ResourceManager.ContainerInstance/api/Azure.ResourceManager.ContainerInstance.netstandard2.0.cs b/sdk/containerinstance/Azure.ResourceManager.ContainerInstance/api/Azure.ResourceManager.ContainerInstance.netstandard2.0.cs index 0639989bc930..ca01d7e84ce3 100644 --- a/sdk/containerinstance/Azure.ResourceManager.ContainerInstance/api/Azure.ResourceManager.ContainerInstance.netstandard2.0.cs +++ b/sdk/containerinstance/Azure.ResourceManager.ContainerInstance/api/Azure.ResourceManager.ContainerInstance.netstandard2.0.cs @@ -429,6 +429,7 @@ public ContainerInstanceContainer(string name, string image, Azure.ResourceManag public System.Collections.Generic.IList Ports { get { throw null; } } public Azure.ResourceManager.ContainerInstance.Models.ContainerProbe ReadinessProbe { get { throw null; } set { } } public Azure.ResourceManager.ContainerInstance.Models.ContainerResourceRequirements Resources { get { throw null; } set { } } + public Azure.ResourceManager.ContainerInstance.Models.SecurityContextDefinition SecurityContext { get { throw null; } set { } } public System.Collections.Generic.IList VolumeMounts { get { throw null; } } } public partial class ContainerInstanceGitRepoVolume @@ -609,6 +610,7 @@ public InitContainerDefinitionContent(string name) { } public string Image { get { throw null; } set { } } public Azure.ResourceManager.ContainerInstance.Models.InitContainerPropertiesDefinitionInstanceView InstanceView { get { throw null; } } public string Name { get { throw null; } set { } } + public Azure.ResourceManager.ContainerInstance.Models.SecurityContextDefinition SecurityContext { get { throw null; } set { } } public System.Collections.Generic.IList VolumeMounts { get { throw null; } } } public partial class InitContainerPropertiesDefinitionInstanceView @@ -619,4 +621,20 @@ internal InitContainerPropertiesDefinitionInstanceView() { } public Azure.ResourceManager.ContainerInstance.Models.ContainerState PreviousState { get { throw null; } } public int? RestartCount { get { throw null; } } } + public partial class SecurityContextCapabilitiesDefinition + { + public SecurityContextCapabilitiesDefinition() { } + public System.Collections.Generic.IList Add { get { throw null; } } + public System.Collections.Generic.IList Drop { get { throw null; } } + } + public partial class SecurityContextDefinition + { + public SecurityContextDefinition() { } + public bool? AllowPrivilegeEscalation { get { throw null; } set { } } + public Azure.ResourceManager.ContainerInstance.Models.SecurityContextCapabilitiesDefinition Capabilities { get { throw null; } set { } } + public bool? Privileged { get { throw null; } set { } } + public int? RunAsGroup { get { throw null; } set { } } + public int? RunAsUser { get { throw null; } set { } } + public string SeccompProfile { get { throw null; } set { } } + } } diff --git a/sdk/containerinstance/Azure.ResourceManager.ContainerInstance/src/Generated/Models/ContainerInstanceContainer.Serialization.cs b/sdk/containerinstance/Azure.ResourceManager.ContainerInstance/src/Generated/Models/ContainerInstanceContainer.Serialization.cs index d5beb3c57edc..bd22528aaa89 100644 --- a/sdk/containerinstance/Azure.ResourceManager.ContainerInstance/src/Generated/Models/ContainerInstanceContainer.Serialization.cs +++ b/sdk/containerinstance/Azure.ResourceManager.ContainerInstance/src/Generated/Models/ContainerInstanceContainer.Serialization.cs @@ -74,6 +74,11 @@ void IUtf8JsonSerializable.Write(Utf8JsonWriter writer) writer.WritePropertyName("readinessProbe"u8); writer.WriteObjectValue(ReadinessProbe); } + if (Optional.IsDefined(SecurityContext)) + { + writer.WritePropertyName("securityContext"u8); + writer.WriteObjectValue(SecurityContext); + } writer.WriteEndObject(); writer.WriteEndObject(); } @@ -94,6 +99,7 @@ internal static ContainerInstanceContainer DeserializeContainerInstanceContainer Optional> volumeMounts = default; Optional livenessProbe = default; Optional readinessProbe = default; + Optional securityContext = default; foreach (var property in element.EnumerateObject()) { if (property.NameEquals("name"u8)) @@ -203,11 +209,20 @@ internal static ContainerInstanceContainer DeserializeContainerInstanceContainer readinessProbe = ContainerProbe.DeserializeContainerProbe(property0.Value); continue; } + if (property0.NameEquals("securityContext"u8)) + { + if (property0.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + securityContext = SecurityContextDefinition.DeserializeSecurityContextDefinition(property0.Value); + continue; + } } continue; } } - return new ContainerInstanceContainer(name, image, Optional.ToList(command), Optional.ToList(ports), Optional.ToList(environmentVariables), instanceView.Value, resources, Optional.ToList(volumeMounts), livenessProbe.Value, readinessProbe.Value); + return new ContainerInstanceContainer(name, image, Optional.ToList(command), Optional.ToList(ports), Optional.ToList(environmentVariables), instanceView.Value, resources, Optional.ToList(volumeMounts), livenessProbe.Value, readinessProbe.Value, securityContext.Value); } } } diff --git a/sdk/containerinstance/Azure.ResourceManager.ContainerInstance/src/Generated/Models/ContainerInstanceContainer.cs b/sdk/containerinstance/Azure.ResourceManager.ContainerInstance/src/Generated/Models/ContainerInstanceContainer.cs index b3e50ae6f29c..5eb68b924dfe 100644 --- a/sdk/containerinstance/Azure.ResourceManager.ContainerInstance/src/Generated/Models/ContainerInstanceContainer.cs +++ b/sdk/containerinstance/Azure.ResourceManager.ContainerInstance/src/Generated/Models/ContainerInstanceContainer.cs @@ -45,7 +45,8 @@ public ContainerInstanceContainer(string name, string image, ContainerResourceRe /// The volume mounts available to the container instance. /// The liveness probe. /// The readiness probe. - internal ContainerInstanceContainer(string name, string image, IList command, IList ports, IList environmentVariables, ContainerInstanceView instanceView, ContainerResourceRequirements resources, IList volumeMounts, ContainerProbe livenessProbe, ContainerProbe readinessProbe) + /// The container security properties. + internal ContainerInstanceContainer(string name, string image, IList command, IList ports, IList environmentVariables, ContainerInstanceView instanceView, ContainerResourceRequirements resources, IList volumeMounts, ContainerProbe livenessProbe, ContainerProbe readinessProbe, SecurityContextDefinition securityContext) { Name = name; Image = image; @@ -57,6 +58,7 @@ internal ContainerInstanceContainer(string name, string image, IList com VolumeMounts = volumeMounts; LivenessProbe = livenessProbe; ReadinessProbe = readinessProbe; + SecurityContext = securityContext; } /// The user-provided name of the container instance. @@ -79,5 +81,7 @@ internal ContainerInstanceContainer(string name, string image, IList com public ContainerProbe LivenessProbe { get; set; } /// The readiness probe. public ContainerProbe ReadinessProbe { get; set; } + /// The container security properties. + public SecurityContextDefinition SecurityContext { get; set; } } } diff --git a/sdk/containerinstance/Azure.ResourceManager.ContainerInstance/src/Generated/Models/InitContainerDefinitionContent.Serialization.cs b/sdk/containerinstance/Azure.ResourceManager.ContainerInstance/src/Generated/Models/InitContainerDefinitionContent.Serialization.cs index fad5eb0435a5..294b133e8302 100644 --- a/sdk/containerinstance/Azure.ResourceManager.ContainerInstance/src/Generated/Models/InitContainerDefinitionContent.Serialization.cs +++ b/sdk/containerinstance/Azure.ResourceManager.ContainerInstance/src/Generated/Models/InitContainerDefinitionContent.Serialization.cs @@ -55,6 +55,11 @@ void IUtf8JsonSerializable.Write(Utf8JsonWriter writer) } writer.WriteEndArray(); } + if (Optional.IsDefined(SecurityContext)) + { + writer.WritePropertyName("securityContext"u8); + writer.WriteObjectValue(SecurityContext); + } writer.WriteEndObject(); writer.WriteEndObject(); } @@ -71,6 +76,7 @@ internal static InitContainerDefinitionContent DeserializeInitContainerDefinitio Optional> environmentVariables = default; Optional instanceView = default; Optional> volumeMounts = default; + Optional securityContext = default; foreach (var property in element.EnumerateObject()) { if (property.NameEquals("name"u8)) @@ -143,11 +149,20 @@ internal static InitContainerDefinitionContent DeserializeInitContainerDefinitio volumeMounts = array; continue; } + if (property0.NameEquals("securityContext"u8)) + { + if (property0.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + securityContext = SecurityContextDefinition.DeserializeSecurityContextDefinition(property0.Value); + continue; + } } continue; } } - return new InitContainerDefinitionContent(name, image.Value, Optional.ToList(command), Optional.ToList(environmentVariables), instanceView.Value, Optional.ToList(volumeMounts)); + return new InitContainerDefinitionContent(name, image.Value, Optional.ToList(command), Optional.ToList(environmentVariables), instanceView.Value, Optional.ToList(volumeMounts), securityContext.Value); } } } diff --git a/sdk/containerinstance/Azure.ResourceManager.ContainerInstance/src/Generated/Models/InitContainerDefinitionContent.cs b/sdk/containerinstance/Azure.ResourceManager.ContainerInstance/src/Generated/Models/InitContainerDefinitionContent.cs index dd66d571ef7d..4313e040c30b 100644 --- a/sdk/containerinstance/Azure.ResourceManager.ContainerInstance/src/Generated/Models/InitContainerDefinitionContent.cs +++ b/sdk/containerinstance/Azure.ResourceManager.ContainerInstance/src/Generated/Models/InitContainerDefinitionContent.cs @@ -34,7 +34,8 @@ public InitContainerDefinitionContent(string name) /// The environment variables to set in the init container. /// The instance view of the init container. Only valid in response. /// The volume mounts available to the init container. - internal InitContainerDefinitionContent(string name, string image, IList command, IList environmentVariables, InitContainerPropertiesDefinitionInstanceView instanceView, IList volumeMounts) + /// The container security properties. + internal InitContainerDefinitionContent(string name, string image, IList command, IList environmentVariables, InitContainerPropertiesDefinitionInstanceView instanceView, IList volumeMounts, SecurityContextDefinition securityContext) { Name = name; Image = image; @@ -42,6 +43,7 @@ internal InitContainerDefinitionContent(string name, string image, IList EnvironmentVariables = environmentVariables; InstanceView = instanceView; VolumeMounts = volumeMounts; + SecurityContext = securityContext; } /// The name for the init container. @@ -56,5 +58,7 @@ internal InitContainerDefinitionContent(string name, string image, IList public InitContainerPropertiesDefinitionInstanceView InstanceView { get; } /// The volume mounts available to the init container. public IList VolumeMounts { get; } + /// The container security properties. + public SecurityContextDefinition SecurityContext { get; set; } } } diff --git a/sdk/containerinstance/Azure.ResourceManager.ContainerInstance/src/Generated/Models/SecurityContextCapabilitiesDefinition.Serialization.cs b/sdk/containerinstance/Azure.ResourceManager.ContainerInstance/src/Generated/Models/SecurityContextCapabilitiesDefinition.Serialization.cs new file mode 100644 index 000000000000..d6caef1076ba --- /dev/null +++ b/sdk/containerinstance/Azure.ResourceManager.ContainerInstance/src/Generated/Models/SecurityContextCapabilitiesDefinition.Serialization.cs @@ -0,0 +1,84 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System.Collections.Generic; +using System.Text.Json; +using Azure.Core; + +namespace Azure.ResourceManager.ContainerInstance.Models +{ + public partial class SecurityContextCapabilitiesDefinition : IUtf8JsonSerializable + { + void IUtf8JsonSerializable.Write(Utf8JsonWriter writer) + { + writer.WriteStartObject(); + if (Optional.IsCollectionDefined(Add)) + { + writer.WritePropertyName("add"u8); + writer.WriteStartArray(); + foreach (var item in Add) + { + writer.WriteStringValue(item); + } + writer.WriteEndArray(); + } + if (Optional.IsCollectionDefined(Drop)) + { + writer.WritePropertyName("drop"u8); + writer.WriteStartArray(); + foreach (var item in Drop) + { + writer.WriteStringValue(item); + } + writer.WriteEndArray(); + } + writer.WriteEndObject(); + } + + internal static SecurityContextCapabilitiesDefinition DeserializeSecurityContextCapabilitiesDefinition(JsonElement element) + { + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + Optional> @add = default; + Optional> drop = default; + foreach (var property in element.EnumerateObject()) + { + if (property.NameEquals("add"u8)) + { + if (property.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + List array = new List(); + foreach (var item in property.Value.EnumerateArray()) + { + array.Add(item.GetString()); + } + @add = array; + continue; + } + if (property.NameEquals("drop"u8)) + { + if (property.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + List array = new List(); + foreach (var item in property.Value.EnumerateArray()) + { + array.Add(item.GetString()); + } + drop = array; + continue; + } + } + return new SecurityContextCapabilitiesDefinition(Optional.ToList(@add), Optional.ToList(drop)); + } + } +} diff --git a/sdk/containerinstance/Azure.ResourceManager.ContainerInstance/src/Generated/Models/SecurityContextCapabilitiesDefinition.cs b/sdk/containerinstance/Azure.ResourceManager.ContainerInstance/src/Generated/Models/SecurityContextCapabilitiesDefinition.cs new file mode 100644 index 000000000000..7265f8e9b3d5 --- /dev/null +++ b/sdk/containerinstance/Azure.ResourceManager.ContainerInstance/src/Generated/Models/SecurityContextCapabilitiesDefinition.cs @@ -0,0 +1,37 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System.Collections.Generic; +using Azure.Core; + +namespace Azure.ResourceManager.ContainerInstance.Models +{ + /// The capabilities to add or drop from a container. + public partial class SecurityContextCapabilitiesDefinition + { + /// Initializes a new instance of SecurityContextCapabilitiesDefinition. + public SecurityContextCapabilitiesDefinition() + { + Add = new ChangeTrackingList(); + Drop = new ChangeTrackingList(); + } + + /// Initializes a new instance of SecurityContextCapabilitiesDefinition. + /// The capabilities to add to the container. + /// The capabilities to drop from the container. + internal SecurityContextCapabilitiesDefinition(IList @add, IList drop) + { + Add = @add; + Drop = drop; + } + + /// The capabilities to add to the container. + public IList Add { get; } + /// The capabilities to drop from the container. + public IList Drop { get; } + } +} diff --git a/sdk/containerinstance/Azure.ResourceManager.ContainerInstance/src/Generated/Models/SecurityContextDefinition.Serialization.cs b/sdk/containerinstance/Azure.ResourceManager.ContainerInstance/src/Generated/Models/SecurityContextDefinition.Serialization.cs new file mode 100644 index 000000000000..7cb956ad70c1 --- /dev/null +++ b/sdk/containerinstance/Azure.ResourceManager.ContainerInstance/src/Generated/Models/SecurityContextDefinition.Serialization.cs @@ -0,0 +1,119 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +using System.Text.Json; +using Azure.Core; + +namespace Azure.ResourceManager.ContainerInstance.Models +{ + public partial class SecurityContextDefinition : IUtf8JsonSerializable + { + void IUtf8JsonSerializable.Write(Utf8JsonWriter writer) + { + writer.WriteStartObject(); + if (Optional.IsDefined(Privileged)) + { + writer.WritePropertyName("privileged"u8); + writer.WriteBooleanValue(Privileged.Value); + } + if (Optional.IsDefined(AllowPrivilegeEscalation)) + { + writer.WritePropertyName("allowPrivilegeEscalation"u8); + writer.WriteBooleanValue(AllowPrivilegeEscalation.Value); + } + if (Optional.IsDefined(Capabilities)) + { + writer.WritePropertyName("capabilities"u8); + writer.WriteObjectValue(Capabilities); + } + if (Optional.IsDefined(RunAsGroup)) + { + writer.WritePropertyName("runAsGroup"u8); + writer.WriteNumberValue(RunAsGroup.Value); + } + if (Optional.IsDefined(RunAsUser)) + { + writer.WritePropertyName("runAsUser"u8); + writer.WriteNumberValue(RunAsUser.Value); + } + if (Optional.IsDefined(SeccompProfile)) + { + writer.WritePropertyName("seccompProfile"u8); + writer.WriteStringValue(SeccompProfile); + } + writer.WriteEndObject(); + } + + internal static SecurityContextDefinition DeserializeSecurityContextDefinition(JsonElement element) + { + if (element.ValueKind == JsonValueKind.Null) + { + return null; + } + Optional privileged = default; + Optional allowPrivilegeEscalation = default; + Optional capabilities = default; + Optional runAsGroup = default; + Optional runAsUser = default; + Optional seccompProfile = default; + foreach (var property in element.EnumerateObject()) + { + if (property.NameEquals("privileged"u8)) + { + if (property.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + privileged = property.Value.GetBoolean(); + continue; + } + if (property.NameEquals("allowPrivilegeEscalation"u8)) + { + if (property.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + allowPrivilegeEscalation = property.Value.GetBoolean(); + continue; + } + if (property.NameEquals("capabilities"u8)) + { + if (property.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + capabilities = SecurityContextCapabilitiesDefinition.DeserializeSecurityContextCapabilitiesDefinition(property.Value); + continue; + } + if (property.NameEquals("runAsGroup"u8)) + { + if (property.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + runAsGroup = property.Value.GetInt32(); + continue; + } + if (property.NameEquals("runAsUser"u8)) + { + if (property.Value.ValueKind == JsonValueKind.Null) + { + continue; + } + runAsUser = property.Value.GetInt32(); + continue; + } + if (property.NameEquals("seccompProfile"u8)) + { + seccompProfile = property.Value.GetString(); + continue; + } + } + return new SecurityContextDefinition(Optional.ToNullable(privileged), Optional.ToNullable(allowPrivilegeEscalation), capabilities.Value, Optional.ToNullable(runAsGroup), Optional.ToNullable(runAsUser), seccompProfile.Value); + } + } +} diff --git a/sdk/containerinstance/Azure.ResourceManager.ContainerInstance/src/Generated/Models/SecurityContextDefinition.cs b/sdk/containerinstance/Azure.ResourceManager.ContainerInstance/src/Generated/Models/SecurityContextDefinition.cs new file mode 100644 index 000000000000..10b8b7f6be45 --- /dev/null +++ b/sdk/containerinstance/Azure.ResourceManager.ContainerInstance/src/Generated/Models/SecurityContextDefinition.cs @@ -0,0 +1,48 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +// + +#nullable disable + +namespace Azure.ResourceManager.ContainerInstance.Models +{ + /// The security context for the container. + public partial class SecurityContextDefinition + { + /// Initializes a new instance of SecurityContextDefinition. + public SecurityContextDefinition() + { + } + + /// Initializes a new instance of SecurityContextDefinition. + /// The flag to determine if the container permissions is elevated to Privileged. + /// A boolean value indicating whether the init process can elevate its privileges. + /// The capabilities to add or drop from a container. + /// Sets the User GID for the container. + /// Sets the User UID for the container. + /// a base64 encoded string containing the contents of the JSON in the seccomp profile. + internal SecurityContextDefinition(bool? privileged, bool? allowPrivilegeEscalation, SecurityContextCapabilitiesDefinition capabilities, int? runAsGroup, int? runAsUser, string seccompProfile) + { + Privileged = privileged; + AllowPrivilegeEscalation = allowPrivilegeEscalation; + Capabilities = capabilities; + RunAsGroup = runAsGroup; + RunAsUser = runAsUser; + SeccompProfile = seccompProfile; + } + + /// The flag to determine if the container permissions is elevated to Privileged. + public bool? Privileged { get; set; } + /// A boolean value indicating whether the init process can elevate its privileges. + public bool? AllowPrivilegeEscalation { get; set; } + /// The capabilities to add or drop from a container. + public SecurityContextCapabilitiesDefinition Capabilities { get; set; } + /// Sets the User GID for the container. + public int? RunAsGroup { get; set; } + /// Sets the User UID for the container. + public int? RunAsUser { get; set; } + /// a base64 encoded string containing the contents of the JSON in the seccomp profile. + public string SeccompProfile { get; set; } + } +} diff --git a/sdk/containerinstance/Azure.ResourceManager.ContainerInstance/src/autorest.md b/sdk/containerinstance/Azure.ResourceManager.ContainerInstance/src/autorest.md index f580eba3f01d..07577403c7b8 100644 --- a/sdk/containerinstance/Azure.ResourceManager.ContainerInstance/src/autorest.md +++ b/sdk/containerinstance/Azure.ResourceManager.ContainerInstance/src/autorest.md @@ -7,7 +7,7 @@ azure-arm: true generate-model-factory: false library-name: ContainerInstance namespace: Azure.ResourceManager.ContainerInstance -require: https://github.com/Azure/azure-rest-api-specs/blob/f5a5c4331869641fb5fa86f2e1e78ecd8e456483/specification/containerinstance/resource-manager/readme.md +require: /mnt/vss/_work/1/s/azure-rest-api-specs/specification/containerinstance/resource-manager/readme.md tag: package-preview-2022-10 output-folder: $(this-folder)/Generated clear-output-folder: true