// generated from terraform resource schema
import * as cdktf from 'cdktf';
/**
* Represents a {@link https://www.terraform.io/docs/providers/aws/r/sns_platform_application aws_sns_platform_application}
*/
export class SnsPlatformApplication extends cdktf.TerraformResource {
    // =================
    // STATIC PROPERTIES
    // =================
    static tfResourceType = "aws_sns_platform_application";
    // ===========
    // INITIALIZER
    // ===========
    /**
    * Create a new {@link https://www.terraform.io/docs/providers/aws/r/sns_platform_application aws_sns_platform_application} Resource
    *
    * @param scope The scope in which to define this construct
    * @param id The scoped construct ID. Must be unique amongst siblings in the same scope
    * @param options SnsPlatformApplicationConfig
    */
    constructor(scope, id, config) {
        super(scope, id, {
            terraformResourceType: 'aws_sns_platform_application',
            terraformGeneratorMetadata: {
                providerName: 'aws'
            },
            provider: config.provider,
            dependsOn: config.dependsOn,
            count: config.count,
            lifecycle: config.lifecycle
        });
        this._eventDeliveryFailureTopicArn = config.eventDeliveryFailureTopicArn;
        this._eventEndpointCreatedTopicArn = config.eventEndpointCreatedTopicArn;
        this._eventEndpointDeletedTopicArn = config.eventEndpointDeletedTopicArn;
        this._eventEndpointUpdatedTopicArn = config.eventEndpointUpdatedTopicArn;
        this._failureFeedbackRoleArn = config.failureFeedbackRoleArn;
        this._name = config.name;
        this._platform = config.platform;
        this._platformCredential = config.platformCredential;
        this._platformPrincipal = config.platformPrincipal;
        this._successFeedbackRoleArn = config.successFeedbackRoleArn;
        this._successFeedbackSampleRate = config.successFeedbackSampleRate;
    }
    // ==========
    // ATTRIBUTES
    // ==========
    // arn - computed: true, optional: false, required: false
    get arn() {
        return this.getStringAttribute('arn');
    }
    // event_delivery_failure_topic_arn - computed: false, optional: true, required: false
    _eventDeliveryFailureTopicArn;
    get eventDeliveryFailureTopicArn() {
        return this.getStringAttribute('event_delivery_failure_topic_arn');
    }
    set eventDeliveryFailureTopicArn(value) {
        this._eventDeliveryFailureTopicArn = value;
    }
    resetEventDeliveryFailureTopicArn() {
        this._eventDeliveryFailureTopicArn = undefined;
    }
    // Temporarily expose input value. Use with caution.
    get eventDeliveryFailureTopicArnInput() {
        return this._eventDeliveryFailureTopicArn;
    }
    // event_endpoint_created_topic_arn - computed: false, optional: true, required: false
    _eventEndpointCreatedTopicArn;
    get eventEndpointCreatedTopicArn() {
        return this.getStringAttribute('event_endpoint_created_topic_arn');
    }
    set eventEndpointCreatedTopicArn(value) {
        this._eventEndpointCreatedTopicArn = value;
    }
    resetEventEndpointCreatedTopicArn() {
        this._eventEndpointCreatedTopicArn = undefined;
    }
    // Temporarily expose input value. Use with caution.
    get eventEndpointCreatedTopicArnInput() {
        return this._eventEndpointCreatedTopicArn;
    }
    // event_endpoint_deleted_topic_arn - computed: false, optional: true, required: false
    _eventEndpointDeletedTopicArn;
    get eventEndpointDeletedTopicArn() {
        return this.getStringAttribute('event_endpoint_deleted_topic_arn');
    }
    set eventEndpointDeletedTopicArn(value) {
        this._eventEndpointDeletedTopicArn = value;
    }
    resetEventEndpointDeletedTopicArn() {
        this._eventEndpointDeletedTopicArn = undefined;
    }
    // Temporarily expose input value. Use with caution.
    get eventEndpointDeletedTopicArnInput() {
        return this._eventEndpointDeletedTopicArn;
    }
    // event_endpoint_updated_topic_arn - computed: false, optional: true, required: false
    _eventEndpointUpdatedTopicArn;
    get eventEndpointUpdatedTopicArn() {
        return this.getStringAttribute('event_endpoint_updated_topic_arn');
    }
    set eventEndpointUpdatedTopicArn(value) {
        this._eventEndpointUpdatedTopicArn = value;
    }
    resetEventEndpointUpdatedTopicArn() {
        this._eventEndpointUpdatedTopicArn = undefined;
    }
    // Temporarily expose input value. Use with caution.
    get eventEndpointUpdatedTopicArnInput() {
        return this._eventEndpointUpdatedTopicArn;
    }
    // failure_feedback_role_arn - computed: false, optional: true, required: false
    _failureFeedbackRoleArn;
    get failureFeedbackRoleArn() {
        return this.getStringAttribute('failure_feedback_role_arn');
    }
    set failureFeedbackRoleArn(value) {
        this._failureFeedbackRoleArn = value;
    }
    resetFailureFeedbackRoleArn() {
        this._failureFeedbackRoleArn = undefined;
    }
    // Temporarily expose input value. Use with caution.
    get failureFeedbackRoleArnInput() {
        return this._failureFeedbackRoleArn;
    }
    // id - computed: true, optional: true, required: false
    get id() {
        return this.getStringAttribute('id');
    }
    // name - computed: false, optional: false, required: true
    _name;
    get name() {
        return this.getStringAttribute('name');
    }
    set name(value) {
        this._name = value;
    }
    // Temporarily expose input value. Use with caution.
    get nameInput() {
        return this._name;
    }
    // platform - computed: false, optional: false, required: true
    _platform;
    get platform() {
        return this.getStringAttribute('platform');
    }
    set platform(value) {
        this._platform = value;
    }
    // Temporarily expose input value. Use with caution.
    get platformInput() {
        return this._platform;
    }
    // platform_credential - computed: false, optional: false, required: true
    _platformCredential;
    get platformCredential() {
        return this.getStringAttribute('platform_credential');
    }
    set platformCredential(value) {
        this._platformCredential = value;
    }
    // Temporarily expose input value. Use with caution.
    get platformCredentialInput() {
        return this._platformCredential;
    }
    // platform_principal - computed: false, optional: true, required: false
    _platformPrincipal;
    get platformPrincipal() {
        return this.getStringAttribute('platform_principal');
    }
    set platformPrincipal(value) {
        this._platformPrincipal = value;
    }
    resetPlatformPrincipal() {
        this._platformPrincipal = undefined;
    }
    // Temporarily expose input value. Use with caution.
    get platformPrincipalInput() {
        return this._platformPrincipal;
    }
    // success_feedback_role_arn - computed: false, optional: true, required: false
    _successFeedbackRoleArn;
    get successFeedbackRoleArn() {
        return this.getStringAttribute('success_feedback_role_arn');
    }
    set successFeedbackRoleArn(value) {
        this._successFeedbackRoleArn = value;
    }
    resetSuccessFeedbackRoleArn() {
        this._successFeedbackRoleArn = undefined;
    }
    // Temporarily expose input value. Use with caution.
    get successFeedbackRoleArnInput() {
        return this._successFeedbackRoleArn;
    }
    // success_feedback_sample_rate - computed: false, optional: true, required: false
    _successFeedbackSampleRate;
    get successFeedbackSampleRate() {
        return this.getStringAttribute('success_feedback_sample_rate');
    }
    set successFeedbackSampleRate(value) {
        this._successFeedbackSampleRate = value;
    }
    resetSuccessFeedbackSampleRate() {
        this._successFeedbackSampleRate = undefined;
    }
    // Temporarily expose input value. Use with caution.
    get successFeedbackSampleRateInput() {
        return this._successFeedbackSampleRate;
    }
    // =========
    // SYNTHESIS
    // =========
    synthesizeAttributes() {
        return {
            event_delivery_failure_topic_arn: cdktf.stringToTerraform(this._eventDeliveryFailureTopicArn),
            event_endpoint_created_topic_arn: cdktf.stringToTerraform(this._eventEndpointCreatedTopicArn),
            event_endpoint_deleted_topic_arn: cdktf.stringToTerraform(this._eventEndpointDeletedTopicArn),
            event_endpoint_updated_topic_arn: cdktf.stringToTerraform(this._eventEndpointUpdatedTopicArn),
            failure_feedback_role_arn: cdktf.stringToTerraform(this._failureFeedbackRoleArn),
            name: cdktf.stringToTerraform(this._name),
            platform: cdktf.stringToTerraform(this._platform),
            platform_credential: cdktf.stringToTerraform(this._platformCredential),
            platform_principal: cdktf.stringToTerraform(this._platformPrincipal),
            success_feedback_role_arn: cdktf.stringToTerraform(this._successFeedbackRoleArn),
            success_feedback_sample_rate: cdktf.stringToTerraform(this._successFeedbackSampleRate),
        };
    }
}
//# sourceMappingURL=sns-platform-application.js.map