import * as core from "@terrascript/core";

export interface SmsPreferencesArgs extends core.ResourceArgs {
  defaultSenderId?: string | core.StringOut;

  defaultSmsType?: string | core.StringOut;

  deliveryStatusIamRoleArn?: string | core.StringOut;

  deliveryStatusSuccessSamplingRate?: string | core.StringOut;

  monthlySpendLimit?: number | core.NumberOut;

  usageReportS3Bucket?: string | core.StringOut;
}

export class SmsPreferences extends core.Resource<SmsPreferencesArgs> {
  @core.attr(String)
  public defaultSenderId?: string | core.StringOut;

  @core.attr(String)
  public defaultSmsType?: string | core.StringOut;

  @core.attr(String)
  public deliveryStatusIamRoleArn?: string | core.StringOut;

  @core.attr(String)
  public deliveryStatusSuccessSamplingRate?: string | core.StringOut;

  @core.attr(String, { computed: true })
  public id!: string | core.StringOut;

  @core.attr(Number, { computed: true })
  public monthlySpendLimit?: number | core.NumberOut;

  @core.attr(String)
  public usageReportS3Bucket?: string | core.StringOut;

  constructor(name: string, args?: SmsPreferencesArgs) {
    super(name, "aws_sns_sms_preferences", args);
  }

  public override getNamespace(): string {
    return "aws_sns";
  }
}
