// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.
// Code generated by Microsoft (R) AutoRest Code Generator.

package com.azure.communication.sms.implementation.models;

import com.azure.core.annotation.Fluent;
import com.fasterxml.jackson.annotation.JsonProperty;

/** The SmsRecipient model. */
@Fluent
public final class SmsRecipient {
    /*
     * The recipient's phone number in E.164 format.
     */
    @JsonProperty(value = "to", required = true)
    private String to;

    /*
     * If specified, the client directs that the request is repeatable; that
     * is, the client can make the request multiple times with the same
     * Repeatability-Request-ID and get back an appropriate response without
     * the server executing the request multiple times. The value of the
     * Repeatability-Request-ID is an opaque string representing a
     * client-generated, 36-character hexadecimal case-insensitive encoding of
     * a UUID (GUID), identifier for the request.
     */
    @JsonProperty(value = "repeatabilityRequestId")
    private String repeatabilityRequestId;

    /*
     * MUST be sent by clients to specify that a request is repeatable.
     * Repeatability-First-Sent is used to specify the date and time at which
     * the request was first created.eg- Tue, 26 Mar 2019 16:06:51 GMT
     */
    @JsonProperty(value = "repeatabilityFirstSent")
    private String repeatabilityFirstSent;

    /**
     * Get the to property: The recipient's phone number in E.164 format.
     *
     * @return the to value.
     */
    public String getTo() {
        return this.to;
    }

    /**
     * Set the to property: The recipient's phone number in E.164 format.
     *
     * @param to the to value to set.
     * @return the SmsRecipient object itself.
     */
    public SmsRecipient setTo(String to) {
        this.to = to;
        return this;
    }

    /**
     * Get the repeatabilityRequestId property: If specified, the client directs that the request is repeatable; that
     * is, the client can make the request multiple times with the same Repeatability-Request-ID and get back an
     * appropriate response without the server executing the request multiple times. The value of the
     * Repeatability-Request-ID is an opaque string representing a client-generated, 36-character hexadecimal
     * case-insensitive encoding of a UUID (GUID), identifier for the request.
     *
     * @return the repeatabilityRequestId value.
     */
    public String getRepeatabilityRequestId() {
        return this.repeatabilityRequestId;
    }

    /**
     * Set the repeatabilityRequestId property: If specified, the client directs that the request is repeatable; that
     * is, the client can make the request multiple times with the same Repeatability-Request-ID and get back an
     * appropriate response without the server executing the request multiple times. The value of the
     * Repeatability-Request-ID is an opaque string representing a client-generated, 36-character hexadecimal
     * case-insensitive encoding of a UUID (GUID), identifier for the request.
     *
     * @param repeatabilityRequestId the repeatabilityRequestId value to set.
     * @return the SmsRecipient object itself.
     */
    public SmsRecipient setRepeatabilityRequestId(String repeatabilityRequestId) {
        this.repeatabilityRequestId = repeatabilityRequestId;
        return this;
    }

    /**
     * Get the repeatabilityFirstSent property: MUST be sent by clients to specify that a request is repeatable.
     * Repeatability-First-Sent is used to specify the date and time at which the request was first created.eg- Tue, 26
     * Mar 2019 16:06:51 GMT.
     *
     * @return the repeatabilityFirstSent value.
     */
    public String getRepeatabilityFirstSent() {
        return this.repeatabilityFirstSent;
    }

    /**
     * Set the repeatabilityFirstSent property: MUST be sent by clients to specify that a request is repeatable.
     * Repeatability-First-Sent is used to specify the date and time at which the request was first created.eg- Tue, 26
     * Mar 2019 16:06:51 GMT.
     *
     * @param repeatabilityFirstSent the repeatabilityFirstSent value to set.
     * @return the SmsRecipient object itself.
     */
    public SmsRecipient setRepeatabilityFirstSent(String repeatabilityFirstSent) {
        this.repeatabilityFirstSent = repeatabilityFirstSent;
        return this;
    }
}
