private BinaryData SerializeBicep()

in sdk/sqlmanagement/Azure.ResourceManager.Sql/src/Custom/DistributedAvailabilityGroupData.Serialization.cs [259:526]


        private BinaryData SerializeBicep(ModelReaderWriterOptions options)
        {
            StringBuilder builder = new StringBuilder();
            BicepModelReaderWriterOptions bicepOptions = options as BicepModelReaderWriterOptions;
            IDictionary<string, string> propertyOverrides = null;
            bool hasObjectOverride = bicepOptions != null && bicepOptions.PropertyOverrides.TryGetValue(this, out propertyOverrides);
            bool hasPropertyOverride = false;
            string propertyOverride = null;

            builder.AppendLine("{");

            hasPropertyOverride = hasObjectOverride && propertyOverrides.TryGetValue(nameof(Name), out propertyOverride);
            if (hasPropertyOverride)
            {
                builder.Append("  name: ");
                builder.AppendLine(propertyOverride);
            }
            else
            {
                if (Optional.IsDefined(Name))
                {
                    builder.Append("  name: ");
                    if (Name.Contains(Environment.NewLine))
                    {
                        builder.AppendLine("'''");
                        builder.AppendLine($"{Name}'''");
                    }
                    else
                    {
                        builder.AppendLine($"'{Name}'");
                    }
                }
            }

            hasPropertyOverride = hasObjectOverride && propertyOverrides.TryGetValue(nameof(Id), out propertyOverride);
            if (hasPropertyOverride)
            {
                builder.Append("  id: ");
                builder.AppendLine(propertyOverride);
            }
            else
            {
                if (Optional.IsDefined(Id))
                {
                    builder.Append("  id: ");
                    builder.AppendLine($"'{Id.ToString()}'");
                }
            }

            hasPropertyOverride = hasObjectOverride && propertyOverrides.TryGetValue(nameof(SystemData), out propertyOverride);
            if (hasPropertyOverride)
            {
                builder.Append("  systemData: ");
                builder.AppendLine(propertyOverride);
            }
            else
            {
                if (Optional.IsDefined(SystemData))
                {
                    builder.Append("  systemData: ");
                    builder.AppendLine($"'{SystemData.ToString()}'");
                }
            }

            builder.Append("  properties:");
            builder.AppendLine(" {");
            hasPropertyOverride = hasObjectOverride && propertyOverrides.TryGetValue(nameof(TargetDatabase), out propertyOverride);
            if (hasPropertyOverride)
            {
                builder.Append("    targetDatabase: ");
                builder.AppendLine(propertyOverride);
            }
            else
            {
                if (Optional.IsDefined(TargetDatabase))
                {
                    builder.Append("    targetDatabase: ");
                    if (TargetDatabase.Contains(Environment.NewLine))
                    {
                        builder.AppendLine("'''");
                        builder.AppendLine($"{TargetDatabase}'''");
                    }
                    else
                    {
                        builder.AppendLine($"'{TargetDatabase}'");
                    }
                }
            }

            hasPropertyOverride = hasObjectOverride && propertyOverrides.TryGetValue(nameof(SourceEndpoint), out propertyOverride);
            if (hasPropertyOverride)
            {
                builder.Append("    sourceEndpoint: ");
                builder.AppendLine(propertyOverride);
            }
            else
            {
                if (Optional.IsDefined(SourceEndpoint))
                {
                    builder.Append("    sourceEndpoint: ");
                    if (SourceEndpoint.Contains(Environment.NewLine))
                    {
                        builder.AppendLine("'''");
                        builder.AppendLine($"{SourceEndpoint}'''");
                    }
                    else
                    {
                        builder.AppendLine($"'{SourceEndpoint}'");
                    }
                }
            }

            hasPropertyOverride = hasObjectOverride && propertyOverrides.TryGetValue(nameof(PrimaryAvailabilityGroupName), out propertyOverride);
            if (hasPropertyOverride)
            {
                builder.Append("    primaryAvailabilityGroupName: ");
                builder.AppendLine(propertyOverride);
            }
            else
            {
                if (Optional.IsDefined(PrimaryAvailabilityGroupName))
                {
                    builder.Append("    primaryAvailabilityGroupName: ");
                    if (PrimaryAvailabilityGroupName.Contains(Environment.NewLine))
                    {
                        builder.AppendLine("'''");
                        builder.AppendLine($"{PrimaryAvailabilityGroupName}'''");
                    }
                    else
                    {
                        builder.AppendLine($"'{PrimaryAvailabilityGroupName}'");
                    }
                }
            }

            hasPropertyOverride = hasObjectOverride && propertyOverrides.TryGetValue(nameof(SecondaryAvailabilityGroupName), out propertyOverride);
            if (hasPropertyOverride)
            {
                builder.Append("    secondaryAvailabilityGroupName: ");
                builder.AppendLine(propertyOverride);
            }
            else
            {
                if (Optional.IsDefined(SecondaryAvailabilityGroupName))
                {
                    builder.Append("    secondaryAvailabilityGroupName: ");
                    if (SecondaryAvailabilityGroupName.Contains(Environment.NewLine))
                    {
                        builder.AppendLine("'''");
                        builder.AppendLine($"{SecondaryAvailabilityGroupName}'''");
                    }
                    else
                    {
                        builder.AppendLine($"'{SecondaryAvailabilityGroupName}'");
                    }
                }
            }

            hasPropertyOverride = hasObjectOverride && propertyOverrides.TryGetValue(nameof(ReplicationMode), out propertyOverride);
            if (hasPropertyOverride)
            {
                builder.Append("    replicationMode: ");
                builder.AppendLine(propertyOverride);
            }
            else
            {
                if (Optional.IsDefined(ReplicationMode))
                {
                    builder.Append("    replicationMode: ");
                    builder.AppendLine($"'{ReplicationMode.Value.ToString()}'");
                }
            }

            hasPropertyOverride = hasObjectOverride && propertyOverrides.TryGetValue(nameof(DistributedAvailabilityGroupId), out propertyOverride);
            if (hasPropertyOverride)
            {
                builder.Append("    distributedAvailabilityGroupId: ");
                builder.AppendLine(propertyOverride);
            }
            else
            {
                if (Optional.IsDefined(DistributedAvailabilityGroupId))
                {
                    builder.Append("    distributedAvailabilityGroupId: ");
                    builder.AppendLine($"'{DistributedAvailabilityGroupId.Value.ToString()}'");
                }
            }

            hasPropertyOverride = hasObjectOverride && propertyOverrides.TryGetValue(nameof(SourceReplicaId), out propertyOverride);
            if (hasPropertyOverride)
            {
                builder.Append("    sourceReplicaId: ");
                builder.AppendLine(propertyOverride);
            }
            else
            {
                if (Optional.IsDefined(SourceReplicaId))
                {
                    builder.Append("    sourceReplicaId: ");
                    builder.AppendLine($"'{SourceReplicaId.Value.ToString()}'");
                }
            }

            hasPropertyOverride = hasObjectOverride && propertyOverrides.TryGetValue(nameof(TargetReplicaId), out propertyOverride);
            if (hasPropertyOverride)
            {
                builder.Append("    targetReplicaId: ");
                builder.AppendLine(propertyOverride);
            }
            else
            {
                if (Optional.IsDefined(TargetReplicaId))
                {
                    builder.Append("    targetReplicaId: ");
                    builder.AppendLine($"'{TargetReplicaId.Value.ToString()}'");
                }
            }

            hasPropertyOverride = hasObjectOverride && propertyOverrides.TryGetValue(nameof(LinkState), out propertyOverride);
            if (hasPropertyOverride)
            {
                builder.Append("    linkState: ");
                builder.AppendLine(propertyOverride);
            }
            else
            {
                if (Optional.IsDefined(LinkState))
                {
                    builder.Append("    linkState: ");
                    if (LinkState.Contains(Environment.NewLine))
                    {
                        builder.AppendLine("'''");
                        builder.AppendLine($"{LinkState}'''");
                    }
                    else
                    {
                        builder.AppendLine($"'{LinkState}'");
                    }
                }
            }

            hasPropertyOverride = hasObjectOverride && propertyOverrides.TryGetValue(nameof(LastHardenedLsn), out propertyOverride);
            if (hasPropertyOverride)
            {
                builder.Append("    lastHardenedLsn: ");
                builder.AppendLine(propertyOverride);
            }
            else
            {
                if (Optional.IsDefined(LastHardenedLsn))
                {
                    builder.Append("    lastHardenedLsn: ");
                    if (LastHardenedLsn.Contains(Environment.NewLine))
                    {
                        builder.AppendLine("'''");
                        builder.AppendLine($"{LastHardenedLsn}'''");
                    }
                    else
                    {
                        builder.AppendLine($"'{LastHardenedLsn}'");
                    }
                }
            }

            builder.AppendLine("  }");
            builder.AppendLine("}");
            return BinaryData.FromString(builder.ToString());
        }