ey-core 3.5.0 → 3.6.0.autoscaling1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +5 -5
 - data/Dockerfile +3 -0
 - data/bin/ey-core +0 -8
 - data/lib/ey-core/client/mock.rb +1 -0
 - data/lib/ey-core/client.rb +3 -0
 - data/lib/ey-core/collections/container_clusters.rb +9 -0
 - data/lib/ey-core/collections/container_service_deployments.rb +17 -0
 - data/lib/ey-core/models/container_service_deployment.rb +17 -0
 - data/lib/ey-core/models/server.rb +1 -1
 - data/lib/ey-core/requests/discover_container_service_deployments.rb +71 -0
 - data/lib/ey-core/version.rb +1 -1
 - metadata +10 -6
 
    
        checksums.yaml
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            ---
         
     | 
| 
       2 
     | 
    
         
            -
             
     | 
| 
       3 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       4 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 2 
     | 
    
         
            +
            SHA256:
         
     | 
| 
      
 3 
     | 
    
         
            +
              metadata.gz: d6ea2b7bfed5dc192b709ae8531b774ad238f90b5ed4709186af8250639c944e
         
     | 
| 
      
 4 
     | 
    
         
            +
              data.tar.gz: b930f35c380cc22b00465bd98b7f4c8ce193732911cfadac0ae7034a27390ecb
         
     | 
| 
       5 
5 
     | 
    
         
             
            SHA512:
         
     | 
| 
       6 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       7 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 6 
     | 
    
         
            +
              metadata.gz: 3ef000eaee9816291914a7eb0214775a2b8625ef1dafcb9acda1cd6947b2791a3c979e3e785c9743ff1b500e2f2d7cca32b1e1c68993970f3f35aa4ae5e17c44
         
     | 
| 
      
 7 
     | 
    
         
            +
              data.tar.gz: 887e4c0d1b3a97a67b8b9524433e318f8ebe275329817f87f3d7f4f55f6749603f23d6c008f2c670f7f3c30546025c27b1c73610527179e48411bbefd42f2f71
         
     | 
    
        data/Dockerfile
    ADDED
    
    
    
        data/bin/ey-core
    CHANGED
    
    | 
         @@ -1,12 +1,4 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            #!/usr/bin/env ruby
         
     | 
| 
       2 
     | 
    
         
            -
             
     | 
| 
       3 
     | 
    
         
            -
            git_path = File.expand_path("../../.git", __FILE__)
         
     | 
| 
       4 
     | 
    
         
            -
             
     | 
| 
       5 
     | 
    
         
            -
            if File.exist? git_path
         
     | 
| 
       6 
     | 
    
         
            -
              lib_dir = File.expand_path("../../lib", __FILE__)
         
     | 
| 
       7 
     | 
    
         
            -
              $LOAD_PATH.unshift( lib_dir )
         
     | 
| 
       8 
     | 
    
         
            -
            end
         
     | 
| 
       9 
     | 
    
         
            -
             
     | 
| 
       10 
2 
     | 
    
         
             
            require File.expand_path('../../lib/ey-core/cli/main', __FILE__)
         
     | 
| 
       11 
3 
     | 
    
         | 
| 
       12 
4 
     | 
    
         
             
            Ey::Core::Cli::Main.new(ARGV).execute!
         
     | 
    
        data/lib/ey-core/client/mock.rb
    CHANGED
    
    | 
         @@ -127,6 +127,7 @@ class Ey::Core::Client::Mock 
     | 
|
| 
       127 
127 
     | 
    
         
             
                             :components                  => components,
         
     | 
| 
       128 
128 
     | 
    
         
             
                             :contact_assignments         => [],
         
     | 
| 
       129 
129 
     | 
    
         
             
                             :contacts                    => {},
         
     | 
| 
      
 130 
     | 
    
         
            +
                             :container_service_deployments => {},
         
     | 
| 
       130 
131 
     | 
    
         
             
                             :costs                       => [],
         
     | 
| 
       131 
132 
     | 
    
         
             
                             :database_plan_usages        => Hash.new { |h1,k1| h1[k1] = {} },
         
     | 
