s3-artifact-storage-server/kotlin-dsl/S3StorageSettings.xml (192 lines of code) (raw):

<?xml version="1.0" encoding="UTF-8"?> <dsl-extension kind="projectFeature" type="storage_settings" generateDslJar="true" applicable="params['storage.type'] == 'S3_storage'"> <class name="S3Storage"> <description> Amazon S3 Artifact Storage </description> </class> <init> <param name="storage.type" value="S3_storage"/> <param name="storage.s3.bucket.name.wasProvidedAsString" dslName="nameAsString" type="boolean" value="true"/> </init> <function name="s3Storage"> <description> Adds a Amazon S3 Artifact Storage project feature @see S3Storage </description> </function> <params> <param name="storage.name" dslName="storageName"> <description> Storage name </description> </param> <param name="storage.s3.bucket.name" dslName="bucketName" mandatory="true"> <description> Bucket name </description> </param> <param name="storage.s3.bucket.prefix" dslName="bucketPrefix"> <description> Bucket path prefix </description> </param> <param name="storage.s3.upload.presignedUrl.enabled" dslName="enablePresignedURLUpload" type="boolean" trueValue="true" falseValue=""> <description> Whether to use Pre-Signed URLs to upload </description> </param> <param name="storage.s3.forceVirtualHostAddressing" dslName="forceVirtualHostAddressing" type="boolean"> <description> Whether to force Virtual Host Addressing </description> </param> <param name="storage.s3.accelerateModeEnabled" dslName="enableTransferAcceleration" type="boolean"> <description> Whether to enable Transfer Acceleration </description> </param> <param name="storage.s3.upload.multipart_threshold" dslName="multipartThreshold"> <description> Initiates multipart upload for files larger than the specified value. Minimum value is 5MB. Allowed suffixes: KB, MB, GB, TB. Leave empty to use the default value. </description> </param> <param name="storage.s3.upload.multipart_chunksize" dslName="multipartChunksize"> <description> Specify the maximum allowed part size. Minimum value is 5MB. Allowed suffixes: KB, MB, GB, TB. Leave empty to use the default value. </description> </param> <param name="storage.s3.cloudfront.enabled" dslName="cloudFrontEnabled" type="boolean" trueValue="true" falseValue=""> <description> Whether to use CloudFront for artifact transport </description> </param> <param name="storage.s3.cloudfront.upload.distribution" dslName="cloudFrontUploadDistribution" type="string"> <description> Name of CloudFront distribution for uploads </description> </param> <param name="storage.s3.cloudfront.download.distribution" dslName="cloudFrontDownloadDistribution" type="string"> <description> Name of CloudFront distribution for downloads </description> </param> <param name="storage.s3.cloudfront.publicKeyId" dslName="cloudFrontPublicKeyId" type="string"> <description> Id of Public Key in CloudFront that has access to selected distribution </description> </param> <param name="secure:storage.s3.cloudfront.privateKey" dslName="cloudFrontPrivateKey"> <description> Private key that corresponds to chosen public key </description> </param> <param name="storage.s3.verifyIntegrityAfterUpload" dslName="verifyIntegrityAfterUpload" type="boolean"> <description> Whether to verify integrity of artifacts after upload </description> </param> </params> <examples> <example> <description> Adds new storage that allows TeamCity to store build artifacts in S3 </description> <code> s3Storage { id = "S3_STORAGE_ID" storageName = "Storage Name" bucketName = "Bucket_Name" bucketPrefix = "path/prefix" forceVirtualHostAddressing = true enableTransferAcceleration = false multipartThreshold = "8MB" multipartChunksize = "8MB" // AWS S3 storage requires configured Credentials connectionId = "AWS Connection ID" } </code> </example> <example> <description> Adds new storage that allows TeamCity to store build artifacts in S3 and upload/download them using CloudFront </description> <code> s3Storage { id = "S3_STORAGE_ID" storageName = "Storage Name" bucketName = "Bucket_Name" bucketPrefix = "path/prefix" forceVirtualHostAddressing = true multipartThreshold = "6MB" multipartChunksize = "8MB" connectionId = "AWS Connection ID" //CloudFront configuration cloudFrontEnabled = true cloudFrontUploadDistribution = "ID of CloudFront Distribution used for uploads" cloudFrontDownloadDistribution = "ID of CloudFront Distribution used for downloads" cloudFrontPublicKeyId = "ID of CloudFront public key" cloudFrontPrivateKey = "credentialsJSON:CloudFront-private-key-link" } </code> </example> <example> <description> Adds new storage that allows TeamCity to store build artifacts in S3 and upload/download them with Transfer Acceleration </description> <code> s3Storage { id = "S3_STORAGE_ID" storageName = "Storage Name" bucketName = "Bucket_Name" connectionId = "AWS Connection ID" // must be set to true to enable Transfer Acceleration forceVirtualHostAddressing = true enableTransferAcceleration = true } </code> </example> <example> <description> S3 Storage. Disable integrity verification </description> <code> s3Storage { id = "S3_STORAGE_ID" storageName = "Storage Name" bucketName = "Bucket_Name" connectionId = "AWS Connection ID" verifyIntegrityAfterUpload = false } </code> </example> <example> <description> AWSEnvironment. Selects default environment with specific AWS region </description> <code> awsEnvironment = default { awsRegionName = "" } </code> </example> <example> <description> AWSEnvironment. Selects custom environment with specific region </description> <code> awsEnvironment = custom { endpoint = "URL of custom endpoint" awsRegionName = "region" } </code> </example> </examples> </dsl-extension>