/*
* 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.
*/
using Amazon.Runtime;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Amazon.S3Control.Internal
{
///
/// Interface to cover various types of S3 resources
///
public interface IS3Resource
{
///
/// Type of the S3 Resource.
///
S3ResourceType Type { get; set; }
///
/// Name of the access point or bucket
///
string Name { get; set; }
///
/// Key for object in bucket
///
string Key { get; set; }
///
/// The S3 resource full ARN representation
///
string FullResourceName { get; }
///
/// Validate if the ARN is compatible with
/// options set in the client config
///
/// A client config to validate with
/// The region to use for cross region checks
void ValidateArnWithClientConfig(IClientConfig config, RegionEndpoint region);
///
/// Get the endpoint based on the client config options
///
/// A client config to provide necessary values for the endpoint
///
Uri GetEndpoint(IClientConfig config);
}
}