| 
       132 
133 
     | 
    
         
             
                             :database_server_firewalls   => [],
         
     | 
    
        data/lib/ey-core/client.rb
    CHANGED
    
    | 
         @@ -21,6 +21,7 @@ class Ey::Core::Client < Cistern::Service 
     | 
|
| 
       21 
21 
     | 
    
         
             
              collection :blueprints
         
     | 
| 
       22 
22 
     | 
    
         
             
              collection :components
         
     | 
| 
       23 
23 
     | 
    
         
             
              collection :contacts
         
     | 
| 
      
 24 
     | 
    
         
            +
              collection :container_service_deployments
         
     | 
| 
       24 
25 
     | 
    
         
             
              collection :costs
         
     | 
| 
       25 
26 
     | 
    
         
             
              collection :database_plan_usages
         
     | 
| 
       26 
27 
     | 
    
         
             
              collection :database_server_revisions
         
     | 
| 
         @@ -82,6 +83,7 @@ class Ey::Core::Client < Cistern::Service 
     | 
|
| 
       82 
83 
     | 
    
         
             
              model :blueprint
         
     | 
| 
       83 
84 
     | 
    
         
             
              model :component
         
     | 
| 
       84 
85 
     | 
    
         
             
              model :contact
         
     | 
| 
      
 86 
     | 
    
         
            +
              model :container_service_deployment
         
     | 
| 
       85 
87 
     | 
    
         
             
              model :cost
         
     | 
| 
       86 
88 
     | 
    
         
             
              model :database_plan_usage
         
     | 
| 
       87 
89 
     | 
    
         
             
              model :database_server
         
     | 
| 
         @@ -197,6 +199,7 @@ class Ey::Core::Client < Cistern::Service 
     | 
|
| 
       197 
199 
     | 
    
         
             
              request :destroy_user
         
     | 
| 
       198 
200 
     | 
    
         
             
              request :detach_address
         
     | 
| 
       199 
201 
     | 
    
         
             
              request :disable_feature
         
     | 
| 
      
 202 
     | 
    
         
            +
              request :discover_container_service_deployments
         
     | 
| 
       200 
203 
     | 
    
         
             
              request :discover_database_server
         
     | 
| 
       201 
204 
     | 
    
         
             
              request :discover_database_server_snapshots
         
     | 
| 
       202 
205 
     | 
    
         
             
              request :discover_provider_location
         
     | 
| 
         @@ -0,0 +1,9 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            class Ey::Core::Client::ContainerClusters < Ey::Core::Collection
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
              model Ey::Core::Client::ContainerCluster
         
     | 
| 
      
 4 
     | 
    
         
            +
             
     | 
| 
      
 5 
     | 
    
         
            +
              self.model_root         = "container_cluster"
         
     | 
| 
      
 6 
     | 
    
         
            +
              self.model_request      = :get_container_cluster
         
     | 
| 
      
 7 
     | 
    
         
            +
              self.collection_root    = "container_clusters"
         
     | 
| 
      
 8 
     | 
    
         
            +
              self.collection_request = :get_container_clusters
         
     | 
| 
      
 9 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -0,0 +1,17 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            class Ey::Core::Client::ContainerServiceDeployments < Ey::Core::Collection
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
              model Ey::Core::Client::ContainerServiceDeployment
         
     | 
| 
      
 4 
     | 
    
         
            +
             
     | 
| 
      
 5 
     | 
    
         
            +
              self.model_root         = "container_service_deployment"
         
     | 
| 
      
 6 
     | 
    
         
            +
              self.model_request      = :get_container_service_deployment
         
     | 
| 
      
 7 
     | 
    
         
            +
              self.collection_root    = "container_service_deployments"
         
     | 
| 
      
 8 
     | 
    
         
            +
              self.collection_request = :get_container_service_deployments
         
     | 
| 
      
 9 
     | 
    
         
            +
             
     | 
| 
      
 10 
     | 
    
         
            +
              def discover(task_definition_arn)
         
     | 
