public RoslynInsertionToolOptions Update(
     Optional <string> enlistmentPath         = default,
     Optional <string> username               = default,
     Optional <string> password               = default,
     Optional <string> visualStudioBranchName = default,
     Optional <string> buildQueueName         = default,
     Optional <string> branchName             = default,
     Optional <string> buildConfig            = default,
     Optional <string> vstsUri                  = default,
     Optional <string> tfsProjectName           = default,
     Optional <string> newBranchName            = default,
     Optional <string> buildDropPath            = default,
     Optional <string> specificBuild            = default,
     Optional <bool> insertCoreXTPackages       = default,
     Optional <bool> updateCoreXTLibraries      = default,
     Optional <bool> updateAssemblyVersions     = default,
     Optional <bool> insertDevDivSourceFiles    = default,
     Optional <bool> insertWillowPackages       = default,
     Optional <string> insertionName            = default,
     Optional <bool> insertToolset              = default,
     Optional <bool> retainInsertedBuild        = default,
     Optional <bool> queueValidationBuild       = default,
     Optional <string> validationBuildQueueName = default,
     Optional <bool> runDDRITsInValidation      = default,
     Optional <bool> runRPSInValidation         = default,
     Optional <bool> createDummyPr              = default,
     Optional <int> updateExistingPr            = default,
     Optional <bool> overwritePr                = default,
     Optional <string> logFileLocation          = default,
     Optional <string> clientId                 = default,
     Optional <string> clientSecret             = default,
     Optional <string> titlePrefix              = default,
     Optional <string[]> partitionsToBuild      = default)
 {
     return(new RoslynInsertionToolOptions(
                enlistmentPath: enlistmentPath.ValueOrFallback(EnlistmentPath),
                username: username.ValueOrFallback(Username),
                password: password.ValueOrFallback(Password),
                visualStudioBranchName: visualStudioBranchName.ValueOrFallback(VisualStudioBranchName),
                buildQueueName: buildQueueName.ValueOrFallback(BuildQueueName),
                branchName: branchName.ValueOrFallback(BranchName),
                buildConfig: buildConfig.ValueOrFallback(BuildConfig),
                vstsUri: vstsUri.ValueOrFallback(VSTSUri),
                tfsProjectName: tfsProjectName.ValueOrFallback(TFSProjectName),
                newBranchName: newBranchName.ValueOrFallback(NewBranchName),
                buildDropPath: buildDropPath.ValueOrFallback(BuildDropPath),
                specificBuild: specificBuild.ValueOrFallback(SpecificBuild),
                insertCoreXTPackages: insertCoreXTPackages.ValueOrFallback(InsertCoreXTPackages),
                updateCoreXTLibraries: updateCoreXTLibraries.ValueOrFallback(UpdateCoreXTLibraries),
                updateAssemblyVersions: updateAssemblyVersions.ValueOrFallback(UpdateAssemblyVersions),
                insertDevDivSourceFiles: insertDevDivSourceFiles.ValueOrFallback(InsertDevDivSourceFiles),
                insertWillowPackages: insertWillowPackages.ValueOrFallback(InsertWillowPackages),
                insertionName: insertionName.ValueOrFallback(InsertionName),
                insertToolset: insertToolset.ValueOrFallback(InsertToolset),
                retainInsertedBuild: retainInsertedBuild.ValueOrFallback(RetainInsertedBuild),
                queueValidationBuild: queueValidationBuild.ValueOrFallback(QueueValidationBuild),
                validationBuildQueueName: validationBuildQueueName.ValueOrFallback(ValidationBuildQueueName),
                runDDRITsInValidation: runDDRITsInValidation.ValueOrFallback(RunDDRITsInValidation),
                runRPSInValidation: runRPSInValidation.ValueOrFallback(RunRPSInValidation),
                createDummyPr: createDummyPr.ValueOrFallback(CreateDummyPr),
                updateExistingPr: updateExistingPr.ValueOrFallback(UpdateExistingPr),
                overwritePr: overwritePr.ValueOrFallback(OverwritePr),
                logFileLocation: logFileLocation.ValueOrFallback(LogFileLocation),
                clientId: clientId.ValueOrFallback(ClientId),
                clientSecret: clientSecret.ValueOrFallback(ClientSecret),
                titlePrefix: titlePrefix.ValueOrFallback(TitlePrefix),
                partitionsToBuild: partitionsToBuild.ValueOrFallback(PartitionsToBuild)));
 }