:doc:`ManagedBlockchain <../../managedblockchain>` / Client / create_network

**************
create_network
**************



.. py:method:: ManagedBlockchain.Client.create_network(**kwargs)

  

  Creates a new blockchain network using Amazon Managed Blockchain.

   

  Applies only to Hyperledger Fabric.

  

  See also: `AWS API Documentation <https://docs.aws.amazon.com/goto/WebAPI/managedblockchain-2018-09-24/CreateNetwork>`_  


  **Request Syntax**
  ::

    response = client.create_network(
        ClientRequestToken='string',
        Name='string',
        Description='string',
        Framework='HYPERLEDGER_FABRIC'|'ETHEREUM',
        FrameworkVersion='string',
        FrameworkConfiguration={
            'Fabric': {
                'Edition': 'STARTER'|'STANDARD'
            }
        },
        VotingPolicy={
            'ApprovalThresholdPolicy': {
                'ThresholdPercentage': 123,
                'ProposalDurationInHours': 123,
                'ThresholdComparator': 'GREATER_THAN'|'GREATER_THAN_OR_EQUAL_TO'
            }
        },
        MemberConfiguration={
            'Name': 'string',
            'Description': 'string',
            'FrameworkConfiguration': {
                'Fabric': {
                    'AdminUsername': 'string',
                    'AdminPassword': 'string'
                }
            },
            'LogPublishingConfiguration': {
                'Fabric': {
                    'CaLogs': {
                        'Cloudwatch': {
                            'Enabled': True|False
                        }
                    }
                }
            },
            'Tags': {
                'string': 'string'
            },
            'KmsKeyArn': 'string'
        },
        Tags={
            'string': 'string'
        }
    )
    
  :type ClientRequestToken: string
  :param ClientRequestToken: **[REQUIRED]** 

    This is a unique, case-sensitive identifier that you provide to ensure the idempotency of the operation. An idempotent operation completes no more than once. This identifier is required only if you make a service request directly using an HTTP client. It is generated automatically if you use an Amazon Web Services SDK or the Amazon Web Services CLI.

    This field is autopopulated if not provided.

  
  :type Name: string
  :param Name: **[REQUIRED]** 

    The name of the network.

    

  
  :type Description: string
  :param Description: 

    An optional description for the network.

    

  
  :type Framework: string
  :param Framework: **[REQUIRED]** 

    The blockchain framework that the network uses.

    

  
  :type FrameworkVersion: string
  :param FrameworkVersion: **[REQUIRED]** 

    The version of the blockchain framework that the network uses.

    

  
  :type FrameworkConfiguration: dict
  :param FrameworkConfiguration: 

    Configuration properties of the blockchain framework relevant to the network configuration.

    

  
    - **Fabric** *(dict) --* 

      Hyperledger Fabric configuration properties for a Managed Blockchain network that uses Hyperledger Fabric.

      

    
      - **Edition** *(string) --* **[REQUIRED]** 

        The edition of Amazon Managed Blockchain that the network uses. For more information, see `Amazon Managed Blockchain Pricing <http://aws.amazon.com/managed-blockchain/pricing/>`__.

        

      
    
  
  :type VotingPolicy: dict
  :param VotingPolicy: **[REQUIRED]** 

    The voting rules used by the network to determine if a proposal is approved.

    

  
    - **ApprovalThresholdPolicy** *(dict) --* 

      Defines the rules for the network for voting on proposals, such as the percentage of ``YES`` votes required for the proposal to be approved and the duration of the proposal. The policy applies to all proposals and is specified when the network is created.

      

    
      - **ThresholdPercentage** *(integer) --* 

        The percentage of votes among all members that must be ``YES`` for a proposal to be approved. For example, a ``ThresholdPercentage`` value of ``50`` indicates 50%. The ``ThresholdComparator`` determines the precise comparison. If a ``ThresholdPercentage`` value of ``50`` is specified on a network with 10 members, along with a ``ThresholdComparator`` value of ``GREATER_THAN``, this indicates that 6 ``YES`` votes are required for the proposal to be approved.

        

      
      - **ProposalDurationInHours** *(integer) --* 

        The duration from the time that a proposal is created until it expires. If members cast neither the required number of ``YES`` votes to approve the proposal nor the number of ``NO`` votes required to reject it before the duration expires, the proposal is ``EXPIRED`` and ``ProposalActions`` aren't carried out.

        

      
      - **ThresholdComparator** *(string) --* 

        Determines whether the vote percentage must be greater than the ``ThresholdPercentage`` or must be greater than or equal to the ``ThresholdPercentage`` to be approved.

        

      
    
  
  :type MemberConfiguration: dict
  :param MemberConfiguration: **[REQUIRED]** 

    Configuration properties for the first member within the network.

    

  
    - **Name** *(string) --* **[REQUIRED]** 

      The name of the member.

      

    
    - **Description** *(string) --* 

      An optional description of the member.

      

    
    - **FrameworkConfiguration** *(dict) --* **[REQUIRED]** 

      Configuration properties of the blockchain framework relevant to the member.

      

    
      - **Fabric** *(dict) --* 

        Attributes of Hyperledger Fabric for a member on a Managed Blockchain network that uses Hyperledger Fabric.

        

      
        - **AdminUsername** *(string) --* **[REQUIRED]** 

          The user name for the member's initial administrative user.

          

        
        - **AdminPassword** *(string) --* **[REQUIRED]** 

          The password for the member's initial administrative user. The ``AdminPassword`` must be at least 8 characters long and no more than 32 characters. It must contain at least one uppercase letter, one lowercase letter, and one digit. It cannot have a single quotation mark (‘), a double quotation marks (“), a forward slash(/), a backward slash(\), @, or a space.

          

        
      
    
    - **LogPublishingConfiguration** *(dict) --* 

      Configuration properties for logging events associated with a member of a Managed Blockchain network.

      

    
      - **Fabric** *(dict) --* 

        Configuration properties for logging events associated with a member of a Managed Blockchain network using the Hyperledger Fabric framework.

        

      
        - **CaLogs** *(dict) --* 

          Configuration properties for logging events associated with a member's Certificate Authority (CA). CA logs help you determine when a member in your account joins the network, or when new peers register with a member CA.

          

        
          - **Cloudwatch** *(dict) --* 

            Parameters for publishing logs to Amazon CloudWatch Logs.

            

          
            - **Enabled** *(boolean) --* 

              Indicates whether logging is enabled.

              

            
          
        
      
    
    - **Tags** *(dict) --* 

      Tags assigned to the member. Tags consist of a key and optional value.

       

      When specifying tags during creation, you can specify multiple key-value pairs in a single request, with an overall maximum of 50 tags added to each resource.

       

      For more information about tags, see `Tagging Resources <https://docs.aws.amazon.com/managed-blockchain/latest/ethereum-dev/tagging-resources.html>`__ in the *Amazon Managed Blockchain Ethereum Developer Guide*, or `Tagging Resources <https://docs.aws.amazon.com/managed-blockchain/latest/hyperledger-fabric-dev/tagging-resources.html>`__ in the *Amazon Managed Blockchain Hyperledger Fabric Developer Guide*.

      

    
      - *(string) --* 

      
        - *(string) --* 

        
  

    - **KmsKeyArn** *(string) --* 

      The Amazon Resource Name (ARN) of the customer managed key in Key Management Service (KMS) to use for encryption at rest in the member. This parameter is inherited by any nodes that this member creates. For more information, see `Encryption at Rest <https://docs.aws.amazon.com/managed-blockchain/latest/hyperledger-fabric-dev/managed-blockchain-encryption-at-rest.html>`__ in the *Amazon Managed Blockchain Hyperledger Fabric Developer Guide*.

       

      Use one of the following options to specify this parameter:

       

      
      * **Undefined or empty string** - By default, use an KMS key that is owned and managed by Amazon Web Services on your behalf.
       
      * **A valid symmetric customer managed KMS key** - Use the specified KMS key in your account that you create, own, and manage. Amazon Managed Blockchain doesn't support asymmetric keys. For more information, see `Using symmetric and asymmetric keys <https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html>`__ in the *Key Management Service Developer Guide*. The following is an example of a KMS key ARN: ``arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab``
      

      

    
  
  :type Tags: dict
  :param Tags: 

    Tags to assign to the network.

     

    Each tag consists of a key and an optional value. You can specify multiple key-value pairs in a single request with an overall maximum of 50 tags allowed per resource.

     

    For more information about tags, see `Tagging Resources <https://docs.aws.amazon.com/managed-blockchain/latest/ethereum-dev/tagging-resources.html>`__ in the *Amazon Managed Blockchain Ethereum Developer Guide*, or `Tagging Resources <https://docs.aws.amazon.com/managed-blockchain/latest/hyperledger-fabric-dev/tagging-resources.html>`__ in the *Amazon Managed Blockchain Hyperledger Fabric Developer Guide*.

    

  
    - *(string) --* 

    
      - *(string) --* 

      


  
  :rtype: dict
  :returns: 
    
    **Response Syntax**

    
    ::

      {
          'NetworkId': 'string',
          'MemberId': 'string'
      }
      
    **Response Structure**

    

    - *(dict) --* 
      

      - **NetworkId** *(string) --* 

        The unique identifier for the network.

        
      

      - **MemberId** *(string) --* 

        The unique identifier for the first member within the network.

        
  
  **Exceptions**
  
  *   :py:class:`ManagedBlockchain.Client.exceptions.InvalidRequestException`

  
  *   :py:class:`ManagedBlockchain.Client.exceptions.AccessDeniedException`

  
  *   :py:class:`ManagedBlockchain.Client.exceptions.ResourceAlreadyExistsException`

  
  *   :py:class:`ManagedBlockchain.Client.exceptions.ThrottlingException`

  
  *   :py:class:`ManagedBlockchain.Client.exceptions.ResourceLimitExceededException`

  
  *   :py:class:`ManagedBlockchain.Client.exceptions.InternalServiceErrorException`

  
  *   :py:class:`ManagedBlockchain.Client.exceptions.TooManyTagsException`

  