| 
      
 11 
     | 
    
         
            +
                params = {
         
     | 
| 
      
 12 
     | 
    
         
            +
                  "task_definition_arn" => task_definition_arn
         
     | 
| 
      
 13 
     | 
    
         
            +
                }
         
     | 
| 
      
 14 
     | 
    
         
            +
             
     | 
| 
      
 15 
     | 
    
         
            +
                connection.requests.new(connection.discover_container_service_deployments(params).body["request"])
         
     | 
| 
      
 16 
     | 
    
         
            +
              end
         
     | 
| 
      
 17 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -0,0 +1,17 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            class Ey::Core::Client::ContainerServiceDeployment < Ey::Core::Model
         
     | 
| 
      
 2 
     | 
    
         
            +
              extend Ey::Core::Associations
         
     | 
| 
      
 3 
     | 
    
         
            +
             
     | 
| 
      
 4 
     | 
    
         
            +
              identity :id
         
     | 
| 
      
 5 
     | 
    
         
            +
             
     | 
| 
      
 6 
     | 
    
         
            +
              attribute :container_service_id
         
     | 
| 
      
 7 
     | 
    
         
            +
              attribute :public_ip_address
         
     | 
| 
      
 8 
     | 
    
         
            +
              attribute :private_ip_address
         
     | 
| 
      
 9 
     | 
    
         
            +
              attribute :port_mappings
         
     | 
| 
      
 10 
     | 
    
         
            +
              attribute :health_status
         
     | 
| 
      
 11 
     | 
    
         
            +
              attribute :container_health_status
         
     | 
| 
      
 12 
     | 
    
         
            +
              attribute :container_instance_id
         
     | 
| 
      
 13 
     | 
    
         
            +
              attribute :task_arn
         
     | 
| 
      
 14 
     | 
    
         
            +
              attribute :created_at, type: :time
         
     | 
| 
      
 15 
     | 
    
         
            +
              attribute :updated_at, type: :time
         
     | 
| 
      
 16 
     | 
    
         
            +
              attribute :deleted_at, type: :time
         
     | 
| 
      
 17 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -134,7 +134,7 @@ class Ey::Core::Client::Server < Ey::Core::Model 
     | 
|
| 
       134 
134 
     | 
    
         
             
              end
         
     | 
| 
       135 
135 
     | 
    
         | 
| 
       136 
136 
     | 
    
         
             
              def destroy!(skip_snapshot="false")
         
     | 
| 
       137 
     | 
    
         
            -
                if environment.servers.count ==  
     | 
| 
      
 137 
     | 
    
         
            +
                if environment.servers.reject { |server| server.id == self.id }.count == 0
         
     | 
| 
       138 
138 
     | 
    
         
             
                  raise Ey::Core::Client::NotPermitted, "Terminating the last server in an environment is not allowed.  You must deprovision or destroy the environment instead."
         
     | 
| 
       139 
139 
     | 
    
         
             
                end
         
     | 
| 
       140 
140 
     | 
    
         | 
| 
         @@ -0,0 +1,71 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            class Ey::Core::Client
         
     | 
| 
      
 2 
     | 
    
         
            +
              class Real
         
     | 
| 
      
 3 
     | 
    
         
            +
                def discover_container_service_deployments(params={})
         
     | 
| 
      
 4 
     | 
    
         
            +
                  url      = params.delete("url")
         
     | 
| 
      
 5 
     | 
    
         
            +
             
     | 
| 
      
 6 
     | 
    
         
            +
                  request(
         
     | 
| 
      
 7 
     | 
    
         
            +
                    :method => :get,
         
     | 
| 
      
 8 
     | 
    
         
            +
                    :url    => url,
         
     | 
| 
      
 9 
     | 
    
         
            +
                    :params => params,
         
     | 
| 
      
 10 
     | 
    
         
            +
                    :path   => "/container_service_deployments/discover",
         
     | 
| 
      
 11 
     | 
    
         
            +
                  )
         
     | 
| 
      
 12 
     | 
    
         
            +
                end
         
     | 
| 
      
 13 
     | 
    
         
            +
              end
         
     | 
