import { Value } from '../../cloudformation/Value';
import { Tag } from '../Tag';
import { Attribute } from '../../cloudformation/Attribute';
import { AwsResource } from '../../cloudformation/resources/AwsResource';
export type LocationObjectStorageAttributes = {
    LocationUri: Attribute<string>;
    LocationArn: Attribute<string>;
};
export type LocationObjectStorage = AwsResource<'AWS::DataSync::LocationObjectStorage', LocationObjectStorageProperties, LocationObjectStorageAttributes>;
/**
  The <code>AWS::DataSync::LocationObjectStorage</code> resource specifies an endpoint for a self-managed object storage bucket. For more information about self-managed object storage locations, see <a href="https://docs.aws.amazon.com/datasync/latest/userguide/create-object-location.html">Creating a Location for Object Storage</a>.
  For full documentation go to <a href="http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datasync-locationobjectstorage.html">the AWS Docs</a>
*/
export declare function locationObjectStorage(locationObjectStorageProps: LocationObjectStorageProperties): LocationObjectStorage;
/**
  The <code>AWS::DataSync::LocationObjectStorage</code> resource specifies an endpoint for a self-managed object storage bucket. For more information about self-managed object storage locations, see <a href="https://docs.aws.amazon.com/datasync/latest/userguide/create-object-location.html">Creating a Location for Object Storage</a>.
  For full documentation go to <a href="http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datasync-locationobjectstorage.html">the AWS Docs</a>
*/
export interface LocationObjectStorageProperties {
    /** <p> */
    serverCertificate?: Value<string>;
    /** <code>SecretKey</code>  <a name="cfn-datasync-locationobjectstorage-secretkey"></a>
  Specifies the secret key (for example, a password) if credentials are required to authenticate with the object storage server.<br />
  
  Required: No<br />
  
  Minimum: <code>1</code><br />
  
  Maximum: <code>200</code><br />
  
  Pattern: <code>^.+$</code><br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt">No interruption</a> */
    secretKey?: Value<string>;
    /** <code>BucketName</code>  <a name="cfn-datasync-locationobjectstorage-bucketname"></a>
  Specifies the name of the object storage bucket involved in the transfer.<br />
  
  Required: No<br />
  
  Minimum: <code>3</code><br />
  
  Maximum: <code>63</code><br />
  
  Pattern: <code>^[a-zA-Z0-9_\-\+\./\(\)\$\p{Zs}]+$</code><br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement">Replacement</a> */
    bucketName?: Value<string>;
    /** <code>Subdirectory</code>  <a name="cfn-datasync-locationobjectstorage-subdirectory"></a>
  Specifies the object prefix for your object storage server. If this is a source location, DataSync only copies objects with this prefix. If this is a destination location, DataSync writes all objects with this prefix.<br />
  
  Required: No<br />
  
  Maximum: <code>4096</code><br />
  
  Pattern: <code>^[a-zA-Z0-9_\-\+\./\(\)\p{Zs}]*$</code><br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt">No interruption</a> */
    subdirectory?: Value<string>;
    /** <code>ServerHostname</code>  <a name="cfn-datasync-locationobjectstorage-serverhostname"></a>
  Specifies the domain name or IP address of the object storage server. A DataSync agent uses this hostname to mount the object storage server in a network.<br />
  
  Required: No<br />
  
  Maximum: <code>255</code><br />
  
  Pattern: <code>^(([a-zA-Z0-9\-]*[a-zA-Z0-9])\.)*([A-Za-z0-9\-]*[A-Za-z0-9])$</code><br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement">Replacement</a> */
    serverHostname?: Value<string>;
    /** <code>AccessKey</code>  <a name="cfn-datasync-locationobjectstorage-accesskey"></a>
  Specifies the access key (for example, a user name) if credentials are required to authenticate with the object storage server.<br />
  
  Required: No<br />
  
  Minimum: <code>1</code><br />
  
  Maximum: <code>200</code><br />
  
  Pattern: <code>^.+$</code><br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt">No interruption</a> */
    accessKey?: Value<string>;
    /** <code>ServerProtocol</code>  <a name="cfn-datasync-locationobjectstorage-serverprotocol"></a>
  Specifies the protocol that your object storage server uses to communicate.<br />
  
  Required: No<br />
  
  Allowed values: <code>HTTP | HTTPS</code><br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt">No interruption</a> */
    serverProtocol?: Value<'HTTP' | 'HTTPS'>;
    /** <code>AgentArns</code>  <a name="cfn-datasync-locationobjectstorage-agentarns"></a>
  Specifies the Amazon Resource Names (ARNs) of the DataSync agents that can securely connect with your location.<br />
  
  Required: Yes<br />
  
  Maximum: <code>4</code><br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt">No interruption</a> */
    agentArns: Value<Value<string>[]>;
    /** <code>ServerPort</code>  <a name="cfn-datasync-locationobjectstorage-serverport"></a>
  Specifies the port that your object storage server accepts inbound network traffic on (for example, port 443).<br />
  
  Required: No<br />
  
  Minimum: <code>1</code><br />
  
  Maximum: <code>65536</code><br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt">No interruption</a> */
    serverPort?: Value<number>;
    /** <code>Tags</code>  <a name="cfn-datasync-locationobjectstorage-tags"></a>
  Specifies the key-value pair that represents a tag that you want to add to the resource. Tags can help you manage, filter, and search for your resources. We recommend creating a name tag for your location.<br />
  
  Required: No<br />
  
  Maximum: <code>50</code><br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt">No interruption</a> */
    tags?: Tag[];
}
