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>