| 
      
 14 
     | 
    
         
            +
             
     | 
| 
      
 15 
     | 
    
         
            +
              class Mock
         
     | 
| 
      
 16 
     | 
    
         
            +
                def discover_container_service_deployments(params={})
         
     | 
| 
      
 17 
     | 
    
         
            +
                  extract_url_params!(params)
         
     | 
| 
      
 18 
     | 
    
         
            +
             
     | 
| 
      
 19 
     | 
    
         
            +
                  callback_url  = params.delete("callback_url")
         
     | 
| 
      
 20 
     | 
    
         
            +
                  deployment_id = self.uuid
         
     | 
| 
      
 21 
     | 
    
         
            +
                  resource_id   = self.uuid
         
     | 
| 
      
 22 
     | 
    
         
            +
             
     | 
| 
      
 23 
     | 
    
         
            +
                  existing_deploymens = self.data[:container_service_deployments].values.select do |deployment|
         
     | 
| 
      
 24 
     | 
    
         
            +
                    deployment["container_service_id"] == container_service["id"]
         
     | 
| 
      
 25 
     | 
    
         
            +
                  end
         
     | 
| 
      
 26 
     | 
    
         
            +
                  existing_deploymens = nil if existing_deploymens.empty?
         
     | 
| 
      
 27 
     | 
    
         
            +
             
     | 
| 
      
 28 
     | 
    
         
            +
                  resources = existing_deploymens || [{
         
     | 
| 
      
 29 
     | 
    
         
            +
                    "id"                    => deployment_id,
         
     | 
| 
      
 30 
     | 
    
         
            +
                    "container_service_id"  => params["container_service_id"],
         
     | 
| 
      
 31 
     | 
    
         
            +
                    "public_ip_address"     => "123.456.789.123",
         
     | 
| 
      
 32 
     | 
    
         
            +
                    "private_ip_address"    => "10.0.1.2",
         
     | 
| 
      
 33 
     | 
    
         
            +
                    "container_instance_id" => SecureRandom.uuid,
         
     | 
| 
      
 34 
     | 
    
         
            +
                    "port_mappings"         => [{
         
     | 
| 
      
 35 
     | 
    
         
            +
                      "container_port"      => "80",
         
     | 
| 
      
 36 
     | 
    
         
            +
                      "host_port"           => "80",
         
     | 
| 
      
 37 
     | 
    
         
            +
                      "protocol"            => "tcp"
         
     | 
| 
      
 38 
     | 
    
         
            +
                    }],
         
     | 
| 
      
 39 
     | 
    
         
            +
                    "provisioned_id"        => resource_id,
         
     | 
| 
      
 40 
     | 
    
         
            +
                    "health_status"         => "HEALTHY",
         
     | 
| 
      
 41 
     | 
    
         
            +
                    "task_arn"              => SecureRandom.uuid,
         
     | 
| 
      
 42 
     | 
    
         
            +
                    "container_health_status" => [{
         
     | 
| 
      
 43 
     | 
    
         
            +
                      "container_arn"     => SecureRandom.uuid,
         
     | 
| 
      
 44 
     | 
    
         
            +
                      "health_status"     => SecureRandom.uuid
         
     | 
| 
      
 45 
     | 
    
         
            +
                    }]
         
     | 
| 
      
 46 
     | 
    
         
            +
                  }]
         
     | 
| 
      
 47 
     | 
    
         
            +
             
     | 
| 
      
 48 
     | 
    
         
            +
                  request = {
         
     | 
| 
      
 49 
     | 
    
         
            +
                    "id" => request_id,
         
     | 
| 
      
 50 
     | 
    
         
            +
                    "type" => "discover_container_service_deployments",
         
     | 
| 
      
 51 
     | 
    
         
            +
                    "successful" => true,
         
     | 
| 
      
 52 
     | 
    
         
            +
                    "started_at" => Time.now,
         
     | 
| 
      
 53 
     | 
    
         
            +
                    "finished_at" => nil,
         
     | 
| 
      
 54 
     | 
    
         
            +
                    "resource" => [:container_service_deployments, resource_id, resources, "/container_service_deployments"]
         
     | 
| 
      
 55 
     | 
    
         
            +
                  }
         
     | 
