/*
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License").
* You may not use this file except in compliance with the License.
* A copy of the License is located at
*
* http://aws.amazon.com/apache2.0
*
* or in the "license" file accompanying this file. This file is distributed
* on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
* express or implied. See the License for the specific language governing
* permissions and limitations under the License.
*/
/*
* Do not modify this file. This file is generated from the lightsail-2016-11-28.normal.json service model.
*/
using System;
using System.Collections.Generic;
using System.Xml.Serialization;
using System.Text;
using System.IO;
using System.Net;
using Amazon.Runtime;
using Amazon.Runtime.Internal;
namespace Amazon.Lightsail.Model
{
///
/// Describes the synchronization status of the Amazon Simple Storage Service (Amazon
/// S3) account-level block public access (BPA) feature for your Lightsail buckets.
///
///
///
/// The account-level BPA feature of Amazon S3 provides centralized controls to limit
/// public access to all Amazon S3 buckets in an account. BPA can make all Amazon S3 buckets
/// in an Amazon Web Services account private regardless of the individual bucket and
/// object permissions that are configured. Lightsail buckets take into account the Amazon
/// S3 account-level BPA configuration when allowing or denying public access. To do this,
/// Lightsail periodically fetches the account-level BPA configuration from Amazon S3.
/// When the account-level BPA status is InSync
, the Amazon S3 account-level
/// BPA configuration is synchronized and it applies to your Lightsail buckets. For more
/// information about Amazon Simple Storage Service account-level BPA and how it affects
/// Lightsail buckets, see Block
/// public access for buckets in Amazon Lightsail in the Amazon Lightsail Developer
/// Guide.
///
///
public partial class AccountLevelBpaSync
{
private bool? _bpaImpactsLightsail;
private DateTime? _lastSyncedAt;
private BPAStatusMessage _message;
private AccountLevelBpaSyncStatus _status;
///
/// Gets and sets the property BpaImpactsLightsail.
///
/// A Boolean value that indicates whether account-level block public access is affecting
/// your Lightsail buckets.
///
///
public bool BpaImpactsLightsail
{
get { return this._bpaImpactsLightsail.GetValueOrDefault(); }
set { this._bpaImpactsLightsail = value; }
}
// Check to see if BpaImpactsLightsail property is set
internal bool IsSetBpaImpactsLightsail()
{
return this._bpaImpactsLightsail.HasValue;
}
///
/// Gets and sets the property LastSyncedAt.
///
/// The timestamp of when the account-level BPA configuration was last synchronized. This
/// value is null when the account-level BPA configuration has not been synchronized.
///
///
public DateTime LastSyncedAt
{
get { return this._lastSyncedAt.GetValueOrDefault(); }
set { this._lastSyncedAt = value; }
}
// Check to see if LastSyncedAt property is set
internal bool IsSetLastSyncedAt()
{
return this._lastSyncedAt.HasValue;
}
///
/// Gets and sets the property Message.
///
/// A message that provides a reason for a Failed
or Defaulted
/// synchronization status.
///
///
///
/// The following messages are possible:
///
/// -
///
///
SYNC_ON_HOLD
- The synchronization has not yet happened. This status
/// message occurs immediately after you create your first Lightsail bucket. This status
/// message should change after the first synchronization happens, approximately 1 hour
/// after the first bucket is created.
///
/// -
///
///
DEFAULTED_FOR_SLR_MISSING
- The synchronization failed because the required
/// service-linked role is missing from your Amazon Web Services account. The account-level
/// BPA configuration for your Lightsail buckets is defaulted to active until the
/// synchronization can occur. This means that all your buckets are private and not publicly
/// accessible. For more information about how to create the required service-linked role
/// to allow synchronization, see Using
/// Service-Linked Roles for Amazon Lightsail in the Amazon Lightsail Developer
/// Guide.
///
/// -
///
///
DEFAULTED_FOR_SLR_MISSING_ON_HOLD
- The synchronization failed because
/// the required service-linked role is missing from your Amazon Web Services account.
/// Account-level BPA is not yet configured for your Lightsail buckets. Therefore, only
/// the bucket access permissions and individual object access permissions apply to your
/// Lightsail buckets. For more information about how to create the required service-linked
/// role to allow synchronization, see Using
/// Service-Linked Roles for Amazon Lightsail in the Amazon Lightsail Developer
/// Guide.
///
/// -
///
///
Unknown
- The reason that synchronization failed is unknown. Contact
/// Amazon Web Services Support for more information.
///
///
///
public BPAStatusMessage Message
{
get { return this._message; }
set { this._message = value; }
}
// Check to see if Message property is set
internal bool IsSetMessage()
{
return this._message != null;
}
///
/// Gets and sets the property Status.
///
/// The status of the account-level BPA synchronization.
///
///
///
/// The following statuses are possible:
///
/// -
///
///
InSync
- Account-level BPA is synchronized. The Amazon S3 account-level
/// BPA configuration applies to your Lightsail buckets.
///
/// -
///
///
NeverSynced
- Synchronization has not yet happened. The Amazon S3 account-level
/// BPA configuration does not apply to your Lightsail buckets.
///
/// -
///
///
Failed
- Synchronization failed. The Amazon S3 account-level BPA configuration
/// does not apply to your Lightsail buckets.
///
/// -
///
///
Defaulted
- Synchronization failed and account-level BPA for your Lightsail
/// buckets is defaulted to active.
///
///
///
/// You might need to complete further actions if the status is Failed
or
/// Defaulted
. The message
parameter provides more information
/// for those statuses.
///
///
///
public AccountLevelBpaSyncStatus Status
{
get { return this._status; }
set { this._status = value; }
}
// Check to see if Status property is set
internal bool IsSetStatus()
{
return this._status != null;
}
}
}