commonMain.aws.sdk.kotlin.services.fsx.model.WindowsAuditLogCreateConfiguration.kt Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of fsx-jvm Show documentation
Show all versions of fsx-jvm Show documentation
The AWS SDK for Kotlin client for FSx
// Code generated by smithy-kotlin-codegen. DO NOT EDIT!
package aws.sdk.kotlin.services.fsx.model
import aws.smithy.kotlin.runtime.SdkDsl
/**
* The Windows file access auditing configuration used when creating or updating an Amazon FSx for Windows File Server file system.
*/
public class WindowsAuditLogCreateConfiguration private constructor(builder: Builder) {
/**
* The Amazon Resource Name (ARN) that specifies the destination of the audit logs.
*
* The destination can be any Amazon CloudWatch Logs log group ARN or Amazon Kinesis Data Firehose delivery stream ARN, with the following requirements:
* + The destination ARN that you provide (either CloudWatch Logs log group or Kinesis Data Firehose delivery stream) must be in the same Amazon Web Services partition, Amazon Web Services Region, and Amazon Web Services account as your Amazon FSx file system.
* + The name of the Amazon CloudWatch Logs log group must begin with the `/aws/fsx` prefix. The name of the Amazon Kinesis Data Firehose delivery stream must begin with the `aws-fsx` prefix.
* + If you do not provide a destination in `AuditLogDestination`, Amazon FSx will create and use a log stream in the CloudWatch Logs `/aws/fsx/windows` log group.
* + If `AuditLogDestination` is provided and the resource does not exist, the request will fail with a `BadRequest` error.
* + If `FileAccessAuditLogLevel` and `FileShareAccessAuditLogLevel` are both set to `DISABLED`, you cannot specify a destination in `AuditLogDestination`.
*/
public val auditLogDestination: kotlin.String? = builder.auditLogDestination
/**
* Sets which attempt type is logged by Amazon FSx for file and folder accesses.
* + `SUCCESS_ONLY` - only successful attempts to access files or folders are logged.
* + `FAILURE_ONLY` - only failed attempts to access files or folders are logged.
* + `SUCCESS_AND_FAILURE` - both successful attempts and failed attempts to access files or folders are logged.
* + `DISABLED` - access auditing of files and folders is turned off.
*/
public val fileAccessAuditLogLevel: aws.sdk.kotlin.services.fsx.model.WindowsAccessAuditLogLevel? = builder.fileAccessAuditLogLevel
/**
* Sets which attempt type is logged by Amazon FSx for file share accesses.
* + `SUCCESS_ONLY` - only successful attempts to access file shares are logged.
* + `FAILURE_ONLY` - only failed attempts to access file shares are logged.
* + `SUCCESS_AND_FAILURE` - both successful attempts and failed attempts to access file shares are logged.
* + `DISABLED` - access auditing of file shares is turned off.
*/
public val fileShareAccessAuditLogLevel: aws.sdk.kotlin.services.fsx.model.WindowsAccessAuditLogLevel? = builder.fileShareAccessAuditLogLevel
public companion object {
public operator fun invoke(block: Builder.() -> kotlin.Unit): aws.sdk.kotlin.services.fsx.model.WindowsAuditLogCreateConfiguration = Builder().apply(block).build()
}
override fun toString(): kotlin.String = buildString {
append("WindowsAuditLogCreateConfiguration(")
append("auditLogDestination=$auditLogDestination,")
append("fileAccessAuditLogLevel=$fileAccessAuditLogLevel,")
append("fileShareAccessAuditLogLevel=$fileShareAccessAuditLogLevel")
append(")")
}
override fun hashCode(): kotlin.Int {
var result = auditLogDestination?.hashCode() ?: 0
result = 31 * result + (fileAccessAuditLogLevel?.hashCode() ?: 0)
result = 31 * result + (fileShareAccessAuditLogLevel?.hashCode() ?: 0)
return result
}
override fun equals(other: kotlin.Any?): kotlin.Boolean {
if (this === other) return true
if (other == null || this::class != other::class) return false
other as WindowsAuditLogCreateConfiguration
if (auditLogDestination != other.auditLogDestination) return false
if (fileAccessAuditLogLevel != other.fileAccessAuditLogLevel) return false
if (fileShareAccessAuditLogLevel != other.fileShareAccessAuditLogLevel) return false
return true
}
public inline fun copy(block: Builder.() -> kotlin.Unit = {}): aws.sdk.kotlin.services.fsx.model.WindowsAuditLogCreateConfiguration = Builder(this).apply(block).build()
@SdkDsl
public class Builder {
/**
* The Amazon Resource Name (ARN) that specifies the destination of the audit logs.
*
* The destination can be any Amazon CloudWatch Logs log group ARN or Amazon Kinesis Data Firehose delivery stream ARN, with the following requirements:
* + The destination ARN that you provide (either CloudWatch Logs log group or Kinesis Data Firehose delivery stream) must be in the same Amazon Web Services partition, Amazon Web Services Region, and Amazon Web Services account as your Amazon FSx file system.
* + The name of the Amazon CloudWatch Logs log group must begin with the `/aws/fsx` prefix. The name of the Amazon Kinesis Data Firehose delivery stream must begin with the `aws-fsx` prefix.
* + If you do not provide a destination in `AuditLogDestination`, Amazon FSx will create and use a log stream in the CloudWatch Logs `/aws/fsx/windows` log group.
* + If `AuditLogDestination` is provided and the resource does not exist, the request will fail with a `BadRequest` error.
* + If `FileAccessAuditLogLevel` and `FileShareAccessAuditLogLevel` are both set to `DISABLED`, you cannot specify a destination in `AuditLogDestination`.
*/
public var auditLogDestination: kotlin.String? = null
/**
* Sets which attempt type is logged by Amazon FSx for file and folder accesses.
* + `SUCCESS_ONLY` - only successful attempts to access files or folders are logged.
* + `FAILURE_ONLY` - only failed attempts to access files or folders are logged.
* + `SUCCESS_AND_FAILURE` - both successful attempts and failed attempts to access files or folders are logged.
* + `DISABLED` - access auditing of files and folders is turned off.
*/
public var fileAccessAuditLogLevel: aws.sdk.kotlin.services.fsx.model.WindowsAccessAuditLogLevel? = null
/**
* Sets which attempt type is logged by Amazon FSx for file share accesses.
* + `SUCCESS_ONLY` - only successful attempts to access file shares are logged.
* + `FAILURE_ONLY` - only failed attempts to access file shares are logged.
* + `SUCCESS_AND_FAILURE` - both successful attempts and failed attempts to access file shares are logged.
* + `DISABLED` - access auditing of file shares is turned off.
*/
public var fileShareAccessAuditLogLevel: aws.sdk.kotlin.services.fsx.model.WindowsAccessAuditLogLevel? = null
@PublishedApi
internal constructor()
@PublishedApi
internal constructor(x: aws.sdk.kotlin.services.fsx.model.WindowsAuditLogCreateConfiguration) : this() {
this.auditLogDestination = x.auditLogDestination
this.fileAccessAuditLogLevel = x.fileAccessAuditLogLevel
this.fileShareAccessAuditLogLevel = x.fileShareAccessAuditLogLevel
}
@PublishedApi
internal fun build(): aws.sdk.kotlin.services.fsx.model.WindowsAuditLogCreateConfiguration = WindowsAuditLogCreateConfiguration(this)
internal fun correctErrors(): Builder {
return this
}
}
}