| 
      
 56 
     | 
    
         
            +
             
     | 
| 
      
 57 
     | 
    
         
            +
                  self.data[:container_service_deployments][deployment_id] = request
         
     | 
| 
      
 58 
     | 
    
         
            +
             
     | 
| 
      
 59 
     | 
    
         
            +
                  response_hash = request.dup
         
     | 
| 
      
 60 
     | 
    
         
            +
                  response_hash.delete("resource")
         
     | 
| 
      
 61 
     | 
    
         
            +
             
     | 
| 
      
 62 
     | 
    
         
            +
                  response(
         
     | 
| 
      
 63 
     | 
    
         
            +
                    :body    => {"request" => response_hash},
         
     | 
| 
      
 64 
     | 
    
         
            +
                    :status  => 200,
         
     | 
| 
      
 65 
     | 
    
         
            +
                    :headers => {
         
     | 
| 
      
 66 
     | 
    
         
            +
                      "Content-Type" => "application/json; charset=utf8"
         
     | 
| 
      
 67 
     | 
    
         
            +
                    }
         
     | 
| 
      
 68 
     | 
    
         
            +
                  )
         
     | 
| 
      
 69 
     | 
    
         
            +
                end
         
     | 
| 
      
 70 
     | 
    
         
            +
              end
         
     | 
| 
      
 71 
     | 
    
         
            +
            end
         
     | 
    
        data/lib/ey-core/version.rb
    CHANGED
    
    
    
        metadata
    CHANGED
    
    | 
         @@ -1,14 +1,14 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            --- !ruby/object:Gem::Specification
         
     | 
| 
       2 
2 
     | 
    
         
             
            name: ey-core
         
     | 
| 
       3 
3 
     | 
    
         
             
            version: !ruby/object:Gem::Version
         
     | 
| 
       4 
     | 
    
         
            -
              version: 3. 
     | 
| 
      
 4 
     | 
    
         
            +
              version: 3.6.0.autoscaling1
         
     | 
| 
       5 
5 
     | 
    
         
             
            platform: ruby
         
     | 
| 
       6 
6 
     | 
    
         
             
            authors:
         
     | 
| 
       7 
7 
     | 
    
         
             
            - Engine Yard Engineering
         
     | 
| 
       8 
8 
     | 
    
         
             
            autorequire: 
         
     | 
| 
       9 
9 
     | 
    
         
             
            bindir: bin
         
     | 
| 
       10 
10 
     | 
    
         
             
            cert_chain: []
         
     | 
| 
       11 
     | 
    
         
            -
            date:  
     | 
| 
      
 11 
     | 
    
         
            +
            date: 2024-09-26 00:00:00.000000000 Z
         
     | 
| 
       12 
12 
     | 
    
         
             
            dependencies:
         
     | 
| 
       13 
13 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       14 
14 
     | 
    
         
             
              name: addressable
         
     | 
| 
         @@ -387,6 +387,7 @@ files: 
     | 
|
| 
       387 
387 
     | 
    
         
             
            - ".ruby-version"
         
     | 
| 
       388 
388 
     | 
    
         
             
            - ".travis.yml"
         
     | 
| 
       389 
389 
     | 
    
         
             
            - CHANGELOG.md
         
     | 
| 
      
 390 
     | 
    
         
            +
            - Dockerfile
         
     | 
| 
       390 
391 
     | 
    
         
             
            - Gemfile
         
     | 
| 
       391 
392 
     | 
    
         
             
            - Guardfile
         
     | 
| 
       392 
393 
     | 
    
         
             
            - LICENSE.txt
         
     | 
| 
         @@ -496,6 +497,8 @@ files: 
     | 
|
| 
       496 
497 
     | 
    
         
             
            - lib/ey-core/collections/blueprints.rb
         
     | 
| 
       497 
498 
     | 
    
         
             
            - lib/ey-core/collections/components.rb
         
     | 
