text: # coding: utf-8
  
  """
      Looker API 3.1 Reference
  
      ### Authorization  The Looker API uses Looker **API3** credentials for authorization and access control. Looker admins can create API3 credentials on Looker's **Admin/Users** page. Pass API3 credentials to the **/login** endpoint to obtain a temporary access_token. Include that access_token in the Authorization header of Looker API requests. For details, see [Looker API Authorization](https://looker.com/docs/r/api/authorization)  ### Client SDKs  The Looker API is a RESTful system that should be usable by any programming language capable of making HTTPS requests. Client SDKs for a variety of programming languages can be generated from the Looker API's Swagger JSON metadata to streamline use of the Looker API in your applications. A client SDK for Ruby is available as an example. For more information, see [Looker API Client SDKs](https://looker.com/docs/r/api/client_sdks)  ### Try It Out!  The 'api-docs' page served by the Looker instance includes 'Try It Out!' buttons for each API method. After logging in with API3 credentials, you can use the \"Try It Out!\" buttons to call the API directly from the documentation page to interactively explore API features and responses.  Note! With great power comes great responsibility: The \"Try It Out!\" button makes API calls to your live Looker instance. Be especially careful with destructive API operations such as `delete_user` or similar. There is no \"undo\" for API operations.  ### Versioning  Future releases of Looker will expand this API release-by-release to securely expose more and more of the core power of Looker to API client applications. API endpoints marked as \"beta\" may receive breaking changes without warning (but we will try to avoid doing that). Stable (non-beta) API endpoints should not receive breaking changes in future releases. For more information, see [Looker API Versioning](https://looker.com/docs/r/api/versioning)  This **API 3.1** is in active development. This is where support for new Looker features will appear as non-breaking additions - new functions, new optional parameters on existing functions, or new optional properties in existing types. Additive changes should not impact your existing application code that calls the Looker API. Your existing application code will not be aware of any new Looker API functionality until you choose to upgrade your app to use a newer Looker API client SDK release.  The following are a few examples of noteworthy items that have changed between API 3.0 and API 3.1. For more comprehensive coverage of API changes, please see the release notes for your Looker release.   ### Examples of new things added in API 3.1:  * Dashboard construction APIs * Themes and custom color collections APIs * Create and run SQL_runner queries * Create and run merged results queries * Create and modify dashboard filters * Create and modify password requirements   ### Deprecated in API 3.0  The following functions and properties have been deprecated in API 3.0.  They continue to exist and work in API 3.0 for the next several Looker releases but they have not been carried forward to API 3.1:  * Dashboard Prefetch functions * User access_filter functions * User API 1.0 credentials functions * Space.is_root and Space.is_user_root properties. Use Space.is_shared_root and Space.is_users_root instead.   ### Semantic changes in API 3.1:  * `all_looks` no longer includes soft-deleted looks, matching `all_dashboards` behavior. You can find soft-deleted looks using `search_looks` with the `deleted` param set to True. * `all_spaces` no longer includes duplicate items * `search_users` no longer accepts Y,y,1,0,N,n for Boolean params, only \"true\" and \"false\". * For greater client and network compatibility, `render_task_results` now returns HTTP status ***202 Accepted*** instead of HTTP status ***102 Processing*** * `all_running_queries` and `kill_query` functions have moved into the `Query` function group.   If you have application code which relies on the old behavior of the APIs above, you may continue using the API 3.0 functions in this Looker release. We strongly suggest you update your code to use API 3.1 analogs as soon as possible.  
  
      OpenAPI spec version: 3.1.0
      Contact: support@looker.com
      Generated by: https://github.com/swagger-api/swagger-codegen.git
  """
  
  
  from pprint import pformat
  from six import iteritems
  import re
  
  
  class RepositoryCredential(object):
      """
      NOTE: This class is auto generated by the swagger code generator program.
      Do not edit the class manually.
      """
      def __init__(self, id=None, root_project_id=None, remote_url=None, git_username=None, git_password=None, ssh_public_key=None, is_configured=None, can=None):
          """
          RepositoryCredential - a model defined in Swagger
  
          :param dict swaggerTypes: The key is attribute name
                                    and the value is attribute type.
          :param dict attributeMap: The key is attribute name
                                    and the value is json key in definition.
          """
          self.swagger_types = {
              'id': 'str',
              'root_project_id': 'str',
              'remote_url': 'str',
              'git_username': 'str',
              'git_password': 'str',
              'ssh_public_key': 'str',
              'is_configured': 'bool',
              'can': 'dict(str, bool)'
          }
  
          self.attribute_map = {
              'id': 'id',
              'root_project_id': 'root_project_id',
              'remote_url': 'remote_url',
              'git_username': 'git_username',
              'git_password': 'git_password',
              'ssh_public_key': 'ssh_public_key',
              'is_configured': 'is_configured',
              'can': 'can'
          }
  
          self._id = id
          self._root_project_id = root_project_id
          self._remote_url = remote_url
          self._git_username = git_username
          self._git_password = git_password
          self._ssh_public_key = ssh_public_key
          self._is_configured = is_configured
          self._can = can
  
      @property
      def id(self):
          """
          Gets the id of this RepositoryCredential.
          Unique Id
  
          :return: The id of this RepositoryCredential.
          :rtype: str
          """
          return self._id
  
      @id.setter
      def id(self, id):
          """
          Sets the id of this RepositoryCredential.
          Unique Id
  
          :param id: The id of this RepositoryCredential.
          :type: str
          """
  
          self._id = id
  
      @property
      def root_project_id(self):
          """
          Gets the root_project_id of this RepositoryCredential.
          Root project Id
  
          :return: The root_project_id of this RepositoryCredential.
          :rtype: str
          """
          return self._root_project_id
  
      @root_project_id.setter
      def root_project_id(self, root_project_id):
          """
          Sets the root_project_id of this RepositoryCredential.
          Root project Id
  
          :param root_project_id: The root_project_id of this RepositoryCredential.
          :type: str
          """
  
          self._root_project_id = root_project_id
  
      @property
      def remote_url(self):
          """
          Gets the remote_url of this RepositoryCredential.
          Git remote repository url
  
          :return: The remote_url of this RepositoryCredential.
          :rtype: str
          """
          return self._remote_url
  
      @remote_url.setter
      def remote_url(self, remote_url):
          """
          Sets the remote_url of this RepositoryCredential.
          Git remote repository url
  
          :param remote_url: The remote_url of this RepositoryCredential.
          :type: str
          """
  
          self._remote_url = remote_url
  
      @property
      def git_username(self):
          """
          Gets the git_username of this RepositoryCredential.
          Git username for HTTPS authentication.
  
          :return: The git_username of this RepositoryCredential.
          :rtype: str
          """
          return self._git_username
  
      @git_username.setter
      def git_username(self, git_username):
          """
          Sets the git_username of this RepositoryCredential.
          Git username for HTTPS authentication.
  
          :param git_username: The git_username of this RepositoryCredential.
          :type: str
          """
  
          self._git_username = git_username
  
      @property
      def git_password(self):
          """
          Gets the git_password of this RepositoryCredential.
          (Write-Only) Git password for HTTPS authentication.
  
          :return: The git_password of this RepositoryCredential.
          :rtype: str
          """
          return self._git_password
  
      @git_password.setter
      def git_password(self, git_password):
          """
          Sets the git_password of this RepositoryCredential.
          (Write-Only) Git password for HTTPS authentication.
  
          :param git_password: The git_password of this RepositoryCredential.
          :type: str
          """
  
          self._git_password = git_password
  
      @property
      def ssh_public_key(self):
          """
          Gets the ssh_public_key of this RepositoryCredential.
          Public deploy key for SSH authentication.
  
          :return: The ssh_public_key of this RepositoryCredential.
          :rtype: str
          """
          return self._ssh_public_key
  
      @ssh_public_key.setter
      def ssh_public_key(self, ssh_public_key):
          """
          Sets the ssh_public_key of this RepositoryCredential.
          Public deploy key for SSH authentication.
  
          :param ssh_public_key: The ssh_public_key of this RepositoryCredential.
          :type: str
          """
  
          self._ssh_public_key = ssh_public_key
  
      @property
      def is_configured(self):
          """
          Gets the is_configured of this RepositoryCredential.
          Whether the credentials have been configured for the Git Repository.
  
          :return: The is_configured of this RepositoryCredential.
          :rtype: bool
          """
          return self._is_configured
  
      @is_configured.setter
      def is_configured(self, is_configured):
          """
          Sets the is_configured of this RepositoryCredential.
          Whether the credentials have been configured for the Git Repository.
  
          :param is_configured: The is_configured of this RepositoryCredential.
          :type: bool
          """
  
          self._is_configured = is_configured
  
      @property
      def can(self):
          """
          Gets the can of this RepositoryCredential.
          Operations the current user is able to perform on this object
  
          :return: The can of this RepositoryCredential.
          :rtype: dict(str, bool)
          """
          return self._can
  
      @can.setter
      def can(self, can):
          """
          Sets the can of this RepositoryCredential.
          Operations the current user is able to perform on this object
  
          :param can: The can of this RepositoryCredential.
          :type: dict(str, bool)
          """
  
          self._can = can
  
      def to_dict(self):
          """
          Returns the model properties as a dict
          """
          result = {}
  
          for attr, _ in iteritems(self.swagger_types):
              value = getattr(self, attr)
              if isinstance(value, list):
                  result[attr] = list(map(
                      lambda x: x.to_dict() if hasattr(x, "to_dict") else x,
                      value
                  ))
              elif hasattr(value, "to_dict"):
                  result[attr] = value.to_dict()
              elif isinstance(value, dict):
                  result[attr] = dict(map(
                      lambda item: (item[0], item[1].to_dict())
                      if hasattr(item[1], "to_dict") else item,
                      value.items()
                  ))
              else:
                  result[attr] = value
  
          return result
  
      def to_str(self):
          """
          Returns the string representation of the model
          """
          return pformat(self.to_dict())
  
      def __repr__(self):
          """
          For `print` and `pprint`
          """
          return self.to_str()
  
      def __eq__(self, other):
          """
          Returns true if both objects are equal
          """
          if not isinstance(other, RepositoryCredential):
              return False
  
          return self.__dict__ == other.__dict__
  
      def __ne__(self, other):
          """
          Returns true if both objects are not equal
          """
          return not self == other
  