1# coding=utf-8
2# --------------------------------------------------------------------------
3# Copyright (c) Microsoft Corporation. All rights reserved.
4# Licensed under the MIT License. See License.txt in the project root for
5# license information.
6#
7# Code generated by Microsoft (R) AutoRest Code Generator.
8# Changes may cause incorrect behavior and will be lost if the code is
9# regenerated.
10# --------------------------------------------------------------------------
11
12from msrest.serialization import Model
13
14
15class ServiceSasParameters(Model):
16    """The parameters to list service SAS credentials of a specific resource.
17
18    :param canonicalized_resource: The canonical path to the signed resource.
19    :type canonicalized_resource: str
20    :param resource: The signed services accessible with the service SAS.
21     Possible values include: Blob (b), Container (c), File (f), Share (s).
22     Possible values include: 'b', 'c', 'f', 's'
23    :type resource: str or :class:`enum
24     <azure.mgmt.storage.v2016_12_01.models.enum>`
25    :param permissions: The signed permissions for the service SAS. Possible
26     values include: Read (r), Write (w), Delete (d), List (l), Add (a), Create
27     (c), Update (u) and Process (p). Possible values include: 'r', 'd', 'w',
28     'l', 'a', 'c', 'u', 'p'
29    :type permissions: str or :class:`enum
30     <azure.mgmt.storage.v2016_12_01.models.enum>`
31    :param ip_address_or_range: An IP address or a range of IP addresses from
32     which to accept requests.
33    :type ip_address_or_range: str
34    :param protocols: The protocol permitted for a request made with the
35     account SAS. Possible values include: 'https,http', 'https'
36    :type protocols: str or :class:`HttpProtocol
37     <azure.mgmt.storage.v2016_12_01.models.HttpProtocol>`
38    :param shared_access_start_time: The time at which the SAS becomes valid.
39    :type shared_access_start_time: datetime
40    :param shared_access_expiry_time: The time at which the shared access
41     signature becomes invalid.
42    :type shared_access_expiry_time: datetime
43    :param identifier: A unique value up to 64 characters in length that
44     correlates to an access policy specified for the container, queue, or
45     table.
46    :type identifier: str
47    :param partition_key_start: The start of partition key.
48    :type partition_key_start: str
49    :param partition_key_end: The end of partition key.
50    :type partition_key_end: str
51    :param row_key_start: The start of row key.
52    :type row_key_start: str
53    :param row_key_end: The end of row key.
54    :type row_key_end: str
55    :param key_to_sign: The key to sign the account SAS token with.
56    :type key_to_sign: str
57    :param cache_control: The response header override for cache control.
58    :type cache_control: str
59    :param content_disposition: The response header override for content
60     disposition.
61    :type content_disposition: str
62    :param content_encoding: The response header override for content
63     encoding.
64    :type content_encoding: str
65    :param content_language: The response header override for content
66     language.
67    :type content_language: str
68    :param content_type: The response header override for content type.
69    :type content_type: str
70    """
71
72    _validation = {
73        'canonicalized_resource': {'required': True},
74        'resource': {'required': True},
75        'identifier': {'max_length': 64},
76    }
77
78    _attribute_map = {
79        'canonicalized_resource': {'key': 'canonicalizedResource', 'type': 'str'},
80        'resource': {'key': 'signedResource', 'type': 'str'},
81        'permissions': {'key': 'signedPermission', 'type': 'str'},
82        'ip_address_or_range': {'key': 'signedIp', 'type': 'str'},
83        'protocols': {'key': 'signedProtocol', 'type': 'HttpProtocol'},
84        'shared_access_start_time': {'key': 'signedStart', 'type': 'iso-8601'},
85        'shared_access_expiry_time': {'key': 'signedExpiry', 'type': 'iso-8601'},
86        'identifier': {'key': 'signedIdentifier', 'type': 'str'},
87        'partition_key_start': {'key': 'startPk', 'type': 'str'},
88        'partition_key_end': {'key': 'endPk', 'type': 'str'},
89        'row_key_start': {'key': 'startRk', 'type': 'str'},
90        'row_key_end': {'key': 'endRk', 'type': 'str'},
91        'key_to_sign': {'key': 'keyToSign', 'type': 'str'},
92        'cache_control': {'key': 'rscc', 'type': 'str'},
93        'content_disposition': {'key': 'rscd', 'type': 'str'},
94        'content_encoding': {'key': 'rsce', 'type': 'str'},
95        'content_language': {'key': 'rscl', 'type': 'str'},
96        'content_type': {'key': 'rsct', 'type': 'str'},
97    }
98
99    def __init__(self, canonicalized_resource, resource, permissions=None, ip_address_or_range=None, protocols=None, shared_access_start_time=None, shared_access_expiry_time=None, identifier=None, partition_key_start=None, partition_key_end=None, row_key_start=None, row_key_end=None, key_to_sign=None, cache_control=None, content_disposition=None, content_encoding=None, content_language=None, content_type=None):
100        self.canonicalized_resource = canonicalized_resource
101        self.resource = resource
102        self.permissions = permissions
103        self.ip_address_or_range = ip_address_or_range
104        self.protocols = protocols
105        self.shared_access_start_time = shared_access_start_time
106        self.shared_access_expiry_time = shared_access_expiry_time
107        self.identifier = identifier
108        self.partition_key_start = partition_key_start
109        self.partition_key_end = partition_key_end
110        self.row_key_start = row_key_start
111        self.row_key_end = row_key_end
112        self.key_to_sign = key_to_sign
113        self.cache_control = cache_control
114        self.content_disposition = content_disposition
115        self.content_encoding = content_encoding
116        self.content_language = content_language
117        self.content_type = content_type
118