| 
       498 
499 
     | 
    
         
             
            - lib/ey-core/collections/contacts.rb
         
     | 
| 
      
 500 
     | 
    
         
            +
            - lib/ey-core/collections/container_clusters.rb
         
     | 
| 
      
 501 
     | 
    
         
            +
            - lib/ey-core/collections/container_service_deployments.rb
         
     | 
| 
       499 
502 
     | 
    
         
             
            - lib/ey-core/collections/costs.rb
         
     | 
| 
       500 
503 
     | 
    
         
             
            - lib/ey-core/collections/database_plan_usages.rb
         
     | 
| 
       501 
504 
     | 
    
         
             
            - lib/ey-core/collections/database_server_revisions.rb
         
     | 
| 
         @@ -564,6 +567,7 @@ files: 
     | 
|
| 
       564 
567 
     | 
    
         
             
            - lib/ey-core/models/blueprint.rb
         
     | 
| 
       565 
568 
     | 
    
         
             
            - lib/ey-core/models/component.rb
         
     | 
| 
       566 
569 
     | 
    
         
             
            - lib/ey-core/models/contact.rb
         
     | 
| 
      
 570 
     | 
    
         
            +
            - lib/ey-core/models/container_service_deployment.rb
         
     | 
| 
       567 
571 
     | 
    
         
             
            - lib/ey-core/models/cost.rb
         
     | 
| 
       568 
572 
     | 
    
         
             
            - lib/ey-core/models/database_plan_usage.rb
         
     | 
| 
       569 
573 
     | 
    
         
             
            - lib/ey-core/models/database_server.rb
         
     | 
| 
         @@ -680,6 +684,7 @@ files: 
     | 
|
| 
       680 
684 
     | 
    
         
             
            - lib/ey-core/requests/destroy_user.rb
         
     | 
| 
       681 
685 
     | 
    
         
             
            - lib/ey-core/requests/detach_address.rb
         
     | 
| 
       682 
686 
     | 
    
         
             
            - lib/ey-core/requests/disable_feature.rb
         
     | 
| 
      
 687 
     | 
    
         
            +
            - lib/ey-core/requests/discover_container_service_deployments.rb
         
     | 
| 
       683 
688 
     | 
    
         
             
            - lib/ey-core/requests/discover_database_server.rb
         
     | 
| 
       684 
689 
     | 
    
         
             
            - lib/ey-core/requests/discover_database_server_snapshots.rb
         
     | 
| 
       685 
690 
     | 
    
         
             
            - lib/ey-core/requests/discover_provider_location.rb
         
     | 
| 
         @@ -927,12 +932,11 @@ required_ruby_version: !ruby/object:Gem::Requirement 
     | 
|
| 
       927 
932 
     | 
    
         
             
                  version: 2.2.2
         
     | 
| 
       928 
933 
     | 
    
         
             
            required_rubygems_version: !ruby/object:Gem::Requirement
         
     | 
| 
       929 
934 
     | 
    
         
             
              requirements:
         
     | 
| 
       930 
     | 
    
         
            -
              - - " 
     | 
| 
      
 935 
     | 
    
         
            +
              - - ">"
         
     | 
| 
       931 
936 
     | 
    
         
             
                - !ruby/object:Gem::Version
         
     | 
| 
       932 
     | 
    
         
            -
                  version:  
     | 
| 
      
 937 
     | 
    
         
            +
                  version: 1.3.1
         
     | 
| 
       933 
938 
     | 
    
         
             
            requirements: []
         
     | 
| 
       934 
     | 
    
         
            -
             
     | 
| 
       935 
     | 
    
         
            -
            rubygems_version: 2.5.2.1
         
     | 
| 
      
 939 
     | 
    
         
            +
            rubygems_version: 3.0.3
         
     | 
| 
       936 
940 
     | 
    
         
             
            signing_key: 
         
     | 
| 
       937 
941 
     | 
    
         
             
            specification_version: 4
         
     | 
| 
       938 
942 
     | 
    
         
             
            summary: Client library providing real and mock functionality for accessing Engine
         
     |